Deep Dive into WinJS                     Dmitri ArtamonovMCT Summit North America | October, 17th – October 20th, 2012 | R...
Agenda •   The C# Legacy •   What’s under the hood? •   Where does WinJS fit? •   What’s new in WinJS? •   Patterns and pr...
Outside of scope •   Implementation details •   WinJS features common with C#/XAML •   Process lifecycle management •   Et...
Away from C# to WinJS •   Difference in thinking •   Code organization •   Available tools •   Is C# now obsolete?     MCT...
MCT Summit North America | October, 17th – October 20th, 2012 | Redmond
Under the hood •   Language projections •   Connected to same WinRT components •   Hardware-accelerated JS technology from...
MCT Summit North America | October, 17th – October 20th, 2012 | Redmond
The Fit •   Rapid Development •   Reuse web monkeys •   Better view surface on top of C# logic •   Large existing ecosyste...
MCT Summit North America | October, 17th – October 20th, 2012 | Redmond
The Fit - Other Libraries •   jQuery •   Graphing and Charting •   MVC •   You can even create apps without WinJS     MCT ...
Patterns - Promises •   Async pattern •   function – then – done •   Potentially multi-threaded •   Careful accessing reso...
Patterns – MV… •   MVVM had problems •   Poor balancing of responsibilities •   Implementation – one context per view •   ...
MCT Summit North America | October, 17th – October 20th, 2012 | Redmond
MCT Summit North America | October, 17th – October 20th, 2012 | Redmond
MCT Summit North America | October, 17th – October 20th, 2012 | Redmond
Patterns - MVC • Controllers for user input • AM/DM conversion with namespaces and   classes • Classes and namespaces are ...
Patterns - Regions • Data contexts defined for individual DOM   elements • data-win-bind and data-win-bindsource • Declara...
Patterns – C# .winmd components •   C# good at logic and model manipulation •   Use it, expose data via component to WinJS...
Patterns – Modules and DI • Information hiding done via modules • Anonymous self-executing function with   parameters • Co...
Patterns - Dynamic code loading •   Deploy once, keep updating •   Forbidden by security for the Windows Store •   Uses ex...
Integration with Enterprise Systems •   File Picker API - fluid file system •   Roaming API – unified experience •   Share...
Managing WinJS - Costs •   Training •   Design •   Development •   Testing •   Deployment •   Maintenance     MCT Summit N...
Managing WinJS (cont’d) •   Legacy Applications •   Browser -> WinJS != WinJS -> Browser •   Code compatibility and migrat...
MCT Summit North America | October, 17th – October 20th, 2012 | Redmond
Enterprise Store (unofficial) • Private store for the enterprise • Enterprise machines can deploy from fixed set   of apps...
A Big Thanks to our SponsorsMCT Summit North America | October, 17th – October 20th, 2012 | Redmond
Upcoming SlideShare
Loading in...5
×

2012 MCT Summit Presentation

284

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
284
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
7
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

