C# 6 mit Visual Studio 2015 – das umfassende Handbuch von Andreas Kühnel

Buchcover: C# 6 mit Visual Studio 2015 - Andreas Kühnel

Wer nicht vor dem riesigen Umfang dieses Buches von fast 1.500 Seiten zurückschreckt, der findet hier zunächst einmal alles, was er für den Einstieg oder Umstieg in die Softwareentwicklung mit C# unter Windows benötigt.

Achtung: Nachtrag zu neueren Auflagen am Ende des Textes!

.NET Framework

Vor über 10 Jahren hat Microsoft das .NET Framework veröffentlicht und damit die Grundlage gelegt für moderne Softwareentwicklung mit grafischer Oberfläche unter Windows. Zunächst wurde die Benutzeroberfläche mit Windows Forms gestaltet und die wechselseitige Beeinflussung von Benutzereingaben und Programmausgaben direkt mit der Ansicht verknüpft. Seit der Version 3 wird mit der WPF zunehmend eine modernere Software-Entwicklungsmethode nach dem Entwurfsmuster MVVM (Model-View-Viewmodel) unterstützt. Mit der Version 4 und den folgenden Versionen wurden verschiedene asynchrone Verfahren integriert, um moderne Mehrkern-Prozessoren besser zu unterstützen und deren Leistung voll ausschöpfen zu können.
Grundsätzlich ist das .NET Framework so aufgebaut, dass es eine gemeinsame Architekturschicht gibt, die sogenannte CLI (Common language infrastructure), die es ermöglicht, denselben Code mit ganz unterschiedlichen Programmiersprache zu erstellen. Von Anfang an wurde dabei Visual Basic ebenso unterstützt wie die Sprache C#, um die es hier gehen soll, und zunehmend auch F#, eine funktionale Programmiersprache. Sowohl C# als auch F# sind im Hause Microsoft entwickelt worden und inzwischen als Standard oder als Open Source freigegeben worden. Mit .NET Core geht Microsoft seit kurzem den Weg, die Plattform als Open Source von Grund auf neu zu entwickeln und unterstützt dabei Projekte, die das Framework auch auf anderen Plattformen als Microsoft Windows veröffentlichen.

C#

Die Sprache C# wurde vom dänischen Compiler-Guru Anders Hejlsberg für Microsoft entwickelt. Aus der Feder dieses Mannes stammen auch die Entwicklungsumgebung Turbo-Pascal und die ersten Versionen von Delphi, nach seinem Wechsel zu Microsoft Visual Basic for Applications (VBA), C# und zuletzt Typescript, eine voll typisierte JavaScript Erweiterung, ebenfalls beeinflusste er stark die Weiterentwicklung des .NET Frameworks. C# ist stark an die Notation von C und C++ angelehnt und greift Elemente von Java, Delphi und Haskell auf.

Das Buch startet zunächst mit den Grundlagen der Sprache C#, die in den ersten Kapiteln auf der Kommandozeile ohne grafische Oberfläche eingesetzt werden. Zu jedem Kapitel gibt es umfassende Code-Beispiele und Erläuterungen, die teilweise auch mit Screenshots dargestellt werden. Der Aufbau dabei ist strikt logisch und auch wenn in der Einleitung gesagt wird, dass die Reihenfolge der Kapitel nicht zwingend sei, so wird doch in jedem Kapitel das Wissen über die vorherigen Themen vorausgesetzt.

Nach einer Einführung in die Sprache und in die objektorientierte Programmierung allgemein werden darauf aufbauend der Umgang mit komplexen Daten, mit Dateien und mit der Multitasking-Umgebung nebenläufiger Prozesse dargelegt.

Grafische Benutzeroberfläche

Erst zur Mitte des Buches wird dann die Programmierung mit grafischer Oberfläche under der Windows Presentation Foundation (WPF) eingeführt und die Gestaltung der Oberfläche mittels der Objektbeschreibungssprache XAML (Extensible Application Markup Language) beschrieben. Mit der Erweiterung der Kenntnisse um abhängige Eigenschaften, Ereignisse und die Datenbindung unter XAML werden die Grundlagen für den nächsten wichtigen Abschnitt gelegt.

Model-View-Viewmodel

