|
|
| Zeile 1: |
Zeile 1: |
| == Aufbau einer modernen C#-Klasse == | | == Frontend Frameworks – Reifegrade == |
|
| |
|
| Eine Klasse bündelt Daten (Eigenschaften) und Verhalten (Methoden). Modernes C# nutzt file-scoped Namespaces, Auto-Properties, required/init, Expression-bodied Members, Events und optional Primärkonstruktoren (C# 12).
| | ; Tier-Definition (Kurzfassung) |
| | * Tier 1: Weit verbreitet, stabil, Langzeitpflege, starkes Ökosystem |
|
| |
|
| === Minimales Gerüst ===
| |
|
| |
|
| <syntaxhighlight lang="csharp">
| | {| class="wikitable sortable" |
| namespace MeineApp;
| | ! Tier !! Framework !! Kategorie !! Erstveröffentlichung !! Governance/Backing !! Release-/LTS-Kadenz !! Kurzbewertung |
| | |- |
| | | 1 || React || Bibliothek || 2013 || Meta + Community || regelmäßig || Dominantes Ökosystem, sehr stabil |
| | |- |
| | | 1 || Angular || Framework || 2016 || Google || LTS || Enterprise‑fokussiert, integrierter Stack |
| | |- |
| | | 1 || Vue.js || Framework || 2014 || Core‑Team + Community || regelmäßig || Reif, breite Adoption |
| | |- |
| | | 1 || Next.js || Meta‑Framework (React) || 2016 || Vercel || schnell || Produktionsreif, SSR/ISR/RSC |
|
| |
|
| public class Person
| | |} |
| {
| |
| public required string Name { get; init; }
| |
| public int Alter { get; set; }
| |
| | |
| public void Begruessen() => Console.WriteLine($"Hallo, mein Name ist {Name}.");
| |
| }
| |
| </syntaxhighlight>
| |
| | |
| === Maximales Gerüst ===
| |
| | |
| <syntaxhighlight lang="csharp">
| |
| namespace MeineApp.Models;
| |
| | |
| public class Person
| |
| {
| |
| // Primärkonstruktor (ab C# 12)
| |
| public Person(string name, int alter)
| |
| {
| |
| Name = name;
| |
| Alter = alter;
| |
| }
| |
| | |
| // Auto-Properties mit required und init
| |
| public required string Name { get; init; }
| |
| public int Alter { get; set; }
| |
| | |
| // Event
| |
| public event EventHandler? Begruesst;
| |
| | |
| // Expression-bodied Member
| |
| public string Info => $"{Name} ({Alter} Jahre)";
| |
| | |
| // Methode mit Event-Auslösung
| |
| public void Begruessen()
| |
| {
| |
| Console.WriteLine($"Hallo, mein Name ist {Name}.");
| |
| Begruesst?.Invoke(this, EventArgs.Empty);
| |
| }
| |
| | |
| // Statische Factory-Methode
| |
| public static Person Erstellen(string name) => new(name, 0);
| |
| }
| |
| </syntaxhighlight>
| |
| | |
| === Klassisches Klassen-Formular ===
| |
| | |
| <syntaxhighlight lang="csharp">
| |
| namespace MeineApp.Classic
| |
| {
| |
| public class Person
| |
| {
| |
| private string _name;
| |
| private int _alter;
| |
| | |
| public Person(string name, int alter)
| |
| {
| |
| _name = name;
| |
| _alter = alter;
| |
| }
| |
| | |
| public string Name
| |
| {
| |
| get { return _name; }
| |
| set { _name = value; }
| |
| }
| |
| | |
| public int Alter
| |
| {
| |
| get { return _alter; }
| |
| set { _alter = value; }
| |
| }
| |
| | |
| public void Begruessen()
| |
| {
| |
| Console.WriteLine("Hallo, mein Name ist " + _name + ".");
| |
| }
| |
| }
| |
| }
| |
| </syntaxhighlight>
| |
| | |
| === Praxis: Gemachte Form ===
| |
| | |
| <syntaxhighlight lang="csharp">
| |
| namespace MeineApp.Praxis;
| |
| | |
| public class Person
| |
| {
| |
| public required string Name { get; init; }
| |
| public int Alter { get; set; }
| |
| public string Beruf { get; set; } = "Unbekannt";
| |
| | |
| public void Begruessen()
| |
| {
| |
| Console.WriteLine($"Hallo, ich bin {Name}, {Alter} Jahre alt und arbeite als {Beruf}.");
| |
| }
| |
| | |
| public void GeburtstagFeiern()
| |
| {
| |
| Alter++;
| |
| Console.WriteLine($"Alles Gute zum Geburtstag, {Name}! Du bist jetzt {Alter}.");
| |
| }
| |
| }
| |
| </syntaxhighlight>
| |
Frontend Frameworks – Reifegrade
- Tier-Definition (Kurzfassung)
- Tier 1: Weit verbreitet, stabil, Langzeitpflege, starkes Ökosystem
| Tier |
Framework |
Kategorie |
Erstveröffentlichung |
Governance/Backing |
Release-/LTS-Kadenz |
Kurzbewertung
|
| 1 |
React |
Bibliothek |
2013 |
Meta + Community |
regelmäßig |
Dominantes Ökosystem, sehr stabil
|
| 1 |
Angular |
Framework |
2016 |
Google |
LTS |
Enterprise‑fokussiert, integrierter Stack
|
| 1 |
Vue.js |
Framework |
2014 |
Core‑Team + Community |
regelmäßig |
Reif, breite Adoption
|
| 1 |
Next.js |
Meta‑Framework (React) |
2016 |
Vercel |
schnell |
Produktionsreif, SSR/ISR/RSC
|