Skills

Stephan Bail

Alle Skills von Stephan Bail, dem
Cloud Engineer für Azure und AWS aus München.

Cloud Engineer u. Mobile Engineer

Cloud-Development

2015 - heute

Microsoft Azure

Azure Functions: Serverloses Computing

  • API Management
  • Service Bus Topics, Messaging / Queuing
  • Event Hub, Messaging / Queuing
  • Serverless Azure Functions, RESTful Services
  • Blob Trigger auf Basis von Microsoft Azure Storage (Blob Container)
  • DocumentDB: CosmosDB (Stored Procedures, Trigger, SQL API)
  • AzureDataLake, DataFactory, Big Data Pipelines
  • Application Insights

Entwicklung von Azure Functions auf Basis von C#, um triggergesteuerte Applikationen für einen großen Energiekonzern zu realisieren. Die Funktionen harmonieren im wesentlichen mit der Cosmos DB, und lassen sich sehr gut und flexibel skalieren.

Cosmos DB und Azure Data Lake

Cosmos DB ist eine global verteilte Datenbank von Microsoft mit mehreren Modellen. Sie bietet eine elastische und unabhängige Skalierung von Durchsatz und Speicher, ist bedarfsorientiert und lässt sich weltweit verteilen. Dazu ist die Cosmos DB extrem reaktionsschnell gerade für unternehmenskritische Anwendungen.

SQL API: Optimiert für extreme Last-Peaks

Im Projekt wurde im wesentlichen mit der sog. "SQL-API" gearbeitet, also einem schemalosen JSON-Datenbankmodul mit umfangreichen SQL-Abfragefunktionen. Des weiteren wurden weite teile der Anwendungslogik mithilfe von Standard-JavaScript als gespeicherte Prozeduren, Trigger und benutzerdefinierte Funktionen ausgedrückt, jeweils mit einem starken Fokus auf einer optimalen Performance. Im Projekt wird vom Auftraggeber davon ausgegangen, dass mit erheblichen Last-Peaks (etwa nach TV-Werbungen) zu rechnen ist. Darauf sind die serverseitigen Prozeduren optimiert.

Web-Development

2013 - heute

Angular 2-5

Angular, das ist ein Framework für die Mobile- und Desktop-Entwicklung, es ist einfach und schnell.

Frameworks wie Angular oder React

Wer in den letzten Jahren darüber nachgedacht hat, eine moderne, benutzerfreundliche Web-Applikation zu entwickeln, ist an den Javascript Frameworks Angular und React nicht vorbeigekommen. Die Tatsache, dass Webseiten heute schneller, interaktiver und benutzerfreundlicher sind, haben wir nicht zuletzt diesen beiden Open-Source Projekten zu verdanken.

Das Internet wird gerade umgebaut

Sie haben es vielleicht nicht mitbekommen, aber im Internet wird gerade mächtig umgebaut. Alte Webseiten werden neu gedacht und als Client-Side Applications neu entwickelt. “Client-Side” bedeutet, dass die Webseite nicht wie früher hauptsächlich auf dem Server initialisiert und aufgebaut wird, sondern ein Großteil der Prozesse der Webseite in Ihrem Browser ausgeführt werden. Für die Besucher Ihrer Webseite bringt das viele Vorteile mit sich:

  • Geschwindigkeit: Da Webseiten nicht mehr neu geladen werden müssen, wenn Sie auf einen Link klicken oder mit der Webseite interagieren, sind Client-Side Applikations viel schneller als normale auf dem Server verarbeitete Webseiten. Der Unterschied zu einer nativen Smartphone App wird dadurch kaum noch spürbar.
  • Benutzerfreundlichkeit: Da sich die Logik der Webseite ja eh schon im Browser befindet, haben es Entwickler leichter, das UI der Seite um nützliche Interaktionen zu erweitern. Formulare, Navigationen, Slider sind hierdurch um ein vielfaches angenehmer zu bedienen.

TypeScript 2.4 Support in Angular 5

Microsoft hat erst kürzlich das SharePoint Framework für die Entwicklung von Webparts in "SharePoint Online" vorgestellt. Damit lassen sich Webparts unter Verwendung neuester Webtechnologien entwickeln, die optisch und technisch dem weit überlegen sind, was aktuell in SharePoint möglich ist. Microsoft setzt bei der Entwicklung komplett auf die Sprache TypeScript. Grund genug, sich genauer mit dieser Technologie auseinanderzusetzen, welche auch in Angular zum Einsatz kommt.

