Windows 8 für Entwickler

3.154 Aufrufe

Veröffentlicht am

Veröffentlicht in: Technologie
0 Kommentare
0 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

Keine Downloads
Aufrufe
Aufrufe insgesamt
3.154
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
1.951
Aktionen
Geteilt
0
Downloads
3
Kommentare
0
Gefällt mir
0
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie
  • Das Windows 7 Anwendungsmodell stammt aus einer Zeit, als Computer stationäre Geräte mit festem Strom- und Internetanschluss waren. Es ist optimiert auf Flexibilität und Leistungsfähigkeit.Heute sind Computer aber vielfach tragbar, haben Touchscreens, Akkus und mobile Datenverbindungen.
  • https://github.com/HorizonNet/DEMO-Windows8-FilePicker
  • Der Windows Store installiert die App-Pakete ohne Benutzerinteraktion und kann sie spurlos wieder deinstallieren.
  • Hat eine App auf diesem Weg Rechte an einer Datei oder einem Ordner bekommen, kann sie sich diese Rechte „merken“ und muss beim nächsten Mal nicht mehr fragen.
  • Windows 8 erlaubt es Benutzern, sich mit einem Microsoft Account an Windows anzumelden. Macht der Benutzer von dieser Möglichkeit gebrauch, können Anwendungen ihre Einstellungen mit dessen Microsoft Account und damit mit allen Geräten des Benutzers synchronisieren.
  • Windows stellt dabei sicher, dass die Akkulaufzeit nicht leidet.
  • Das .NET-Framework folgt in weiten Teilen dem klassischen Anwendungsmodell von Windows. Es erlaubt z.B. freien Zugriff auf Systemressourcen und kennt kein Capability-Konzept.Windows 8 Apps können deshalb nur einen Teil von .NET nutzen. Die fehlenden Funktionen werden durch die neuen WinRT-Namespaces ergänzt.
  • await startet die Ausführung einer asynchronen Operation und pausiert die umgebende Methode so lange, bis das Ergebnis da ist. Anschließend wird die Methode an derselben Stelle fortgesetzt.Eine Methode die await nutzt wird selbst wieder asynchron und muss entsprechend mit dem async-Schlüsselwort markiert werden.
  • Windows 8 für Entwickler

    1. 1. © 2012 Microsoft Corporation. Alle Rechte vorbehalten. Microsoft Student Partners
    2. 2. Eine typische Windows 7Anwendung… Lässt sich mit Tastatur und Maus bedienen Läuft nur auf x86 und x64 CPUs Kann Administratorrechte anfordern und dann beliebig auf die Festplatte schreiben Kann im Hintergrund laufen und dort beliebig die CPU auslasten Kann uneingeschränkt auf Sensoren (Kamera, Mikrofon, GPS) zugreifen Kann beliebig Internet-Traffic erzeugen, auch über mobile Datenverbindungen
    3. 3. Ein Anwendungsmodell ausanderen Zeiten.
    4. 4. Neue Formfaktoren wie Tablets sprechen auch Anwender an,die sich bisher vielleicht keinen Computer gekauft hätten.
    5. 5. Eine typische Windows 8Anwendung… Lässt sich mit Tastatur und Maus bedienen, aber auch mit Touch und Stift Läuft auf x86, x64 und ARM CPUs Hat begrenzten Festplattenzugriff Kann im Hintergrund nur begrenzt die CPU auslasten Kann nur nach Zustimmung des Benutzers auf Sensoren (Kamera, Mikrofon, GPS) zugreifen Kann nur mit Zustimmung des Benutzers Internet-Traffic erzeugen
    6. 6. Diese neuen Anforderungenließen sich mit dembestehendenAnwendungsmodell nichtumsetzen. Deshalb…
    7. 7. Windows 8 Apps laufen in einer neuen Runtime: WinRT. FürDesktop-Anwendungen ändert sich nichts.
    8. 8. DEMO
    9. 9. Bisher: viele Anwendungen machen zeitaufwändige Operationen(z.B. Web-Service-Abfragen) im UI-Thread, der dadurch blockiertwird. Thread 1 Thread 2 UI Web-Service abfrage UI reagiert nicht UI
    10. 10. Bisher: viele Anwendungen machen zeitaufwändige Operationen(z.B. Web-Service-Abfragen) im UI-Thread, der dadurch blockiertwird. Thread 1 Thread 2 UI UI Web-Service abfrage UI reagiert weiter UI
    11. 11. Zu jeder Schnittstelle in WinRT existieren Metadaten. DieseMetadaten werden dazu genutzt, um automatisch Projektionen fürdie unterstützten Programmiersprachen zu generieren. WinRT (C++, C#, VisualBasic) Metadaten Projektion Projektion Projektion C++ C# / Visual Basic JavaScript
    12. 12. WinRT sieht in jeder Programmiersprache so aus, wie man esdort erwarten würdeC++ C#auto filePicker = ref new FileOpenPicker(); var filePicker = new FileOpenPicker();filePicker->FileTypeFilter->Append(".jpg"); filePicker.FileTypeFilter.Add(".jpg");task<StorageFile^>(filePicker->PickSingleFileAsync()).then( var file = await filePicker.PickSingleFileAsync(); [this](StorageFile^ file){ if (file != null) { if (file) var stream = await file.OpenReadAsync(); { task<IRandomAccessStreamWithContentType^>(file->OpenReadAsync()).then( var bitmap = new BitmapImage(); [this](IRandomAccessStreamWithContentType^ stream) bitmap.SetSource(stream); { auto bitmap = ref new BitmapImage(); MyImage.Source = bitmap; bitmap->SetSource(stream); } MyImage->Source = bitmap; }); }});JavaScriptvar filePicker = new Windows.Storage.Pickers.FileOpenPicker();filePicker.fileTypeFilter.push(".jpg");filePicker.pickSingleFileAsync().done(function (file) { if (file) { WinJS.Utilities.query("img").setAttribute("src", URL.createObjectURL(file)); }});
    13. 13. Zwei UI-TechnologienXAML HTML5, CSS3Für C#, VisualBasic und C++ Für JavaScript
    14. 14. Der Lebenszyklus einerWindows 8 App unterscheidetsich deutlich von einer Windows7 Anwendung
    15. 15. Apps lassen sich unter Windows 8 nur über den neuen WindowsStore installieren (Ausnahme: Desktop-Anwendungen)
    16. 16. Windows 8 Apps benutzen ein einheitliches Paketformat. Diesesist digital signiert um Manipulation während des Downloads zuverhindern. Files / Assets AppXManifest.xml BlockMap Signatur Zip Central Directory .appx package
    17. 17. Windows 8 Apps laufen in einer Sandbox und habeneingeschränkten Zugriff auf Betriebssystem-Ressourcen. App 1 App 2 Contracts Lokaler kontext Lokaler kontext API Zugriff Direkter Broker Betriebssystem Windows APIs (WinRT)
    18. 18. Will eine App auf eineRessource zugreifen, benötigtsie dafür die Berechtigung(Capability).
    19. 19. Jede Anwendung muss deklarieren, welche Capabilities siebenötigt.
    20. 20. Die Capabilities, die von einer App genutzt werden, werden imWindows Store aufgelistet.
    21. 21. Bei Capabilities, die die Privatsphäre des Benutzersbetreffen, fragt Windows explizit, wenn eine Anwendung diesezum ersten Mal benutzen möchte (z.B.Geolocation, WebCam, Mikrofon).
    22. 22. Apps können nicht frei auf das Dateisystem zugreifen. DerBenutzer kann ihnen aber über FilePicker und FolderPicker Lese-und/oder Schreibrechte an bestimmten Dateien und Ordnerngeben.
    23. 23. Jede App hat einen lokalen und isolierten Speicherbereich, aufden sie uneingeschränkt zugreifen kann.Apps können außerdem Zugriff auf den Eigene-Dateien-Ordnerdes Benutzers beantragen.
    24. 24. Apps können ihre Einstellungen über den Microsoft Account desBenutzers mit anderen Rechnern synchronisieren. Microsoft App Local Storage Account
    25. 25. Unter Windows 8 läuft im Normalfall nur eine, mit Snapping zweiApps zur selben Zeit. Apps im Hintergrund werden automatischpausiert und wieder aufgeweckt, wenn sie in den Vordergrundgeholt werden. App hat 5s Zeit, bevor sie App wird nicht angehalten wird benachrichtigt, bevor sie beendet wird anhalten Benutzer Angehaltene Beendete Laufende App Wenig ressourcenstartet App App App fortsetzen Apps warden benachrichtigt, wenn die fortgesetzt werdenSplash screen App läuft App angehalten App läuft nicht
    26. 26. Aber es gibt vielfältigeMöglichkeiten für Apps, doch imHintergrund zu laufen. Etwa umAudio wiederzugeben, Datenherunterzuladen, GPS Spurenaufzuzeichnen usw.
    27. 27. FrageWer von euch hat schon einmal mit C# gearbeitet?
    28. 28. Windows 8 Apps können nureinen Teil des .NET Frameworksnutzen.
    29. 29. .NET und WinRT-Datentypen lassen sich problemlos kombinieren,wie hier der WinRT Datentyp IRandomAccessStream und der.NET Datentyp Stream.C#var file = await ApplicationData.Current.LocalFolder.CreateFileAsync("dummy.dat", CreationCollisionOption.ReplaceExisting);using (IRandomAccessStream stream = await file.OpenAsync(FileAccessMode.ReadWrite)) { using (Stream outStream = stream.AsStreamForWrite()) { outStream.Write(buffer, 0, buffer.Length); outStream.Flush(); }}
    30. 30. Die WinRT Projektion für C# und VisualBasic unterstüzt die neuenSprachkonzepte für asynchrone Programmierung.C#async void Methode(){ var ergebnis1 = await AsynchroneOperation1(); var ergebnis2 = await AsynchroneOperation2(); var ergebnis3 = await AsynchroneOperation3();}

    ×