Windows Phone 8: Kochbuch für professionelle Apps
()
About this ebook
Lernen Sie in diesem Buch neben den Grundlagen der mobilen Anwendungsentwicklung mit Visual Studio 2012 und Co., den Grundlagen der Gestaltung einer Oberfläche mit XAML, der Nutzung verschiedener Dienste, auch die Möglichkeiten der Wiederverwendung von Programmcode für Windows 8 Anwendungen kennen. Dabei wurde besonders viel Wert auf Praxisnähe und einfache Nachvollziehbarkeit der verwendeten Beispiele gelegt.
Dieses Buch ist ein Begleiter auf Ihrem Weg von der .NET Entwicklung mit C# hin zur mobilen Anwendungsentwicklung auf der Windows Phone 8 Plattform.
Read more from Matthias Fischer
Schlafender Drache: Kriminalroman Rating: 0 out of 5 stars0 ratingsDie Farben des Zorns: Kriminalroman Rating: 0 out of 5 stars0 ratingsTödliche Verwandlung: Kriminalroman Rating: 0 out of 5 stars0 ratingsDie Bestie vom Kinzigtal: Kriminalroman Rating: 0 out of 5 stars0 ratingsDie Toten vom Kinzigtal Rating: 0 out of 5 stars0 ratingsVerschwörung im Kinzigtal: Kriminalroman Rating: 0 out of 5 stars0 ratings
Related to Windows Phone 8
Related ebooks
Windows-8-Apps für C#-Entwickler: Design-Guidelines, Anleitungen, Best Practices Rating: 0 out of 5 stars0 ratingsWindows Phone 7.5: Einstieg in die professionelle App-Entwicklung Rating: 0 out of 5 stars0 ratingsUniversal-Apps im Enterprise-Umfeld: Der praktische Wegweiser für Businessanforderungen Rating: 0 out of 5 stars0 ratingsWindows Phone 8.1: Alles Wissenswerte für Entwickler Rating: 0 out of 5 stars0 ratingsTitanium Mobile: Apps für iPhone und Android: Der schnelle Einstieg in die App-Programmierung Rating: 0 out of 5 stars0 ratingsWindows 10 Update - Frühjahr 2019: Alles zum großen Mai 2019-Update Rating: 0 out of 5 stars0 ratingsCross-Plattform-Entwicklung mit HTML und JavaScript Rating: 0 out of 5 stars0 ratingsWindows 11 für Profis: Insider-Wissen – praxisnah & kompetent Rating: 0 out of 5 stars0 ratingsAndroid Schnelleinstieg Rating: 0 out of 5 stars0 ratingsMobile Web-Apps mit JavaScript: Leitfaden für die professionelle Entwicklung Rating: 0 out of 5 stars0 ratingsMicrosoft KINECT: Programmierung des Sensorsystems Rating: 0 out of 5 stars0 ratingsWindows 10: Das Praxisbuch Rating: 0 out of 5 stars0 ratingsEinführung in die Programmierung mit Natural & Adabas Rating: 0 out of 5 stars0 ratings.NET-Praxis: Tipps und Tricks zu .NET und Visual Studio Rating: 0 out of 5 stars0 ratingsiOS-Apps programmieren mit Swift: Der leichte Einstieg in die Entwicklung für iPhone, iPad und Co. – inkl. Apple Watch und Apple TV Rating: 0 out of 5 stars0 ratingsF#: Einstieg und praktische Anwendung Rating: 0 out of 5 stars0 ratingsHTML5, JavaScript und jQuery: Der Crashkurs für Softwareentwickler Rating: 2 out of 5 stars2/5Cross-Platform-Entwicklung mit Tabris.js Rating: 0 out of 5 stars0 ratingsWindows 10 Erfolgreich ein- und umsteigen Rating: 0 out of 5 stars0 ratingsTitanium Mobile: Multi Platform Apps mit JavaScript Rating: 0 out of 5 stars0 ratingsWindows 10 Datenschutzfibel 2019: Alle Datenschutzeinstellungen finden, verstehen und optimal einstellen Rating: 0 out of 5 stars0 ratingsWindows 10 Update - Oktober 2018: Alles zum neuen Herbst-Update Rating: 0 out of 5 stars0 ratingsWindows 8 Apps entwickeln: Entwickeln mit HTML5, JavaScript, XAML und C# Rating: 0 out of 5 stars0 ratingsEmbedded Linux lernen mit dem Raspberry Pi: Linux-Systeme selber bauen und programmieren Rating: 0 out of 5 stars0 ratingsSo geht das in Darktable 3: Fotos importieren, bearbeiten und verwalten Rating: 0 out of 5 stars0 ratingsWicket: Komponentenbasiert und objektorientiert - das alternative Java-Webframework Rating: 0 out of 5 stars0 ratingsDas Android Tablet-Buch: Systemoberfläche tunen • Optimaler Datenfluss • Fotos bearbeiten Rating: 0 out of 5 stars0 ratingsPhoneGap 3: Apps für iOS, Android und Windows Phone & Co. entwickeln Rating: 0 out of 5 stars0 ratings
Internet & Web For You
Der Content Faktor: Schreiben Sie Texte, die gefunden und gelesen werden Rating: 0 out of 5 stars0 ratingsGoogle Platz 1: Lernen Sie von einem der führenden Suchmaschinenoptimierer Deutschlands Rating: 0 out of 5 stars0 ratingsSEO mit Google Search Console: Webseiten mit kostenlosen Tools optimieren Rating: 0 out of 5 stars0 ratingsSo findest du den Einstieg in WordPress: Die technischen Grundlagen zu Installation, Konfiguration, Optimierung, Sicherheit, SEO Rating: 0 out of 5 stars0 ratingsDas Facebook-Marketing-Buch Rating: 4 out of 5 stars4/5Praxisbuch WordPress Themes Rating: 0 out of 5 stars0 ratingsSchnelleinstieg WordPress SEO: Einstellungen, Keywords, Plug-ins und Strategien für optimales SEO Rating: 0 out of 5 stars0 ratingsUX-Missverständnisse: Was sich User wirklich wünschen Rating: 0 out of 5 stars0 ratingsPHP für WordPress: Themes und Templates selbst entwickeln Rating: 0 out of 5 stars0 ratingsProgrammieren lernen mit Python 3: Schnelleinstieg für Beginner Rating: 0 out of 5 stars0 ratingsWas kommt. Was geht. Was bleibt.: Kluge Texte über die wichtigsten Fragen unserer Zeit Rating: 0 out of 5 stars0 ratingsOnline-Marketing: 10 Schritte zur finanziellen Freiheit Rating: 0 out of 5 stars0 ratingsWir machen dieses Social Media Rating: 0 out of 5 stars0 ratingsStarke Webtexte. So texten Sie Ihre Website selbst Rating: 0 out of 5 stars0 ratingsDie Zukunft der Lehrkraft: Lehren mit neuen Medien in der Erwachsenen- und Altenbildung Rating: 0 out of 5 stars0 ratingsAndroid Security: Von Fake-Apps, Trojanern und Spy Phones Rating: 0 out of 5 stars0 ratingsJoomla 4.0 logisch!: Einfache Webseitenerstellung ohne Programmierkenntnisse Rating: 0 out of 5 stars0 ratingsSECURITY AWARENESS: Leitfaden zur IT-Sicherheit für Anwender Rating: 0 out of 5 stars0 ratingsEinfach Verschlüsseln Rating: 0 out of 5 stars0 ratingsJavaScript kinderleicht!: Einfach programmieren lernen mit der Sprache des Web Rating: 0 out of 5 stars0 ratings30 Minuten Metaverse Rating: 0 out of 5 stars0 ratingsDas kleine Hypnose Einmaleins - Alles was Sie schon immer über die Hypnose wissen wollten von Ewald Pipper vom Hypnoseinstitut Rating: 0 out of 5 stars0 ratingsEinführung ins Darknet: Darknet ABC Rating: 0 out of 5 stars0 ratingsDas Buch zu Google Ads: Strategien für kleine und mittlere Unternehmen Rating: 0 out of 5 stars0 ratingsWordPress-Themes entwickeln: HTML5, CSS3, JavaScript und PHP: Praxiswissen und Quellcodes zum Entwurf von WordPress-Themes Rating: 0 out of 5 stars0 ratingsNext Level JavaScript: Schlagworte Rating: 0 out of 5 stars0 ratingsopenHAB: Automatisiertes Heim - Teil 1 Rating: 4 out of 5 stars4/5SEO Crashkurs - 10 Schritte zum Erfolg auf Google Rating: 0 out of 5 stars0 ratingsEinstieg in WordPress Rating: 0 out of 5 stars0 ratings
Reviews for Windows Phone 8
0 ratings0 reviews
Book preview
Windows Phone 8 - Matthias Fischer
Zusammenarbeit.
1 Einleitung
1.1 Die Beispiele zum Buch
Alle in diesem Buch verwendeten Beispiele liegen in meinem GitHub-Account unter http://github.com/dotnetautor/WP8Kochbuch. Für einen leichteren Zugriff habe ich folgenden Kurz-URL erstellt. http://bit.ly/WP8Buch.
Abbildung 1.1: Beispiele auf der GitHub-Seite
1.1.1 Beispiel als Zip-Archiv laden
Auf der Startseite befindet sich die Schaltfläche Download Zip. Diese lädt ein komplettes Archiv mit allen Beispielen auf Ihren Computer. Öffnen Sie vor dem Entpacken die Eigenschaften der Datei (rechte Maustaste im Explorer ➝ Eigenschaften) und lassen Sie diesen Download auf Ihrem Computer als „vertrauenswürdige Datei" zu.
Abbildung 1.2: Zulassen des Downloads auf dem Computer
Entpacken Sie das Archiv in ein Verzeichnis Ihrer Wahl, z. B. C:\WP8Kochbuch.
1.1.2 GitHub-Windows-Client
Alternativ können Sie den kostenfreien GitHub-Windows-Client unter http://windows.github.com/ herunterladen. Dieser Client ermöglicht es, die Beispiele direkt aus dem Git Repository auf Ihre lokale Festplatte zu „klonen". Bevor Sie jedoch diese Methode verwenden können, müssen Sie zuerst einen Account bei GitHub registrieren, mit dem Sie sich im Client anmelden können.
Nach der Installation und Einrichtung eines Root-Verzeichnisses für alle Git-Repositories können Sie die Schaltfläche Clone in Desktop verwenden, wenn Sie auf der GitHub-Webseite mit Ihrem GitHub-Account angemeldet sind. Je nach Browser werden Sie ggf. gefragt, ob Sie die App zulassen möchten.
Abbildung 1.3: Abfrage einer externen Protokollanforderung in Chrome
Nach dem Starten der App beginnt der GitHub-Client automatisch mit der Übertragung des Repositories auf Ihre Festplatte.
Abbildung 1.4: GitHub Repository in dem GitHub-Client für Windows
1.2 Die Windows-Phone-8-Plattform
In diesem Abschnitt wird die historische Entwicklung der Windows-Phone-Plattform bis zur aktuellen Version Windows Phone 8 beschrieben.
1.2.1 Hardware der Windows-8-Plattform
Mit der Einführung von Windows Phone 7 wurde eine einheitliche Plattform geschaffen. Diese Plattform wird auch Hardware Foundation genannt. Alle Geräte, auf denen das Betriebssystem Windows Phone 7 laufen soll, müssen folgende minimale Anforderungen erfüllen.
Tabelle 1.1: Übersicht der Mindestanforderungen an ein Windows Phone 7
Mit dem Mango-Release (SDK 7.1 / 7.1.1) sind weitere optionale Sensoren dazugekommen, um neue Geräte mit zusätzlicher Hardware zu unterstützen. Ferner wurden mit der Einführung der so genannten Low Memory Devices die Mindestanforderungen wiederum aufgeweicht, so wurden die Kamera und das A-GPS Device optional.
Tabelle 1.2: Optionale Features der Windows-Phone-7.1-Plattform
Profitipp: Die Einführung von optionalen Features hat zur Folge, dass bei der Entwicklung einer App damit zu rechnen ist, das diese App auf einem Gerät laufen könnte, welche das eine oder andere Feature nicht unterstützt. Um Abstürze zu vermeiden, die durch Ansprechen von nicht vorhandener Hardware verursacht werden können, empfiehlt es sich, vor der Nutzung eines Sensors zunächst sicherzustellen, dass dieser in dem Gerät vorhanden ist. Weitere Details dazu finden Sie bei der Beschreibung der jeweiligen Sensoren.
Auf der Windows-Phone-8-Plattform wurden weitere Features eingeführt. Neben der bereits vorhandenen Auflösung sind zwei neue Auflösungen WXVGA (1280 x 768) und „True-720p" (1280 x 720) hinzugekommen.
Abbildung 1.5: Vergleich der verschiedenen Auflösungen
Weiterhin ist die Unterstützung für Multikernprozessoren hinzugekommen. Da diese Unterstützung vor allem durch einen gemeinsamen Betriebssystemkern mit Windows 8 bedingt ist, kann auch Windows Phone 8 bis zu 64 Prozessorkerne unterstützen. Ferner kam die Unterstützung von SD-Karten in den Größen 16 GB, 32 GB und 64 GB dazu. Auf der externen Speicherkarte können neben Bildern, Musik und Videos auch spezielle Installationspakete für Apps abgelegt werden.
Hinweis: Apps können nicht auf die Speicherkarte, sondern nur von der Speicherkarte auf das Telefon installiert werden. Dafür müssen die Apps in einem für das Installieren von der Speicherkarte geeignetem Format vorliegen.
Abbildung 1.6: Multicore und SD-Kartenunterstützung für Windows Phone 8
Im Bereich Kommunikation werden mit der Einführung von Windows Phone 8 Near Field Communication (NFC) sowie Bluetooth unterstützt. Weitere Details zur Verwendung entsprechender Kommunikations-APIs erhalten Sie im Kapitel „Kommunikation".
1.2.2 Windows 8 Shared Core
Die Einführung von Windows 8 hatte auch Auswirkungen auf die Windows-Phone-8-Plattform. Beide neuen Plattformen basieren auf einem gemeinsamen Systemkern, der auch kurz Windows-8-Plattform genannt wird.
Hinweis: Wenn in diesem Buch die Rede von Windows-8-Plattform ist, ist immer die gemeinsame Plattform gemeint, wenn nichts anderes gesagt wird.
Windows Phone 7.x basiert auf dem Systemkern von Windows CE 6. Darauf aufbauend befinden sich die Plattformdienste, die unter anderem für die Darstellung der Benutzeroberfläche (UI), die Integration in die Cloud sowie das Anwendungsmodell verantwortlich sind.
Der in Silverlight oder XNA entwickelte Programmcode wird innerhalb einer Sandbox ausgeführt, welche die Anwendung von der Windows-Phone-Betriebssystemebene isoliert. Das hat zur Folge, dass nur APIs aufgerufen werden können, die von der Sandbox unterstützt werden. So ist unter anderem kein direkter Zugriff auf das Dateisystem möglich. Stattdessen wird jeder App ein eigener abgeschirmter Bereich, der so genannte Isolated Storage, zugeordnet, in dem die App Dateien schreiben und lesen kann. Auf diese Dateien kann nur von der App zugegriffen werden, der sie gehören. Das bedeutet, Dateien können nicht zwischen den einzelnen Apps ausgetauscht werden.
Abbildung 1.7: Windows Phone 7.x vs. Windows Phone 8
Im Gegensatz dazu basiert Windows Phone 8 direkt auf einem vollkommen neu entwickelten gemeinsamen Systemkern mit Windows 8. Auf diesem Systemkern aufbauend befinden sich nach wie vor die Plattformdienste. Der Unterschied zwischen dem neuen und dem alten System ist das Entfallen der Sandbox. Die einzelnen APIs, die im Folgenden noch genauer beschrieben werden sollen, greifen direkt auf die entsprechenden Dienste der Plattform zu.
Binäre Kompatibilität zu Windows Phone 7.x
Um Entwicklern und Anwendern die Möglichkeit zu geben, weiterhin Windows-Phone-7.x-Apps problemlos auf einem Windows Phone 8 laufen lassen zu können, ohne sie neu übersetzen oder anpassen zu müssen, wurde eine spezielle Zwischensicht, die Quirks Shim eingeführt. Diese Kompatibilitätsschicht bildet alle API-Aufrufe dem Windows Phone 7.x API direkt auf die darunter befindliche Plattformdienstschicht ab. Das funktioniert für die meisten Apps ohne Probleme.
Der Vollständigkeit halber soll eine der wenigen Ausnahmen an dieser Stelle erwähnt werden, die nicht mit einer Quirks Shim nachgebildet werden kann.
Der Garbage Collector wurde auf dem Windows Phone 8 aus dem Betriebssystemkern übernommen. Aus diesem Grund verhält sich der Programmcode, der auf eine definierte Reihenfolge bei der Finalisierung der Objekte durch den Finaliser angewiesen ist, anders als auf der Windows-Phone-7.x-Plattform, da auf der neuen Plattform keine Finalisierungsreihenfolge für abhängige Objekte garantiert werden kann.
Quellcodekompatibilität
Neben der binären Kompatibilität gibt es auch die Quellcodekompatibilität. Im Gegensatz zu der binären Kompatibilität, bei der die fertig ausgelieferte App mithilfe einer entsprechenden zusätzlichen Schicht ausgeführt werden kann, geht es hierbei um die Möglichkeit, Quelltexte zwischen den Plattformen zu teilen.
Hinweis: Da vor allem die Namensräume von den Steuerelementen verschoben wurden, bezieht sich diese Quellcodekompatibilität vor allem auf funktionalen Programmcode in C# oder VB.NET und weniger auf XAML Markup Code.
Abbildung 1.8: Geteilter Quellcode vs. geteilter Binärcode
1.2.3 Windows-Phone-8-Entwicklungsplattform
Auf der neuen Windows-Phone-8-Plattform stehen jetzt zwei Welten zur Verfügung. Auf der einen Seite ist es die Welt der Managed-Programmierung mit Programmiersprachen wie C# oder VB.NET, auf der anderen Seite die Unmanged-Welt mit Programmiersprachen wie C/C++. Aus der Sicht des Softwareentwicklers bietet die neue Plattform zunächst die Möglichkeit, weiterhin Apps zu entwickeln, wie bereits für die Windows-Phone-7.x-Plattform, in dem bekannten Managed API. Die Silverlight und XNA Game Studio 4.0 APIs existieren auch unter Windows Phone 8 weiter, zuzüglich einem Anteil für neue Windows-Phone-8-Funktionen. Dieses API wurde von Silverlight für Windows Phone umbenannt in „.NET für Windows Phone API". Technisch verbirgt sich dahinter ein leicht modifiziertes Silverlight 5 wie auch schon in der Vorgängerversion ein Silverlight 4 für Windows Phone. Dieses API kann nur aus der Managed-Welt von .NET angesprochen werden.
Neu dazugekommen ist die Windows Phone Runtime (WinPRT), die sich einen Teil der Basisfunktionen mit der Windows Runtime (WinRT) von Windows 8 teilt. Die WinPRT ist nicht wie die Vorgängerversion in C# bzw. .NET implementiert, sondern als native COM-Komponenten in C++. Dank eines entsprechenden Mapping Layers kann dieses API sowohl von der Managed-Welt rund um .NET (C#/VB.NET) als auch aus der Unmanaged-Welt rund um C/C++ angesprochen werden.
Die größte Veränderung kommt mit dem Win32 API, das es ermöglicht, bestimmte Betriebssystemfunktionen direkt aus C/C++ heraus anzusprechen.
Abbildung 1.9: Die Windows-Phone-8-Plattform aus der Sicht eines Entwicklers
In diesem Buch ist es nicht möglich, auf alle Kombinationen und Möglichkeiten der Frameworks und Schnittstellen einzugehen. Ziel ist es vielmehr, einen Überblick über die Entwicklung mit C# und XAML zu geben sowie einen schnellen Einstieg in die App-Entwicklung zu ermöglichen.
1.2.4 Wann welches API?
Die Tatsache, dass es zwei managed APIs unter Windows Phone 8 gibt, stellt uns Entwickler vor die Wahl, welches API in der App zur Anwendung kommen soll. Viele der Funktionen sind doppelt vorhanden, einmal im .NET for Windows Phone API und einmal im WinPRT API.
Das Wichtigste zuerst: Beide APIs sind gleichberechtigt, die Unterscheidung erfolgt implizit mithilfe des Namensraums. Alle WinPRT-API-Funktionen befinden sich in Namensräumen, die mit „Windows" beginnen.
Tabelle 1.3: Beispiele für sich überschneidende API-Funktionen
Wenn es kein anderes Kriterium für die Entscheidung gibt, empfiehlt es sich, Folgendes zu beachten:
Programmcode, der zwischen WP 7.x und WP 8 geteilt werden oder direkt von WP 7.x portiert werden soll, lässt sich leichter mithilfe der .NET für Windows Phone API realisieren, da die gleichen Funktionen (größtenteils) auf beiden Plattformen zur Verfügung stehen.
Für Programmcode, der vor allem zwischen Windows Phone 8 und Windows 8 geteilt werden soll, empfiehlt es sich hingegen, das WinPRT API zu verwenden, weil die WinPRT und WinRT APIs sich größtenteils überscheiden.
Hinweis: Weitere Informationen über die Entwicklung einer App für mehrere Plattformen erfahren Sie im Kapitel „Multiplattformentwicklung"
1.3 Werkzeuge
Bevor es jedoch mit der Erstellung Ihrer ersten App losgehen kann, müssen zunächst die entsprechenden Werkzeuge für die Entwicklung auf Ihrer Entwicklungsumgebung vorhanden sein.
1.3.1 Werkzeuge und Umgebung
Für die Entwicklung von Windows-Phone-8-Apps stellt Microsoft das Windows Phone SDK in verschiedenen Versionen bereit. Für dieses Buch wurde das Windows Phone SDK 8.0 verwendet, das Sie unter http://bit.ly/wp8sdk herunterladen können.
In dem kostenlosen SDK sind alle Werkzeuge enthalten, die Sie im Folgenden benötigen werden, um eine App für die Windows-Phone-8-Plattform zu erstellen:
Visual Studio 2012 Express
Blend für Visual Studio 2012
Windows Phone 8 SDK
Windows Phone 7.1 SDK¹
Windows Phone 8 Emulator
Windows Phone 7.X Emulator
Profitipp: Das Windows Phone SDK 8.0 installiert die Express-Version von