Vortrag zur Developer Week 2013 über die Entwicklung professioneller Business-Apps unter Windows 8. Beinhaltet: Windows 8 Merkmale, Layout, Design, Investitionsschutz, Programmierplattform, Code Sharing, Anforderungen an Apps, Bibliotheken, WinRT-Erfahrungen, Business-Features, LOB-Szenarien, Enterprise-Integration und Management.
2. Microsoft Application Platform
Visual Studio
Team Foundation Server
SQL Server
SharePoint Server
BizTalk Server
eXperts für Microsoft
Projektleiter
Architekt
Enterprise Developer
Technologieberater
Microsoft-Partner
3x Gold Partner
SQL Server Black Belt
ALM/DPE-Partner
Windows 8 MAAP
Innovation Services
Windows 8 Business-Apps
Surface Pro vs. iPad
HTML5 vs. Native
BI Self Service
Agil mit Scrum & TFS
Kompetenzen
Application Development
Business Intelligence
ALM/TFS
Privatbilanz, WorkTime
Kunden
Zentral-IT und Fach-IT
Alte Leipziger
Deutsche Telekom
Deutsche Post
Commerzbank
Fresenius
DekaBank
SEB
PwC
Deutsche Bahn
Deutsche Börse
Universal Investment
EADS
Helaba
3. 26.06.2013 SDX AG 3
Innovation Services
Technical Council (2-3 Stunden)
Windows 8 Developer Workshop (1-5 Tage)
Microsoft App Acceleration Program
Prototyping einer Windows 8 Business-App (5 Tage)
Unterstützung bei Pilotierung einer Windows 8 Business-App (15 Tage)
Privatbilanz-App auf Anfrage
SDX Packaged Services: Windows 8
7. 26.06.2013 SDX AG 7
Windows 8
Windows 8-Merkmale nutzen!
Live Tiles, Secondary Tiles
App-Ökosystem: App Contracts
Bedienung: Touch & Tastatur/Maus
Snapped State
Microsoft Design („Metro“)
8. 26.06.2013 SDX AG 8
Windows 8
Design-Erfahrungen
Designer, Design-Prozess!
Interaction Design (Storyboards, Wireframes)
Visual Design (Grafiken, Farben, Animationen, …)
Keep it simple!
Kontext! Was will der Anwender tun? Welche Daten braucht er?
Microsoft Design für LOB/Business-Apps geeignet?
Content before Chrome: Nicht um jeden Preis!
Evolution des Microsoft Designs
9. 26.06.2013 SDX AG 9
Windows 8
Formular-Layouts
Einspaltiges Layout
Eingabereihenfolge entscheidend
App ist im Snapped State
10. 26.06.2013 SDX AG 10
Windows 8
Formular-Layouts
Mehrseitiges Layout
„Wizard“
Eingabereihenfolge entscheidend
11. 26.06.2013 SDX AG 11
Windows 8
Formular-Layouts
Zweispaltiges Layout
Kurze Formulare, kein vertikaler Bildlauf
Optimale Nutzung des horizontalen Bereichs
12. 26.06.2013 SDX AG 12
Windows 8
Formular-Layouts
3 oder mehr Spalten
Eingabereihenfolge nicht entscheidend
Optimale Nutzung des horizontalen Bereichs
18. 26.06.2013 SDX AG 18
App-Entwicklung
Investitionsschutz
Bekannte Technologien und Patterns
.NET, C#/XAML und MVVM
Oder „normales“ HTML/JavaScript
Bekannte professionelle Tools
Visual Studio
Team Foundation Server
Blend for Visual Studio
Bekannte Methodiken
Unit Tests
Code Analysis, StyleCop/FxCop
19. 26.06.2013 SDX AG 19
App-Entwicklung
WinRT als Programmierplattform
Desktop Apps
C
C++
Win32
C#
VB
.NET,
SL
HTML
Java-
Script
Internet
Explorer
Windows Store Apps
Communication
& Data
Devices & Printing
WinRT APIs
Graphics & Media
Application Model
XAML
JavaScript
WinJS/Chakra
HTML / CSS
C
C++
C#, VB
.NET 4.5 Core
Windows Kernel Services
SystemServicesView
Model
Controller
Kernel
20. 26.06.2013 SDX AG 20
App-Entwicklung
WinRT-Sprachen: Die Qual der
Wahl
Grundsätzlich: WinRT aus allen Sprachen nutzbar
C#/XAML, .NET
Unit Tests, Dependency Injection, WCF, Fehlerbehandlung, …
Hohe Design-Funktionalität in Blend
.NET-Bibliotheken nicht ad hoc nutzbar
JavaScript/HTML
Sehr gut zur Darstellung von HTML-Inhalten
Nutzung bestehender JavaScript-Bibliotheken
Designer-Unterstützung in Blend
Abgrenzung: Keine plattformübergreifenden HTML-Anwendungen
21. 26.06.2013 SDX AG 21
App-Entwicklung
Code Sharing
Windows 8 und Windows Phone 8
WinRT & WinPRT: „Add as Link…“
XAML: Gemeinsame/Ähnliche Controls
Microsoft Design Prinzipien
Kein „Write once, run everywhere“ :(
Portable Class Libraries
Shared .NET Code Backend, MVVM
.NET 4.5, .NET 4.5 für WinRT, .NET für Windows
Phone, Silverlight, Xbox, Mono, …
Immer mehr portable Bibliotheken
Investitionsschutz (auch für die Zukunft)
22. 26.06.2013 SDX AG 22
App-Entwicklung
App-Ausführungsmodell
Vollbild
Eine App im Vordergrund
App Lifecycle
Sandboxing
Ressourcenzugriff
App-Manifest
.NET und WinRT
„Better together“
Eingeschränktes .NET
Asynchronität
CoreOS
App Container („Sandbox“)
Ihre App
(C#/XAML)
.NET 4.5
Core APIs
WinRT APIs
23. 26.06.2013 SDX AG 23
App-Entwicklung
Anforderungen an Apps
Multiple Devices
Touch First
Fast & Fluid
Mobilität
27. 26.06.2013 SDX AG 27
App-Entwicklung
Anforderungen an Apps
Multiple Devices
Touch First
Fast & Fluid
Mobilität
28. 26.06.2013 SDX AG 28
App-Entwicklung
Bibliotheken für .NET/WinRT
Kommerziell
Syncfusion: Essential Studio for WinRT (XAML)
Telerik: RadControls for Windows 8 (HTML + XAML)
ComponentOne: Studio for WinRT (XAML)
DevExpress: Windows 8 XAML
Mindscape: Metro Elements (XAML)
Frei verfügbar
MVVM Light Toolkit
Caliburn Micro
Prism for the Windows Runtime
Enterprise Library 6.0 (ARM)
29. 26.06.2013 SDX AG 29
App-Entwicklung
Bibliotheken für .NET/WinRT
Mocking
Microsoft Fakes (ab VS 2012 Premium)
EasyMoq (mittels T4)
Eingabevalidierung
WinRT XAML Validation
Prism for the Windows Runtime
Kleine Helfer
Blend for Visual Studio 2012
Remote Tools for Visual Studio 2012
Syncfusion Metro Studio 2
43. 26.06.2013 SDX AG 43
Business
Deployment
Optionen
Direkt: Powershell-Skript
Direkt: Powershell-Wrapper mit Setup-Exe
Via System Center Configuration Manager
Via Microsoft InTune (Cloud) Corporate Marketplace
44. 26.06.2013 SDX AG 44
Business
Management
Optionen
Direct Distribution direkt auf die Zielrechner
Corporate Marketplace Zusatzkosten
InTune + Unternehmensportal-App (6$/Gerät/Monat)
SCCM mit InTune Add-In (4$/Gerät/Monat)
Apps einschränken mit AppLocker
45. 26.06.2013 SDX AG 45
Business
Sideloading: gut oder schlecht?
Unproblematisch für Entwickler/Tester
Unproblematisch für große Unternehmen
Windows 8 Enterprise
Secondary Sideloading-enabled Product Key (100er-Pack für
3000$)
Problematisch für KMUs + „Speziallösungen“
Kostenfaktor, kein „einfaches“ Windows 8
Alternative Strategien erforderlich
Z.B. public + separate Lizenzierung/Abonnement
Aber: Zertifizierungsprozess, Updates, …
Kein „privater“ Store-Bereich (vgl. Windows Phone)
47. 26.06.2013 SDX AG 47
Zusammenfassung
Fazit
Es ist nicht alles Gold was glänzt…
WinRT v1, eingeschränktes .NET
Deployment
Hardwarezugriff Windows 8.1
Kiosk-Modus, VPN Windows 8.1
Apps haben Einschränkungen
Aber…
Umsetzung von Apps generell kein Problem
Anbindung bestehender Enterprise-Backends möglich
Viele Szenarien, wo Apps Sinn machen
Die SDX AG unterstützt als Beratungsfirma die IT von Unternehmenskunden bei der Umsetzung komplexer Enterprise-Projekte im Bereich BI, Application Development und ALM/TFS. Unter Application Development verstehen wir dabei jede Art von Individualsoftware im Bereich Web, Windows oder Mobile Development. In den üblicherweise gemischten Projektteams besetzen unsere eXperts typischerweise die technischen Rollen vom Developer über den Architekten bis zum Projektleiter..Neben klassischem Projektgeschäft und Consulting-Leistungen bieten wir auch sogenannte Innovation Services an, d.h. wir unterstützen unsere Kunden bei der Einführung und Etablierung innovativer Microsoft-Technologien und -Produkte zur Projektumsetzung. Dazu zählen unsere Technical Councils zur Motivation von Technologien genauso wie tiefergehende Developer-Workshops und Trainings sowie die Erstellung von PoCs/Piloten.Wir sind ausschließlich auf der Microsoft-Plattform unterwegs und verstehen uns hier als Technologie-Spezialisten. Unsere festangestellten Mitarbeiter sind Microsoft-zertifiziert und SDX selbst ist 4-facher Gold-Partner der Microsoft sowie in mehreren weiteren Programmen der Microsoft geführt.
Live TileSemantischer Zoom, Anzeigemodus, Drag&DropDokumenteÖffnen von DokumentenHinzufügen mit File Open Picker App-ÖkosystemTeilen von Dokumenten allg. LOB-App-ÖkosystemSnapped State, Öffnen von URLsBedienbarkeit mit Tastatur/Maus
Warum sollten die Merkmale genutzt werden?Sie machen Windows 8 Apps aus, Benutzer erwarten sie!Sie machen Anwender produktiver: Live Tiles, App-Ökosystem, Snapped State
http://betanews.com/2012/05/04/how-suitable-is-windows-8-metro-for-business-developers/Design bei LOB-Apps nicht entscheidend? Falsch!Bei Desktop-Anwendungen: Standard-Controls irgendwie platzieren, läuft, sieht einigermaßen aus, ist bedienbarBei Apps: Klappt nicht! Gute UX ist Key, damit App überhaupt einigermaßen gut bedient werden kann
Allgemein: abhängig von der Aufgabe und vom TeamEntwicklung mit JS/HTML:Ergebnis ist „normale“ Windows Store AppWinJS als proprietärer UnterbauBestehendes JS-Frameworks können weiter verwendet werdenKeine plattformübergreifenden Webseiten aber leichte Integration/Transformation von HTML5-Webseiten in Windows-Apps
Botschaft: Apps haben andere Anforderungen als Desktop-AnwendungenMultiple Devices:Synchronisation von Einstellungen/DatenLauffähigkeit auf Desktop/Notebook/Tablet: Auflösungen, Ausrichtungen, Tastatur/Maus vs. TouchTouch FirstOptimierung auf Touch optimierte UIBedienbarkeit per Tastatur/Maus sicherstellenFast & Fluid:Gerade bei Touch-Bedienung notwendigDirektes Benutzer-FeedbackProzess-IndikatorenMobilität/Konnektivität:Offline-Fähigkeit Architektur-relevantUmgang mit Verbindungs-Aussetzern, FehlerbehandlungUI-Design:User ExperienceInteraction Design (Storyboards, Wireframes)Visual Design (Graphics, Colors, Animations, …)
Botschaft: Apps haben andere Anforderungen als Desktop-AnwendungenMultiple Devices:Synchronisation von Einstellungen/DatenLauffähigkeit auf Desktop/Notebook/Tablet: Auflösungen, Ausrichtungen, Tastatur/Maus vs. TouchTouch FirstOptimierung auf Touch optimierte UIBedienbarkeit per Tastatur/Maus sicherstellenFast & Fluid:Gerade bei Touch-Bedienung notwendigDirektes Benutzer-FeedbackProzess-IndikatorenMobilität/Konnektivität:Offline-Fähigkeit Architektur-relevantUmgang mit Verbindungs-Aussetzern, FehlerbehandlungUI-Design:User ExperienceInteraction Design (Storyboards, Wireframes)Visual Design (Graphics, Colors, Animations, …)
Datenzugriff:Lokal: App-Speicher (Local/Roaming/Temp) SQLite als lokale Datenbanklösung nutzbarServices: WCF, ASMX, OData, Sockets, SSL Enterprise: Bestehende Backends weiter nutzen!Authentifizierung:Integrated (Domain Auth)SmartcardZertifikateOAuthBenutzerdefiniert (Username/Passwort, …)Kryptografie:Nutzung der DPAPI: Verschlüsslung mit Benutzer, Maschine, AD Security Principal, ZertifikatVerschiedenste symmetrische und asymmetrische Algorithmen
Datenzugriff:Lokal: App-Speicher (Local/Roaming/Temp) SQLite als lokale Datenbanklösung nutzbarServices: WCF, ASMX, OData, Sockets, SSL Enterprise: Bestehende Backends weiter nutzen!Authentifizierung:Integrated (Domain Auth)SmartcardZertifikateOAuthBenutzerdefiniert (Username/Passwort, …)Kryptografie:Nutzung der DPAPI: Verschlüsslung mit Benutzer, Maschine, AD Security Principal, ZertifikatVerschiedenste symmetrische und asymmetrische Algorithmen
Datenzugriff:Lokal: App-Speicher (Local/Roaming/Temp) SQLite als lokale Datenbanklösung nutzbarServices: WCF, ASMX, OData, Sockets, SSL Enterprise: Bestehende Backends weiter nutzen!Authentifizierung:Integrated (Domain Auth)SmartcardZertifikateOAuthBenutzerdefiniert (Username/Passwort, …)Kryptografie:Nutzung der DPAPI: Verschlüsslung mit Benutzer, Maschine, AD Security Principal, ZertifikatVerschiedenste symmetrische und asymmetrische Algorithmen
Datenzugriff:Lokal: App-Speicher (Local/Roaming/Temp) SQLite als lokale Datenbanklösung nutzbarServices: WCF, ASMX, OData, Sockets, SSL Enterprise: Bestehende Backends weiter nutzen!Authentifizierung:Integrated (Domain Auth)SmartcardZertifikateOAuthBenutzerdefiniert (Username/Passwort, …)Kryptografie:Nutzung der DPAPI: Verschlüsslung mit Benutzer, Maschine, AD Security Principal, ZertifikatVerschiedenste symmetrische und asymmetrische Algorithmen
Datenzugriff:Lokal: App-Speicher (Local/Roaming/Temp) SQLite als lokale Datenbanklösung nutzbarServices: WCF, ASMX, OData, Sockets, SSL Enterprise: Bestehende Backends weiter nutzen!Authentifizierung:Integrated (Domain Auth)SmartcardZertifikateOAuthBenutzerdefiniert (Username/Passwort, …)Kryptografie:Nutzung der DPAPI: Verschlüsslung mit Benutzer, Maschine, AD Security Principal, ZertifikatVerschiedenste symmetrische und asymmetrische Algorithmen
Desktop:Server/Admin-Tools: Hardwarezugriff, intensives MultitaskingLastverarbeitung im HintergrundAktionslastige Anwendungen, die Chrome erfordern (Office, Visual Studio, …) Anwendungen, bei denen es auf Präzision mit der Maus ankommtWeb:Plattformübergreifende AppsKein/Wenig Integration erforderlich
Außendienst: Tablet-Formfaktor und Mobilität idealKundenberatung: visuelle Datenaufbereitung und „Anfassen der Daten“Monitoring&Action: Beispiel Krankenhaus und ArztvisitenCompanion-Apps: viele Szenarien als Ganzes zu groß, Unterteilung bzw. Umsetzung passender Use Cases sinnvoll oftmals kein Ersatz, sondern eine sinnvolle Ergänzung zu bestehenden Anwendungen
Mobilität: sehr gut für Tablets geeignetFlexibilität: über verschiedenste Geräte lauffähig, Tablet/Notebook/Desktop, Touch/Tastatur+Maus, Windows 8 und Windows RTEnterprise: gut integrierbar und managebar, Business-Features, BYOD Prinzipiell: überall dort, wo man iPad einsetzen will, aber von IT-Seite nicht darf Stichworte zur Abgrenzung zu iPad/Android: Domain, Bitlocker, UEFIExperience: Benutzer werden durch gutes UI-Design und Nutzung der Windows 8-Spezifika optimal in ihren Arbeitsprozessen unterstützt
Normaler Weg: Windows Store Signiertes APPX-Package, ZertifizierungsprozessDeveloper Sideloading: Dev-Zertifikat, direktes Deployment über Powershell-SkriptEnterprise Sideloading:Voraussetzungen:Windows 8 Enterprise: Domäne, Group Policy, Trusted ZertifikatWindows 8 (sonstige), Windows RT: Sekundärer Sideloading-enabledProduct Key, Group Policy, Trusted ZertifikatDirect Distribution: Powershell-Skript, kein Management oder SCCM/InTune
Normaler Weg: Windows Store Signiertes APPX-Package, ZertifizierungsprozessDeveloper Sideloading: Dev-Zertifikat, direktes Deployment über Powershell-SkriptEnterprise Sideloading:Voraussetzungen:Windows 8 Enterprise: Domäne, Group Policy, Trusted ZertifikatWindows 8 (sonstige), Windows RT: Sekundärer Sideloading-enabledProduct Key, Group Policy, Trusted ZertifikatDelivery/Management:Direct Distribution: Powershell-Skript, kein ManagementCompany Hub („Self-Service Portal“), „privater Windows Store“, umfassendes Management (Deployment, Updates, BYOD) Nutzung bestehender Admin-Tools (System Server Configuration Manager oder Microsoft InTune)
Normaler Weg: Windows Store Signiertes APPX-Package, ZertifizierungsprozessDeveloper Sideloading: Dev-Zertifikat, direktes Deployment über Powershell-SkriptEnterprise Sideloading:Voraussetzungen:Windows 8 Enterprise: Domäne, Group Policy, Trusted ZertifikatWindows 8 (sonstige), Windows RT: Sekundärer Sideloading-enabledProduct Key, Group Policy, Trusted ZertifikatDelivery/Management:Direct Distribution: Powershell-Skript, kein ManagementCompany Hub („Self-Service Portal“), „privater Windows Store“, umfassendes Management (Deployment, Updates, BYOD) Nutzung bestehender Admin-Tools (System Server Configuration Manager oder Microsoft InTune)