Line-of-Business-Apps mit der Universal Windows Platform … · 2017-09-26 · Universal Windows...

43
Line-of-Business-Apps mit der Universal Windows Platform entwickeln Thomas Claudius Huber @thomasclaudiush

Transcript of Line-of-Business-Apps mit der Universal Windows Platform … · 2017-09-26 · Universal Windows...

Page 1: Line-of-Business-Apps mit der Universal Windows Platform … · 2017-09-26 · Universal Windows Platform entwickeln Thomas Claudius Huber @thomasclaudiush Principal Consultant bei

Line-of-Business-Apps mit der

Universal Windows Platform

entwickeln

Thomas Claudius Huber

@thomasclaudiush

Page 2: Line-of-Business-Apps mit der Universal Windows Platform … · 2017-09-26 · Universal Windows Platform entwickeln Thomas Claudius Huber @thomasclaudiush Principal Consultant bei

▪ Principal Consultant bei Trivadis

▪ Pluralsight-Autor, Buchautor

▪ C#, XAML, TypeScript, Azure

www.thomasclaudiushuber.com

@ThomasClaudiusH

Thomas Claudius Huber

Page 3: Line-of-Business-Apps mit der Universal Windows Platform … · 2017-09-26 · Universal Windows Platform entwickeln Thomas Claudius Huber @thomasclaudiush Principal Consultant bei

Agenda

Die Universal Windows Platform

Line-of-Business mit UWP

Wo geht die Reise hin?

Page 4: Line-of-Business-Apps mit der Universal Windows Platform … · 2017-09-26 · Universal Windows Platform entwickeln Thomas Claudius Huber @thomasclaudiush Principal Consultant bei

Ganz ganz früher ☺

Windows Kernel

Windows API (Win32)

nativer

Code

Runtime

Bibliotheken

Compiler

C++

nativer

Code

Runtime

Bibliotheken

Compiler

andere Sprachen

nativer

Code

Runtime

Bibliotheken

Compiler

VB

Page 5: Line-of-Business-Apps mit der Universal Windows Platform … · 2017-09-26 · Universal Windows Platform entwickeln Thomas Claudius Huber @thomasclaudiush Principal Consultant bei

C++

Einführung von COM 1992

Common Object Model (COM)

Windows Kernel

Windows API (Win32)

nativer

Code

Runtime

Bibliotheken

Compiler

nativer

Code

Runtime

Bibliotheken

Compiler

andere Sprachen

nativer

Code

Runtime

Bibliotheken

Compiler

VB

Page 6: Line-of-Business-Apps mit der Universal Windows Platform … · 2017-09-26 · Universal Windows Platform entwickeln Thomas Claudius Huber @thomasclaudiush Principal Consultant bei

C#

Einführung von .NET 2002

Windows Kernel

Windows API (Win32)

Compiler

Compiler

andere

nativer Code

Microsoft Intermediate Language (MSIL)

VB.NET C++

.NET Framework

Bibliothek

Common Language Runtime (CLR)

JIT

Page 7: Line-of-Business-Apps mit der Universal Windows Platform … · 2017-09-26 · Universal Windows Platform entwickeln Thomas Claudius Huber @thomasclaudiush Principal Consultant bei

Die WinRT in Windows 8

basiert auf COM

Native

Runtime

.NET

Prinzipien

.NET

Metadaten

Klassen, Methoden,

Properties,

Delegates, Events

.winmd-Dateien

Page 8: Line-of-Business-Apps mit der Universal Windows Platform … · 2017-09-26 · Universal Windows Platform entwickeln Thomas Claudius Huber @thomasclaudiush Principal Consultant bei

Die Architektur in Windows 8

WinRT

Windows Kernel

.NET for Windows

Store Apps

Windows Store Apps

C# / VB.NET

C++

XAML DirectX HTML

JavaScript

Chakra

Engine

Desktop Apps

.NET

Framework

4.5

C# /

VB.NET C++

HTML /

JavaScript

Silverlight

Internet

Explorer

Win32 API

