Mit welchen Technologien Valudio arbeitet und was dahintersteckt
- Was ist Microsoft Azure?
- Was ist C#? Und was ist .NET (früher .NET Core)?
- Was ist SignalR?
- Was ist das Azure Bot Framework?
- Was ist Identity Server?
- Was ist React.js?
- Was ist Next.js?
- Was ist React Native?
- Was ist Azure Pipelines?
- Was ist der Microsoft SQL Server?
- Was ist Docker?
- Was ist das Microsoft Appcenter?
- Was ist Electron?
- Was ist MongoDB?
Vielleicht ist Ihnen auf unserer Website bereits aufgefallen, dass wir mit einer ganzen Reihe verschiedenster Technologien arbeiten. Falls nicht, werfen Sie doch mal einen Blick auf unsere Service-Seite.
Alle diese Technologien brauchen wir, um für unsere Kund:innen qualitativ hochwertige digitale Lösungen zu bauen.
Aber was steckt eigentlich hinter diesen ganzen Tools? Und warum bevorzugen wir manche mehr als andere?
Grundsätzlich lässt sich fast mit jeder Programmiersprache fast alles umsetzen. Es gibt natürlich Programmiersprachen, die für spezifische Anwendungen besser geeignet sind. Wie zum Beispiel Python oder R für Machine Learning, da dort bereits eine Menge Tools und Libraries zur Verfügung stehen. Oder C/C++ und Rust für hardwarenahe und High Performance Anwendungen.
Aufgrund der positiven Erfahrungen von Valudio haben wir uns auf die Programmiersprachen C# und JavaScript/TypeScript spezialisiert. Wir sind ein Unternehmen, dass aufgrund von C# bevorzugt auf Tools, aus dem Microsoft Ecosystem, wie zum Beispiel Azure Devops, Azure Pipelines oder Azure Cloud, setzt.
Die Frage nach dem Warum ähnelt der Frage danach, warum jemand BMW, und nicht Mercedes, fährt. Wir haben mit Tools wie ASP.NET oder ReactJS sehr gute Ergebnisse erzielen können. Viele der großen Unternehmen arbeiten mit Microsoft, dementsprechend macht es für inhouse und externe Entwickler:innen (wie uns) Sinn, die Microsoft Cloud Platform zu nutzen, falls der Kunde keine eigene Infrastruktur oder keinen eigenen Cloud-Provider nutzt.
Was ist Microsoft Azure?
Microsoft Azure, früher bekannt als Windows Azure, ist die öffentliche Cloud-Computing-Plattform von Microsoft. Sie bietet eine Reihe von Cloud-Diensten, darunter Rechen-, Analyse-, Speicher- und Netzwerkdienste an, die für die Erstellung und Verwaltung von Apps notwendig sind.
Wir nutzen Microsoft Azure immer dann, wenn unseren Kund:innen keine eigenen notwendigen IT-Ressourcen zur Verfügung stehen.
Cloud-Plattformen, wie Microsoft Azure, sind deswegen so praktisch und erfolgreich, weil dieser Cloud-Computing-Plattform Entwickler:innen im Grunde genommen sehr viel Arbeit abnimmt: Spezielle Dienste, die als Arbeitsgrundlage benötigt werden, können hier einfach gemietet werden, ohne sich selbst um deren Wartung oder Sicherheit kümmern zu müssen.
Microsoft Azure haben wir etwa für die Entwicklung unserer SaaS-Lösung Lablyze verwendet.
Was ist C#? Und was ist .NET (früher .NET Core)?
C# (übrigens ci-sharp ausgesprochen) ist eine Programmiersprache, die innerhalb des kostenlosen Open-Source-Frameworks (= Programmiergerüst).NET genutzt werden kann. Die Sprache sowie das Framework .NET stammen dabei von Microsoft, können allerdings auch auf plattformübergreifend ausgeführt werden, also auch unter macOS oder Linux.
Das .NET Ecosystem stellt für jede Plattform ein spezialisiertes Framework zur Verfügung:
ASP.NET für die Webentwicklung
WPF für Desktop-Applikationen
Xamarin für mobile Applikationen
Unity für Gaming- und 3D-Anwendungen
.NET und ASP.NET werden ständig weiter entwickelt und verbessert.
C# und ASP.NET Core haben wir für die Entwicklung von Phonio verwendet.
Was ist SignalR?
SignalR ist eine kostenlose .NET Bibliothek, die dabei hilft Echtzeitkommunikation über Websockets zu implementieren. Genutzt wird SignalR beispielsweise für Chat-Applikationen, in der mehrere Teilnehmer/Applikationen in Echtzeit Informationen austauschen möchten.
Was ist das Azure Bot Framework?
Das Azure Bot Framework hilft dabei, Chatbot-Anwendungen zu implementieren. Das können einfache Anwendungen sein, bei denen man standardisierte Abläufe von einem Bot handhaben lässt, komplexere Anwendungsfälle wie die Verarbeitung natürlicher Sprache (NLP) oder auch das Beantworten von Fragen. Auch das Weiterleiten von Anfragen an eine echte Person kann mit dem Azure Bot Framework problemlos eingerichtet werden.
Was ist Identity Server?
Identity Server 4.0 ist ein Identitäts- und Authentifizierungsmanagementserver, der sich um das Zentralisieren von Authentifizierungsprozessen kümmert.
Das ist hilfreich, wenn ein Unternehmen unterschiedlichste Applikationen in Betrieb hat und die Benutzeridentitäten und aktive Session zentralisieren möchte. Konkret hat das den Vorteil, dass sich Nutzer:innen, die sich bei einer Applikation anmelden, beim Wechsel zu einer anderen Applikation, die mit ersteren in Verbindung steht, auch dort reibungslos und automatisch angemeldet werden, ohne wiederholt die Benutzerdaten eingeben zu müssen. Offiziell wird Identity Server als ein Authentifzierungsserver (basierend auf .NET) bezeichnet, der die Protokolle OpenID Connect (OIDC) und OAuth 2.0 unterstützt.
Was ist React.js?
React.js ist das am weitesten verbreitete JavaScript Framework zur Entwicklung von Benutzeroberflächen bzw. zum Entwickeln von Weboberflächen, so wie Nutzer:innen sie dann am Ende sehen und erleben. Im Grunde handelt es sich bei React.js um eine Open-Source-Bibliothek, die von Facebook und einer Open-Source-Entwicklergemeinschaft betrieben wird.
React.js eignet sich besonders gut für die Implementierung von Micro-Frontends, da es eine komponentenbasierte Architektur unterstützt, bei der einzelne Module oder Funktionen unabhängig voneinander entwickelt, implementiert und gewartet werden können. Diese Modularität ermöglicht es Teams, ihre Arbeit zu isolieren und gleichzeitig die Vorteile einer zusammenhängenden Benutzeroberfläche beizubehalten.
Warum ist React.js so beliebt?
React.js und andere komponentenbasierte Frameworks wie Angular und Vue sind durch den Bedarf der immer komplexer werdenden Benutzeroberflächen entstanden.
Komponenten sind die Bausteine einer jeden React-Anwendung. Einmal programmiert, können solche Komponenten innerhalb einer und derselben, aber auch in anderen React-Anwendungen wiederverwendet werden, was die Entwicklungszeit abermals reduziert. Mittlerweile haben wir auch bei Valudio unsere eigene Komponenten-Bibliothek erstellt.
Durch das virtuelle DOM, eine Repräsentation der HTML-Struktur im Memory, werden die Aktualisierungen und Berechnungen, die der Browser machen muss, reduziert und somit die Performance verbessert.
Durch die vorgegebene Struktur und den standardisierten Flow der Daten zwischen den Komponenten, ist es für Programmierer:innen einfacher, sich in einer Applikation zurechtzufinden und Fehler zu lokalisieren.
React.js haben wir unter anderem für die Entwicklung des Kundenportals von Redsol verwendet.
Was ist Next.js?
Bei Next.js handelt es sich um ein Javascript Framework, das auf React.js basiert.
Was unterscheidet ReactJS von Next.JS?
React.js ist, wie oben erwähnt, eine Technologie, die es uns erlaubt, webbasierte Benutzeroberflächen zu programmieren. Standardmäßig wird das HTML/CSS aber immer erst im Browser gerendert (client site rendered = CSR). Das ist bei Portalen, die erst nach einem Log-in sichtbar sind, problemlos. Handelt es sich aber um eine Website, einen Webshop oder eine Applikation, die in der Google-Suche sichtbar sein soll, ist CSR eher suboptimal.
Next.js ist ein Framework, das uns genau an dieser Stelle helfen kann. Next.js basiert auf React.js. Das heißt, wir können unsere Weboberflächen weiterhin mit React.js programmieren. Zusätzlich erlaubt es uns aber, zwischen den unterschiedlichen Rendering-Optionen zu wählen:
- Client Site rendered (CSR): Für Applikationen, die auf ein Google-Ranking verzichten können.
- Server site rendered (SSR): Für Applikationen mit dynamischen Inhalten, die aber relevant von Google indexiert werden sollen.
Übrigens:
In den beiden Fällen wird der Inhalt bei jeder Anfrage neu gerendert, das heißt das HTML/CSS wird bei jeder Abfrage neu generiert, was Zeit und Ressourcen frisst.
Zeit und Ressourcen lassen sich allerdings mit einer sogenannten „static site generation“ (SSG) sparen und eignet sich für Applikationen oder Webseiten, bei denen sich der Inhalt nicht so oft ändert.
Mit dem SSG-Verfahren wird der Inhalt einmal gerendert und die fertigen HTML-Dateien werden auf dem Webserver abgelegt. Im Gegensatz zu SSR, wird die Performance nochmals erhöht, da die Webseite nicht für jede Anfrage neu gerendert werden muss. Das bringt auch Ladezeit-Vorteile und macht Webseiten schneller, da das HTML nicht vorab generiert werden muss, sondern es direkt heruntergeladen wird und so direkt vom Browser angezeigt werden kann.
Ein weiterer Vorteil von SSG ist die Skalierbarkeit. Da auf dem Server nichts mehr gerendert werden muss, benötigt man auch keine Rechenleistung mehr und kann somit problemlos tausende Anfragen gleichzeitig bedienen.
Was ist React Native?
React Native ist ein JavaScript Framework, mit dem sich plattformübergreifende mobile Applikationen entwickeln lassen. Sprich, es kann eine einzige App entwickelt werden, die sowohl auf Android und iOS funktioniert, anstatt eine iOS-Applikation mit Swift und eine Android-Applikation mit Java oder Kotlin zu entwickeln.
Hier finden Sie eine Liste bekannter Apps, die auf React Native basieren.
Mit React Native haben wir unter anderem die Nemi-App gebaut.
Lassen Sie Technologie Ihre Visionen
zum Leben erwecken.
Was ist Azure Pipelines?
Mit Azure Pipelines stellt Microsoft sogenannte Cloud-gehostete Continous Integrations and Continous Delivery (CI/CD) Pipelines für Linux, macOS und Windows zur Verfügung, die Build- und Deployment-Prozesse (Erstellungs- und Bereitstellungsprozesse) automatisieren.
Einer unserer DevOps Services ist das Erstellen und Konfigurieren von Build- und Release Pipelines für andere Unternehmen.
Was ist der Microsoft SQL Server?
Hierbei handelt es sich um ein relationales Datenbankmanagementsystem und eine der führenden Datenbanktechnologien. Wenn wir uns aussuchen können, mit welcher SQL-Datenbank wir arbeiten wollen, dann fällt unsere Wahl fast immer auf den Microsoft SQL Server.
Was ist Docker?
Docker ist eine Containertechnologie, die das Entwickeln und Bereitstellen von Applikationen vereinfacht und standardisiert. Ein Docker Image beinhaltet die komplette Konfiguration der Umgebung, in der eine Applikation ausgeführt wird. Das hat den Vorteil, dass die Konfiguration immer dieselbe ist. Sei es bei der Entwicklung auf der lokalen Maschine oder in der Produktionsumgebung.
Man kann es mit einem Snapshot einer virtuellen Maschine vergleichen. Docker bietet jedoch noch mehr Vorteile. Virtuelle Maschinen enthalten normalerweise vollständige Kopien von Betriebssystemen, der auszuführenden Anwendung, Binärdateien und Bibliotheken. Mit Docker wird all dies in einem Docker-Ausführungscontainer zusammengeführt und lässt sich darüber hinaus vom zugrunde liegenden System isolieren.
Was ist das Microsoft Appcenter?
Das Microsoft Appcenter ist eine Plattform zum Entwickeln, Testen und Verwalten von Apps für verschiedene Betriebssysteme. Einer der vielen Vorteile dieser Plattform:
Ist eine App erst einmal fertig erstellt, kann sie sofort an den Apple und Google-Store geschickt werden. Über das Appcenter können wir auch Testversionen einer App an unsere Kund:innen schicken. Das Microsoft Appcenter ist somit das Äquivalent zu Azure Pipelines für mobile Applikationen.
Mit dem Microsoft Appcenter haben wir die Lingoda-App möglich gemacht.
Was ist Electron?
Electron ist ein Framework, um Desktop-Applikationen mithilfe von Javascript, HTML und CSS über verschiedene Plattformen hinweg zu entwickeln. Am Ende erhält man so einen Code, der für Windows, Mac oder Linux gleichermaßen funktioniert.
Desktopanwendung werden meistens benötigt, wenn Dinge miteinander kommunizieren sollen, die physisch mit einem Rechner verbunden sind – zum Beispiel, ein Barcode-Scanner mit der Hardware eines Computers.
Electron haben wir verwendet, um die Web-App von Phonio zu entwickeln. Jedes Mal, wenn das Kundensupport-Team einen Anruf erhält, wird der eingehende Anruf via Pop-up in der Web-App angezeigt.
Was ist MongoDB?
MongoDB ist eine non-SQL-Datenbank, das heißt, sie ist dokumentenorientiert statt tabellenorientiert, und kann Sammlungen von JSON-ähnlichen Dokumenten verwalten. MongoDB nutzen wir zum Ablegen von Daten, die nicht immer dieselbe Struktur haben sollen. Allgemein haben non-SQL-Datenbanken Vor- und Nachteile. Ob und wann man sie verwendet, ist hochgradig situationsabhängig.
Für die Hitachi-Web-Plattform war MongoDB bestens geeignet.