Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
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

560 views

Published on

Published in: Technology
  • Be the first to comment

  • Be the first to like this

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

×