Page 9: Line-of-Business-Apps mit der Universal Windows Platform … · 2017-09-26 · Universal Windows Platform entwickeln Thomas Claudius Huber @thomasclaudiush Principal Consultant bei

Universal Apps in Windows 8.1 und

Windows Phone 8.1▪ Zwei Projekte, zwei Kompilate

▪ Shared Project

– wie verlinkte Dateien

Page 10: Line-of-Business-Apps mit der Universal Windows Platform … · 2017-09-26 · Universal Windows Platform entwickeln Thomas Claudius Huber @thomasclaudiush Principal Consultant bei

Universal Windows Apps

in Windows 10

▪ Windows Runtime wurde erweitert

– Universal Windows Platform (UWP)

▪ UWP ist Teil des Windows Kerns von Windows 10

PC Mobile XBox IoT HoloLens

Page 11: Line-of-Business-Apps mit der Universal Windows Platform … · 2017-09-26 · Universal Windows Platform entwickeln Thomas Claudius Huber @thomasclaudiush Principal Consultant bei

.NET Framework 2017

.NET Framework 4.7

vollumfängliches Framework

für Windows

.NET Core

modular und

neu-entwickelt

WPFWindows

FormsASP.NET ASP.NETUWP

Windows Kernel Linux Mac OS

Win

RT

Page 12: Line-of-Business-Apps mit der Universal Windows Platform … · 2017-09-26 · Universal Windows Platform entwickeln Thomas Claudius Huber @thomasclaudiush Principal Consultant bei

Agenda

Die Universal Windows Platform

Line-of-Business mit UWP

Wo geht die Reise hin?

Page 13: Line-of-Business-Apps mit der Universal Windows Platform … · 2017-09-26 · Universal Windows Platform entwickeln Thomas Claudius Huber @thomasclaudiush Principal Consultant bei

Line-of-Business mit UWP?

▪ Data Binding & MVVM

▪ Validierung

▪ Klassische Desktop-Anwendungen

Page 14: Line-of-Business-Apps mit der Universal Windows Platform … · 2017-09-26 · Universal Windows Platform entwickeln Thomas Claudius Huber @thomasclaudiush Principal Consultant bei

Klassisches Databinding

PerformanceFehler erst

zur Laufzeit

Schwieriges

Debugging

Page 15: Line-of-Business-Apps mit der Universal Windows Platform … · 2017-09-26 · Universal Windows Platform entwickeln Thomas Claudius Huber @thomasclaudiush Principal Consultant bei

DEMO:

Die Hürden mit

klassischem Data

Binding

Page 16: Line-of-Business-Apps mit der Universal Windows Platform … · 2017-09-26 · Universal Windows Platform entwickeln Thomas Claudius Huber @thomasclaudiush Principal Consultant bei

Kompiliertes Data Binding in UWP

PerformanceFehler zur

Compile-Zeit

Super

Debugging

Intellisense

Page 17: Line-of-Business-Apps mit der Universal Windows Platform … · 2017-09-26 · Universal Windows Platform entwickeln Thomas Claudius Huber @thomasclaudiush Principal Consultant bei

DEMO:

Kompilierte Data

Bindings

Page 18: Line-of-Business-Apps mit der Universal Windows Platform … · 2017-09-26 · Universal Windows Platform entwickeln Thomas Claudius Huber @thomasclaudiush Principal Consultant bei

ICommand und MVVM

View ViewModel

ListViewFriendsItemsSource

SelectedFriendSelectedItem

Button Command DeleteFriendCommand

Page 19: Line-of-Business-Apps mit der Universal Windows Platform … · 2017-09-26 · Universal Windows Platform entwickeln Thomas Claudius Huber @thomasclaudiush Principal Consultant bei

DEMO:

MVVM umsetzen

Page 20: Line-of-Business-Apps mit der Universal Windows Platform … · 2017-09-26 · Universal Windows Platform entwickeln Thomas Claudius Huber @thomasclaudiush Principal Consultant bei

ICommand und MVVM

View ViewModel

ListViewFriendsItemsSource