Denn nachdem mit Angular 4 die Verwendung von TypeScript in Version 2.3 ermöglicht wurde (inklusive der Strict-Null-Checks-Option vollständig und fehlerfrei seit Version 4.3), wird mit Angular 5 jetzt auch offiziell die TypeScript-Version 2.4 unterstützt.

Laut offizieller Aussage von Microsoft wurde TypeScript 2012 ins Leben gerufen, um damit eine skalierbare Programmiersprache für die Entwicklung von JavaScript-Applikationen zu schaffen.

Aber lassen wir einfach Taten sprechen. Die folgende kleine ToDo-Lösung wurde auf Basis von TypeScript veröffentlicht. Ich habe den Quelltext hierzu öffentlich gemacht.

Cross-Platform App-Development

2013 - heute

Xamarin

Native und hybride Apps innovativ und nachhaltig entwickeln

Der Vorteil liegt auf der Hand: Mit Xamarin ist es möglich, mobile Apps auf Plattformen wie iOS und Android nur einmal zu entwickeln und dennoch auf beide Plattformen zu verteilen.

Apps auf Basis von Xamarin lassen sich also mithilfe von nur einer Programmiersprache (C#) entwickeln. So ermöglicht Xamarin eine plattformübergreifende App-Entwicklung sowie eine Integration auf spezifizierte Betriebssysteme. Apps und Anwendungen für iPhone und Android laufen so auf einer nativen Benutzeroberfläche und sind auf der jeweiligen Plattform nutzbar.

Anwender solcher Apps spüren keine Unterschiede zu Apps, welche mit proprietären Programmiersprachen wie Swift oder Objective-C entwickelt wurden.

Ich biete Ihnen:

  • Konzeption und Entwicklung von Xamarin Apps
  • App-Store Management: Google Playstore, iTunes Connect
  • Anbindung an Server Applikationen: JSON, XML, REST
  • Beratung zur Optimierung Ihrer Geschäftsprozesse

Resultat: Code einmal schreiben, dennoch ausgezeichnete Apps für Plattformen wie iOS und Android erhalten.

Showroom für erfolgreiche Apps von Auftraggebern, konzipiert und entwickelt von Stephan Bail:

Backend-Development

2007 - heute

Microsoft .NET Core

Bei der Erstellung von serverseitigen Anwendungen mit Microsoft .NET werden zwei Implementierungen unterstützt: Das klassiche .NET Framework und seit wenigen Jahren nun auch .NET Core. Beide nutzen viele gemeinsame Komponenten, und bei beiden stimmt ein Teil des Codes überein. Allerdings gibt es auch grundlegende Unterschiede.

Microsoft selbst stellt Dienste wie BING auf .NET Core um

Microsofts Suchmaschine Bing setzt auf das quelloffene Framework .NET Core 2.1. Bisher lief die Suche auf dem klassischen .NET Framework, Microsoft hat sich aber aufgrund einer besseren Performance mit .NET Core davon abgewandt (Quelle: https://blogs.msdn.microsoft.com/dotnet/2018/08/20/bing-com-runs-on-net-core-2-1).

Das alleine ist schon eine bemerkenswerte Nachricht. Und in der Tat, es gibt zwischenzeitlich gute Gründe, sich mit dem neuen .NET vor Projektbeginn auseinanderzusetzen, etwa wenn ein neuer skalierbarer Microservice in Planung ist.

Microsoft selbst spricht die Empfehlung aus, sich vor Projektbeginn folgende Fragen zu stellen:

  • Linux, Windows, Mac?
    Es bestehen plattformübergreifende Anforderungen.
  • Microservice?
    Sie möchten Microservices erstellen.
  • Docker?
    Sie verwenden Docker-Container.
  • Hochleistung und skalierbar?
    Sie sind auf skalierbare Hochleistungssysteme angewiesen.
  • Verschiedene .NET Versionen?
    Sie benötigen pro Anwendung verschiedene parallele .NET-Versionen.

Trifft zu? Dann .NET Core!

Treffen eine oder mehrere dieser Anforderungen auf das Projekt zu, dann spricht Microsoft eindeutig eine Empfehlung für .NET Core aus. Dabei gilt es durchaus, auch einen Weitblick für das jeweilige Projekt zu entwickeln. Kann es sein, dass eine App im späteren Verlauf viele Nutzer ansprechen wird? Dann setzen Sie am besten gleich auf .NET Core - eine spätere Migration kann kostspielig werden.

Neugierig geworden? Dann kontaktieren Sie mich gerne!