Matthias Fischer www.it-visions.de Say "Hello" to Windows Phone 8
Consultant und Trainer Referentenvorstellung.NET-Entwicklung seit 2001 ASP.NET, MVC4, SQL Server 2012 WPF, MVVM, Phone 8, Windows 8 Autor (Auswahl) Carl Hanser Verlag, Addison-Wesley, Wrox, windows.developer Projekte (Auswahl) netrixcomponent.net augmentedbooks.com texxtoor.de, texxtoor.com OSMLogger, BatchUploader, BASTA!2013, MTC Spring 2013 Expertennetzwerke (Auswahl) Mehr Informationen: www.dotnetautor.de[/blog] Kontakt : matthias@dotnetautor.de
Premium Developer Program Nokia Premium Developer Program = 99 USD/year developer.nokia.com/windowsphone developer.nokia.com/entwicklergeraet entwickler@nokia.com
WINDOWS PHONE 8
Modern UI Modern UI ist nicht der Name der Technologie, sondern der Name für eine Bedienmetapher (UI Experience) Modern UI ist kein Framework Silverlight oder XNA 4.0 ist das Framework Vollständig neue Konzepte Charakteristika von Modern UI Massive Reduktion, Nutzung von Freiräumen Nur die relevanten Informationen anzeigen Designer sollten der Kernidee von Modern UI folgen, um sich inspirieren zu lassen.
Modern UI Windows Phone 7 ab 2009/2010 Quelle: Microsoft
Entstehung des Modern UI Designs Quelle: Microsoft
Windows Phone Animation Tile - Animation Continuus - Animation
HUBs Quelle: Microsoft
Windows (Phone) 8 Applications Windows Phone 8 Applications XAML XAML + Nativ Nativ C# and VB C++ HTML Maps Push&Tiles Speech In-App Purchase Direct3D XML XAML Wallet Proximity VoIP XAudio Phone Features Geolocation Camera Contacts Enterprise Media Foundation Calendar Threading Touch Sensors Xbox STL Multitasking CoreTypes Memory Programming Model App launch CRT.NET.NET & WinRT WinRT Win32 Files Network Media Windows 8 shared Kernel
Plattformen aus Entwicklersicht Plattformen Managed Unmanaged Silverlight & XNA 1:1.NET WP 8.0 Windows Phone 7.X zusätzliche WP8 API Managed C#/VB.NET XAML XNA Windows 8 Core Runtime (WinPRT) Windows 8 Runtime WinRT 1:1 Windows Phone Runtime (WinPRT) Win32 & COM Nativ C++ DIrectX Windows 8 Windows Phone 8.0
Windows Phone Versionen Windows Mobile 6.5 Windows 8 Core Windows Phone 8 SDK Windows Phone 8 Windows Phone 7.1 Download Windows Phone 7.0 Windows Phone 7.1 Windows Phone 7.8 Windows Phone 8 Windows Phone 7.1 SDK Windows Phone 7.1 Download Windows Phone 7.1.1 SDK Update für WP7.1 SDK Download Windows Phone 7.8 SDK Update für WP 7.X SDK Update für WP 8 SDK Download https://dev.windowsphone.com/en-us/downloadsdk
MTC 2013 TODO APP
.NET 4 WP 8 Code Behind.NET 4 WP 8 trennt den Programm Code von dem Markup Code Markup Code wird in XAML formatiert angegeben, beschreibt Design der Seite enthält Steuerelemente, TextBox, Button, usw.) Programm Code wird als C# oder VB.NET Code in der Code Behind Datei angeben, enthält Funktionen, Ereignishandler usw. Die Klasse wird von der Basisklasse Page abgeleitet und durch Zusammenfügen der partiellen Anteile aus XAML und C#/VB.NET Code gebildet Page XAML Markup C# / VB.NET Code
XAML vs. C# XAML vs. CodeBehind <StackPanel Grid.Row="1" Orientation="Horizontal"> <TextBox Width="360" x:name="itemname"></textbox> <Button Content="add" Click="add_click"></Button> </StackPanel> private void add_click( object sender, RoutedEventArgs e) { var newtext = ItemName.Text;... }
Datenbindung Funktionsweise Eine Daten-Klasse, welche als Quelle für die Datenbindung verwendet wird, wird ViewModel genannt. FrameworkElement (z.b. PhonePage) DataContext ViewModel Die Datenquelle wird festgelegt, indem der Eigenschaft DataContext eines FrameworkElement s gesetzt wird. Eigenschaften von UI Elementen innerhalb des Containers, sowie Eigenschaften des Containers können nun an Eigenschaften des ViewModels gebunden werden. UIElement Property UIElement Property Property Property public class ToDoViewModel { public List<ToDoItem> Items { get; set; } } DataContext = new ToDoViewModel { Items = new [] {... } }; <phone:longlistselector ItemsSource="{Binding Items}" />
Live Demo Erstellen einer ToDo app Elemente hinzufügen Listen Templates Datenbindung
LIVE CYCLE EINER WINDOWS PHONE APP
Application Livecycle Re-load only if tombstoned running Save, but do not dispose #Activated closed tombstoned dormant
Lifecycle Events (Mango) Application_Launching Wenn die App aus dem geschlossenen Zustand startet Wird nicht geworfen bei Reaktivierung Application_Activated Wenn die App reaktiviert wird z.b. in den Vordergrund kommt Wird nicht beim Starten der App geworfen Siehe (IsApplicationInstancePreserved. Variable) Application_Deactivated Wenn die App deaktiviert wird z.b. in den Hintergrund geschickt Wird nicht geworfen beim Schießen der App Application_Closing Wenn die App geschlossen wird z.b. drücken der Zurück-Taste Wird nicht geworfen beim Deaktivieren der App
Application Livecycle Ext Re-load only if tombsto ned running Save, but do not dispose #Activated closed tombstoned dormant
Demo Live Cycle Erweitern der ToDo App, so dass die Informationen persistent gespeichert werden können
Fragen? 30
Brauchen Sie Unterstützung bei.net, Silverlight, Lightswitch, WCF, WPF, ASP.NET, IIS, Windows 8 oder Windows Phone 8? Beratung bei Einführung, Migration und Betrieb (Vor-Ort-)Schulungen, Workshops Coaching (Vor-Ort Telefon E-Mail Online-Meeting) Support (Vor-Ort Telefon E-Mail Online-Meeting) Entwicklung von Prototypen und Lösung Matthias Fischer IT Consult http://www.dotnetautor.de Telefon +49 1520 1920 708 matthias@dotnetautor.de