Seit dem .NET Framework 3.0 propagiert Microsoft die Entwicklung grafischer Software nach dem Entwurfsmuster MVVM, das eine Weiterentwicklung von MVP (Model-View-Presenter) ist und die Geschäftslogik von der Präsentation der Daten und diese wiederum von der Anzeige der grafischen Oberfläche trennt. Im Gegensatz zu MVC (Model-View-Controller), das als zustandsfreies Muster vor allem in der Web-Entwicklung angewandt wird, hält das ViewModel nicht nur die Daten, die in der Oberfläche angezeigt werden sollen, sondern auch die Kommandos, die durch die Oberfläche ausgelöst werden (z.B. durch einen Mausklick auf eine Schaltfläche). Diese strikte Trennung der Funktionalität hat mehrere Vorteile, unter anderem können alle Module des Models und des ViewModels automatisiert getestet werden. Weiterhin ermöglicht es die Trennung zwischen Programmierern und Designern in einem Software-Entwicklungsteam. Und zuletzt ermöglicht es die Aufteilung der Arbeit auf mehrere Teams bei großen Projekten.

Datenbanken

Der letzte Teil des Buches widmet sich dem Umgang mit Datenbanken und Datenbank-Servern. Hier wird zuerst die “klassische” .NET Methode ADO.NET erläutert, die schon sehr früh einzug ins .NET Framework erhielt. Im weiteren Kapitel wird die aktuelle Methode “Entity Framework” (EF) erklärt, in der nicht mehr direkt SQL-Befehle an die Datenbank gesendet werden, sondern die Daten der Datenbank mit gekapselten Methoden wie LINQ und Lambda-Expressions zugegriffen werden. Beide Methoden werden grundlegend in der ersten Hälfte des Buches erklärt. Zuletzt wird noch die auf EF aufbauende DbContext API eingeführt. Mit diesen Methoden verringert man die Gefahr, Benutzereingaben ungeprüft an die Datenbank weiterzugeben und so eine typische Sicherheitslücke (“SQL-Injection”) in sein Programm einzubauen.

Ende

Damit endet das Buch sehr abrupt, es gibt kein Nachwort, keinen Ausblick, keine Empfehlungen für die nächsten Schritte oder aufbauende Lektüre. Dabei ist das Thema trotz des riesigen Umfangs mit diesem Buch keineswegs abgeschlossen. Was fehlt? Nach meiner bisherigen Erfahrung fehlt das ganze Kapitel der Windows-Store-Apps: Windows 8 Store, Windows 8 Phone und natürlich UWP (Universal Windows Platform) der gemeinsamen Windows 10 Apps – kurz alles was man unter “Metro-Style” zusammenfassen könnte. Was aus meiner Sicht ebenfalls fehlt sind jegliche Tools und Erweiterungen, die die Arbeit mit den angesprochenen Themen erleichtern würden. Insbesondere zum Thema MVVM hätte ich mir einen kurzen Ausflug zu den MVVM-Frameworks und hilfreichen Erweiterungen gewünscht. In meinem aktuellen Projekt setze ich Unity-Container und das Prism-Framework ein, beides Technologien, die vom Microsoft Pattern & Practices Team ins Leben gerufen wurden und inzwischen als Open Source freigegeben sind. Zuletzt gibt es noch ein paar Seiten Werbung des Verlages, auf denen genau die richtigen Bücher zur weiteren Lektüre angepriesen werden, jedoch ohne jeglichen Zusammenhang mit dem Buch und ohne Empfehlung des Autoren.

Fazit: Trotz der enormen Seitenzahl ist das Buch zu diesem Thema nicht vollständig. Es vermittelt gut den Einstieg und ist logisch und klar strukturiert aufgebaut. Die Beispiele sind gut verständlich und teilweise praxisrelevant. Die Kapitel des Buches bauen stark aufeinander auf, so dass die Reihenfolge der Bearbeitung je nach Vorwissen nicht beliebig ist. Das Buch ist für absolute Einsteiger nicht geeignet. Für mich als Wiedereinsteiger mit geringen Kenntnissen der objektorientierten Programmierung war es perfekt geeignet. Die strukturierte Einführung in die Sprache in der ersten Buchhälfte hat mich begeistert, in der zweiten Hälfte kommen manche Themen etwas zu kurz. Schade ist das fehlende Ende. Trotz der Mängel kann ich das Buch uneingeschränkt empfehlen, es wird mir weiterhin als Nachschlagewerk dienen.


