13. http://windows.Microsoft.com
Easy for users to get
& stay current
Unified core
and app platform
Resan till sammanslagning
Windows Phone 7.5
Windows Phone 8
Windows
Phone 8.1
Windows 8
Xbox One
Windows on Devices
Xbox 360
Windows 8.1
Windows 10
Converged
OS kernel
Converged
app model
14. http://windows.Microsoft.com
Easy for users to get
& stay current
Unified core
and app platform
Resan till sammanslagning
Windows Phone 7.5
Windows Phone 8
Windows
Phone 8.1
Windows 8
Xbox One
Windows on Devices
Xbox 360
Windows 8.1
Windows 10
Converged
OS kernel
Converged
app model
16. http://windows.Microsoft.com
En Store +
Ett Dev Center
Återanvänd
existerande
kodEn SDK +
utvecklingsmiljö
Adaptivt
User Interface
Naturliga
Användarinmatningar
En Universell Windows Plattform
33. http://windows.Microsoft.com
Adaptiv design
Responsiv design
Flexibel layout som reagerar på små ändringar
Många kontroller hanterar responsivitet automatiskt
Adaptiv design
Smart layout som reagerar på stora förändringar
Använd Visual states
Skräddarsydd design
Enhetsspecifik design
Vissa enheter har ett specifikt designspråk
37. http://windows.Microsoft.com
Visual Studio IDE
Alla projekttyper
Desktop, Windows, Telefon, Service, Webb, Spel, m.m…
Alla utvecklaruppgifter
Editera kod, Arikitekt design, UX design, Debug, Profilering, Utvärdering, Test, m.m…
Alla språk
C++/CX, C#, Visual Basic, JavaScript, XAML, HTML, m.m…
Visual Studio Online
Källkodshantering, projekthantering, spåra buggar, m.m…
38. http://windows.Microsoft.com
Blend för Visual Studio
XAML utvecklingmiljö
Alltid en del av Visual studio
Använder Visual studio-skal
Full auto-complete & intellisense
• Validation
• Snippets
• Peek
Fil & solution-managering
Resurs-managering
Data-managering
Animationer
States
39. http://windows.Microsoft.com
Visual Studio 2015 versioner
Enterprise
arkitektmodelering, Diagnostics, VSO/ALM & Release Management
Professional
Architecture Validation, VSO/ALM & Feedback Management
Community Editions
Visual Studio Professional Edition
43. http://windows.Microsoft.com
.NET Native
Nästa generation kompilator i molnet
Alla windows appar, endast Windows appar (just nu)
Appar avänder sig av standrard C++ optimering
.Net natives prestanda förbättras i takt med C++ optimizer
Appar med .Net bootstrapper
Inkluderar garbage collection
Ingen runtime
Detta är maskinkod
46. http://windows.Microsoft.com
“Template 10”
Ny tom mall
Innehåller få filer och tomma mappar för att hjälpa till med konventioner
Liknar MVC-mallen
Tillägg kommer att lösa vanliga problem
Löser 90%
Koden löser 90% av alla användarfall
Levereras med Windows 10
Mallen finns på Github och är under konstruktion
74. http://windows.Microsoft.com
Vanliga frågeställningar
RelativeSource = Self & ElementName
Referera element med namn Text="{x:Bind MyElement.Text}"
UpdateSourceTrigger = PropertyChanged
Det finns inte UpdateSourceTrigger med x:Bind
Source / DataContext
Lägg till en Viewmodel i din code-behind
76. http://windows.Microsoft.com
När använder man klassisk binding?
Duck Typing
Text=“{Binding Age}” fungerar för både PersonModel & WineModel
Otypat
Använd {Binding} med JSON eller andra otypade objekt
Code-behind binding
Kan inte lägga till eller ta bort {x:Bind} vid körning
Använd i style
{x:Bind} Kan inte användas vid Style-setters
{x:Bind} Kan användas i en DataTemplate som är definerad i en style
99. http://windows.Microsoft.com
Tre sätt att anpassa
Responsiv design
Ändra storlek på ditt innehåll
Ändra flöde på ditt innehåll
Adaptiv design
Positionera om ditt innehåll
Designa om ditt innehåll
100. http://windows.Microsoft.com
Tre sätt att anpassa
Responsiv design
Ändra storlek på ditt innehåll
Ändra flöde på ditt innehåll
Adaptiv design
Positionera om ditt innehåll
Designa om ditt innehåll
Skräddarsydd design
106. http://windows.Microsoft.com
Skräddarsydd design
Bygg sidor/kod för respektive enhets-familj
Gränsnitt för en hand?
if (physical_diagonal_size <= 7)
// optimized for one-handed operation
rootFrame.Navigate(typeof(MainPage_OneHanded), e.Arguments);
else
rootFrame.Navigate(typeof(MainPage), e.Arguments);
107. http://windows.Microsoft.com
Skräddarsydd design
Bygg sidor/kod för respektive enhets-familj
Gränsnitt för en hand?
if (physical_diagonal_size <= 7)
// optimized for one-handed operation
rootFrame.Navigate(typeof(MainPage_OneHanded), e.Arguments);
else
rootFrame.Navigate(typeof(MainPage), e.Arguments);
151. http://windows.Microsoft.com
Vad är Adaptiva Appar?
Windows appar anpassar sig till olika
Plattformsversioner
Enhetstyper
Skärmstorlekar
“Adaptivt UI” hanterar olika skärmar
“Adaptivt kod” kan aktivera din app så den bara kör kod när det kör
på en specifik enhet och/eller specifik version av plattform/enhets
specifika API:er
166. http://windows.Microsoft.com
Test capabilities at runtime
var api = "Windows.Phone.UI.Input.HardwareButtons";
if (Windows.Foundation.Metadata.ApiInformation.IsTypePresent(api))
{
Windows.Phone.UI.Input.HardwareButtons.CameraPressed
+= CameraButtonPressed;
}
175. http://windows.Microsoft.com
Använd en specifik version av ett API
Adaptiv kod, inte bara för att hantera enhetsfamilj-
specifik kod
Skriv din kod mot en bas UWP version
Hantera uppdateringar
176. http://windows.Microsoft.com
Användning av uppdaterade API:er
var contract = "Devices.Scanners.ScannerDeviceContract";
int majorVersionRequired = 3;
if (Windows.Foundation.Metadata.ApiInformation.
IsApiContractPresent(contract, majorVersionRequired ))
{
// Call the API that is present in V3 and above
...
}
else
{
// Your original code supporting users who haven’t upgraded yet
...
}
180. http://windows.Microsoft.com
Använd adaptiv kod i delade projekt!
#if WINDOWS_PHONE_APP
// Processing for Windows Phone 8.1 only
Windows.Phone.UI.Input.HardwareButtons.CameraPressed
+= this.Camera_Pressed;
#elif WINDOWS_UAP
// Processing for Windows UWP – Desktop AND Mobile
if (Windows.Foundation.Metadata.ApiInformation
.IsTypePresent("Windows.Phone.UI.Input.HardwareButtons";))
{
// But this is only for UWP AND Mobile
Windows.Phone.UI.Input.HardwareButtons.CameraPressed
+= this.Camera_Pressed;
}
#endif