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

Preview:

Citation preview

David CarmonaDirector - Visual Studio Product Marketing

Strategies for Developing Cross-Device Applications with Visual Studio 2013

2-586

Today’s session

Platform Framework Tools

Bring your own Bring your own Bring your own

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

+

+

-

The big decision

WebNative

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

Web applicationsacross devices

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

Demo – do nothing

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){ ... }

Demo – adapt in the client

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)});

Demo – adapt in the server

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

Demo – mimic an app

Native applicationsacross devices

Using the platform native tools

Xcode ADT Visual Studio

Multiple code bases,tools and skillsEnd user

experience

Developer Experience

+

+

-

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

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

Demo – Native applications

Summary

.NETC++ JavaScript

PERFORMANCE REACH

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

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!

© 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.

Recommended