1 / 47

TechDays 12

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

garry
Download Presentation

TechDays 12

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. Agenda What we’ve built, our little proof of concepts Lessons learned

  3. 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?

  4. Our Proof of Concept Apps…

  5. SharePoint Hub POC

  6. SharePoint Hub POC

  7. SharePoint Hub POC

  8. SharePoint Hub POC

  9. SharePoint Hub POC

  10. SharePoint Hub POC

  11. Approvals

  12. Approvals

  13. Approvals

  14. Approvals

  15. Approvals

  16. Approvals

  17. Approvals

  18. thinking easy far more than creating Designing simple UI requires to use , complexity and over-complication a

  19. Task driven apps + … + + app app app Task centric apps

  20. Lessons

  21. Lesson #1: What? No SQL Server? Build great services, everything depends on it Focus on REST, JSON, ODATA Careful with integrated authentication Careful with connectivity Loock at local storage options

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

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

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

  25. Lesson #5: Desktop apps are OK too If 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 

  26. Lesson #6: JavaScript is evolving http://www.typescriptlang.org/

  27. Lesson #7: Embrace async Resistance is futile…

  28. Lesson #8: Reuse depends on your code Between 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

  29. 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 

  30. Lesson #10: Invest more in UX More design iterations Think about how users will really use the app Test it with real people 

  31. Lesson #11: Async != multi thread You can do async in a single thread (which is the most common)

  32. Lesson #11: JavaScript or C# WinRT, COM+ Win32, .Net Web Services, REST, etc. HTML5 Application XAML Application XAML Controls and Styling Hosted HTML HTML JavaScript UI .Net code CSS Background Tasks .Net “stub code” for interop WRC Library Business Rules .Net .Net class library

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

  34. Lesson #13: Communicate the principles When 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.

  35. Lesson #14: Don’t trust the client code Highly sensitive code should stay behind your services Validate everything from your services side Demo: “Obfuscation” tricks and limitations

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

  37. Lesson #16: Understand the constraints And do that BEFORE you start coding (not after you’ve spent 4 months building something  )

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

  39. Lesson #18: Web Services Move 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

  40. Lesson #19: BYO devices Windows RT: Not domain joined. Will your app work?

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

  42. Lesson #21: Internal vs external app store If your app is internal use only, should it comply with the external app store’s rules? Suggestion: Internal app store rules App Store Rules

  43. Lesson #22: Consumerization No more user manuals Self discoverability Any device, anywhere Bring your own device... And why not BYO Apps?

  44. Lesson #23: Simplicity == Gold UI simplicity Architecture simplicy Process simplicity We need a whole lot more of that

  45. Thank you  Mat Velloso mat.velloso@microsoft.com

More Related