Kühnel / Deitelhoff | C# mit .NET | E-Book | www.sack.de
E-Book

E-Book, Deutsch, 1247 Seiten

Reihe: Rheinwerk Computing

Kühnel / Deitelhoff C# mit .NET

Das umfassende Handbuch
9. Auflage 2025
ISBN: 978-3-367-11269-2
Verlag: Rheinwerk
Format: EPUB
Kopierschutz: 0 - No protection

Das umfassende Handbuch

E-Book, Deutsch, 1247 Seiten

Reihe: Rheinwerk Computing

ISBN: 978-3-367-11269-2
Verlag: Rheinwerk
Format: EPUB
Kopierschutz: 0 - No protection



Alles für die Softwareentwicklung mit C# und .NET

Der ideale Begleiter für Ihre tägliche Arbeit mit C# und .NET! Von den Sprachgrundlagen über LINQ und asynchrone Programmierung bis zur Erstellung komplexer GUI-Anwendungen mit XAML und der Anbindungen von Datenbanken und KI ist alles dabei. Dieses umfassende Handbuch führt Sie professionell durch die Praxis!

Aus dem Inhalt:

  • Das erste Projekt aufsetzen
  • Schleifen, Variablen, Methoden und mehr
  • .NET kennenlernen
  • Asynchron mit async/await und TPL
  • LINQ
  • Datenbankanbindung
  • Cloud-Entwicklung mit Azure
  • Cross-Plattform mit XAML
  • 2D-Grafik
  • Entity Framework
  • Einführung in KI mit .NET
  • Unit-Tests und Versionskontrolle
Kühnel / Deitelhoff C# mit .NET jetzt bestellen!

Weitere Infos & Material


  Materialien zum Buch ... 30

  Über diese Auflage ... 31

  1.  Allgemeine Einführung in .NET ... 33


       1.1 ... Warum .NET? ... 33

       1.2 ... .NET unter die Lupe genommen ... 39

       1.3 ... Assemblies ... 51

       1.4 ... Die Entwicklungsumgebung ... 53

       1.5 ... Git -- Versionskontrolle leicht gemacht ... 62

  2.  Grundlagen der Sprache C# ... 67


       2.1 ... Konsolenanwendungen ... 67

       2.2 ... Grundlagen der C#-Syntax ... 74

       2.3 ... Variablen und Datentypen ... 79

       2.4 ... Operatoren ... 105

       2.5 ... Datenfelder (Arrays) ... 118

       2.6 ... Kontrollstrukturen ... 127

       2.7 ... Programmschleifen ... 138

  3.  Das Klassendesign ... 155


       3.1 ... Einführung in die Objektorientierung ... 155

       3.2 ... Die Klassendefinition ... 158

       3.3 ... Referenz- und Wertetypen ... 166

       3.4 ... Die Eigenschaften eines Objekts ... 167

       3.5 ... Methoden eines Objekts ... 176

       3.6 ... Konstruktoren ... 204

       3.7 ... Der Destruktor ... 211

       3.8 ... Konstanten in einer Klasse ... 212

       3.9 ... Statische Klassenkomponenten ... 214

       3.10 ... Namensräume (Namespaces) ... 221

       3.11 ... Aktueller Stand der Klasse »Circle« ... 232

  4.  Vererbung, Polymorphie und Interfaces ... 235


       4.1 ... Die Vererbung ... 235

       4.2 ... Der Problemfall geerbter Methoden ... 244

       4.3 ... Typkonvertierung und Typuntersuchung von Objektvariablen ... 251

       4.4 ... Polymorphie ... 257

       4.5 ... Weitere Gesichtspunkte der Vererbung ... 265

       4.6 ... Das Projekt »GeometricObjectsSolution« ergänzen ... 268

       4.7 ... Eingebettete Klassen ... 272

       4.8 ... Interfaces (Schnittstellen) ... 272

       4.9 ... Das Zerstören von Objekten -- der Garbage Collector ... 292

       4.10 ... Die Ergänzungen in den Klassen »Circle« und »Rectangle« ... 299

  5.  Delegaten, Ereignisse und Lambda-Ausdrücke ... 301


       5.1 ... Delegaten ... 301

       5.2 ... Ereignisse eines Objekts ... 311

       5.3 ... Lambda-Ausdrücke ... 328

       5.4 ... Änderungen im Projekt »GeometricObjectsSolution« ... 334

  6.  Strukturen, Records und Enumerationen ... 339


       6.1 ... Strukturen -- eine Sonderform der Klassen ... 339

       6.2 ... Datensatztypen -- Klassen mit Standards ... 348

       6.3 ... Klassen, Strukturen oder Records? ... 352

       6.4 ... Enumerationen (Aufzählungen) ... 355

       6.5 ... Boxing und Unboxing ... 357

  7.  Fehlerbehandlung und Debugging ... 359


       7.1 ... Laufzeitfehler erkennen ... 360

       7.2 ... Debuggen mit Programmcode ... 383

       7.3 ... Fehlersuche mit Visual Studio ... 391

  8.  Auflistungsklassen (Collections) ... 399


       8.1 ... Collections im Namespace »System.Collections« ... 399

       8.2 ... Die Klasse »ArrayList« ... 403

       8.3 ... Die Klasse »Hashtable« ... 415

       8.4 ... Die Klassen »Queue« und »Stack« ... 421

       8.5 ... Eigene Auflistungen mit »yield« durchlaufen ... 424

       8.6 ... Collection Expressions ... 427

  9.  Generics -- generische Datentypen ... 429


       9.1 ... Bereitstellen einer generischen Klasse ... 431

       9.2 ... Bedingungen (Constraints) festlegen ... 434

       9.3 ... Generische Methoden ... 438

       9.4 ... Generische Attribute ... 439

       9.5 ... Generics und Vererbung ... 441

       9.6 ... Typkonvertierung von Generics ... 443

       9.7 ... Generische Delegaten ... 444

       9.8 ... »Nullable«-Typen ... 445

       9.9 ... Generische Collections ... 447

       9.10 ... Kovarianz und Kontravarianz generischer Typen ... 452

       9.11 ... Generische Mathematik ... 457

       9.12 ... Ergänzungen im Beispielprojekt »GeometricObjectsSolution« ... 459

