TechDays 12

Post on 23-Feb-2016

51 views 0 download

description

TechDays 12. Building Windows 8 LOB apps Lessons learned. Mat Velloso Senior Software Development Engineer Microsoft Products and Services IT – Engineering Architecture. Agenda. What we’ve built, our little proof of concepts Lessons learned. The “Windows 8 effect”. - PowerPoint PPT Presentation

Transcript of TechDays 12

TechDays 12Building Windows 8 LOB apps

Lessons learned

Mat VellosoSenior Software Development EngineerMicrosoft Products and Services IT – Engineering Architecture

AgendaWhat we’ve built, our little proof of conceptsLessons learned

The “Windows 8 effect”

How will it affect line of business apps?Do we need to build them differently?Why should we migrate apps into Win 8 apps?

Our Proof of Concept Apps…

SharePoint Hub POC

SharePoint Hub POC

SharePoint Hub POC

SharePoint Hub POC

SharePoint Hub POC

SharePoint Hub POC

Approvals

Approvals

Approvals

Approvals

Approvals

Approvals

Approvals

thinking

easyfar more

than creating

Designing

simpleUI requiresto

use

,

complexity and over-complication

a

+ +app app app

Task centric apps

+ …

Task driven apps

Lessons

Lesson #1: What? No SQL Server?Build great services, everything depends on itFocus on REST, JSON, ODATACareful with integrated authenticationCareful with connectivityLoock at local storage options

Lesson #2: HTML/JS has strengthsRicher design (and easier to find designers)Easier to merge HTML in your appHTML begs for simplicity. Simplicity is good.

Lesson #3: Don’t build a duck…

“A duck can walk, fly and swim. And does all these things poorly”Don’t force a desktop application into a Win 8 app.

Lesson #4: Each UI = 4 UI’s (or more)

X different resolutions…X (touch + mouse + stylus)+Tiles, secondary tiles, badge, toast, search UI, file picker, etc…

= don’t underestimate the UI effort

Landscape Portrait Snap and Full

Lesson #5: Desktop apps are OK tooIf your requirements don’t fit into a Win 8 store app, that’s probably because you shouldn’t be building one.

And that’s ok, turns out we have a great desktop as well

Lesson #6: JavaScript is evolvinghttp://www.typescriptlang.org/

Lesson #7: Embrace async

Resistance is futile…

Lesson #8: Reuse depends on your codeBetween HTML/JS app and web:• More interop = less reuse• More WinJS = less reuse

In C#:• Careful with the async syntax you use• Careful with method signatures• Create libraries

Lesson #9: Performance tests

Test on low spec machines

Just because it runs fine on your i7 with 16GB RAM it doesn’t mean this is what users will see

Lesson #10: Invest more in UX

More design iterationsThink about how users will really use the appTest it with real people

Lesson #11: Async != multi thread

You can do async in a single thread(which is the most common)

Lesson #11: JavaScript or C#XAML Application

Hosted HTML

XAML Controls

and Styling

.Net code

WRC Library Background Tasks

.Net “stub code” for interop

.Net class library .Net

HTML5 Application

HTML JavaScript

Web

Ser

vice

s, RE

ST, e

tc.

Win

RT, C

OM+

Win

32, .

Net

CSS

UIBu

sines

s Rul

es

Lesson #12: C#/XAML or JS/HTML?• If you’re rendering HTML, you probably want

JS/HTML• WebViewer in XAML has a few limitations, be

careful• If you need real multi-threading (not just

async), C# might be a better choice

Question: How many XAML designers vs how many HTML designers are out there?

Lesson learned: Advanced UI designing is usually easier achieved in HTML.

Lesson #13: Communicate the principlesWhen building an app for a stakeholder (a manager, a department, a customer...) make sure they understand why and what Windows 8 store app are.

It will help driving the app towards the right design.

Lesson #14: Don’t trust the client codeHighly sensitive code should stay behind your services

Validate everything from your services side

Demo: “Obfuscation” tricks and limitations

Lesson #15: Careful with WRC library typesThose types need to be supported beyond C# and .Net

Lesson #16: Understand the constraints And do that BEFORE you start coding

(not after you’ve spent 4 months building something )

Lesson #17: WRC library shouldn’t touch the UIYes, it can... But it really shouldn’t

Lesson #18: Web ServicesMove to REST/JSON/ODATA

(...and away from SOAP/WSDL...)

Why?• Simplicity• Less bandwidth• Broader compatibility• Flexibility• WCF in Win 8 apps isn’t the same as in

traditional apps

Lesson #19: BYO devices

Windows RT: Not domain joined. Will your app work?

Lesson #20: Make web work first

First step towards enabling Windows 8 is having your web apps working well with touch and low spec machines.

Do that first, then worry about building apps

(make web work on tablets and phones isn’t just about “making it HTML5”)

Internal app store rules

Lesson #21: Internal vs external app storeIf your app is internal use only, should it comply with the external app store’s rules?

Suggestion: App Store Rules

Lesson #22: Consumerization

No more user manualsSelf discoverabilityAny device, anywhereBring your own device... And why not BYO Apps?

Lesson #23: Simplicity == Gold

UI simplicityArchitecture simplicyProcess simplicity

We need a whole lot more of that

Thank you

Mat Vellosomat.velloso@microsoft.com