SelectedFriendSelectedItem

Button Command DeleteFriendCommand

Page 21: Line-of-Business-Apps mit der Universal Windows Platform … · 2017-09-26 · Universal Windows Platform entwickeln Thomas Claudius Huber @thomasclaudiush Principal Consultant bei

Event Binding mit x:Bind

<Button Click="{x:Bind ViewModel.DeleteFriend}"/>

void DeleteFriend()

void DeleteFriend(object sender, RoutedEventArgs e)

void DeleteFriend(object sender, object e)

Page 22: Line-of-Business-Apps mit der Universal Windows Platform … · 2017-09-26 · Universal Windows Platform entwickeln Thomas Claudius Huber @thomasclaudiush Principal Consultant bei

DEMO:

Event Binding

Page 23: Line-of-Business-Apps mit der Universal Windows Platform … · 2017-09-26 · Universal Windows Platform entwickeln Thomas Claudius Huber @thomasclaudiush Principal Consultant bei

Validierung

▪ Keine Framework-Unterstützung bis jetzt

▪ Lässt sich in MVVM „händisch“ umsetzen

Page 24: Line-of-Business-Apps mit der Universal Windows Platform … · 2017-09-26 · Universal Windows Platform entwickeln Thomas Claudius Huber @thomasclaudiush Principal Consultant bei

DEMO:

Validierung

Page 25: Line-of-Business-Apps mit der Universal Windows Platform … · 2017-09-26 · Universal Windows Platform entwickeln Thomas Claudius Huber @thomasclaudiush Principal Consultant bei

MVVM in UWP für Business Apps

▪ MVVM

– benötitgt mit x:Bind kein ICommand mehr

– x:Bind ist schneller, da Auflösung zur Kompilierzeit

– x:Bind erkennt Fehler im Binding-Path

▪ Validierung

– Keine Framework-Unterstützung: PRISM oder

Eigenbau

Page 26: Line-of-Business-Apps mit der Universal Windows Platform … · 2017-09-26 · Universal Windows Platform entwickeln Thomas Claudius Huber @thomasclaudiush Principal Consultant bei

Weitere Anforderungen an

klassische Desktop Anwendungen▪ Menu, TreeControl, DataGrid

▪ Datenbank-Zugriff

▪ ...

Page 27: Line-of-Business-Apps mit der Universal Windows Platform … · 2017-09-26 · Universal Windows Platform entwickeln Thomas Claudius Huber @thomasclaudiush Principal Consultant bei

DEMO:

Eine klassische

Desktop-App bauen

Page 28: Line-of-Business-Apps mit der Universal Windows Platform … · 2017-09-26 · Universal Windows Platform entwickeln Thomas Claudius Huber @thomasclaudiush Principal Consultant bei

SQL Server Zugriff

▪ Fall Creators Update (FCU) unterstützt .NET

Standard 2.0

▪ System.Data.SqlClient verfügbar

– SqlConnection

– DataTable/DataSet

▪ Klassische Client/Server-Applikationen möglich

Page 29: Line-of-Business-Apps mit der Universal Windows Platform … · 2017-09-26 · Universal Windows Platform entwickeln Thomas Claudius Huber @thomasclaudiush Principal Consultant bei

DEMO:

Datenbank-Zugriff

Page 30: Line-of-Business-Apps mit der Universal Windows Platform … · 2017-09-26 · Universal Windows Platform entwickeln Thomas Claudius Huber @thomasclaudiush Principal Consultant bei
Page 31: Line-of-Business-Apps mit der Universal Windows Platform … · 2017-09-26 · Universal Windows Platform entwickeln Thomas Claudius Huber @thomasclaudiush Principal Consultant bei

DEMO:

Visual Studio

nachbauen

https://github.com/thomasclaudiushuber/Uwp-Visual-Studio-Shell

Page 32: Line-of-Business-Apps mit der Universal Windows Platform … · 2017-09-26 · Universal Windows Platform entwickeln Thomas Claudius Huber @thomasclaudiush Principal Consultant bei

