+ All Categories
Home > Documents > Windows 8 for Existing .NET Developers

Windows 8 for Existing .NET Developers

Date post: 16-Mar-2016
Category:
Upload: gwylan
View: 47 times
Download: 6 times
Share this document with a friend
Description:
Windows 8 for Existing .NET Developers. Tim Heuer Program Manager Windows Developer Experience Microsoft Corporation. Some UI platforms I’ve worked on…. Access/VBA Delphi VB3->6 (+ASP) “Cool” VB.NET Palm UI Windows Forms WAP ASP.NET ( WebForms ) SharePoint ( WebParts ). WAP - PowerPoint PPT Presentation
34
Windows 8 for Existing .NET Developers Tim Heuer Program Manager Windows Developer Experience Microsoft Corporation
Transcript
Page 1: Windows 8 for Existing .NET Developers

Windows 8 for Existing.NET DevelopersTim HeuerProgram ManagerWindows Developer ExperienceMicrosoft Corporation

Page 2: Windows 8 for Existing .NET Developers

Some UI platforms I’ve worked on…• Access/VBA• Delphi• VB3->6 (+ASP)• “Cool”• VB.NET• Palm UI• Windows Forms• WAP• ASP.NET (WebForms)• SharePoint (WebParts)

• WAP• Windows Forms• SharePoint (WebParts)• ASP.NET (WebForms)• Windows Presentation

Foundation (WPF)• Silverlight• Windows Phone• Windows 8

Page 3: Windows 8 for Existing .NET Developers

The ones I liked…• Access/VBA• Delphi• VB3->6 (+ASP)• “Cool”• VB.NET• Palm UI• Windows Forms• WAP• ASP.NET (WebForms)• SharePoint (WebParts)

• WAP• Windows Forms• SharePoint (WebParts)• ASP.NET (WebForms)• Windows Presentation

Foundation (WPF)• Silverlight• Windows Phone• Windows 8

Page 4: Windows 8 for Existing .NET Developers

.NET

Page 5: Windows 8 for Existing .NET Developers
Page 6: Windows 8 for Existing .NET Developers

Windows 8

Page 7: Windows 8 for Existing .NET Developers

You already have the skills to build Windows 8 apps with C# and VB

Page 8: Windows 8 for Existing .NET Developers

Using the Windows Runtime feels natural and familiar from C# and Visual Basic

Page 9: Windows 8 for Existing .NET Developers