2012 MCT Summit Presentation

  1. 1. Deep Dive into WinJS Dmitri ArtamonovMCT Summit North America | October, 17th – October 20th, 2012 | Redmond
  2. 2. Agenda • The C# Legacy • What’s under the hood? • Where does WinJS fit? • What’s new in WinJS? • Patterns and practices • Integration with enterprise systems • Managing WinJS development MCT Summit North America | October, 17th – October 20th, 2012 | Redmond
  3. 3. Outside of scope • Implementation details • WinJS features common with C#/XAML • Process lifecycle management • Etc… MCT Summit North America | October, 17th – October 20th, 2012 | Redmond
  4. 4. Away from C# to WinJS • Difference in thinking • Code organization • Available tools • Is C# now obsolete? MCT Summit North America | October, 17th – October 20th, 2012 | Redmond
  5. 5. MCT Summit North America | October, 17th – October 20th, 2012 | Redmond
  6. 6. Under the hood • Language projections • Connected to same WinRT components • Hardware-accelerated JS technology from IE • Will WinJS evolve away? MCT Summit North America | October, 17th – October 20th, 2012 | Redmond
  7. 7. MCT Summit North America | October, 17th – October 20th, 2012 | Redmond
  8. 8. The Fit • Rapid Development • Reuse web monkeys • Better view surface on top of C# logic • Large existing ecosystem for developers • Cheaper UI design process MCT Summit North America | October, 17th – October 20th, 2012 | Redmond
  9. 9. MCT Summit North America | October, 17th – October 20th, 2012 | Redmond
  10. 10. The Fit - Other Libraries • jQuery • Graphing and Charting • MVC • You can even create apps without WinJS MCT Summit North America | October, 17th – October 20th, 2012 | Redmond
  11. 11. Patterns - Promises • Async pattern • function – then – done • Potentially multi-threaded • Careful accessing resources not yet returned MCT Summit North America | October, 17th – October 20th, 2012 | Redmond
  12. 12. Patterns – MV… • MVVM had problems • Poor balancing of responsibilities • Implementation – one context per view • Mostly wasted code-behind • No two-way bindings in WinJS MCT Summit North America | October, 17th – October 20th, 2012 | Redmond
  13. 13. MCT Summit North America | October, 17th – October 20th, 2012 | Redmond
  14. 14. MCT Summit North America | October, 17th – October 20th, 2012 | Redmond
  15. 15. MCT Summit North America | October, 17th – October 20th, 2012 | Redmond
  16. 16. Patterns - MVC • Controllers for user input • AM/DM conversion with namespaces and classes • Classes and namespaces are observable MCT Summit North America | October, 17th – October 20th, 2012 | Redmond
  17. 17. Patterns - Regions • Data contexts defined for individual DOM elements • data-win-bind and data-win-bindsource • Declarative and programmatic ways MCT Summit North America | October, 17th – October 20th, 2012 | Redmond
  18. 18. Patterns – C# .winmd components • C# good at logic and model manipulation • Use it, expose data via component to WinJS • Access it as normal namespace/class • Take advantage of performance of C++/C# MCT Summit North America | October, 17th – October 20th, 2012 | Redmond
  19. 19. Patterns – Modules and DI • Information hiding done via modules • Anonymous self-executing function with parameters • Code inside module is private • Parameters allow dependency injection and testing • Data exposed via namespaces and classes MCT Summit North America | October, 17th – October 20th, 2012 | Redmond
  20. 20. Patterns - Dynamic code loading • Deploy once, keep updating • Forbidden by security for the Windows Store • Uses execUnsafeLocalFunction • Alternatives – iframe, Fragments API MCT Summit North America | October, 17th – October 20th, 2012 | Redmond
  21. 21. Integration with Enterprise Systems • File Picker API - fluid file system • Roaming API – unified experience • Share Contract – enterprise workflows • Tiles – enterprise dashboards • Windows Push Notification Services for communication through tile updates MCT Summit North America | October, 17th – October 20th, 2012 | Redmond
  22. 22. Managing WinJS - Costs • Training • Design • Development • Testing • Deployment • Maintenance MCT Summit North America | October, 17th – October 20th, 2012 | Redmond
  23. 23. Managing WinJS (cont’d) • Legacy Applications • Browser -> WinJS != WinJS -> Browser • Code compatibility and migration • Deploying via the Enterprise Store MCT Summit North America | October, 17th – October 20th, 2012 | Redmond
  24. 24. MCT Summit North America | October, 17th – October 20th, 2012 | Redmond
  25. 25. Enterprise Store (unofficial) • Private store for the enterprise • Enterprise machines can deploy from fixed set of apps • Enforce security policies • Restores controlled enterprise environment MCT Summit North America | October, 17th – October 20th, 2012 | Redmond
  26. 26. A Big Thanks to our SponsorsMCT Summit North America | October, 17th – October 20th, 2012 | Redmond
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×