PlatformFrameworkTools Bring your own End user experience Great apps delivered to the user’s...

24

Transcript of PlatformFrameworkTools Bring your own End user experience Great apps delivered to the user’s...

Page 1: PlatformFrameworkTools Bring your own End user experience Great apps delivered to the user’s choice of device Development agility to move at mobile.
Page 2: PlatformFrameworkTools Bring your own End user experience Great apps delivered to the user’s choice of device Development agility to move at mobile.

David CarmonaDirector - Visual Studio Product Marketing

Strategies for Developing Cross-Device Applications with Visual Studio 2013

2-586

Page 3: PlatformFrameworkTools Bring your own End user experience Great apps delivered to the user’s choice of device Development agility to move at mobile.

Today’s session

Platform Framework Tools

Bring your own Bring your own Bring your own

Page 4: PlatformFrameworkTools Bring your own End user experience Great apps delivered to the user’s choice of device Development agility to move at mobile.

The search of the Holy Grail

End user experienc

eGreat apps delivered to

the user’s choice of device

Development agility to move at mobile speed

Developer Experience

+

+

-

Page 5: PlatformFrameworkTools Bring your own End user experience Great apps delivered to the user’s choice of device Development agility to move at mobile.

The big decision

WebNative

Page 6: PlatformFrameworkTools Bring your own End user experience Great apps delivered to the user’s choice of device Development agility to move at mobile.

The big decision

Full access to client features and powerHigh flexibility and customization per deviceDevice-dependent

Device-independentEasier managementConstrained device integration and performance

Web

Native

Page 7: PlatformFrameworkTools Bring your own End user experience Great apps delivered to the user’s choice of device Development agility to move at mobile.

Web applicationsacross devices

Page 8: PlatformFrameworkTools Bring your own End user experience Great apps delivered to the user’s choice of device Development agility to move at mobile.

Web applications - strategies

Black Box

Common code base across browsers and

devices

CSS | HTML | JavaScript

1 Do nothing

2 Adapt in the client

3 Adapt in the server

4 Mimic an app

Page 9: PlatformFrameworkTools Bring your own End user experience Great apps delivered to the user’s choice of device Development agility to move at mobile.

Demo – do nothing

Page 10: PlatformFrameworkTools Bring your own End user experience Great apps delivered to the user’s choice of device Development agility to move at mobile.

Adapt in the client

Minimum duplicationPros

No customization per deviceInefficient bandwidth

Cons

• Meta Viewport

• CSS Media

• Useful libraries• Bootstrap

<meta name="viewport" content="width=device-width" />

@media only screen and (max-width: 1024px) and (max-height: 768px){ ... }

Page 11: PlatformFrameworkTools Bring your own End user experience Great apps delivered to the user’s choice of device Development agility to move at mobile.

Demo – adapt in the client

Page 12: PlatformFrameworkTools Bring your own End user experience Great apps delivered to the user’s choice of device Development agility to move at mobile.

Adapt in the server

Maximum flexibilityPros

Likely to duplicate code

Cons

• MVC Mobile Views• Rename views to .Mobile• Add custom display modes if needed

• Useful libraries• jQuery Mobile• Dojo Mobile• Sencha Touch

DisplayModeProvider.Instance.Modes.Insert(0, new DefaultDisplayMode("iPhone"){ ContextCondition = (context => context.GetOverriddenUserAgent().IndexOf ("iPhone", StringComparison.OrdinalIgnoreCase) >= 0)});

Page 13: PlatformFrameworkTools Bring your own End user experience Great apps delivered to the user’s choice of device Development agility to move at mobile.

Demo – adapt in the server

Page 14: PlatformFrameworkTools Bring your own End user experience Great apps delivered to the user’s choice of device Development agility to move at mobile.

Mimic an app

Best experience for devicesPros

Still not a native app…

Cons

• Single Page Application• Consume services from client• Client rendering / data binding• TypeScript is your friend!

• Optionally package as App• Apache Cordova platform• Uniform device APIs as JavaScript

• Additional useful libraries• Knockout• AngularJS• WinJS

new

Page 15: PlatformFrameworkTools Bring your own End user experience Great apps delivered to the user’s choice of device Development agility to move at mobile.

Demo – mimic an app

Page 16: PlatformFrameworkTools Bring your own End user experience Great apps delivered to the user’s choice of device Development agility to move at mobile.

Native applicationsacross devices

Page 17: PlatformFrameworkTools Bring your own End user experience Great apps delivered to the user’s choice of device Development agility to move at mobile.

Using the platform native tools

Xcode ADT Visual Studio

Multiple code bases,tools and skillsEnd user

experience

Developer Experience

+

+

-

Page 18: PlatformFrameworkTools Bring your own End user experience Great apps delivered to the user’s choice of device Development agility to move at mobile.

Microsoft and Xamarin partnership

Fully native apps written entirely in C#

Visual Studio capabilities fully available

Share app logic code across device platforms

100% APIs exposed

C# unique approachpowered by Microsoft .NET and Xamarin

End user experienc

e

Developer Experience

Page 19: PlatformFrameworkTools Bring your own End user experience Great apps delivered to the user’s choice of device Development agility to move at mobile.

Maximizing code reuse

ViewsHow to display information

View ModelsWhat information to displayFlow of interaction

ModelsData objectsBusiness logicEtc.

Model

View Model

View Device-specific

Portable codeReferences

Databinds

Page 20: PlatformFrameworkTools Bring your own End user experience Great apps delivered to the user’s choice of device Development agility to move at mobile.

Demo – Native applications

Page 21: PlatformFrameworkTools Bring your own End user experience Great apps delivered to the user’s choice of device Development agility to move at mobile.

Summary

.NETC++ JavaScript

PERFORMANCE REACH

Page 22: PlatformFrameworkTools Bring your own End user experience Great apps delivered to the user’s choice of device Development agility to move at mobile.

Resources .NET sessions @ //BUILD

The Next Generation of .NET for Building Device Applications Habib Heydarian

The Future of C#(“Roslyn”)

Mads Torgersen, Dustin Campbell

Go Mobile with C# and Xamarin

Miguel de Icaza

Strategies for Developing Cross-Device Applications with Visual Studio 2013

David Carmona

The Present and Future of .NET in a World of Devices and Services

Jay Schmelzer

Technology Info Download

JIT “RyuJIT” http://aka.ms/RyuJITinfo http://aka.ms/RyuJIT

SIMD http://aka.ms/SIMDInfo http://aka.ms/SIMD

.NET Compiler Platform (“Roslyn”)

http://aka.ms/NETCompilerPlatform

http://roslyn.codeplex.com

http://aka.ms/NetCompilerPlatformDownload

.NET support on Azure Mobile Services

http://aka.ms/azuremobileservicesnet

http://aka.ms/VS2013Update2

ASP.NET Updates in VS 2014 Update 2

http://aka.ms/VS2013Update2Info

http://aka.ms/VS2013Update2

Universal Windows apps

http://aka.ms/universalprojects

http://aka.ms/VS2013Update2

.NET Native http://aka.ms/dotnetnative

http://aka.ms/dotnetnativedownload

Xamarin http://xamarin.com http://xamarin.com

Page 23: PlatformFrameworkTools Bring your own End user experience Great apps delivered to the user’s choice of device Development agility to move at mobile.

Your Feedback is Important

Fill out an evaluation of this session and help shape future events.

Scan the QR code to evaluate this session on your mobile device.

You’ll also be entered into a daily prize drawing!

Page 24: PlatformFrameworkTools Bring your own End user experience Great apps delivered to the user’s choice of device Development agility to move at mobile.

© 2014 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.