Mobile Business Apps - · PDF fileMobile Business Apps Integration On Premise/Cloud...

Preview:

Citation preview

Mobile

Business

Apps

Native

Cross-

Platform-

Entwicklung

App Demo

Code DemoFazit

Architektur

ALM

Agenda

Mobile Business Apps

Mobile Business Apps

Integration

On Premise/CloudSkalierbarkeitTransaktionenComplianceVerfügbarkeitBackendarchitekturBus-Systeme

Frontend/Device

Multiple BetriebssystemeMultiple FormfaktorenDevice FeaturesDesign/User ExperienceKomplexe FrontendlogikKonfigurierbarkeitBusiness Use Cases

Anbindung

Online/OfflineSynchronisierungFehlerbehandlungProtokolleSecurityDatenvolumen

ALM

Architektur/PatternsContinuous FeedbackContinuous TestingContinuous DeliveryDeployment(Store vs. Sideloading)

Cloud

Frontends/Devices Backend

1

2

3

4

Frontend/Devices

Multi-Plattform

Multi-Formfaktor

UI/UX Design

Hardware FeaturesGeschäftslogik

Push Notifications

1

Anbindung

2

Protokolle

Datenvolumen

Security

Verschlüsselung

On-/Offline-

fähigkeit

Fehlerbehandlung

Integration

3

3

Enterprise

Backends

Cloud-Integration

ArchitekturtypenSchnittstellen

Performance

ALM

Continuous

Testing

Continuous

Feedback

Continuous DeliveryStore

Sideloading

4

Cross-Platform Architektur

One App

Multiple Devices

One App

Multiple Devices

Xamarin

UWP

WPF

Hoher Grad des Code Sharing

XAML als durchgängiges UI Markup

Unterstützung der Enterprise-relevanten Plattformen

Wiederverwendung vorhandener .NET Skills und Tools

Warum Xamarin?

Shared C# Mobile