.NET Framework and WinRT .NET (and C# and Visual Basic) is alive and well Windows Runtime (Windows.*) native APIs projected

Page 10: Windows 8 for Existing .NET Developers

[DllImport(“kernel32.dll”)]

Page 11: Windows 8 for Existing .NET Developers

[DllImport("avicap32.dll", EntryPoint="capCreateCaptureWindow")]static extern int capCreateCaptureWindow( string lpszWindowName, int dwStyle, int X, int Y, int nWidth, int nHeight, int hwndParent, int nID);

[DllImport("avicap32.dll")] static extern bool capGetDriverDescription( int wDriverIndex, [MarshalAs(UnmanagedType.LPTStr)] ref string lpszName, int cbName, [MarshalAs(UnmanagedType.LPTStr)] ref string lpszVer, int cbVer);

// more and more of the same

The C# code you have to write today…

Page 12: Windows 8 for Existing .NET Developers

The C# code you get to write on Windows 8

using Windows.Media.Capture;

var ui = new CameraCaptureUI();ui.PhotoSettings.CroppedAspectRatio = new Size(4, 3);

var file = await ui.CaptureFileAsync(CameraCaptureUIMode.Photo);

if (file != null) { var bitmap = new BitmapImage() ; bitmap.SetSource(await file.OpenAsync(FileAccessMode.Read)); Photo.Source = bitmap;}

Page 13: Windows 8 for Existing .NET Developers

.NET Framework and WinRT .NET (and C# and Visual Basic) is alive and well Windows Runtime (Windows.*) native APIs projected Can use C#/VB to create WinRT components Async everywhere: await/async keywords are your friends

Reference assemblies for .NET Framework Core Surface area specific for targeting Windows Runtime apps Redundancy removed when matching WinRT API exists

Portable Class Library projects Shared code at source and binary level Great for framework developers when possible

Page 14: Windows 8 for Existing .NET Developers

Extension methods bridge the gap between Windows Runtime and managed code

Page 15: Windows 8 for Existing .NET Developers

Streams Code SampleFileOpenPicker picker = new FileOpenPicker();picker.FileTypeFilter.Add("*");

StorageFile file = await picker.PickSingleFileAsync();

Windows.Storage.Streams.IInputStream inputStream = await file.OpenReadAsync();

System.IO.Stream stream = inputStream.AsStreamForRead();System.IO.StreamReader reader = new StreamReader(stream);

string contents = reader.ReadToEnd();

Page 16: Windows 8 for Existing .NET Developers

Understanding WinRT and Windows 8 for .NET Programmers

Podcast with Immo Landwerth, PM on the .NET Framework team

http://aka.ms/winrtnetfx

Page 17: Windows 8 for Existing .NET Developers

Development Patterns Code-behind approaches

Simpler apps Event-driven Coupling UI to logic

Model-View-ViewModel (MVVM) Separation of concerns More easily testable (TDD) Binding-driven No Behavior support currently

Page 18: Windows 8 for Existing .NET Developers

Using existing .NET patterns in Windows 8 apps

demo

Page 19: Windows 8 for Existing .NET Developers

In Windows 8, your .NET skills extend to C++ and JavaScript developers!

Page 20: Windows 8 for Existing .NET Developers

You can build Windows Runtime components that project into C++ or JavaScriptby following a few simple rules

Page 21: Windows 8 for Existing .NET Developers

Only the public types and members in your WinRT components need to follow these simple rules

Page 22: Windows 8 for Existing .NET Developers

API signatures must use only Windows Runtime typesStructs can only have public data fields

All types must be sealed (except XAML controls)Only supports system provided generic types

Page 23: Windows 8 for Existing .NET Developers

Visual Studio has built-in support for building Windows Runtime component projects using C#/VB

Page 24: Windows 8 for Existing .NET Developers

Building Windows Runtime Components in C#demo

Page 25: Windows 8 for Existing .NET Developers

Windows.UI.Xaml

Page 26: Windows 8 for Existing .NET Developers

Windows.UI.Xaml Same XAML primitives Optimized for touch experiences New UI Controls, familiar XAML structure

GridView/ListView SemanticZoom AppBar

Animation Library ThemeAnimations and Transitions

Extensibility Large 3rd party ecosystem still thriving

Page 27: Windows 8 for Existing .NET Developers

Tour around some new XAMLdemo

Page 28: Windows 8 for Existing .NET Developers

Resources and Localization Common resource APIs for WinRT No strongly-typed class generation from resource file

Folder- or file-based convention RESW == RESX in schema

Windows 8 only supports String resources XAML leverages a ‘merge’ technique for markup

String- and file-based resources compiled into PRI Visual Studio indexes all files for you

Page 29: Windows 8 for Existing .NET Developers

Resources and Localizationdemo

Page 30: Windows 8 for Existing .NET Developers

Data for Apps WCF endpoints

Add Service Reference still works! OData

In RP: Ultimate only, future will be NuGet/standalone Anonymous type binding Local Storage

IsolatedStorage Windows.Storage ESE (Jet) SQLite

Page 31: Windows 8 for Existing .NET Developers

Accessing DataBinding DataDebugging databinding

demo

Page 32: Windows 8 for Existing .NET Developers

Summary and More… You can use .NET for Apps and more Consider Portable Libraries as a method for code-share targeting

Create WinRT components when desired/needed

You can leverage your XAML/.NET skills to be successful quickly in the Windows Store!

Page 33: Windows 8 for Existing .NET Developers

You already have the skills to build Windows 8 apps with C# and VB

Page 34: Windows 8 for Existing .NET Developers

Recommended