Windows Developer
10 Take-aways von der BASTA! Spring 2019: .NET, WebAssembly, Angular, Cloud & Co.
Keine Kommentare

.NET, C#, DevOps, Cloud oder lieber TypeScript, Angular, Xamarin und WebAssembly? Die Fülle an Themen auf der BASTA! Spring 2019 war riesig und machte die Auswahl für die Teilnehmer nicht einfach. Wir fassen hier kurz und knackig zusammen, was wir auf der BASTA! Neues gelernt und Spannendes gesehen haben.

Take-away #1: Angular Elements ist Fastfood für Webentwickler

Angular ist umfangreich. Manfred Steyer (SOFTWAREarchitekt.at) verglich das Framework im Rahmen seiner Session „Mit Angular Elements und Ivy in neue Bereiche vordringen“ mit einem ausführlichen, mehrere Gänge umfassenden Menü. Doch manchmal verlangt der Magen eher nach einer simplen Mahlzeit, in Steyers Analogie ist das eine Pizza. Er beschrieb, wie für einfache Anwendungsfälle oder zur Anreicherung bereits bestehender Anwendungen mit Hilfe von Angular Elements einzelne Webcomponents definiert, gestaltet und gerendert werden können. Seine Live-Demos machten deutlich, dass einzelne Webcomponents bereits mit wenigen Code-Zeilen realisiert werden können. Je weiter man dann als Entwickler in die Tiefe der jeweiligen Webkomponente einsteigt, desto detaillierter lässt sie sich an den eigenen Geschmack anpassen. Webcomponents via Angular Elements können zur Verbesserung der Performance von Webanwendungen oder auch aus rein ästhetischen Gründen verwendet werden. Ganz wie bei einer Pizza sind hier also vom vorgefertigten Standardprodukt bis zum individuell abgestimmten Feinschmecker-Gericht keine Grenzen gesetzt.

Take-away #2: Cloud ohne DevOps macht keinen Spaß

Nach seiner Premiere im Herbst fand der Cloud Developer Day auf der BASTA! Spring 2019 nun zum zweiten Mal statt und bot den Konferenzteilnehmern die Möglichkeit, herauszufinden, was mit der Cloud für sie konkret machbar ist. Rainer Stropek (software architects/www.IT-Visions.de), den BASTA-Program-Chair Mirko Schrempp sich neben Neno Loje (www.teamsystempro.de) eingeladen hat, um die Konferenzteilnehmer in der Eröffnungskeynote auf Cloud und DevOps einzustimmen, stellt vor jegliche konkrete Schritte in die Cloud noch etwas anderes: die Mentalitätsänderung. Stropek plädierte dafür, dass sich das Selbstverständnis der Devs sowie auch der Ops ändern müsse. Sie als zwei gegeneinander arbeitende Lager zu verstehen, sei schon längst nicht mehr zeitgemäß.

Für Neno Loje stellt sich die Frage, ob Cloud und DevOps der Weg in die Zukunft sind, nicht mehr, sondern vielmehr das „Wie“. Es könne sicherlich nicht die Lösung sein, einen „DevOps Engineer“ einzustellen und diesem alle „DevOps-Aufgaben“ zu geben. Stattdessen sei DevOps schon alles, was zwischen dem Bauen der Software und ihrer Auslieferung bzw. ihrem Betrieb passiert, betreffe also nicht nur einen neuen DevOps Engineer sondern Devs und Ops gleichermaßen.

Dass die Cloud jeden angeht, ist das Fazit, das die drei Keynotesprecher zogen. Und Cloud ohne DevOps mache keinen Spaß! Natürlich dürfe bei alledem auch der Sicherheitsaspekt nie aus den Augen verloren werden, aber am Anfang stehe erst einmal das Erarbeiten eines neuen Selbstverständnisses von Devs und Ops.

Take-away #3: DevOps für mobile Apps? Ja, das geht!

DevOps ist inzwischen in der Entwickler-Community angekommen, ein alter Hut ist es jedoch noch lange nicht. Björn Dreher (adesso AG) ging in seiner Session der Frage nach, ob sich DevOps auch auf mobile Anwendungen übertragen lässt. Seine Antwort: Ja, wenn man die Besonderheiten mobiler Apps berücksichtigt. Um DevOps korrekt für mobile Apps zu nutzen, muss bereits die Planung den Besonderheiten mobiler Apps genügen. Da oft kein direkter Zugriff auf das Device des Endnutzers möglich ist, muss bei der Entwicklung der Apps der Erhalt von Logs über eine Datenverbindung eingeplant werden. Auch für das Deployment ist der Entwickler auf die Mitarbeit des Nutzers und den guten Willen der Appstores angewiesen. Wenn das Update nicht über den jeweiligen Store ausgeliefert wird oder der Nutzer Updates deaktiviert hat, werden Fixes und neue Features nie bei ihm ankommen. Wer diese und andere spezifische Eigenschaften von mobiler Entwicklung berücksichtigt, kann die Vorteile von DevOps nicht nur für klassische Anwendungen, sondern auch für mobile Apps nutzen.