iOS UI (C#) Android UI (C#) Windows UI (C#)

Shared C# Client/Server

C# Server

Windows Server

Linux Server (Mono)

Native UI und Performance

100% Zugriff auf native APIs

Einheitliche Entwicklungstools

Hoher Grad des Code Sharing

Xamarin

Device Features (C#)

Plattformspezifische Views (C#/Storyboard)

Device Features (C#) Device Features (C#)

Gemeinsame Geschäftslogik (C#)

Plattformspezifische Views (C#/XAML)

Gemeinsame ViewModels (C#)

Plattformspezifische Views (C#/AXML)

Xamarin.Forms

Gemeinsame ViewModels (C#)

Gemeinsame Views (C#/XAML)

Device Features (C#) Device Features (C#) Device Features (C#)

Gemeinsame Geschäftslogik (C#)

Warum

Xamarin.Forms? Xamarin.FormsXamarin.iOS /

Xamarin.Android

• Business Apps mit

Dateneingaben

Fokus mehr auf Code-Sharing

• Apps mit sehr speziellen UIs und

Interaktionspatterns

• Verwendung von zahlreichen

plattformspezifischen APIs

Fokus mehr auf UI-Modifikationen

Xamarin.Forms

Beispiel

Warum UWP? - UWP Apps laufen auf allen Windows 10 Geräten

Warum nicht

Xamarin.Forms

UWP?

- Damals noch Technical Preview

Mögliche Option für Enterprise Apps

X-Suzzle im Microsoft Store

Warum WPF?

48% Windows 7

23% Windows 10

11% Windows 8/8.1

8% Windows XP

6% Mac OS X

2% Linux 2% Andere

Marktanteile Desktop Oktober 2016

- Windows 7: Die Plattform im Desktop-Bereich

- .NET Apps im Windows Store

- Legacy Code als Startpunkt für Cross-Platform Entwicklung

https://www.netmarketshare.com

Gesamt-

architektur

Microsoft AzureSQL Server

Service Bus

Dynamics CRM

ActiveDirectory

Business Logic & Services

Integration Services

Cordova Xamarin Excel

Office 365 Power BI SharePointASP.NETWeb API, Web Apps

ResponsiveWeb

UWP WPF

Gesamt-

architektur

Microsoft AzureSQL Server

Service Bus

Dynamics CRM

ActiveDirectory

Business Logic & Services

Integration Services

Cordova Xamarin Excel

Office 365 Power BI SharePointASP.NETWeb API, Web Apps

ResponsiveWeb

UWP WPF

Client-ArchitekturFrontend

Backend

REST API

HockeyApp

ViewModels

Services, Business Logic Models/Entities

Infrastructure

Local Data Store

Hardware Features

Xamarin.Forms UWP

Local Data Access

WPF

MvvmCross

Adapter Remote Data Access

ALM

ALM

Continuous Build

Continuous UI Testing

Continuous Build Build Server

Team Foundation Server/Visual Studio Team

Services

Build Agent(on-premise/Azure)

Mac OS X Build Host/MacinCloud

Visual Studio

Xamarin Android

AndroidSDK

Xamarin Studio

XamariniOS

iOS SDKXCode

App

App Code

Unit TestsDeveloper

Continuous Build

UI Testing

Coded UI Test

• WPF

• UWP

Xamarin.UI

Test

• iOS

• Android

[Test]public void LoginScreen_ShowsErrorMessage_WhenCredentialsAreInvalid() {

var screen = new LoginScreen(app);screen.EnterUserName("InvalidUserName");screen.EnterPassword("InvalidPassword");screen.TapLogIn();var errorMessage = screen.GetErrorMessage();Assert.AreEqual("Anmeldung fehlgeschlagen.", errorMessage);

}class LoginScreen {

…public LoginScreen(IApp app) {

this.app = app;}public void EnterUserName(string userName) {

app.WaitForElement(c => c.TextField("UserNameEntry"));app.ClearText(c => c.TextField("UserNameEntry"));app.EnterText(c => c.TextField("UserNameEntry"), userName);

}…

}

UI Testing

Xamarin.UITest

iOS und Android

Fragmentierung

iOS Android

Gerätetypen 22 > 19.000

Sprachen 20 39

Bildschirmgrößen 6 27

OS Versionen

63%

29%

8%

27.11.2016

iOS 10 iOS 9 Früher

24%

34%

25%

14%

3%

7.11.2016

Marshmallow Lollipop

KitKat Jelly Bean

Früher

iOS und Android

Fragmentierung

0%

10%

20%

30%

40%

50%

60%

70%

80%

90%

100%

0 50 100 150 200 250 300 350 400 450 500 550 600 650 700 750 800

US M

akt

Ab

deck

un

g

Anzahl der Geräte

Quelle: Open Signal

25%: 32 Geräte

50%: 125 Geräte

75%: 379 Geräte

90%: 702 Geräte

Xamarin

Test CloudXamarin Test Cloud

IPA/APK + Tests

Web ServerApplication

+ Tests

Results

Developer

Xamarin

Test Cloud

https://testcloud.xamarin.com

Xamarin

Test Cloud

App DemoCode Demo

Showcase

„ShowTime“

Microsoft AzureSQL Server

Service Bus

Dynamics CRM

ActiveDirectory

Business Logic & Services

Integration Services

Cordova Xamarin Excel

Office 365 Power BI SharePointASP.NETWeb API, Web Apps

ResponsiveWeb

UWP WPF

Demo

Fazit

50%

20%

8%

8%

14%

Codeaufteilung über alle Plattformen

Plattformübergreifender Code

Xamarin.Forms Code

Xamarin.Android Code

Xamarin.iOS Code

UWP Code

Code Sharing

Code Sharing

64%

25%

11%

Codeaufteilung iOS/Android

Plattformübergreifender Code

Xamarin.Forms Code

Xamarin.iOS oder Xamarin.Android Code

Xamarin

UWP

WPF

Hoher Grad des Code Sharing

Unterstützung der business-relevanten Plattformen

Natives Frontenddesign und User Experience

Native Performance auf dem Endgerät

Nutzung vorhandener Tools und ALM-Prozesse

Nutzung vorhandenen .NET Know-Hows

Wirtschaftlichkeit

Vielen Dank

SDX AG

Speicherstraße 1, 60327 Frankfurt

Landwehrstraße 61, 80336 München

Markus DemmlerPrincipal eXpert

Markus.Demmler@sdx-ag.de

Denis ThomasSenior eXpert

Denis.Thomas@sdx-ag.de

Recommended