10.  Weitere C#-Sprachfeatures ... 461


       10.1 ... Implizit typisierte Variablen ... 461

       10.2 ... Anonyme Typen ... 462

       10.3 ... Erweiterungsmethoden ... 463

       10.4 ... Spezielle Methoden ... 467

       10.5 ... Operatorüberladung ... 474

       10.6 ... »Nullable«-Referenztypen ... 485

       10.7 ... Die »with«-Anweisung ... 490

       10.8 ... Indexer ... 491

       10.9 ... Attribute ... 498

       10.10 ... Der bedingte NULL-Operator ... 511

       10.11 ... Der »nameof«-Operator ... 513

       10.12 ... Dynamisches Binden ... 514

       10.13 ... Tupel ... 518

       10.14 ... Pattern Matching (Musterabgleich) ... 523

       10.15 ... Rückgabewerte mit »ref« ... 529

       10.16 ... Unsicherer (unsafe) Programmcode -- Zeigertechnik in C# ... 532

11.  LINQ -- Language Integrated Query ... 539


       11.1 ... Einstieg in LINQ ... 539

       11.2 ... LINQ to Objects ... 545

       11.3 ... Die Abfrageoperatoren ... 549

12.  Arbeiten mit Dateien und Streams ... 575


       12.1 ... Einführung ... 575

       12.2 ... Namespaces der Ein- bzw. Ausgabe ... 576

       12.3 ... Laufwerke, Verzeichnisse und Dateien ... 577

       12.4 ... Die »Stream«-Klassen ... 594

       12.5 ... Die Klassen »TextReader« und »TextWriter« ... 606

       12.6 ... Die Klassen »BinaryReader« und »BinaryWriter« ... 612

       12.7 ... Serialisierung ... 621

13.  Multithreading ... 631


       13.1 ... Einführung in das Multithreading ... 632

       13.2 ... Threads -- allgemein betrachtet ... 633

       13.3 ... Mit der Klasse »Thread« arbeiten ... 635

       13.4 ... Der Threadpool ... 647

       13.5 ... Synchronisation von Threads ... 648

       13.6 ... Grundlagen asynchroner Methodenaufrufe ... 673