Kostenlos: Azure-DevOps-Spickzettel

Jetzt herunterladen und mit wenigen Befehlen das Kommando über Azure DevOps übernehmen!

Download for free

Take-away #4: WebAssembly ist schnell, effizient und portabel

C++ befindet sich seit den 1980ern fast durchgehend unter den drei beliebtesten Programmiersprachen, und dementsprechend viele Anwendungen wurden darin geschrieben. Was aber, wenn man diese nun in den Browser bringen will? WebAssembly bietet dafür eine Lösung. Martina Kraus (Thinktecture) fasste in ihrer Session WebAssembly: nativer Code im Browser – C++ goes Web die Vorteile von WebAssembly zusammen. Es handelt sich dabei um ein natives Feature, das seit 2017 in allen gängigen Browsern enthalten ist und C/C++-Applikationen in den Browser bringt. Es ist also nicht nötig, die Anwendungen in JavaScript neu zu schreiben.

Da WebAssembly (Wasm) nativ ist, ist es schnell, effizient und portabel. Man muss sich nicht mehr mit Plug-ins herumärgern, die Sicherheitslücken darstellen können und deren Updateprozess eine ständige Wartung benötigt. Wasm läuft in einer Sandbox und kann daher auch für die serverseitige Verwendung durchaus interessant sein. Als Tool bietet sich Emscripten an. Emscripten cross-kompiliert C++ mit Compilern aus LLVM zu Bytecode und dann zu einer .wasm-Datei. Zur Anwendung empfiehlt Martina Kraus, die Hauptapplikation in C++, das User Interface aber in JavaScript, HTML und CSS zu halten. Ansonsten gehen Features verloren, und man erhält im Prinzip eine im Browser laufende Anwendung, die wie eine Desktopapplikation aussieht.

Take-away #5: Der Umstieg auf .NET Core 3.0 lohnt sich

Zwar liegt .NET Core 3.0 noch als Preview 2 vor, doch Holger Schwichtenberg (IT-Visions/5Minds IT-Solutions) liefert schon einige gute Argumente für den künftigen Umstieg. Dazu zählt C# 8.0: Einige der neuen Features werden ausschließlich in .NET Core verfügbar sein. Es kann zwar weiterhin mit dem klassischen .NET-Framework gearbeitet werden, jedoch nicht mit dem kompletten C#-Funktionsumfang. Neue Anwendungen sollten auf Anraten des Speakers besser nicht mehr mit dem klassischen Framework erstellt werden. Zu den weiteren Vorteilen von .NET Core zählen unter anderem die bessere Performance und ein vereinfachtes Deployment durch self-contained .exe-Dateien. Die verbesserte Unterstützung für IoT-Geräte darf natürlich ebenfalls nicht fehlen.

Wer schon jetzt herausfinden möchte, ob die eigenen Anwendungen für .NET Core 3.0 geeignet sind, kann den .NET Portability Analyzer für .NET Core 3.0 herunterladen. Es ist ein kleines Open-Source-Tool von Microsoft, das die Kompatibilität mit .NET Core 3.0 prüft.

Take-away #6: Alles kann ein State sein

Was ist ein State? Mit dieser Frage eröffnete Michael Hladky (Angular College) seinen Talk. Unter den Vorschlägen waren die URL im Browser, die per CSS definierte Hintergrundfarbe oder die Scrollposition in einem Fenster. Ähnlich bedeutsam wie die Frage danach, was ein State ist, ist auch die Überlegung, in welchen Fällen man sich überhaupt mit State Management beschäftigen sollte. Die entsprechende Antwort ist, dass State Management immer dann Aufmerksamkeit verdient, wenn der Übergang von einem State zum nächsten reproduzierbare Ergebnisse liefern soll. Die Antwort auf die Eingangsfrage, was überhaupt ein State ist, lautete in dieser Session „Alles kann ein State sein.“

Take-away #7: Sprechende Namen und verständliche Kommentare

Ein ausführliches Plädoyer für verständliche und hilfreiche Kommentare im Code lieferte Thorsten Kansy (dotnetconsulting) in seiner Session „C# – The Good, the Bad and the Ugly“. Während Selbstverständliches nicht ausführlich kommentiert werden muss, so sollen doch die Kommentare bei der Pflege des Codes nicht vergessen werden. Was, wenn der Kommentar längst nicht mehr zum Code passt? Dem Publikum fielen noch schlimmere Szenarien ein: Was, wenn beim Copy-Pasten ein fehlerhafter Kommentar übernommen wurde? Was, wenn im Kommentar gar Befehle vorhanden sind? Sogar das soll laut Publikum bereits vorgekommen sein!

