TechDays 12

47
TechDays 12 Building Windows 8 LOB apps Lessons learned Mat Velloso Senior Software Development Engineer Microsoft Products and Services IT – Engineering Architecture

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

Page 1: TechDays  12

TechDays 12Building Windows 8 LOB apps

Lessons learned

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

Page 2: TechDays  12

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

Page 3: TechDays  12

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?

Page 4: TechDays  12

Our Proof of Concept Apps…

Page 5: TechDays  12

SharePoint Hub POC

Page 6: TechDays  12

SharePoint Hub POC

Page 7: TechDays  12

SharePoint Hub POC

Page 8: TechDays  12

SharePoint Hub POC

Page 9: TechDays  12

SharePoint Hub POC

Page 10: TechDays  12

SharePoint Hub POC

Page 11: TechDays  12

Approvals

Page 12: TechDays  12

Approvals

Page 13: TechDays  12

Approvals

Page 14: TechDays  12

Approvals

Page 15: TechDays  12

Approvals

Page 16: TechDays  12

Approvals

Page 17: TechDays  12

Approvals

Page 18: TechDays  12

thinking

easyfar more

than creating

Designing

simpleUI requiresto

use

,

complexity and over-complication

a

Page 19: TechDays  12

+ +app app app

Task centric apps

+ …

Task driven apps

Page 20: TechDays  12
Page 21: TechDays  12
Page 22: TechDays  12

Lessons

Page 23: TechDays  12

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

Page 24: TechDays  12

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.

Page 25: TechDays  12

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.

Page 26: TechDays  12

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

Page 27: TechDays  12

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

Page 28: TechDays  12

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

Page 29: TechDays  12

Lesson #7: Embrace async

Resistance is futile…

Page 30: TechDays  12

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

Page 31: TechDays  12

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

Page 32: TechDays  12

Lesson #10: Invest more in UX

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

Page 33: TechDays  12

Lesson #11: Async != multi thread

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

Page 34: TechDays  12

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

Page 35: TechDays  12

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.

Page 36: TechDays  12

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.

Page 37: TechDays  12

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

Page 38: TechDays  12

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

Page 39: TechDays  12

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

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

Page 40: TechDays  12

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

Page 41: TechDays  12

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

Page 42: TechDays  12

Lesson #19: BYO devices

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

Page 43: TechDays  12

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”)

Page 44: TechDays  12

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

Page 45: TechDays  12

Lesson #22: Consumerization

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

Page 46: TechDays  12

Lesson #23: Simplicity == Gold

UI simplicityArchitecture simplicyProcess simplicity

We need a whole lot more of that

Page 47: TechDays  12

Thank you

Mat [email protected]