IT-Development & Consulting
it-people ���� it-solutions
Axel Eckenberger, 09.03.2017
Quo Vadis Microsoft?Multiplattform-Entwicklung mit .NET
2017 PIXEL GmbH - Ein Unternehmen der PIXEL Group - www.pixel.de Folie 2
Agenda
Was bedeutet „Multiplattform“ Entwicklung?
Welche Konsequenzen ergeben sich für die Entwicklung mit .NET?
Wohin wird die Reise gehen?
2017 PIXEL GmbH - Ein Unternehmen der PIXEL Group - www.pixel.de Folie 5
Hardware
Systemarchitektur
I x86 – 32/64 Bit
I ARM – 32/64 Bit
Maßgebliche Eigenschaften
I Bildschirmgröße
I Speicher
I Prozessorleistung / Kerne
I Netzwerkverbindung
I Nutzerverhalten und -toleranz
I GUI Abhängigkeit
Geräteklassen
I IoT
I Phone
I Tablet
I PC
I Server
2017 PIXEL GmbH - Ein Unternehmen der PIXEL Group - www.pixel.de Folie 6
Multiplatform: Betriebssysteme
2017 PIXEL GmbH - Ein Unternehmen der PIXEL Group - www.pixel.de Folie 7
Betriebssysteme
Auf dem Gerät
I Windows – klassische Desktopanwendung / UWP Server, PC, Tablet, Phone, IoT
I OS X Mac
I iOS Tablet, Phone
I Linux Server, PC, IoT
I Android Tablet, Phone
Cloud
I Anbieter die .NET unterstützen
� Azure
� AWS
� …
I Infrastruktur (IaaS) und Dienste (PaaS)
I Frei kombinierbarer Leistungsumfang
2017 PIXEL GmbH - Ein Unternehmen der PIXEL Group - www.pixel.de Folie 9
Frameworks
.NET (Full) Framework
I Großer Funktionsumfang
I Teile windowsspezifisch, z.B.: Grafik, Networking, Web
Mono
I Umfang fast wie .NET Framework
I Windowsspezifische Anteile entfernt für Linux-Kompatibilität
.NET Core
I Neuentwicklung des .NET Frameworks (schrittweise)
I Aufteilung in separate Bibliotheken
+ Kleinere Bausteine
+ Modularere Systeme
- Höhere Komplexität
- Tooling
I Ein Großteil der Bibliotheken ist plattformunabhängig und kann auf Windows, Linux,
OS X oder mit Xamarin verwendet werden
2017 PIXEL GmbH - Ein Unternehmen der PIXEL Group - www.pixel.de Folie 10
Multi-Framework-DLLs
Problem: Wiederverwendung von DLLs in mehreren Frameworks
Shared Code
I Code wird in die Ziel-DLL wird in das Zielprojekt integriert
I Framework-spezifischer Code muss über Präprozessordirektiven abgegrenzt werden
Portable Library
I Verschiedene Profile bilden den kleinsten gemeinsamen Nenner ab
I Profil wird in eine eigene DLL zusammengefasst, welche verlinkt werden muss
.NET Standard
I Standard legt Funktionsumfang fest
I Frameworks unterstützen verschiedene Versionen des Standards
� Derzeit Version 1.x
� Version 2.0 Q3/2017
I Keine eigene DLL notwendig, da Funktionen im jeweiligen Framework enthalten sind
2017 PIXEL GmbH - Ein Unternehmen der PIXEL Group - www.pixel.de Folie 11
Desktopanwendungen
XAML (WPF/UWP)
I Trennung von UI-Design und UI-Funktionalität
I Viele Möglichkeiten zur UI-Gestaltung
I Windows und UWP
Windows Forms
I UI Darstellung klassisch
I Probleme bei Geräten mit höherer Auflösung
I Windows
GTK
I Setzt Mono voraus
I Windows, Linux und Mac
Xamarin.Forms
I UI Darstellung analog zu WPF
I UWP und Mac
2017 PIXEL GmbH - Ein Unternehmen der PIXEL Group - www.pixel.de Folie 12
Mobile Anwendungen
UWP – Universal Windows Platform
I Windows 10
I Plattformen: Server, PC, Tablet, Phone (?)
I Vertrieb über Microsoft-Store, Custom-Store oder per „side loading“
Xamarin („nativ“)
I iOS, Android, UWP
I Wrapper um native APIs
I Erlaubt die Wiederverwendung von DLLs
I Vertrieb über die Stores der Plattformen oder „side loading“
Xamarin.Forms
I iOS, Android, UWP
I Erlaubt die Wiederverwendung von DLLs und UI-Anteilen
I Immer die Möglichkeit plattformspezifisch (Xamarin „nativ“) zu entwickeln
I Höhere Abstraktion der nativen APIs
I Vertrieb über die Stores der Plattformen oder „side loading“
2017 PIXEL GmbH - Ein Unternehmen der PIXEL Group - www.pixel.de Folie 13
Webentwicklung
ASP.NET
I MVC, WebForms, WebAPI, SignalR
I Abhängig von Windows-Betriebssystem
I IIS oder IIS-Express
ASP.NET Core
I Im Rahmen von .NET Core komplett neu geschrieben
I Unabhängig vom Windows-Betriebssystem � Hosting auf Linux oder OS X möglich
I Performanceverbesserungen gegenüber klassischem ASP.NET
I MVC, WebAPI
I IIS, IIS-Express, Kestrel, …
Single Page Applications
I Frontend mit JavaScript
I Datenbindung und Content-Erzeugung auf dem Client
I Frameworks: AngularJS, Angular 2, React.js, Vue.js, Ember.js, …
I Backend-API i.d.R. REST (WebAPI, WCF REST, WCF DataService + Odata)
I Kommunikation mit Backend-API über Ajax
2017 PIXEL GmbH - Ein Unternehmen der PIXEL Group - www.pixel.de Folie 14
Entwicklung von Dienstanwendungen
WCF (klassisch)
I RPC
I SOAP
WCF REST-ful
I REST
I RPC oder datenorientiert
WCF Data Services
I REST
I Datenorientiert
I Abfragen über OData modifizierbar (Shaping, Filtering, Ordering, …)
WEB API
I REST
I Teil von ASP.NET und ASP.NET Core
2017 PIXEL GmbH - Ein Unternehmen der PIXEL Group - www.pixel.de Folie 15
Multiplatform: Entwicklungsumgebungen
2017 PIXEL GmbH - Ein Unternehmen der PIXEL Group - www.pixel.de Folie 16
Entwickungsumgebungen
Visual Studio
I Windows und Mac
I Umfangreiche IDE mit großem Funktionsumfang
I Projekttemplates von Plattform abhängig
I Primär .NET Sprachen jedoch auch andere Sprachen (z.B. Python)
I Erweiterung über Extensions möglich
Visual Studio Code
I Windows, Mac und Linux
I Texteditor / leichtgewichtige IDE
I Großer Umfang an unterstützten Sprachen
I Open Source
I Fokus auf Erweiterbarkeit durch Extensions
2017 PIXEL GmbH - Ein Unternehmen der PIXEL Group - www.pixel.de Folie 17
Konsequenzen für die Entwicklung
2017 PIXEL GmbH - Ein Unternehmen der PIXEL Group - www.pixel.de Folie 18
Architektur / Deployment
I Mehr cloudbasierte Systeme
� Platform as a Service (PaaS)
� Software as a Service (SaaS)
� Container
I Heterogenität der Systeme steigt
� Einbindung von Legacy-Systemen
� Micro-Services
� Container-Orchestrierung
I Nebenläufigkeit und nachrichtenbasierte Systeme als Standard
� Mehrkern-Prozessorarchitekturen
� Micro-Services
I Serverkomponenten auf Linux
� Verfügbarkeit und Kosten
� Container
I Komponentenorientierung
� Verpacken von Bibliotheken in NuGet-Pakete
� Firmenweite und projektspezifische NuGet-Streams
� Verwendung von .NET Standard für NuGet-Projekte und „shared Libraries“
2017 PIXEL GmbH - Ein Unternehmen der PIXEL Group - www.pixel.de Folie 19
Anwendungsentwicklung
I Web-Systeme
� Stärkere API-orientierung der Serverseite (OData, Json, REST)
� Wiederverwendung der Web-APIs in mehreren Frontends (z.B. Web, Desktop, Mobil)
� Web-Frontend
� „Single Page Applications“ (z.B. mit Angular JS, Angular 2, RactJS)
� Responsive Design (Bootstrap)
I Multi-Plattform Mobilsysteme
� Kostenfaktor
� Gemeinsame Grundfunktionalität
� Natives „Look and Feel“
I Desktop
� Oberfläche mit WPF oder UWP
� Backend durch Web-API oder Cloud bereitgestellt
� U.u. Verwendung der Designsprache des Modern UI in WPF-Anwendungen
� Responsive Design
I Datenbank
� SQL Server auf Linux
� JSON/XML in SQL Server
2017 PIXEL GmbH - Ein Unternehmen der PIXEL Group - www.pixel.de Folie 21
Wohin geht die Reise
Microsoft Ziele
I Mit MS-Technologie entwickelte Anwendungen auf allen Geräten und
Betriebssystemen
I Verlagerung des Backend von lokalen Servern in die Cloud
I Ablösung von Oracle als Standard-DB-System bei Neuprojekten
I Multiplattform-Entwicklung mit einer Codebasis
� Server (Windows, Linux und eingeschränkt OS X)
� Apps (iOs, Android, UWP für Desktop)
Client
I Mehr Web-Anwendungen
I Thin-Client-Lösungen wenn Web-Anwendungen nicht ausreichen
I Backend auf dem Server oder in der Cloud
I Im Einzelfall Berechnungen auf dem Client (Rechenleistung)
2017 PIXEL GmbH - Ein Unternehmen der PIXEL Group - www.pixel.de Folie 22
Vielen Dank für die Aufmerksamkeit
I Email
I Twitter
@Obalix
I Web
http://www.pixel.de
Zentrale
PIXEL GmbHLochhamer Schlag 17D-82166 Gräfelfing
Tel.: +49/89/8 98 68-100Fax: +49/89/8 98 68-111
Niederlassung
PIXEL GmbHIm Gewerbepark C15D-93059 Regensburg
© 2017 PIXEL GmbHEin Unternehmen der PIXEL Group