Kansy schlägt als eine Maßnahme für hilfreiche Kommentare vor, nicht das ohnehin offensichtliche „Wie“, sondern das „Warum“ zu kommentieren. Seine Aussage, dass Variablennamen mehr als zwei Zeichen lang sein dürfen, sorgte für große Erheiterung. Dahinter steckt natürlich die Tatsache, dass sprechende Namen die spätere Nachvollziehbarkeit erleichtern. Nicht mehr benötigter Code darf guten Gewissens gelöscht werden, anstatt ihn in Kommentarform als Ballast beizubehalten. Schließlich gibt es Versionsverwaltungssoftware, die frühere Versionen zugänglich macht.

Take-away #8: Desktopanwendungen nicht vergessen!

Anwendungen für Mobile, Web und Desktop erstellen – das alles ist mit .NET Core möglich, und das per Open Source. Denn schließlich ist es „nicht mehr das .NET eurer Großeltern“, wie Sam Basu (Progress/Telerik) in seiner Keynote .NET today and tomorrow den dritten Tag der BASTA! eröffnete. Während Mobile und Web heute in den Fokus gestellt werden, sollten dabei Desktopanwendungen nicht vernachlässigt werden, meint Basu. Sie stellen schließlich die tägliche Arbeitsgrundlage im Unternehmen dar. Für die Zukunft eröffnen sich ganz neue Möglichkeiten, zum Beispiel das Erstellen von iOS-Apps mit Xamarin.Forms, die mit Project Marzipan wiederum als Desktopanwendung den Weg zu macOS finden werden.

Take-away #9: Events mit Azure Event Grid verarbeiten

Ein Event ist eine Notifikation, eine Messung oder ein Trace, wie Christian Schwendtner (Trainer und Berater) in seiner Session The Reactive Cloud: Azure Event Grid demonstrierte. Dazu zählen Daten von IoT-Devices, aber auch z. B. das Anlegen von Daten neuer Kunden in einem CRM-System. Keine Events sind dagegen Befehle oder Queries, die im Gegensatz zum informativen Event einen Imperativ-Charakter haben.

Zur Verarbeitung von diskreten Events, die unabhängig sind und eine Aktion auslösen können, empfiehlt der Speaker Azure Event Grid, das 10 Millionen Events pro Sekunde verarbeiten kann. Es ist in Azure schon enthalten, aber aufpassen: Es könnte deaktiviert sein. Azure Event Grid harmoniert mit einer Serverless-Architektur. Eine weitere Form von Events sind Serienevents, also Logmessages oder Messdaten. Für diese Art von Events empfiehlt der Speaker das Azure Event Hub.

Take-away #10: Microservices? Ja, aber nicht für jedes Unternehmen!

Christian Weyer (Thinktecture) nahm beim Thema Microservices und Co. kein Blatt vor den Mund und traf zu Kubernetes eine klare Aussage: „Kubernetes ist ein Hype-Thema, das die meisten Entwickler niemals benötigen werden.“ Zu Containern äußerte er sich ähnlich kritisch: „Container sind nicht gleich Microservices und Microservices brauchen keine Container.“ Aber was sind denn nun diese Microservices? Die Prinzipien von Microservices bestehen laut Christian Weyer vor allem aus vier Punkten: Single Responsibility (Fokus auf eine einzige Domäne), Isolation, Autonomie und Entkopplung. Der schwierigste dieser Punkte sei die Autonomie, da jeder Microservice hierfür seinen eigenen Data Storage benötige. Häufig würden Unternehmen jedoch eine Ablehnungshaltung an den Tag legen, Datenbanken autonom zu gestalten und dadurch diesen Punkt zu erfüllen.

Laut Weyer sind Microservices ohnehin nicht für jedes Unternehmen geeignet. Sie werden im Umfeld großer Unternehmen wie Netflix und Twitter angewendet – für kleine Unternehmen können dagegen die Komplexität und die Kosten zu hoch sein. Insgesamt beinhalten Microservices ein Give-and-take. Es müssen daher für den spezifischen Anwendungsfall die Pro- und Kontra-Argumente gegeneinander abgewogen werden. Seine Grundaussage drückte Weyer abschließend mit einem Satz aus, der für Lacher im voll besetzten Saal sorgte: „Baut doch erstmal gescheite Monolithen!“ Denn wer keine modularen Monolithen bauen könne, werde auch keine Microservices bauen können.

Unsere Redaktion empfiehlt:

Relevante Beiträge

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
400
  Subscribe  
Benachrichtige mich zu:
X
- Gib Deinen Standort ein -
- or -