Features, wo Microsoft investieren muss▪ Controls

– Klassiker fehlen:

▪ Menu (UWP Toolkit)

▪ TreeView (kommt mit zukünftigem Update)

▪ DataGrid (Dritthersteller, wie Telerik)

▪ TabControl

▪ Validierung nicht vorhanden

Page 33: Line-of-Business-Apps mit der Universal Windows Platform … · 2017-09-26 · Universal Windows Platform entwickeln Thomas Claudius Huber @thomasclaudiush Principal Consultant bei

Features, wo Microsoft investieren muss▪ Deployment noch nicht ganz einfach

– bis jetzt Store oder SideLoading

– kein ClickOnce oder xcopy

Page 34: Line-of-Business-Apps mit der Universal Windows Platform … · 2017-09-26 · Universal Windows Platform entwickeln Thomas Claudius Huber @thomasclaudiush Principal Consultant bei

Weiterer Resourcen▪ UWP-Community Toolkit:

– https://github.com/Microsoft/UWPCommunityToolkit

▪ Offizielle Samples:

– https://github.com/Microsoft/Windows-universal-

samples

Page 35: Line-of-Business-Apps mit der Universal Windows Platform … · 2017-09-26 · Universal Windows Platform entwickeln Thomas Claudius Huber @thomasclaudiush Principal Consultant bei

Agenda

Die Universal Windows Platform

Line-of-Business mit UWP

Wo geht die Reise hin?

Page 36: Line-of-Business-Apps mit der Universal Windows Platform … · 2017-09-26 · Universal Windows Platform entwickeln Thomas Claudius Huber @thomasclaudiush Principal Consultant bei

PC Mobile XBox IoT HoloLens

Page 37: Line-of-Business-Apps mit der Universal Windows Platform … · 2017-09-26 · Universal Windows Platform entwickeln Thomas Claudius Huber @thomasclaudiush Principal Consultant bei

WPFAngular

React

Windows

Forms

UWP

Electron

Cordova

Xamarin

Client side

Page 38: Line-of-Business-Apps mit der Universal Windows Platform … · 2017-09-26 · Universal Windows Platform entwickeln Thomas Claudius Huber @thomasclaudiush Principal Consultant bei

Desktop MobileWeb

WPF

Windows Forms

UWPXamarin

Angular / ReactElectron Cordova

Page 39: Line-of-Business-Apps mit der Universal Windows Platform … · 2017-09-26 · Universal Windows Platform entwickeln Thomas Claudius Huber @thomasclaudiush Principal Consultant bei

Desktop

WPF

Windows Forms

UWP Windows 7

Page 40: Line-of-Business-Apps mit der Universal Windows Platform … · 2017-09-26 · Universal Windows Platform entwickeln Thomas Claudius Huber @thomasclaudiush Principal Consultant bei

Desktop

WPF

Windows Forms

UWP Windows 10

Page 41: Line-of-Business-Apps mit der Universal Windows Platform … · 2017-09-26 · Universal Windows Platform entwickeln Thomas Claudius Huber @thomasclaudiush Principal Consultant bei

“We will fill the gaps”Kevin Gallo, Microsoft 2016

Page 42: Line-of-Business-Apps mit der Universal Windows Platform … · 2017-09-26 · Universal Windows Platform entwickeln Thomas Claudius Huber @thomasclaudiush Principal Consultant bei

Summary

▪ UWP hat Potential mit Windows 10 im Unternehmen

– Könnte WPF / WinForms ablösen

▪ UWP ist keine Wahl für Cross-Platform-Lösungen

– Xamarin oder Electron

▪ Wenn Unternehmen auf Windows 10 umsteigen,

wird es interessant

– Windows 7 Support läuft im Januar 2020 aus

Page 43: Line-of-Business-Apps mit der Universal Windows Platform … · 2017-09-26 · Universal Windows Platform entwickeln Thomas Claudius Huber @thomasclaudiush Principal Consultant bei

Danke

[email protected]

www.trivadis.com

www.thomasclaudiushuber.com

@ThomasClaudiusH