14.  Die Task Parallel Library (TPL) und das Task-based Async Pattern (TAP) ... 687


       14.1 ... Die wichtigsten Klassen der TPL ... 688

       14.2 ... Die Klasse »Task« ... 688

       14.3 ... Die Klasse »Parallel« ... 701

       14.4 ... Asynchrone Programmierung mit »async« und »await« ... 708

15.  Grundlegende .NET-Klassen ... 715


       15.1 ... Die Klasse »Object« ... 715

       15.2 ... Die Klasse »String« ... 721

       15.3 ... Die Klasse »StringBuilder« ... 736

       15.4 ... Der Typ »DateTime« ... 742

       15.5 ... Die Klasse »TimeSpan« ... 747

       15.6 ... Die Klassen »DateOnly« und »TimeOnly« ... 750

       15.7 ... Ausgabeformatierung ... 751

16.  Einführung in das Entity Framework Core ... 761


       16.1 ... Was ist das Entity Framework Core? ... 761

       16.2 ... Grundkonzepte und Projekt-Setup von EF Core ... 767

       16.3 ... Unser erstes Projekt ... 772

       16.4 ... Datenabfragen mit LINQ ... 783

       16.5 ... Weitere Datenbankzugriffe ... 786

       16.6 ... Eager, Lazy und Explicit Loading ... 791

       16.7 ... Modellierung von Beziehungen ... 794

       16.8 ... Die Arbeit mit Migrationen ... 802

       16.9 ... Data Seeding und Datenbankinitialisierung ... 806

       16.10 ... Modellierung von Vererbung und Polymorphie ... 809

       16.11 ... Performance und Tuning ... 813

       16.12 ... EF Core und moderne .NET-Features ... 815

17.  Desktop- und Cross-Platform-Entwicklung ... 819


       17.1 ... WinForms, WPF und .NET MAUI -- ein Vergleich ... 819

       17.2 ... Und was ist mit der UWP und WinUI 3? ... 821

       17.3 ... XAML (Extended Application Markup Language) ... 823

       17.4 ... Grundkonzepte von Windows Forms (WinForms) ... 840

18.  Windows Presentation Foundation ... 845


       18.1 ... Eine WPF-Anwendung und ihre Dateien ... 845

       18.2 ... Fenster in der WPF ... 847

       18.3 ... Nachrichtenfenster mit »MessageBox« ... 848

       18.4 ... Standarddialoge in der WPF ... 850

       18.5 ... Die WPF-Layoutcontainer ... 850

       18.6 ... WPF-Steuerelemente ... 857

       18.7 ... Ereignisse in der WPF ... 866

       18.8 ... Die Ereignishandler ... 870

       18.9 ... WPF-Datenbindung und WPF-Commands ... 873

       18.10 ... Die Klasse »Binding« ... 876

       18.11 ... WPF-Commands ... 887

       18.12 ... »RoutedCommand«-Objekte und »CommandBindings« ... 898

       18.13 ... Das MVVM-Pattern ... 902

19.  Einführung in .NET MAUI ... 911


       19.1 ... Was ist .NET MAUI? ... 911

       19.2 ... Architektur von .NET MAUI im Kontext von .NET ... 913

       19.3 ... Struktur eines MAUI-Projekts ... 914

       19.4 ... Eine erste Anwendung ... 921

       19.5 ... Zentrale Konzepte ... 925

       19.6 ... Datenbindung und MVVM mit .NET MAUI ... 932

       19.7 ... Plattformunabhängigkeit und plattformspezifischer Code ... 940

       19.8 ... Debugging und Deployment ... 942

20.  2D-Grafik in WPF und .NET MAUI ... 945


       20.1 ... Shapes ... 945

       20.2 ... »Path«-Elemente ... 949

       20.3 ... »Brush«-Objekte ... 953

       20.4 ... 2D-Grafik in .NET MAUI ... 965

