IT-Development & Consulting Quo Vadis Microsoft? Multiplattform-Entwicklung mit .NET Axel Eckenberger, 09.03.2017 it-people it-solutions 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 2 Multiplattform 2017 PIXEL GmbH - Ein Unternehmen der PIXEL Group - www.pixel.de Folie 3 Multiplatform: Hardware 2017 PIXEL GmbH - Ein Unternehmen der PIXEL Group - www.pixel.de Folie 4 Hardware Systemarchitektur I x86 – 32/64 Bit I ARM – 32/64 Bit Maßgebliche Eigenschaften Geräteklassen I Bildschirmgröße I IoT I Speicher I Phone I Prozessorleistung / Kerne I Tablet I Netzwerkverbindung I PC I Nutzerverhalten und -toleranz I Server I GUI Abhängigkeit 2017 PIXEL GmbH - Ein Unternehmen der PIXEL Group - www.pixel.de Folie 5 Multiplatform: Betriebssysteme 2017 PIXEL GmbH - Ein Unternehmen der PIXEL Group - www.pixel.de Folie 6 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 Google … I Infrastruktur (IaaS) und Dienste (PaaS) I Frei kombinierbarer Leistungsumfang 2017 PIXEL GmbH - Ein Unternehmen der PIXEL Group - www.pixel.de Folie 7 Multiplatform: Entwicklung 2017 PIXEL GmbH - Ein Unternehmen der PIXEL Group - www.pixel.de Folie 8 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 Ein Großteil der Bibliotheken ist plattformunabhängig und kann auf Windows, Linux, OS X oder mit Xamarin verwendet werden I 2017 PIXEL GmbH - Ein Unternehmen der PIXEL Group - www.pixel.de Folie 9 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 10 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 11 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 12 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 13 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 14 Multiplatform: Entwicklungsumgebungen 2017 PIXEL GmbH - Ein Unternehmen der PIXEL Group - www.pixel.de Folie 15 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 16 Konsequenzen für die Entwicklung 2017 PIXEL GmbH - Ein Unternehmen der PIXEL Group - www.pixel.de Folie 17 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 18 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 19 Ausblick 2017 PIXEL GmbH - Ein Unternehmen der PIXEL Group - www.pixel.de Folie 20 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 21 Vielen Dank für die Aufmerksamkeit I Email [email protected] I Twitter @Obalix I Web http://www.pixel.de 2017 PIXEL GmbH - Ein Unternehmen der PIXEL Group - www.pixel.de Folie 22 Zentrale PIXEL GmbH Lochhamer Schlag 17 D-82166 Gräfelfing Tel.: +49/89/8 98 68-100 Fax: +49/89/8 98 68-111 [email protected] www.pixel.de Niederlassung PIXEL GmbH Im Gewerbepark C15 D-93059 Regensburg © 2017 PIXEL GmbH Ein Unternehmen der PIXEL Group