Empfehlungen zur ergänzenden Lektüre

Da der Autor versäumt hat, weiterführende Literatur zu nennen, kommen hier meine Empfehlungen. Sofern nicht anders vermerkt, habe ich alle empfohlenen Bücher selbst in Augenschein genommen, teils komplett gelesen.

Entwurfsmuster (u.a. Erklärung von MVVM und Abgrenzung zu den anderen Mustern)

  • Gamma, Erich; MITP: Design Patterns – Entwurfsmuster als Elemente wiedervernedbarer objektorientierter Software (€ 39,99)
  • Eilebrecht, Karl; Starke, Gernot; Springer-Verlag: Patterns kompakt – Entwurfsmuster für effektive Software-Entwicklung (€ 14,99)
  • Geirhos, Matthias, Rheinwerk-Verlag: Entwurfsmuster – Das umfassende Handbuch (€ 39,90)
  • Kecher, Christoph; Salvanos, Alexander; Rheinwerk Verlag: UML 2.5 – Das umfassende Handbuch (€ 34,90)

Qualität und Professionalität

  • Martin, Robert C., MITP: Clean Code (€ 39,95)
  • Geirhos, Matthias; Rheinwerk Verlag: Professionell entwickeln mit C# 6 und Visual Studio 2015: Das Praxisbuch (€ 49,90)
    NEU! Beitrag zu diesem Buch in meinem Blog
  • Osherove, Roy; MITP: The Art Of Unit Testing – Deutsche Ausgabe (€ 39,99)
    Nachtrag: Das Thema Unit Testing wurde ab der 8. Auflage in das Buch von Andreas Kühnel mit aufgenommen, die ergänzende Literatur bleibt trotzdem empfohlen!

WPF, .NET und UWP

  • Huber, Thomas Claudius; Rheinwerk-Verlag: Windows Presentation Foundation: Das umfassende Handbuch (€ 49,90) [aktuell zu .NET 4.6 und Visual Studio 2015]
  • Schwichtenberg, Holger; Wegener, Jörg; Hanser Verlag: WPF 4.5 und XAML (€ 49,90) [nicht auf dem Stand Visual Studio 2015]
  • [nicht selbst gelesen:] Schwichtenberg, Holger; Steyer, Manfred; Entwickler.Press: .NET-Praxis. Tipps und Tricks für .NET und Visual Studio (€ 24,90)
  • [nicht selbst gelesen:] Cordts, Sönke; Nasutta, Maren; Mana Buch: Apps für Windows 10 in C# (€ 19,95)

Nachtrag 2022

Nach der Version Visual Studio 2019 ist in diesem Jahr die Version Visual Studio 2022 auf den Markt gekommen. Für die Version 2019 gibt es eine neue Ausgabe des beschriebenen Werks, “C# 8 mit Visual Studio 2019 – Das umfassende Handbuch” von Andreas Kühnel. Diese ist unter der ISBN 978-3-8362-6458-7 beim selben Verlag im Jahr 2019 erschienen. Ob eine aktualisierte Auflage für die Version 2022 geplant ist und wann diese eventuell erscheinen wird, konnte ich der Webseite des Verlags leider nicht entnehmen.

Aus meiner Sicht positiv ist die Aufnahme eines Kapitels über Unit-Testing in der aktuellen Auflage, somit ist zumindest einer der Punkte in meiner Ergänzungsliste überflüssig geworden. Es zeigt außerdem, dass der Autor das Geschehen am Markt genau beobachtet und relevante Themen in sein Werk integriert. Preis und Seitenzahl sind dabei in etwa gleich geblieben. Es bleibt: Das Buch ist eine klare Empfehlung.

Sobald die neue Auflage zur Version 2022 erscheinen wird, werde ich die möglichen Ergänzungen hier ebenfalls beschreiben.

TitelC# 6 mit Visual Studio 2015 - das umfassende Handbuch
AutorKühnel, Andreas
ISBN987-3-8362-3714-7
Veröffentlicht2016
Auflage7., aktualisierte und erweiterte Auflage 2016
Formatgebunden, 1482 Seiten
Dewey-Klassifikation005.133

Ein Kommentar zu “C# 6 mit Visual Studio 2015 – das umfassende Handbuch von Andreas Kühnel

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert