Windows 8 und Metro-Apps

Christian Moser
moc@zuehlke.com




                           Folie 1
                           25. Oktober 2011




                           Christian Moser

                           © Zühlke 2011
Was ist neu in Windows 8?




                                                   Metro-Style Apps für Windows
                                                   8
                                                   Folie 2
                                                   25. Oktober 2011




                                                   Christian Moser

Metro-Style Apps für Windows 8 | Christian Moser   © Zühlke 2011
Optimiert für Tablet-PC’s


Microsoft möchte mit Windows 8 dem Apple iPad
Konkurrenz bieten:
•      Neuer Lock-Screen
•      Neue Touch-Oberfläche (Metro-UI)
•      Lauffähig auf ARM-Prozessoren
•      Batteriesparend und ressourcenarm
•      Windows Store
•      Windows Azure integration
•      Connected-Standby und
       Background-Tasks

Metro-Style Apps für Windows 8 | Christian Moser   25. Oktober 2011   Folie 3   © Zühlke 2011
Neues auf dem Desktop


•      Startet in wenigen Sekunden!
•      Neuer Task Manager
•      Verbessertes Kopieren
•      Explorer mit Ribbon
•      «Factory Reset» und
       Refresh-Funktion
•      Internet Explorer 10
•      Automatische Synchronisation
       in die Cloud (Sky-Drive)
•      Mounten von ISO und VHD

Metro-Style Apps für Windows 8 | Christian Moser   25. Oktober 2011   Folie 4   © Zühlke 2011
Die Metro-Oberfläche




                       Metro-Style Apps für Windows
                       8
                       Folie 5
                       25. Oktober 2011




                       Christian Moser

                       © Zühlke 2011
Metro-Desktop



Der neue Lock-Screen
Beispiele von Metro-Style Apps
Die Metro-Designprinzipien


•   Pride in craftsmanship
    Eine gute User Experience entsteht nur durch ein
    sauberes Handwerk in allen Disziplinen
•   Be fast and fluid
    Apps sollen responsive, intuitiv, touch-optimiert
    und smooth sein.
•   Authentically Digital
    Verbunden, dynamisch, lebendig, starke Farben,
    bewegt
•   Do more with less
    Inhalte statt Chrom, gut in etwas sein
•   Win as one
    Synergien nutzen, Integriert und Vernetzt
    Redundanz vermeiden, Standarts einhalten,
                                                        © Zühlke 2011
Umdenken – von Desktop zu Metro




  Viele unnötige
  Linien und
  Rahmen




                                                   Reduced to
                                                   the max

Metro-Style Apps für Windows 8 | Christian Moser                25. Oktober 2011   Folie 9   © Zühlke 2011
Interaktion mit dem Metro-Desktop




                                                               Charms
                                                               (Die 5 wichtigsten Systemfunktionen,
           Taskwechsel                                         sind immer erreichbar)




  Erscheinen, wenn mit dem Finger
  über den Touch-Rand gewischt wird.




                                                   App-Bars
Metro-Style Apps für Windows 8 | Christian Moser        25. Oktober 2011   Folie 10    © Zühlke 2011
Variationen, die jede App unterstützen
sollte

  Snapped und Vollbild                             Horizontal und Vertikal                Bildschirmgrössen




                                                                                             Auflösungen (dpi)




Metro-Style Apps für Windows 8 | Christian Moser                      25. Oktober 2011   Folie 11       © Zühlke 2011
Windows 8 – Touch-Gesten




                                                                            Die Windows Touch-
                                                                            Sprache ist mit nur
                                                                            7 Gesten einfach
                                                                            erlernbar und intuitiv.

                                                                            Sollte wenn möglich
                                                                            nicht erweitert werden.


Metro-Style Apps für Windows 8 | Christian Moser   25. Oktober 2011   Folie 12          © Zühlke 2011
Layout-Raster



                                                           Ein durchgängiges
                                                           Layout-Raster sorgt
                                                           für ein konsistentes
                                                           Erscheinungsbild.




                Visual Studio 11 bietet dafür
                            fertige Templates
                                                Folie 13            © Zühlke 2011
Komfortable Verwendung
auf dem Tablet

Viele Personen halten Tables mit zwei Händen
 Alle wichtigen Funktionen sollten dabei komfortabel erreichbar sein




                                                   Icons auf der App-Bar sollten
                                                   links und rechts angeordnet werden




            Durchgeführte Usability-Studie            Split-Modus der Tastatur
Metro-Style Apps für Windows 8 | Christian Moser        25. Oktober 2011   Folie 14   © Zühlke 2011
Contracts


•      Applikationen interagieren über «Contracts» miteinander,
       ohne etwas voneinander zu wissen.
•      Jede Applikation kann die Contracts, die Sinn machen anbieten
       oder nutzen
•      Windows 8 unterstützt drei Contracts:

          Share (Push Content)                     Picker (Pull Content)                 Search (Find Content)




Metro-Style Apps für Windows 8 | Christian Moser                      25. Oktober 2011   Folie 15     © Zühlke 2011
Live Tiles


•      Icons sind veraltet, statisch, langweilig und bieten wenig Nutzen




•      Live Tiles sind lebendig, persönlich, anziehend aktuell und informativ




•      Apps können Inhalte als sekundäre Tiles mit «deep link» auf den Desktop
       stellen (Wetter-Standorte, Freunde, wichtige Aktienkurse,…)

Metro-Style Apps für Windows 8 | Christian Moser   25. Oktober 2011   Folie 16   © Zühlke 2011
Cloud-Integration


•      Der Nutzer loggt sich einmal mit einem Windows-Live
       Benutzer bei Windows an
•      Jede Metro-Style App erhält in der Cloud Speicherplatz für Benutzer-
       Einstellungen und kleinere Inhalte
•      So können Einstellungen einfach zwischen mehreren Rechnern
       synchronisiert werden:




 Beginnt ein eBook zu lesen und muss weg…          …das Buch öffnet sich auf der richtigen Seite
Metro-Style Apps für Windows 8 | Christian Moser        25. Oktober 2011   Folie 17   © Zühlke 2011
Zusammenfassung –
Was macht eine gute Metro-App aus

1. Erscheint vollständig im Metro-Style Design
2. Hält sich an alle Designprinzipien von Metro
3. Fühlt sich schnell und flüssig an
4. Unterstützt Skalieren, Snapping und Ausrichtung auf eine sinnvolle Art
5. Implementiert sinnvolle Contracts (Search, Share, Picker)
6. Bietet wertvolle Informationen auf ihrem Live-Tile an
7. Fühlt sich immer verbunden, aktuell und lebendig
8. Nutzt die Funktionen der Cloud zur Daten-Synchronisierung




                                                           Folie 18   © Zühlke 2011
Metro-Style Apps
entwickeln



                   Metro-Style Apps für Windows
                   8
                   Folie 19
                   25. Oktober 2011




                   Christian Moser

                   © Zühlke 2011
Windows Runtime (WinRT)


•   Neues Subsystem in
    Windows 8
•   API für Metro-Style Apps
•   Native in C++ (COM-ähnlich)
•   Natürliche Projektion der API
    in verschiedene Sprachen
•   Entwicklung mit C#/VB/C++
    und XAML oder JS und HTML
•   WinRT ist weder WPF noch Silverlight!
•   Ist erst ab Windows 8 verfügbar
    das heisst Metro-Style Apps laufen nur unter Windows 8
        und höher!
                                            25. Oktober 2011   Folie 20   © Zühlke 2011
Funktionsübersicht der Windows Runtime


•      Die Windows Runtime deckt
       alle wichtigen Funktionen ab
•      Saubere API – für jede
       Funktion gibt es nur eine
       Implementierung
•      Enthält eine native XAML-
       Implementierung für C#/VB
       Apps




Metro-Style Apps für Windows 8 | Christian Moser   25. Oktober 2011   Folie 21   © Zühlke 2011
App Isolation & Privacy


•   Gemäss Microsoft läuft die App in
    einem App-Container
•   Tatsächlich beschränkt der Kompiler
    und die Store-Zertifizierung die
    Funktionalität
•   Diese Einschränkung bedeutet:
    – Kein Zugriff auf das Dateisystem
    – Kein Zugriff auf Win32-Funktionen
    – Kein Zugriff als lokale Devices

•   Potentiell gefährliche Funktions-
    aufrufe laufen über Broker
•   Anwender muss den Zugriff auf
    die Ressourcen genehmigen (AppXManifest )
                                           20. September 2011   Folie 22   © Zühlke 2011
Language Projection


•   Metro-Style Apps können gleichwertig in C++, C#, VB oder JS
    geschrieben werden
•   Alle Funktionen der WinRT wurden
    natürlich abgebildet.
C#
var fp = new FileOpenPicker();
var result = await fp.PickSingeFileAsync();
C++
auto fp = Windows::Storage::Pickers::FileOpenPicker();
auto result = fp->PickSingeFileAsync();
JavaScript
var fp = new Windows.Storage.Pickers.FileOpenPicker;
fp.pickSingleFileAsync().then();
                                             20. September 2011   Folie 23   © Zühlke 2011
Language Projection




          WinRT Objekte sind                       Über die
          eine moderne Art von                     Windows-Metadaten-kann
          COM.                                     das .NET-Framework diese
          Sie unterstützen das                     Objekte nutzen.
          neue Interface                           Das Format ist sehr nahe
          IInspectable                             am .NET-Metadatenformat.
                                                                                                         ILDASM

Metro-Style Apps für Windows 8 | Christian Moser                      25. Oktober 2011   Folie 24   © Zühlke 2011
Type Mapping


Ein Grossteil der Typen stimmen überein zwischen .NET und WinRT
Primitives                                         Interfaces     Enums               Structs               Delegates
Klassen                                            Konstrukturen Static               Methoden              Properties
Events
Andere Typen werden «natürlich» gemappt
•      HRESULT                                                           Spezifische Exceptions
                                                                          (Fallback: ComException)
•      IAsyncOperation<T>                                                ITask<T>
•      IITerable<T>                                                      IEnumerable<T>
•      Ivector<T>                                                        IList<T>

Metro-Style Apps für Windows 8 | Christian Moser                              25. Oktober 2011   Folie 25      © Zühlke 2011
Eigene WinRT Komponenten in C#
erstellen

•      z.B. um ein Teil einer App in einer anderen Sprache zu schreiben
      COM (bisher)                                                                         WinRT




                                                   Regeln, die beachtet werden müssen
                                                    Können nur in einer App verwendet werden (kein GAC / keine DLL-hell)
                                                    Public = ComVisible
                                                    Public Funktionen dürfen nur native WinRT-Typen verwenden
                                                    Structs dürfen nur public Members haben (keine private Members oder Methoden)
                                                    Alle Klassen müssen sealed sein.
                                                    Keine eigene generics.

Metro-Style Apps für Windows 8 | Christian Moser                                    25. Oktober 2011   Folie 26      © Zühlke 2011
Metro-App - Lebenszyklus


•      Apps werden nur gestartet, nicht beendet
•      Inaktive Apps wechseln nach 5s in «suspended» Mode. Zustand wird gespeichert.
•      Wird eine App wieder sichtbar, wird sie «resumed». Zustand wird wieder geladen.
•      Wenn wenig Speicher verfügbar ist, beendet Windows eine «suspended»-Apps.
•      System-Events: Application.Current.Suspending,       Application.Current.Resuming




Metro-Style Apps für Windows 8 | Christian Moser     25. Oktober 2011   Folie 27   © Zühlke 2011
Metro-Style Controls




                                                   Folie 28
                                                   25. Oktober 2011




                                                   Christian Moser

Metro-Style Apps für Windows 8 | Christian Moser   © Zühlke 2011
Windows 8 bringt diverse neue Controls


•      WebView (ohne AirSpace probleme)
•      ListView/GridView/FlipView/JumpView (mit «semantic zoom»)
•      MediaPlayer mit Steuerelementen
•      ToggleSwitch
•      Extended TextBox
•      Progress Ring




Metro-Style Apps für Windows 8 | Christian Moser   25. Oktober 2011   Folie 29   © Zühlke 2011
ApplicationBar


•      Control für die Application Bar
             <ApplicationBar DismissMode="LightDismiss">
                <StackPanel Orientation="Horizontal" HorizontalAlignment="Right">
                   <Button Content="Home" />
                   <Button Content="Save" />
                </StackPanel>
             </ApplicationBar>




Metro-Style Apps für Windows 8 | Christian Moser                   25. Oktober 2011   Folie 30   © Zühlke 2011
XAML


•      Der XAML-Stack von Windows 8 ist Teil der WinRT (native)
•      Die API ist zu einem grossen Teil kompatibel mit Silverlight
•      Interne Umsetzung ist jedoch komplett unterschiedlich
•      Neuer Namespace Windows.UI.XAML




Metro-Style Apps für Windows 8 | Christian Moser   25. Oktober 2011   Folie 31   © Zühlke 2011
Contracts




            Folie 32
            25. Oktober 2011




            Christian Moser

            © Zühlke 2011
Implementierung des «Share»-Contracts




                                25. Oktober 2011   Folie 33   © Zühlke 2011
Implementierung des «Share»-Contracts


DataTransferManager.GetForCurrentView().DataRequested += OnDataRequested;

private void OnDataReqested(DataTransferManager sender, DataRequestedEventArgs e)
{
   if( DoIHaveSomethingToShare )
   {
      e.Request.FailWithDisplayText("No data to share... ");
   }
   else
   {
      e.Request.Data.SetBitmap(picture);
   }
}




                                                   25. Oktober 2011   Folie 34   © Zühlke 2011
Auf Statusänderungen reagieren


Bildschirmauflösung
        var screenSize = Windows.Current.Bounds;
        Windows.Current.SizeChanged += OnScreenSizeChanged;


Orientierung
        var orientation = DisplayProperties.CurrentOrientation;
                                                                                   Landscape
        DisplayProperties.OrientationChanged += …                                                   Portrait




Layout
        var layout = ApplicationLayout.Value                                     Snapped
        ApplicationLayout.GetForCurrentView().LayoutChanged +=

                                                                                                           Filled


                                                                                                   FullScreen
Metro-Style Apps für Windows 8 | Christian Moser   25. Oktober 2011   Folie 35             © Zühlke 2011
Verwendung der Kamera




Metro-Style Apps für Windows 8 | Christian Moser   25. Oktober 2011   Folie 36   © Zühlke 2011
Vergleich von
Desktop und Metro

                       Metro Apps      Desktop Software
Haupt-Eingabemedium       Touch          Maus/Tastatur
UI-Style                  Metro            Windows
Runtime               WinRT (Win32)     .NET/SL/Win32
Verteilung            Windows Store    Download Webseite
Installation           .appx Package          MSI
Systemzugriff         Nur über WinRT      Voller Zugriff

Fazit
•   Metro Style Apps auf WinRT eignen sich vorwiegend für Consumer-
    Anwendungen mit viel Inhalt und wenig Dateneingabe.
•   Business Applikationen werden weiterhin hauptsächlich maus- und
    tastaturbasiert bleiben und auf WPF/SL/HTML oder C++ basieren.
                                                 20. September 2011   Folie 37   © Zühlke 2011
Windows Store




                                                   Folie 38
                                                   25. Oktober 2011




                                                   Christian Moser

Metro-Style Apps für Windows 8 | Christian Moser   © Zühlke 2011
Navigation im Windows Store



                                                                     1. Startseite
                                                                     Liste aller Kategorien mit guten, populären
                                                                     Apps. (Können nicht gekauft werden)




 2. Kategorieansicht
 mit allen Apps einer
 Kategorie und Filter-
 möglichkeiten

                                            3. Applikationsdetails
                                            Alle Details über die
                                            App.

Metro-Style Apps für Windows 8 | Christian Moser                                   25. Oktober 2011   Folie 39     © Zühlke 2011
Applikationsdetails



                                                           Reviews
                                                           Feedbacks von Kunden
                                                           über die App




  Ausprobieren ohne
  zu kaufen
  Dank speziellen
  Trial-API’s. Verhindert
  Duplizierung im Store.




  Verwendete Resourcen
  Deklarierte Ressourcen müssen für den Typ von App
  Sinn machen . Sonst kann dies die Store-Zertifizierung
  mühsamer machen.

Metro-Style Apps für Windows 8 | Christian Moser           25. Oktober 2011   Folie 40   © Zühlke 2011
Wie kommen Kunden an eine App


1.          Direkt über den Store
2.          Über die Suche in Windows 8, welche auch den
            Store durchsuchen kann (mittels «search»-Kontrakt)
3.          Über Google  Applikationsdetail-Seiten werden
            von Suchmaschinen indexiert
4.          Über eine Webseite der App, wobei über Meta-Tags
            in IE10 ein «Get the app» Icon eingeblendet werden
            <meta name="msApplication-ID«
                  content="microsoft.build.App"/>
            <meta name="msApplication-PackageFamilyName«
                  content="microsoft.build_8wekyb3d8bbwe"/>



  http://blogs.msdn.com/b/ie/archive/2011/10/20/connect-
  your-web-site-to-your-windows-8-app.aspx
Metro-Style Apps für Windows 8 | Christian Moser              25. Oktober 2011   Folie 41   © Zühlke 2011
Zertifizierung


Technische Korrektheit
•      Das App-Manifest muss mit dem überein stimmen,
       was die App an Ressourcen verwendet
•      Grösse und Skalierung von Bildern
•      Korrekte Verwendung von API’s (z.Bsp. keine
       unerlaubten Win32 aufrufe)
•      Stabilität und Sicherheit
 Kann 1:1 offline überprüft werden
mittels «App Certification Kit»




Metro-Style Apps für Windows 8 | Christian Moser   25. Oktober 2011   Folie 42   © Zühlke 2011
Lizenzierungsmodelle


•      Der Store unterstützt Metro-Style-Apps und
       gewöhnliche Win32(Desktop)-Apps
•      Lizenzen sind pro Benutzer (Account).
       Sie werden automatisch «geroamt».
•      Microsoft verdient 30%
•      Trials
       – Apps werden 10x öfters heruntergeladen, wenn sie ein Trial
         anbieten
       – 10% der Trials werden später gekauft


•      «In-App»-Käufe
       – 48% der Einnahmen stammen aus reinen In-App käufen


Metro-Style Apps für Windows 8 | Christian Moser          25. Oktober 2011   Folie 43   © Zühlke 2011
Wenn die App im Store ist…


   Das Entwickler-Dashboard
   listet alle Apps.




  1. Vorbereitung                                  2. Submission   3. Nutzungsstatistik                4. Crash-Data




Metro-Style Apps für Windows 8 | Christian Moser                         25. Oktober 2011   Folie 44            © Zühlke 2011
Ressourcen


Windows 8 Sample Pack:
http://code.msdn.microsoft.com/windowsapps/Windows-Developer-
Preview-6b53adbb


Blogs:
http://www.scottlogic.co.uk/blog/colin/2011/10/winrt-transitions-creating-
fast-and-fluid-metro-uis/




Metro-Style Apps für Windows 8 | Christian Moser   25. Oktober 2011   Folie 45   © Zühlke 2011

Windows 8 einführung

  • 1.
    Windows 8 undMetro-Apps Christian Moser moc@zuehlke.com Folie 1 25. Oktober 2011 Christian Moser © Zühlke 2011
  • 2.
    Was ist neuin Windows 8? Metro-Style Apps für Windows 8 Folie 2 25. Oktober 2011 Christian Moser Metro-Style Apps für Windows 8 | Christian Moser © Zühlke 2011
  • 3.
    Optimiert für Tablet-PC’s Microsoftmöchte mit Windows 8 dem Apple iPad Konkurrenz bieten: • Neuer Lock-Screen • Neue Touch-Oberfläche (Metro-UI) • Lauffähig auf ARM-Prozessoren • Batteriesparend und ressourcenarm • Windows Store • Windows Azure integration • Connected-Standby und Background-Tasks Metro-Style Apps für Windows 8 | Christian Moser 25. Oktober 2011 Folie 3 © Zühlke 2011
  • 4.
    Neues auf demDesktop • Startet in wenigen Sekunden! • Neuer Task Manager • Verbessertes Kopieren • Explorer mit Ribbon • «Factory Reset» und Refresh-Funktion • Internet Explorer 10 • Automatische Synchronisation in die Cloud (Sky-Drive) • Mounten von ISO und VHD Metro-Style Apps für Windows 8 | Christian Moser 25. Oktober 2011 Folie 4 © Zühlke 2011
  • 5.
    Die Metro-Oberfläche Metro-Style Apps für Windows 8 Folie 5 25. Oktober 2011 Christian Moser © Zühlke 2011
  • 6.
  • 7.
  • 8.
    Die Metro-Designprinzipien • Pride in craftsmanship Eine gute User Experience entsteht nur durch ein sauberes Handwerk in allen Disziplinen • Be fast and fluid Apps sollen responsive, intuitiv, touch-optimiert und smooth sein. • Authentically Digital Verbunden, dynamisch, lebendig, starke Farben, bewegt • Do more with less Inhalte statt Chrom, gut in etwas sein • Win as one Synergien nutzen, Integriert und Vernetzt Redundanz vermeiden, Standarts einhalten, © Zühlke 2011
  • 9.
    Umdenken – vonDesktop zu Metro Viele unnötige Linien und Rahmen Reduced to the max Metro-Style Apps für Windows 8 | Christian Moser 25. Oktober 2011 Folie 9 © Zühlke 2011
  • 10.
    Interaktion mit demMetro-Desktop Charms (Die 5 wichtigsten Systemfunktionen, Taskwechsel sind immer erreichbar) Erscheinen, wenn mit dem Finger über den Touch-Rand gewischt wird. App-Bars Metro-Style Apps für Windows 8 | Christian Moser 25. Oktober 2011 Folie 10 © Zühlke 2011
  • 11.
    Variationen, die jedeApp unterstützen sollte Snapped und Vollbild Horizontal und Vertikal Bildschirmgrössen Auflösungen (dpi) Metro-Style Apps für Windows 8 | Christian Moser 25. Oktober 2011 Folie 11 © Zühlke 2011
  • 12.
    Windows 8 –Touch-Gesten Die Windows Touch- Sprache ist mit nur 7 Gesten einfach erlernbar und intuitiv. Sollte wenn möglich nicht erweitert werden. Metro-Style Apps für Windows 8 | Christian Moser 25. Oktober 2011 Folie 12 © Zühlke 2011
  • 13.
    Layout-Raster Ein durchgängiges Layout-Raster sorgt für ein konsistentes Erscheinungsbild. Visual Studio 11 bietet dafür fertige Templates Folie 13 © Zühlke 2011
  • 14.
    Komfortable Verwendung auf demTablet Viele Personen halten Tables mit zwei Händen  Alle wichtigen Funktionen sollten dabei komfortabel erreichbar sein Icons auf der App-Bar sollten links und rechts angeordnet werden Durchgeführte Usability-Studie Split-Modus der Tastatur Metro-Style Apps für Windows 8 | Christian Moser 25. Oktober 2011 Folie 14 © Zühlke 2011
  • 15.
    Contracts • Applikationen interagieren über «Contracts» miteinander, ohne etwas voneinander zu wissen. • Jede Applikation kann die Contracts, die Sinn machen anbieten oder nutzen • Windows 8 unterstützt drei Contracts: Share (Push Content) Picker (Pull Content) Search (Find Content) Metro-Style Apps für Windows 8 | Christian Moser 25. Oktober 2011 Folie 15 © Zühlke 2011
  • 16.
    Live Tiles • Icons sind veraltet, statisch, langweilig und bieten wenig Nutzen • Live Tiles sind lebendig, persönlich, anziehend aktuell und informativ • Apps können Inhalte als sekundäre Tiles mit «deep link» auf den Desktop stellen (Wetter-Standorte, Freunde, wichtige Aktienkurse,…) Metro-Style Apps für Windows 8 | Christian Moser 25. Oktober 2011 Folie 16 © Zühlke 2011
  • 17.
    Cloud-Integration • Der Nutzer loggt sich einmal mit einem Windows-Live Benutzer bei Windows an • Jede Metro-Style App erhält in der Cloud Speicherplatz für Benutzer- Einstellungen und kleinere Inhalte • So können Einstellungen einfach zwischen mehreren Rechnern synchronisiert werden: Beginnt ein eBook zu lesen und muss weg… …das Buch öffnet sich auf der richtigen Seite Metro-Style Apps für Windows 8 | Christian Moser 25. Oktober 2011 Folie 17 © Zühlke 2011
  • 18.
    Zusammenfassung – Was machteine gute Metro-App aus 1. Erscheint vollständig im Metro-Style Design 2. Hält sich an alle Designprinzipien von Metro 3. Fühlt sich schnell und flüssig an 4. Unterstützt Skalieren, Snapping und Ausrichtung auf eine sinnvolle Art 5. Implementiert sinnvolle Contracts (Search, Share, Picker) 6. Bietet wertvolle Informationen auf ihrem Live-Tile an 7. Fühlt sich immer verbunden, aktuell und lebendig 8. Nutzt die Funktionen der Cloud zur Daten-Synchronisierung Folie 18 © Zühlke 2011
  • 19.
    Metro-Style Apps entwickeln Metro-Style Apps für Windows 8 Folie 19 25. Oktober 2011 Christian Moser © Zühlke 2011
  • 20.
    Windows Runtime (WinRT) • Neues Subsystem in Windows 8 • API für Metro-Style Apps • Native in C++ (COM-ähnlich) • Natürliche Projektion der API in verschiedene Sprachen • Entwicklung mit C#/VB/C++ und XAML oder JS und HTML • WinRT ist weder WPF noch Silverlight! • Ist erst ab Windows 8 verfügbar das heisst Metro-Style Apps laufen nur unter Windows 8 und höher! 25. Oktober 2011 Folie 20 © Zühlke 2011
  • 21.
    Funktionsübersicht der WindowsRuntime • Die Windows Runtime deckt alle wichtigen Funktionen ab • Saubere API – für jede Funktion gibt es nur eine Implementierung • Enthält eine native XAML- Implementierung für C#/VB Apps Metro-Style Apps für Windows 8 | Christian Moser 25. Oktober 2011 Folie 21 © Zühlke 2011
  • 22.
    App Isolation &Privacy • Gemäss Microsoft läuft die App in einem App-Container • Tatsächlich beschränkt der Kompiler und die Store-Zertifizierung die Funktionalität • Diese Einschränkung bedeutet: – Kein Zugriff auf das Dateisystem – Kein Zugriff auf Win32-Funktionen – Kein Zugriff als lokale Devices • Potentiell gefährliche Funktions- aufrufe laufen über Broker • Anwender muss den Zugriff auf die Ressourcen genehmigen (AppXManifest ) 20. September 2011 Folie 22 © Zühlke 2011
  • 23.
    Language Projection • Metro-Style Apps können gleichwertig in C++, C#, VB oder JS geschrieben werden • Alle Funktionen der WinRT wurden natürlich abgebildet. C# var fp = new FileOpenPicker(); var result = await fp.PickSingeFileAsync(); C++ auto fp = Windows::Storage::Pickers::FileOpenPicker(); auto result = fp->PickSingeFileAsync(); JavaScript var fp = new Windows.Storage.Pickers.FileOpenPicker; fp.pickSingleFileAsync().then(); 20. September 2011 Folie 23 © Zühlke 2011
  • 24.
    Language Projection WinRT Objekte sind Über die eine moderne Art von Windows-Metadaten-kann COM. das .NET-Framework diese Sie unterstützen das Objekte nutzen. neue Interface Das Format ist sehr nahe IInspectable am .NET-Metadatenformat. ILDASM Metro-Style Apps für Windows 8 | Christian Moser 25. Oktober 2011 Folie 24 © Zühlke 2011
  • 25.
    Type Mapping Ein Grossteilder Typen stimmen überein zwischen .NET und WinRT Primitives Interfaces Enums Structs Delegates Klassen Konstrukturen Static Methoden Properties Events Andere Typen werden «natürlich» gemappt • HRESULT  Spezifische Exceptions (Fallback: ComException) • IAsyncOperation<T>  ITask<T> • IITerable<T>  IEnumerable<T> • Ivector<T>  IList<T> Metro-Style Apps für Windows 8 | Christian Moser 25. Oktober 2011 Folie 25 © Zühlke 2011
  • 26.
    Eigene WinRT Komponentenin C# erstellen • z.B. um ein Teil einer App in einer anderen Sprache zu schreiben COM (bisher) WinRT Regeln, die beachtet werden müssen  Können nur in einer App verwendet werden (kein GAC / keine DLL-hell)  Public = ComVisible  Public Funktionen dürfen nur native WinRT-Typen verwenden  Structs dürfen nur public Members haben (keine private Members oder Methoden)  Alle Klassen müssen sealed sein.  Keine eigene generics. Metro-Style Apps für Windows 8 | Christian Moser 25. Oktober 2011 Folie 26 © Zühlke 2011
  • 27.
    Metro-App - Lebenszyklus • Apps werden nur gestartet, nicht beendet • Inaktive Apps wechseln nach 5s in «suspended» Mode. Zustand wird gespeichert. • Wird eine App wieder sichtbar, wird sie «resumed». Zustand wird wieder geladen. • Wenn wenig Speicher verfügbar ist, beendet Windows eine «suspended»-Apps. • System-Events: Application.Current.Suspending, Application.Current.Resuming Metro-Style Apps für Windows 8 | Christian Moser 25. Oktober 2011 Folie 27 © Zühlke 2011
  • 28.
    Metro-Style Controls Folie 28 25. Oktober 2011 Christian Moser Metro-Style Apps für Windows 8 | Christian Moser © Zühlke 2011
  • 29.
    Windows 8 bringtdiverse neue Controls • WebView (ohne AirSpace probleme) • ListView/GridView/FlipView/JumpView (mit «semantic zoom») • MediaPlayer mit Steuerelementen • ToggleSwitch • Extended TextBox • Progress Ring Metro-Style Apps für Windows 8 | Christian Moser 25. Oktober 2011 Folie 29 © Zühlke 2011
  • 30.
    ApplicationBar • Control für die Application Bar <ApplicationBar DismissMode="LightDismiss"> <StackPanel Orientation="Horizontal" HorizontalAlignment="Right"> <Button Content="Home" /> <Button Content="Save" /> </StackPanel> </ApplicationBar> Metro-Style Apps für Windows 8 | Christian Moser 25. Oktober 2011 Folie 30 © Zühlke 2011
  • 31.
    XAML • Der XAML-Stack von Windows 8 ist Teil der WinRT (native) • Die API ist zu einem grossen Teil kompatibel mit Silverlight • Interne Umsetzung ist jedoch komplett unterschiedlich • Neuer Namespace Windows.UI.XAML Metro-Style Apps für Windows 8 | Christian Moser 25. Oktober 2011 Folie 31 © Zühlke 2011
  • 32.
    Contracts Folie 32 25. Oktober 2011 Christian Moser © Zühlke 2011
  • 33.
    Implementierung des «Share»-Contracts 25. Oktober 2011 Folie 33 © Zühlke 2011
  • 34.
    Implementierung des «Share»-Contracts DataTransferManager.GetForCurrentView().DataRequested+= OnDataRequested; private void OnDataReqested(DataTransferManager sender, DataRequestedEventArgs e) { if( DoIHaveSomethingToShare ) { e.Request.FailWithDisplayText("No data to share... "); } else { e.Request.Data.SetBitmap(picture); } } 25. Oktober 2011 Folie 34 © Zühlke 2011
  • 35.
    Auf Statusänderungen reagieren Bildschirmauflösung var screenSize = Windows.Current.Bounds; Windows.Current.SizeChanged += OnScreenSizeChanged; Orientierung var orientation = DisplayProperties.CurrentOrientation; Landscape DisplayProperties.OrientationChanged += … Portrait Layout var layout = ApplicationLayout.Value Snapped ApplicationLayout.GetForCurrentView().LayoutChanged += Filled FullScreen Metro-Style Apps für Windows 8 | Christian Moser 25. Oktober 2011 Folie 35 © Zühlke 2011
  • 36.
    Verwendung der Kamera Metro-StyleApps für Windows 8 | Christian Moser 25. Oktober 2011 Folie 36 © Zühlke 2011
  • 37.
    Vergleich von Desktop undMetro Metro Apps Desktop Software Haupt-Eingabemedium Touch Maus/Tastatur UI-Style Metro Windows Runtime WinRT (Win32) .NET/SL/Win32 Verteilung Windows Store Download Webseite Installation .appx Package MSI Systemzugriff Nur über WinRT Voller Zugriff Fazit • Metro Style Apps auf WinRT eignen sich vorwiegend für Consumer- Anwendungen mit viel Inhalt und wenig Dateneingabe. • Business Applikationen werden weiterhin hauptsächlich maus- und tastaturbasiert bleiben und auf WPF/SL/HTML oder C++ basieren. 20. September 2011 Folie 37 © Zühlke 2011
  • 38.
    Windows Store Folie 38 25. Oktober 2011 Christian Moser Metro-Style Apps für Windows 8 | Christian Moser © Zühlke 2011
  • 39.
    Navigation im WindowsStore 1. Startseite Liste aller Kategorien mit guten, populären Apps. (Können nicht gekauft werden) 2. Kategorieansicht mit allen Apps einer Kategorie und Filter- möglichkeiten 3. Applikationsdetails Alle Details über die App. Metro-Style Apps für Windows 8 | Christian Moser 25. Oktober 2011 Folie 39 © Zühlke 2011
  • 40.
    Applikationsdetails Reviews Feedbacks von Kunden über die App Ausprobieren ohne zu kaufen Dank speziellen Trial-API’s. Verhindert Duplizierung im Store. Verwendete Resourcen Deklarierte Ressourcen müssen für den Typ von App Sinn machen . Sonst kann dies die Store-Zertifizierung mühsamer machen. Metro-Style Apps für Windows 8 | Christian Moser 25. Oktober 2011 Folie 40 © Zühlke 2011
  • 41.
    Wie kommen Kundenan eine App 1. Direkt über den Store 2. Über die Suche in Windows 8, welche auch den Store durchsuchen kann (mittels «search»-Kontrakt) 3. Über Google  Applikationsdetail-Seiten werden von Suchmaschinen indexiert 4. Über eine Webseite der App, wobei über Meta-Tags in IE10 ein «Get the app» Icon eingeblendet werden <meta name="msApplication-ID« content="microsoft.build.App"/> <meta name="msApplication-PackageFamilyName« content="microsoft.build_8wekyb3d8bbwe"/> http://blogs.msdn.com/b/ie/archive/2011/10/20/connect- your-web-site-to-your-windows-8-app.aspx Metro-Style Apps für Windows 8 | Christian Moser 25. Oktober 2011 Folie 41 © Zühlke 2011
  • 42.
    Zertifizierung Technische Korrektheit • Das App-Manifest muss mit dem überein stimmen, was die App an Ressourcen verwendet • Grösse und Skalierung von Bildern • Korrekte Verwendung von API’s (z.Bsp. keine unerlaubten Win32 aufrufe) • Stabilität und Sicherheit  Kann 1:1 offline überprüft werden mittels «App Certification Kit» Metro-Style Apps für Windows 8 | Christian Moser 25. Oktober 2011 Folie 42 © Zühlke 2011
  • 43.
    Lizenzierungsmodelle • Der Store unterstützt Metro-Style-Apps und gewöhnliche Win32(Desktop)-Apps • Lizenzen sind pro Benutzer (Account). Sie werden automatisch «geroamt». • Microsoft verdient 30% • Trials – Apps werden 10x öfters heruntergeladen, wenn sie ein Trial anbieten – 10% der Trials werden später gekauft • «In-App»-Käufe – 48% der Einnahmen stammen aus reinen In-App käufen Metro-Style Apps für Windows 8 | Christian Moser 25. Oktober 2011 Folie 43 © Zühlke 2011
  • 44.
    Wenn die Appim Store ist… Das Entwickler-Dashboard listet alle Apps. 1. Vorbereitung 2. Submission 3. Nutzungsstatistik 4. Crash-Data Metro-Style Apps für Windows 8 | Christian Moser 25. Oktober 2011 Folie 44 © Zühlke 2011
  • 45.
    Ressourcen Windows 8 SamplePack: http://code.msdn.microsoft.com/windowsapps/Windows-Developer- Preview-6b53adbb Blogs: http://www.scottlogic.co.uk/blog/colin/2011/10/winrt-transitions-creating- fast-and-fluid-metro-uis/ Metro-Style Apps für Windows 8 | Christian Moser 25. Oktober 2011 Folie 45 © Zühlke 2011