21.  Komponententests (Unit-Tests) ... 967


       21.1 ... Was ist ein Unit-Test? ... 967

       21.2 ... Ein erster Komponententest ... 970

       21.3 ... Komponententest schreiben und ausführen ... 977

       21.4 ... Die Klasse »TestContext« ... 995

       21.5 ... Data-Driven Unit-Tests (datengetriebene Tests) ... 998

       21.6 ... Lebenszyklus-Attribute ... 1011

       21.7 ... Testen mit »Assert« ... 1016

       21.8 ... Test-Driven Development -- TDD ... 1025

22.  Einführung in ASP.NET Core ... 1027


       22.1 ... Was ist ASP.NET Core? ... 1027

       22.2 ... Web-API-Projektstruktur und erste Schritte ... 1032

       22.3 ... Minimal APIs vs. klassische Controller-Architektur ... 1040

       22.4 ... Routing und Middleware ... 1047

       22.5 ... Dependency Injection ... 1054

       22.6 ... Konfiguration und Umgebungen ... 1057

       22.7 ... Entity Framework Core Integration ... 1061

       22.8 ... Authentifizierung und Autorisierung ... 1068

       22.9 ... Fehlerbehandlung und Logging ... 1072

       22.10 ... OpenAPI/Swagger ... 1076

       22.11 ... Deployment und Hosting ... 1081

       22.12 ... Unit-Testing von ASP.NET-Core-Anwendungen ... 1085

23.  Einführung in Blazor ... 1089


       23.1 ... Was ist Blazor? ... 1089

       23.2 ... Wie funktioniert Blazor? ... 1093

       23.3 ... Projektstruktur und Build-System ... 1096

       23.4 ... Blazor-Komponenten im Detail ... 1106

       23.5 ... Routing und Navigation ... 1110

       23.6 ... Datenbindung und Formulare ... 1114

       23.7 ... State Management ... 1118

       23.8 ... Interop mit JavaScript ... 1122

       23.9 ... Zugriff auf APIs und Backend ... 1125

       23.10 ... Blazor Hybrid für den Desktop ... 1129

       23.11 ... Fortgeschrittene Themen ... 1132

24.  Cloud-Entwicklung mit Azure ... 1135


       24.1 ... Was ist Microsoft Azure? ... 1135

       24.2 ... Überblick über Cloud-Computing ... 1136

       24.3 ... Cloud-Service-Modelle: PaaS, IaaS, und SaaS ... 1138

       24.4 ... Vorteile der Cloud-Entwicklung mit Azure ... 1141

       24.5 ... Azure-Ressourcenmanagement und -Architektur ... 1142

       24.6 ... Schlüsseldienste: Azure Compute, Storage, Databases und KI ... 1147

       24.7 ... Azure CLI und Azure PowerShell ... 1152

       24.8 ... Azure SDKs für .NET ... 1155

       24.9 ... Nutzung des Azure-Portals ... 1159

       24.10 ... Azure SQL Database und Cosmos DB ... 1159

       24.11 ... Azure Blob Storage ... 1164

       24.12 ... Azure Functions und Logic Apps ... 1167

       24.13 ... Azure Monitor und Application Insights ... 1172

       24.14 ... Einrichten von Azure DevOps ... 1176

25.  Softwareentwicklung in Zeiten von KI ... 1179


       25.1 ... Warum KI in der Softwareentwicklung? ... 1179

       25.2 ... Grundlagen der künstlichen Intelligenz ... 1180

       25.3 ... KI-Plattformen und Tools von Microsoft ... 1185

       25.4 ... Machine Learning mit ML.NET ... 1189

       25.5 ... Azure AI Services und Azure OpenAI in C# nutzen ... 1198

       25.6 ... Generative KI nutzen ... 1204

       25.7 ... Microsoft.Extensions.AI und Microsoft.Extensions.VectorData ... 1214

       25.8 ... Einsatz von KI in der Softwareentwicklung selbst ... 1218

       25.9 ... Ethik, Datenschutz und Verantwortung in der KI-Entwicklung ... 1227

       25.10 ... Best Practices und typische Fallstricke ... 1229

  Index ... 1233


1    Allgemeine Einführung in .NET


Mit diesem Buch möchten wir sowohl Leserinnen und Leser ansprechen, die schon Grundlagenkenntnisse mitbringen und zum Beispiel programmieren können oder Informatik studieren, als auch solche, die mit dem Programmieren gerade anfangen.

Als Dozenten und Trainer sind uns beide Aufgaben ans Herz gewachsen. Wir mögen die Herausforderung, für heterogene Gruppen mit unterschiedlichen Lernstilen und Vorkenntnissen zu arbeiten, und finden es wichtig, eine Atmosphäre zu schaffen, die Motivation und Neugierde fördert.

Genau hier setzt auch dieses Buch an. Wir möchten sowohl erfahrene Leser ansprechen als auch Anfängern den Einstieg erleichtern, indem wir eine Brücke zwischen den unterschiedlichen Wissenswelten schlagen. Vielleicht wissen Sie noch nicht, was sich hinter .NET verbirgt? Vielleicht haben Sie sich für dieses Buch entschieden, ohne die Tragweite Ihres Entschlusses für .NET zu kennen. Wir möchten Ihnen das zunächst einmal erläutern.

Mit .NET 5 hat Microsoft die Entwicklungslinien von .NET Framework und .NET Core unter einer gemeinsamen Plattform zusammengeführt. Es gibt seither nur noch .NET, oft auch .NET 5+ genannt. Das klassische .NET Framework, zuletzt in Version 4.8 erschienen, wird weiter gepflegt, aber nicht mehr aktiv weiterentwickelt. Der Fokus liegt jetzt auf dem plattformübergreifenden .NET, das Windows, Linux, macOS sowie mobile Plattformen (über MAUI) unterstützt.

1.1    Warum .NET?


Lesern mit fundierten Grundlagenkenntnissen eine Thematik näherzubringen, die nicht nur ihr Interesse weckt, sondern ihnen auch neue Erkenntnisse vermittelt, ist eine anspruchsvolle Aufgabe. Gleichzeitig Programmieranfänger behutsam an die abstrakte Denkweise der Programmlogik heranzuführen und ihnen die Freude am Lernen zu bewahren, erfordert Fingerspitzengefühl, Geduld und methodisches Geschick.

Als Dozent und Trainer mit langjähriger Erfahrung in der Erwachsenenbildung haben wir es uns zur Aufgabe gemacht, gerade Anfänger auf ihrem Weg in die Welt des Programmierens zu begleiten. Die Herausforderungen von heterogenen Gruppen mit unterschiedlichen Vorkenntnissen und Lernstilen haben gezeigt, wie wichtig es ist, komplexe Inhalte auf einfache, nachvollziehbare Weise zu vermitteln und gleichzeitig eine Atmosphäre zu schaffen, die Motivation und Neugierde fördert.

Doch werfen wir zunächst einen Blick zurück in die 90er Jahre: Anwendungen wurden vor allem für Desktop-PCs entwickelt, während Netzwerke noch in den Kinderschuhen steckten. Grafische Benutzeroberflächen etablierten sich langsam, und das Internet war ein Nischenphänomen für einen begrenzten Nutzerkreis. Die rasante Hardwareentwicklung sorgte zudem dafür, dass ein High-End-PC von 1990 oft schon nach wenigen Jahren veraltet war.

Mit den 2000er und 2010er Jahren änderte sich das Bild grundlegend: Das Internet wurde zum zentralen Treiber der Softwareentwicklung, und die Verbreitung mobiler Geräte wie Smartphones und Tablets schuf neue Plattformen. Anwendungen verlagerten sich in die Cloud, und mobile Apps prägten den Alltag. Diese Transformation markierte den Übergang von isolierten Desktop-Anwendungen hin zu vernetzten, plattformübergreifenden Lösungen. Mittlerweile bahnt sich die nächste Weiterentwicklung an, die eher wie eine Revolution und nicht wie eine Evolution daherkommt: Durch den Einsatz von künstlicher Intelligenz werden praktisch alle Lebensbereiche beeinflusst. Die IT und Softwareentwicklung sowie die Nutzung von Software bleiben davon nicht unberührt.

Die IT-Welt hat sich seitdem grundlegend verändert – nicht nur in Bezug auf Software und Hardware, sondern auch in der Art und Weise, wie Software entwickelt wird. In den 90er Jahren prägten proprietäre Entwicklungsumgebungen wie Borlands Delphi oder Microsofts Visual Basic die Szene, während Puristen oft auf C oder C++ setzten.

Mit dem Aufkommen des Internets verlagerte sich der Fokus zunehmend auf die Webentwicklung. Neue Technologien wie HTML, CSS und JavaScript ermöglichten plattformunabhängige Anwendungen, die direkt im Browser liefen, und legten den Grundstein für moderne web- und cloud-basierte Lösungen. Und mittendrin sind aktuell Sprachen wie Python, die aufgrund der KI-Entwicklungen und hohen Datenberge nicht mehr aus der Softwarelandschaft wegzudenken sind.

Die Vielfalt betraf jedoch nicht nur die Entwicklung der Software. Immer neue Plattformen, angepasst an den jeweils aktuellen Trend der Zeit, eroberten den Markt und verschwanden nicht selten auch schnell wieder. Die Unternehmensnetzwerke mussten mit der stürmischen Entwicklung Schritt halten, wurden komplexer und komplizierter und öffneten sich zunehmend auch der Welt nach außen.

Kluge Köpfe erkannten auch sehr schnell, dass die Spezifikationen des Internets sich auch dazu eignen, mehrere Unternehmen zu koppeln. Damit wurde die Grundlage dafür geschaffen, dass Sie heute im Reisebüro oder im Internetbrowser eine Reise buchen können, die nicht nur den Flug, sondern gleichzeitig eine gültige Hotelzimmerbuchung, vielleicht sogar samt Mietwagen, umfasst – obwohl hierzu schon drei Informationsquellen mit unterschiedlicher Software abgezapft werden müssen: ein nicht ganz einfaches Unterfangen, wenn Sie bedenken, dass möglicherweise die Schnittstellen, über die die verschiedenen Komponenten sich zwangsläufig austauschen müssen, nicht einheitlich definiert sind.

Bei dieser rasanten Entwicklung der Möglichkeiten, Daten auszutauschen oder auch nur weiterzuleiten, sollten Sie nicht vergessen, dass auch die Hardware eine ähnliche Entwicklung genommen hat. Ein Smartphone besitzen heutzutage schon die meisten schulpflichtigen Kinder, und der mobile Sektor entwickelt sich immer noch dramatisch schnell. Ein Ende dieser Spirale ist derzeit nicht zu erkennen.

An der Schnittstelle all dieser Vielfältigkeit stehen die Entwickler – was nutzen die beste Hardware und die ausgeklügelten Spezifikationen, wenn die Bits sich nicht den Weg von einem zum anderen Endpunkt bahnen? Für diesen Bitfluss wollen Sie als Entwickler oder Entwicklerin sorgen. Damit fangen aber wegen der oben erwähnten Vielgestaltigkeit der IT-Welt die Probleme an: verschiedene Plattformen, unterschiedliche Programmiersprachen, mehrere Klassenbibliotheken, eine Vielzahl an Spezifikationen usw.

Einen ersten Schritt in Richtung Vereinheitlichung beschritt die Firma Sun mit Java. Der Erfolg, den diese plattformunabhängige Sprache hatte und auch immer noch hat, war auch ein Zeichen für Microsoft, um das Entwicklerterrain zu kämpfen. Nach einer eingehenden Analyse der Anforderungen, die gegen Ende der 90er Jahre an die damalige Software gestellt wurden, sowie einer Trendanalyse der Folgejahre wurde das .NET Framework entwickelt. Dabei konnte Microsoft die »Gunst der späten Stunde« nutzen und die Nachteile und Schwachpunkte, die jedes Produkt, also auch Java, hat, durch neue Ideen ausmerzen.

Nein, .NET ist natürlich auch kein Heilsbringer und wird sicherlich nicht die Menschheit überdauern. Aber nach heutigen Maßstäben ist .NET ein effizientes Framework, in dessen Mittelpunkt die .NET-Klassenbibliothek steht. Diese bietet Ihnen alles, was Sie zum Entwickeln brauchen – egal, ob es sich um eine einfache Anwendung handelt, die nur ein paar Daten anzeigt, oder um eine Unternehmensanwendung großen Stils. Sie können Desktop-Anwendungen genauso erstellen wie eine hochkomplexe Internetanwendung, egal, ob als recht einfache Webanwendung oder direkt in der Cloud. Sie können die Microsoft-Office-Produkte damit programmieren, fremde Datenquellen anzapfen, Programme für Ihr Smartphone schreiben und vieles mehr. Dazu müssen Sie sich nicht immer wieder in neue Programmiersprachen und neue Entwicklungsumgebungen einarbeiten, denn alles ist wie aus einem Guss.

Es wäre falsch zu behaupten, dass die Entwicklung anspruchsvoller Anwendungen mit tollen Features kinderleicht ist – die .NET-Klassenbibliothek ist dafür schlichtweg zu umfangreich. Dennoch ermöglicht sie Ihnen, sich auf das Wesentliche zu konzentrieren: Sie arbeiten unabhängig vom Typ der Anwendung in einer konsistenten Umgebung, etwa mit Visual Studio, Visual Studio Code oder JetBrains Rider. Dabei können Sie auf bereits erworbene Kenntnisse aufbauen, ohne ständig neue Programmiersprachen lernen zu müssen. Zudem erhalten Sie leistungsstarke Werkzeuge, um einfach mit anderen Anwendungen zu kommunizieren, sofern diese gängige Standards einhalten.

Eine Funktionssammlung oder Klassenbibliothek ist nur so gut, wie sie auch zukünftige Anforderungen bedienen kann. Dass .NET hier architektonisch den richtigen Weg beschritten hat, beweist die derzeit aktuelle Version 9 des .NET Frameworks und die Version 13 der Programmiersprache C#. Diese Versionen bringen zahlreiche Verbesserungen mit sich, darunter Leistungsoptimierungen, erweiterte Funktionalitäten und verbesserte Unterstützung für moderne Entwicklungsparadigmen.

Genau an dieser Stelle müssen wir ehrlich sein: Sie werden niemals alle Tiefen von .NET ergründen. Selbst als Personen, die seit der ersten Beta dabei sind, entdecken wir immer wieder überraschende Fähigkeiten in der .NET-Klassenbibliothek. Verabschieden Sie sich von der Vorstellung, jemals alle Klassen vollständig zu erfassen – die Bibliothek ist dafür einfach zu umfangreich und mächtig. Ein Überblick ist aber oft ausreichend, um einschätzen zu können, was .NET zu leisten vermag und wo es für die eigenen Anwendungsfälle zum Einsatz kommen kann.

1.1.1    Ein paar Worte zu diesem Buch


...


Kühnel, Andreas
Andreas Kühnel wohnt in Aachen und beschäftigt sich seit über 25 Jahren mit der Programmierung. Er ist seit 1995 als Microsoft Certified Trainer (MCT) zertifiziert. Seine "große Liebe" galt anfangs Visual Basic. Seit der ersten Vorstellung von .NET konzentriert er sich hauptsächlich auf die Sprachen VB.NET und natürlich C#. Zu seinen Schwerpunkten in der .NET-Welt gehören Datenbanken, Windows-Anwendungen mit WPF, ASP.NET und die WCF (Windows Communication Foundation). Heute ist Andreas Kühnel als freiberuflicher IT-Trainer und Berater deutschlandweit tätig, führt aber auch Schulungen in seinem eigenen Seminarraum in Aachen durch.



Ihre Fragen, Wünsche oder Anmerkungen
Vorname*
Nachname*
Ihre E-Mail-Adresse*
Kundennr.
Ihre Nachricht*
Lediglich mit * gekennzeichnete Felder sind Pflichtfelder.
Wenn Sie die im Kontaktformular eingegebenen Daten durch Klick auf den nachfolgenden Button übersenden, erklären Sie sich damit einverstanden, dass wir Ihr Angaben für die Beantwortung Ihrer Anfrage verwenden. Selbstverständlich werden Ihre Daten vertraulich behandelt und nicht an Dritte weitergegeben. Sie können der Verwendung Ihrer Daten jederzeit widersprechen. Das Datenhandling bei Sack Fachmedien erklären wir Ihnen in unserer Datenschutzerklärung.