Kotz / Wenz C# und .NET 8 – Grundlagen, Profiwissen und Rezepte
1. Auflage 2024
ISBN: 978-3-446-48060-5
Verlag: Hanser, Carl
Format: PDF
Kopierschutz: 1 - PDF Watermark
E-Book, Deutsch, 1080 Seiten
ISBN: 978-3-446-48060-5
Verlag: Hanser, Carl
Format: PDF
Kopierschutz: 1 - PDF Watermark
- Windows(WPF und .NET MAUI)- und Web-Programmierung (ASP.NET Core, Blazor und Co.)
- Datenbankprogrammierung mit Entity Framework Core 8
- Online: Bonuskapitel u. a. zur GUI-Entwicklung mit Windows Forms sowie alle Beispiele aus dem Buch unter http://plus.hanser-fachbuch.de
- Ihr exklusiver Vorteil: E-Book inside beim Kauf des gedruckten Buches
Dieser überarbeitete Klassiker der C#-/.NETProgrammierung bietet Ihnen Know-how und zahlreiche Rezepte, mit denen Sie häufig auftretende Probleme meistern.
Einsteiger erhalten ein umfangreiches Tutorial zu den Grundlagen der C# 12-Programmierung mit Visual Studio 2022, dem Profi liefert es fortgeschrittene Programmiertechniken zu allen wesentlichen Einsatzgebieten der Programmierung mit .NET 8. Zum sofortigen Ausprobieren finden Sie am Ende eines jeden Kapitels hochwertige Lösungen für nahezu jedes Problem.
Das Buch gliedert sich in einen Grundlagenteil zur Programmierung, eine Einführung in die Desktop-Programmierung mit WPF und .NET MAUI(Multi-Platform App UI), einen Technologieteil zu fortgeschrittenen Themen sowie einen Teil zur Web-Programmierung (ASP.NET Core, Web API, Blazor).
Es ist der ideale Begleiter für Ihre tägliche Arbeit und zugleich eine unterhaltsame Lektüre, die Lust macht, Projekte auch in der Freizeit umzusetzen.
AUS DEM INHALT //
- Grundlagen der Sprache
- OOP-Konzepte
- Arrays, Strings, Funktionen
- Einführung in LINQ
- Neuerungen in C#
- Einführung in WPF
- WPF Controls, WPF-Datenbindung
- Einführung in .NET MAUI
- Asynchrone Programmierung & Task Parallel Library
- Debugging, Fehlersuche und -behandlung
- Entity Framework Core 8 und JSON-Serialisierung
- Webanwendungen und APIs mit ASP.NET Core
- Single-Page Applications (SPAs) mit Blazor
Jürgen Kotz arbeitet seit über 30 Jahren als freiberuflicher Trainer, Berater, Entwickler und Autor. Mit .NET beschäftigt er sich seit der ersten Beta-Version. Mit seiner Firma PrimeTime Software in München entwickelt er viele .NET-Projekte und führt Schulungen in diesem Umfeld durch. Seine Hauptthemen sind dabei die Entwicklung von REST-basierten Services und der Datenzugriff mittels Entity Framework Core. Darüber hinaus hat er zahlreiche Fachbücher und -artikel geschrieben.
Autoren/Hrsg.
Weitere Infos & Material
1 | .NET 8 |
Mit .NET 8 ist im November 2023 die aktuellste Version des Microsoft Frameworks, das mittlerweile auf eine über 20-jährige Geschichte zurückblickt, erschienen. Seit der Version .NET 6 handelt sich dabei wieder um eine Version, welche das gesamte .NET-Universum wieder vereint, es gibt somit wieder ein .
.NET 8 ist eine „Long Term Support“-Version (LTS) von .NET (weil gerade Versionsnummer) und wird somit bis zum November 2026 mit Fehlerbehebungen und Sicherheitsupdates unterstützt.
Mit dem .NET Framework können völlig unterschiedliche Applikationstypen (Desktop, Web, Mobile) in unterschiedlichen Programmiersprachen (C#, VB, F# etc.) entwickelt werden und egal was man macht, man hat eine einheitliche Funktionsbibliothek, eben das .NET Framework.
Im Jahre 2016 erschien parallel zum .NET Framework ein sogenanntes .NET Core Framework, das speziell für plattformübergreifende Webentwicklung konzipiert war. Keine Bindung somit mehr an Windows, sondern zeitgemäße plattformübergreifende Möglichkeiten (auch für mobile Plattformen wie iOs und Android), um seine Applikationen zu entwickeln und auch zu deployen. Da es sich bei .NET Core um Open Source handelte, hat Microsoft hier auch bewiesen, dass Open Source für Microsoft nicht nur ein Lippenbekenntnis ist, sondern ein wesentliches Fundament in der weiteren Entwicklung des Softwaregiganten.
Eigentlich war die Wiedervereinigung des klassischen .NET Frameworks mit den .NET-Core-Versionen bereits 2020 mit der Version 5.0 geplant, jedoch musste diese dann aufgrund der Coronapandemie um ein Jahr verschoben werden.
Somit wurden erst mit .NET 6 diese beiden Entwicklungsstränge (.NET und .NET Core) zusammengeführt und man hat wieder ein einheitliches Framework – laut Microsoft auch das performanteste .NET –, um seine Anwendungen zu schreiben. Nur die Entwicklung von Desktopapplikationen mit Windows Forms oder WPF ist noch an Windows gebunden, alle anderen Anwendungsmöglichkeiten sind plattformübergreifend.
Mit den seitdem erschienenen Versionen .NET 7 und nun eben auch .NET 8 hat Microsoft vor allem in Bezug auf Performance viele Besserungen durchgeführt.
Vor allem im Bereich der JSON-Serialisierung wurden im Namensraum in der aktuellsten Version .NET 8 viele Serialisierungsverbesserungen eingearbeitet (mehr dazu in Kapitel 17).
1.1 | Microsofts .NET-Technologie |
Ganz ohne Theorie geht nichts! In diesem leider etwas „trockenen“ Abschnitt werden Einsteiger mit der grundlegenden .NET-Philosophie und den damit verbundenen Konzepten, Begriffen und Features vertraut gemacht. Dazu dürfen Sie Ihrem Rechner ruhig einmal eine Pause gönnen.
1.1.1 | Zur Geschichte von .NET |
Das Kürzel .NET ist die Bezeichnung für eine gemeinsame Plattform für viele Programmiersprachen. Beim Kompilieren von .NET-Programmen wird der jeweilige Quelltext in MSIL () übersetzt. Es gibt nur ein gemeinsames Laufzeitsystem für alle Sprachen, die sogenannte CLR (Common Language Runtime), die die MSIL-Programme ausführt.
Die im Jahr 2002 eingeführte .NET-Technologie wurde notwendig, weil sich die Anforderungen an moderne Softwareentwicklung dramatisch verändert hatten, wobei das rasant wachsende Internet mit seinen hohen Ansprüchen an die Skalierbarkeit einer Anwendung, die Verteilbarkeit auf mehrere Schichten und ausreichende Sicherheit der hauptsächliche Motor war, sich nach einer grundlegend neuen Sprachkonzeption umzuschauen.
Mit .NET fand ein radikaler Umbruch in der Geschichte der Softwareentwicklung bei Microsoft statt. Nicht nur dass jetzt „echte“ objektorientierte Programmierung zum obersten Dogma erhoben wird, nein, auch eine langjährig bewährte Sprache wie das alte Visual Basic wurde völlig umgekrempelt und die einst gelobte COM-Technologie wurde zum Auslaufmodell erklärt!
HINWEIS: Dem unerfahrenen Leser mögen einige Ausführungen im Laufe dieses Kapitels noch sehr fremd sein. Machen Sie sich deswegen keine Sorgen und wenn Sie etwas nicht verstehen, kommen Sie einfach am Ende des Buches nochmals hierher zurück.
Warum eine eigene Programmiersprache?
C# wurde ausschließlich für das .NET Framework konzipiert, wobei versucht wurde, das Beste aus den etablierten Programmiersprachen Java, JavaScript, Visual Basic und C++ zu kombinieren, ohne aber deren Nachteile zu übernehmen.
Da sich die etablierten Sprachen nicht ohne größere Kompromisse an das .NET Framework anpassen ließen, haben die .NET-Entwickler die Gelegenheit beim Schopf gepackt und eine „maßgeschneiderte“ .NET-Sprache entwickelt. C# setzt auf dem .NET Framework auf und kommt ohne „faule“ Kompatibilitätskompromisse aus, wie sie z.B. teilweise bei Visual Basic erforderlich waren.
Als konsequent objektorientierte Sprache erfüllt C# folgende Kriterien:
Abstraktion: Die Komplexität eines Geschäftsproblems ist beherrschbar, indem eine Menge von abstrakten Objekten identifiziert werden können, die mit dem Problem verknüpft sind.
Kapselung: Die interne Implementation einer solchen Abstraktion wird innerhalb des Objekts versteckt.
Polymorphie: Ein und dieselbe Methode kann auf mehrere Arten implementiert werden.
Vererbung: Es wird nicht nur die Schnittstelle, sondern auch der Code einer Klasse vererbt (Implementationsvererbung statt der COM-basierten Schnittstellenvererbung).
Microsoft konnte natürlich nicht über Nacht die COM-Technologie auf die Müllkippe entsorgen, denn zu viele Programmierer wären dadurch auf immer und ewig verprellt worden und hätten sich frustriert einer stabileren Entwicklungsplattform zugewandt. Aus diesem Grund hat COM auch in .NET noch einige Zeit sein Gnadenbrot erhalten.
HINWEIS: Das gesamte Office-Paket wird auch weiterhin mit COM programmiert und die Schnittstellen zur Office-Automatisierung stehen über COM, das aus .NET heraus aufgerufen werden kann, zur Verfügung. Mittlerweile gibt es sogenannte PIA (Primary Interop-Assemblies)-Schnittstellen, die einen Wrapper für die COM-Schnittstelle bieten.
Ja, und das Ganze funktioniert auch weiterhin mit .NET 8.
Wie funktioniert eine .NET-Sprache?
Jeder in einer beliebigen .NET-Programmiersprache geschriebene Code wird beim Kompilieren in einen Zwischencode, den sogenannten MSIL-Code (), übersetzt, der unabhängig von der Plattform bzw. der verwendeten Hardware ist und dem man es auch nicht mehr ansieht, in welcher Sprache seine Source geschrieben wurde.
HINWEIS: Es gibt über 50 verschiedene Programmiersprachen für .NET. Sogar das ehrwürdige COBOL besitzt eine Version für .NET!
Erst wenn der MSIL-Code von einem Programm zur Ausführung genutzt werden soll, wird er vom in Maschinencode übersetzt1. Ein .NET-Programm wird also vom Entwurf bis zu seiner Ausführung auf dem Zielrechner tatsächlich zweimal kompiliert (siehe Bild 1.1).
HINWEIS: Für die Installation eines Programms ist in der Regel lediglich die Weitergabe des MSIL-Codes erforderlich. Voraussetzung ist allerdings das Vorhandensein der .NET-Laufzeitumgebung (CLR), die Teil des .NET Frameworks ist, auf dem Zielrechner.
Bild 1.1 Übersetzungsschritte einer .NET Programmiersprache
Eine der wesentlichsten Änderungen in .NET 7 mit einer Weiterführung in .NET 8 ist die Einführung eines -Compilers (Ahead of Time). Bislang gab es in der .NET-Welt nur -Compiler (Just in Time), die den erzeugten IL-Code (-Code) während der Ausführung des Programms in nativen Maschinencode übersetzten. Bislang war es nur mit den Tools (klassisches .NET) bzw. (.NET Core) möglich, nativen Maschinencode zu erstellen.
Nun hat man tatsächlich auch die Möglichkeit, bereits zur Compilezeit nativen Maschinencode zu erstellen.
Bei der Projektanlage (zumindest bei ausgewählten Projekttypen)) kann man bereits die Option (siehe Bild 1.2), und dadurch wird der folgende zusätzliche Eintrag in die Projektdatei geschrieben:
Dadurch aktiviert man die Option für die Kompilierung.
Bild 1.2 Neue AOT-Veröffentlichungsoption bei der...