techdays 12
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 PresentationTRANSCRIPT
![Page 1: TechDays 12](https://reader036.vdocuments.mx/reader036/viewer/2022062501/5681649c550346895dd67bc4/html5/thumbnails/1.jpg)
TechDays 12Building Windows 8 LOB apps
Lessons learned
Mat VellosoSenior Software Development EngineerMicrosoft Products and Services IT – Engineering Architecture
![Page 2: TechDays 12](https://reader036.vdocuments.mx/reader036/viewer/2022062501/5681649c550346895dd67bc4/html5/thumbnails/2.jpg)
AgendaWhat we’ve built, our little proof of conceptsLessons learned
![Page 3: TechDays 12](https://reader036.vdocuments.mx/reader036/viewer/2022062501/5681649c550346895dd67bc4/html5/thumbnails/3.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022062501/5681649c550346895dd67bc4/html5/thumbnails/4.jpg)
Our Proof of Concept Apps…
![Page 5: TechDays 12](https://reader036.vdocuments.mx/reader036/viewer/2022062501/5681649c550346895dd67bc4/html5/thumbnails/5.jpg)
SharePoint Hub POC
![Page 6: TechDays 12](https://reader036.vdocuments.mx/reader036/viewer/2022062501/5681649c550346895dd67bc4/html5/thumbnails/6.jpg)
SharePoint Hub POC
![Page 7: TechDays 12](https://reader036.vdocuments.mx/reader036/viewer/2022062501/5681649c550346895dd67bc4/html5/thumbnails/7.jpg)
SharePoint Hub POC
![Page 8: TechDays 12](https://reader036.vdocuments.mx/reader036/viewer/2022062501/5681649c550346895dd67bc4/html5/thumbnails/8.jpg)
SharePoint Hub POC
![Page 9: TechDays 12](https://reader036.vdocuments.mx/reader036/viewer/2022062501/5681649c550346895dd67bc4/html5/thumbnails/9.jpg)
SharePoint Hub POC
![Page 10: TechDays 12](https://reader036.vdocuments.mx/reader036/viewer/2022062501/5681649c550346895dd67bc4/html5/thumbnails/10.jpg)
SharePoint Hub POC
![Page 11: TechDays 12](https://reader036.vdocuments.mx/reader036/viewer/2022062501/5681649c550346895dd67bc4/html5/thumbnails/11.jpg)
Approvals
![Page 12: TechDays 12](https://reader036.vdocuments.mx/reader036/viewer/2022062501/5681649c550346895dd67bc4/html5/thumbnails/12.jpg)
Approvals
![Page 13: TechDays 12](https://reader036.vdocuments.mx/reader036/viewer/2022062501/5681649c550346895dd67bc4/html5/thumbnails/13.jpg)
Approvals
![Page 14: TechDays 12](https://reader036.vdocuments.mx/reader036/viewer/2022062501/5681649c550346895dd67bc4/html5/thumbnails/14.jpg)
Approvals
![Page 15: TechDays 12](https://reader036.vdocuments.mx/reader036/viewer/2022062501/5681649c550346895dd67bc4/html5/thumbnails/15.jpg)
Approvals
![Page 16: TechDays 12](https://reader036.vdocuments.mx/reader036/viewer/2022062501/5681649c550346895dd67bc4/html5/thumbnails/16.jpg)
Approvals
![Page 17: TechDays 12](https://reader036.vdocuments.mx/reader036/viewer/2022062501/5681649c550346895dd67bc4/html5/thumbnails/17.jpg)
Approvals
![Page 18: TechDays 12](https://reader036.vdocuments.mx/reader036/viewer/2022062501/5681649c550346895dd67bc4/html5/thumbnails/18.jpg)
thinking
easyfar more
than creating
Designing
simpleUI requiresto
use
,
complexity and over-complication
a
![Page 19: TechDays 12](https://reader036.vdocuments.mx/reader036/viewer/2022062501/5681649c550346895dd67bc4/html5/thumbnails/19.jpg)
+ +app app app
Task centric apps
+ …
Task driven apps
![Page 20: TechDays 12](https://reader036.vdocuments.mx/reader036/viewer/2022062501/5681649c550346895dd67bc4/html5/thumbnails/20.jpg)
![Page 21: TechDays 12](https://reader036.vdocuments.mx/reader036/viewer/2022062501/5681649c550346895dd67bc4/html5/thumbnails/21.jpg)
![Page 22: TechDays 12](https://reader036.vdocuments.mx/reader036/viewer/2022062501/5681649c550346895dd67bc4/html5/thumbnails/22.jpg)
Lessons
![Page 23: TechDays 12](https://reader036.vdocuments.mx/reader036/viewer/2022062501/5681649c550346895dd67bc4/html5/thumbnails/23.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022062501/5681649c550346895dd67bc4/html5/thumbnails/24.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022062501/5681649c550346895dd67bc4/html5/thumbnails/25.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022062501/5681649c550346895dd67bc4/html5/thumbnails/26.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022062501/5681649c550346895dd67bc4/html5/thumbnails/27.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022062501/5681649c550346895dd67bc4/html5/thumbnails/28.jpg)
Lesson #6: JavaScript is evolvinghttp://www.typescriptlang.org/
![Page 29: TechDays 12](https://reader036.vdocuments.mx/reader036/viewer/2022062501/5681649c550346895dd67bc4/html5/thumbnails/29.jpg)
Lesson #7: Embrace async
Resistance is futile…
![Page 30: TechDays 12](https://reader036.vdocuments.mx/reader036/viewer/2022062501/5681649c550346895dd67bc4/html5/thumbnails/30.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022062501/5681649c550346895dd67bc4/html5/thumbnails/31.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022062501/5681649c550346895dd67bc4/html5/thumbnails/32.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022062501/5681649c550346895dd67bc4/html5/thumbnails/33.jpg)
Lesson #11: Async != multi thread
You can do async in a single thread(which is the most common)
![Page 34: TechDays 12](https://reader036.vdocuments.mx/reader036/viewer/2022062501/5681649c550346895dd67bc4/html5/thumbnails/34.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022062501/5681649c550346895dd67bc4/html5/thumbnails/35.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022062501/5681649c550346895dd67bc4/html5/thumbnails/36.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022062501/5681649c550346895dd67bc4/html5/thumbnails/37.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022062501/5681649c550346895dd67bc4/html5/thumbnails/38.jpg)
Lesson #15: Careful with WRC library typesThose types need to be supported beyond C# and .Net
![Page 39: TechDays 12](https://reader036.vdocuments.mx/reader036/viewer/2022062501/5681649c550346895dd67bc4/html5/thumbnails/39.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022062501/5681649c550346895dd67bc4/html5/thumbnails/40.jpg)
Lesson #17: WRC library shouldn’t touch the UIYes, it can... But it really shouldn’t
![Page 41: TechDays 12](https://reader036.vdocuments.mx/reader036/viewer/2022062501/5681649c550346895dd67bc4/html5/thumbnails/41.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022062501/5681649c550346895dd67bc4/html5/thumbnails/42.jpg)
Lesson #19: BYO devices
Windows RT: Not domain joined. Will your app work?
![Page 43: TechDays 12](https://reader036.vdocuments.mx/reader036/viewer/2022062501/5681649c550346895dd67bc4/html5/thumbnails/43.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022062501/5681649c550346895dd67bc4/html5/thumbnails/44.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022062501/5681649c550346895dd67bc4/html5/thumbnails/45.jpg)
Lesson #22: Consumerization
No more user manualsSelf discoverabilityAny device, anywhereBring your own device... And why not BYO Apps?
![Page 46: TechDays 12](https://reader036.vdocuments.mx/reader036/viewer/2022062501/5681649c550346895dd67bc4/html5/thumbnails/46.jpg)
Lesson #23: Simplicity == Gold
UI simplicityArchitecture simplicyProcess simplicity
We need a whole lot more of that