Einleitung
ASP.NET geht nach vielen Jahren in der bekannten Form in Rente und steht sogleich neu wieder auf. Basierend auf einem neuen Kern, komplett überarbeitet und bereit für die moderne Welt der clientgetriebenen Webanwendungen, ist lediglich der Name noch eine Referenz an die Vergangenheit. ASP.NET Core bringt eine runde, zuverlässige und vor allem schnelle Plattform für die Entwicklung von Serveranwendungen.
Zusammen mit der Paketverwaltung Node Package Manager (npm) entstand eine leistungsfähige Umgebung zur plattformunabhängigen Programmierung. ASP.NET Core läuft auch auf Linux und bietet dem Entwickler vergleichbare Perspektiven wie node.js. Allerdings bleibt C# die bevorzugte Programmiersprache und Visual Studio die ideale Entwicklungsumgebung unter Windows bzw. Visual Studio Code auf allen Plattformen.
Dieses Buch ist aktuell zur Version Core 2.2, veröffentlicht im Dezember 2018. Es wurde zuletzt an den Stand März 2019 angepasst.
Dieses Werk
Alle Codes sind außerdem zum schnellen Testen und Ausprobieren online auf Github verfügbar:
- https://github.com/joergkrause/mvccore2-webapi-ng-boilerplate.git
Dieses Projekt ist eine vollständige, umfassende und komplexe Projektvorlage. Sie wird in diesem Buch umfassend erläutert. Die Funktions- und Verhaltensliste umfasst:
- Hochskalierbarkeit
- Teilung in Frontend-Server und Application-Server
- Mehrzonen-Sicherheitsarchitektur
- Authentifizierung mit OAuth
- Microservice-Architektur
- Hosting der Microservices in Docker-Containern
- Inter-Server-Kommunikation mittels OpenAPI (Swagger)
- Datenbank-Server mit Entity Framework Core
- Angular Front-End für die Hauptapplikation
- ASP.NET Core Razor Front-End für die Administration
Der gesamte Text enthält auch einige Teile die originalen Dokumentationen, teilweise umfassend erweitert. Im Gegensatz zu anderen Werken, die nur auf die Webseiten der Anbieter verweisen, soll damit zum einen eine deutsche Beschreibung bereitstehen, zum anderen aber auch das mühevolle Zusammensuchen von diversen Seiten an einer Stelle konzentriert werden.
Das Werk nutzt eine bestimmte Kombination aus Versionen der benutzten Bausteine. Wird eine neue Kombination aktuell, wird es komplett aktualisiert. So wird sichergestellt, dass die Beispiele immer funktionieren und es keine Kompatibilitätsprobleme gibt.
Die Zielgruppe
Wer sollte dieses Werk lesen? Dieses Werk wendet sich an Leser, die aktiv verteilte webbasierte Applikationen entwickeln, mit Webseiten oder Webdiensten arbeiten, unabhängig von der verwendeten Plattform.
Das Buch führt schnell, direkt und kompakt in das Thema ASP.NET Core ein. Die Lernkurve ist steil und die Menge des vermittelten Wissens enorm. Sie sollten in der Lage sein, parallel andere Quellen zu Rate zu ziehen oder wenigstens im Zugriff haben.
Um den besten Nutzen aus dem Buch ziehen zu können, sollten Sie:
- ein Softwareentwickler, -architekt oder -designer sein, der aktiv Anwendungen entwirft,
- mit JavaScript vertraut sein und problemlos mit objektorientierter Programmierung arbeiten können,
- ein prinzipielles Verständnis für Webdienste und Webanwendungen,
- eine Entwicklungsumgebung wie Visual Studio oder Visual Studio Code kennen und beherrschen, einschließlich elementarer Fertigkeiten beim Debuggen, Verteilen und Installieren von Applikationen, und
- in der Lage sein, grundsätzliche Installationen unter Ihrem Betriebssystem vornehmen zu können. Dies umfasst die Fähigkeit Programme mit Administrator- bzw. Root-Rechten zu installieren.
Sehr hilfreich sind immer typische Entwicklerkenntnisse der Web-Welt:
- HTML und CSS
- Protokolle wie HTTP, SMTP, TCP, IP usw.
- Programmiergrundlagen wie SQL und idealerweise LINQ
Mit diesen Voraussetzungen werden Sie optimalen und unmittelbaren Nutzen aus dem Buch ziehen. Wenn Sie hier Defizite haben, sollten Online-Quellen oder andere Bücher zumindest in Reichweite sein.
Anmerkungen
Dieses Buch entstand neben der laufenden Arbeit und parallel zu Kundenprojekten. Wie jedes Werk dieser Art fehlt es vor allem an Zeit, die Dinge so genau und umfassend zu recherchieren und zu testen, dass es letztlich perfekt wird. Es gibt vermutlich ebenso wenig perfekte Bücher, wie es perfekte Software gibt. Es gibt aber gute Software, und ich hoffe sehr, ein gutes und praktisches Buch geschrieben zu haben.
Sollte es dennoch Anlass zur Kritik, Wünsche oder Hinweise geben, schreiben Sie uns bitte eine E-Mail an joerg@krause.de, damit ich dies bei künftigen Auflagen berücksichtigen kann.
Bitte haben Sie Verständnis dafür, dass im Fall von Fragen zur Umsetzung von Projekten, allgemeinen Problemen bei der Installation, Nutzung und Verteilung, bei Schwierigkeiten mit Editoren und damit einhergehenden Fragen die beste und schnellste Hilfe in den einschlägigen Foren zu finden ist. Ich kann hier beim besten Willen keine Unterstützung bieten, da die Zahl der Fragen regelmäßig jeden verfügbaren Zeitraum füllen würde.
Aufbau
Das Buch führt kurz und kompakt in die wichtigsten Aspekte der behandelten Themen ein. Dabei soll nicht die online verfügbare Dokumentation ersetzt werden – ziehen Sie diese immer zusätzlich zu Rate. Es geht hier mehr um die Konzepte, Ideen und Strategien, die anhand von Code-Beispielen erläutert werden. Dazu ist das Buch in vier Teile gegliedert:
- Teil I – Schnellstart
- Teil II – ASP.NET Core
- Teil III – Entity Framework Core
- Teil IV – Professionelle Architektur
Konventionen
In diesem Werk werden einige Darstellung benutzt, die Struktur geben und die Lesbarkeit erleichtern.
Dieses Buch enthält keine Fragen und Übungen. Es ist ein Nachschlage- und Informationswerk. Lernen kann man programmieren am Besten am konkreten Projekt, nicht mit abstrakten Idealbeispielen. Die Informationen dienen als Grundlage für eigene Versuche und als Muster, nicht als “Nachklick-Anleitung”.
Werkzeuge
Softwareentwicklung ist eine Mischung aus Kunst und Handwerk. Gemäß dem Spruch “Kunst kommt von Können” und der bekannten Weißheit, dass ein Handwerker im Wesentlichen an der Qualität seiner Werkzeuge bemessen wird, kommt der Auswahl der Tools eine besondere Bedeutung zu. Schaut man sich bei den Profis der Zunft an, was auf dem Bildschirm passiert, so wird schnell deutlich, dass die Zeit der grafischen Oberflächen und komplexen Designer vorbei zu sein scheint. Auch Visual Studio ist bereits geraume Zeit nicht mehr so “visual” wie es am Anfang mal war.
Der Vorteil dieser Vorgehensweise ist ein hohes Maß an Kontrolle über den Quellcode und des Ergebnis. Der Nachteil ist eine erhebliche Lernkurve am Anfang. Die Geschwindigkeit und Präzision bei der Entwicklung ist die Mühe aber wert. Die Auswahl der Werkzeuge beschränkt sich deshalb mehr auf einen geeigneten Texteditor.
Zur Auswahl stehen einfache Editoren wie Notepad++ oder Sublime. Will man auch aus dem Editor heraus debuggen ist Visual Studio Community Edition das große Schiff, das .NET-Entwickler natürlich kennen. Vorteil ist die Projektverwaltung und die vielen Editorfunktionen für alle Arten von Code-Varianten, einschließlich Markdown und SASS. Als weiterer Editor für alle Plattformen kommt Visual Studio Code in Frage. In diesem Buch wird Visual Studio Code benutzt.. Beachten Sie, dass Core separat beschafft werden muss, weil es auch ohne Visual Studio benutzt werden kann.
Über den Autor
Ich arbeite als freier Trainer, Berater und Softwareentwickler für große Unternehmen weltweit. Bauen Sie auf die Erfahrung aus 25 Jahren Arbeit mit Web-Umgebungen und vielen, vielen großen und kleinen Projekten.
Mir sind vor allem solide Grundlagen wichtig. Statt immer dem neuesten Framework hinterher zu rennen wären viele Entwickler besser beraten, sich eine robuste Grundlage zu schaffen. Wer dies kompakt und schnell lernen will ist hier richtig. Auf meiner Website www.joergkrause.de sind viele weitere Informationen zu finden.
Ich hat über 40 Titel bei renommierten Fachverlagen in Deutsch und Englisch verfasst, darunter einige Bestseller. Aktuell erscheinen regelmäßig Titel im Eigenverlag texxtoor. Diese sind über Amazon gedruckt oder auf Kindle zu beziehen.
Lernen Sie mich über meine Seiten im Web kennen. Die Einstiegspunkte sind:
- Web: http//www.joergkrause.de
- Twitter: @joergisageek
Neben der Website können Sie auch direkten Kontakt über www.IT-Visions.de aufnehmen. Wenn Sie für Ihr Unternehmen eine professionelle Beratung zu Web-Themen oder eine Weiterbildungsveranstaltung für Softwareentwickler planen, kontaktieren Sie mich über meine Website oder buchen Sie direkt über http://www.IT-Visions.de.