SlideShare a Scribd company logo
Deep Dive into WinJS

                   Dmitri Artamonov
                 dmitria@bluemetal.com
                       @dartamon




MCT Summit North America | October, 17th – October 20th, 2012 | Redmond
Introductions
 • Your name
 • Web, client or other?
 • What’s drawing you towards WinJS?




   MCT Summit North America | October, 17th – October 20th, 2012 | Redmond
Agenda
 •   Introductions
 •   Under the hood
 •   Place in the universe
 •   Patterns and practices
 •   Integration with enterprise systems
 •   Managing WinJS development



     MCT Summit North America | October, 17th – October 20th, 2012 | Redmond
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 IE
 •   Will WinJS evolve away?
 •   Windows Phone 8




     MCT Summit North America | October, 17th – October 20th, 2012 | Redmond
MCT Summit North America | October, 17th – October 20th, 2012 | Redmond
Where does it 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
MCT Summit North America | October, 17th – October 20th, 2012 | Redmond
Other Libraries
 •   jQuery
 •   Graphing and Charting
 •   Knockout.js
 •   You can even create apps without WinJS




     MCT Summit North America | October, 17th – October 20th, 2012 | Redmond
Patterns - Promises
 •   Async pattern
 •   function – then – done
 •   Still a single thread!
 •   Careful accessing resources not yet returned




     MCT Summit North America | October, 17th – October 20th, 2012 | Redmond
Patterns – MVVM…
 •   No encapsulation of actions
 •   Bloated VMs
 •   Implementation – one context per view
 •   No two-way bindings in WinJS
 •   Bindings in WinJS require knowledge of 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
MCT Summit North America | October, 17th – October 20th, 2012 | Redmond
Patterns - MVC
 • Standard web pattern for ~17 years
 • Controllers for user input
 • AM/DM conversion with namespaces and
   classes
 • Classes and namespaces are observable
 • Multiple contexts – regions…



   MCT Summit North America | October, 17th – October 20th, 2012 | Redmond
Demo - MVC




MCT Summit North America | October, 17th – October 20th, 2012 | Redmond
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
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
Patterns – .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
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
Practices – Blend design process
 • Blend with WinJS
 • No broken module references or .targets files
 • True handoff from designer to developer




   MCT Summit North America | October, 17th – October 20th, 2012 | Redmond
Demo – Blend with Javascript




MCT Summit North America | October, 17th – October 20th, 2012 | Redmond
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
Demo – Executive Dashboard




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
 • Enforce security policies
 • Restores controlled enterprise environment




   MCT Summit North America | October, 17th – October 20th, 2012 | Redmond
MCT Summit North America | October, 17th – October 20th, 2012 | Redmond
Managing WinJS - Costs
 •   Training
 •   Design – Blend!
 •   Development
 •   Testing
 •   Deployment
 •   Maintenance



     MCT Summit North America | October, 17th – October 20th, 2012 | Redmond
Managing WinJS (cont’d)
 • What happens to legacy C# apps?
 • How to migrate legacy web applications to
   Windows 8?
 • Writing cross-platform apps




   MCT Summit North America | October, 17th – October 20th, 2012 | Redmond
A Big Thanks to our Sponsors
                      Platinum Sponsor




                          Gold Sponsors




MCT Summit North America | October, 17th – October 20th, 2012 | Redmond
Questions?
 • WinJS Samples:
   http://code.msdn.microsoft.com/windowsapps/
   Windows-8-Modern-Style-App-Samples
 • BlueMetal Blog: http://blog.bluemetal.com
 • dmitria@bluemetal.com
 • @dartamon




   MCT Summit North America | October, 17th – October 20th, 2012 | Redmond

More Related Content

PPTX
WinJS at NYC Code Camp 2012
PPTX
XAF and DevExtreme frameworks by DevExpress
PPTX
Software architecture in practice
PPT
UI frameworks
PDF
Microservice architecture
PPTX
Delivering Rich Content Applications at Scale with Nuxeo & MongoDB Atlas
PPTX
Intro to modern web technology
PDF
IBM Bluemix for Administrators with Focus on XPages
WinJS at NYC Code Camp 2012
XAF and DevExtreme frameworks by DevExpress
Software architecture in practice
UI frameworks
Microservice architecture
Delivering Rich Content Applications at Scale with Nuxeo & MongoDB Atlas
Intro to modern web technology
IBM Bluemix for Administrators with Focus on XPages

What's hot (11)

PDF
Component Based Development
PDF
BDD by example
PPT
Ui technologies
PDF
Building a Better Web with HTML5 and CSS3
PPTX
Introduction to NativeScript - BuildTruly Native Apps using JavaScript
PPTX
Microservice intro
PDF
Introduction to Front End Engineering
PPTX
Access.net presentation
PDF
Doktool
PPTX
An Unexpected Solution to Microservices UI Composition
PDF
Make your own Pokédex with the Pokéapi & Node/Express!
Component Based Development
BDD by example
Ui technologies
Building a Better Web with HTML5 and CSS3
Introduction to NativeScript - BuildTruly Native Apps using JavaScript
Microservice intro
Introduction to Front End Engineering
Access.net presentation
Doktool
An Unexpected Solution to Microservices UI Composition
Make your own Pokédex with the Pokéapi & Node/Express!
Ad

Similar to 2012 mct summit presentation final (20)

PPT
2012 MCT Summit Presentation
PPTX
Private Cloud Self-Service at Scale
PPTX
Going MicroServices with Net
PDF
AD109 Navigating the Jungle of Modern Web Development
PPTX
Latest trends in information technology
PDF
Microservices
PPTX
MongoDB Evening Austin, TX 2017
PPTX
Enterprise Trends for MongoDB as a Service
PDF
CAD Practices On the Cloud
PDF
Wessel Loth - Fire your Frontend Framework with Lit - TEQnation 2022.pdf
PDF
2019-Nov: Domain Driven Design (DDD) and when not to use it
PPTX
Oracle OpenWorld 2017 Review (31st October 2017 - 250 slides)
PPTX
Dot net platform and dotnet core fundamentals
PDF
Dark Energy, Dark Matter and the Microservices Patterns?!
PDF
Your App Deserves More – The Art of App Modernization
PDF
Your App deserves more – The Art of App Modernization
PPTX
Entity Framework and Domain Driven Design
PDF
Domain Driven Design Big Picture Strategic Patterns
PDF
Case Manager for Content Management - A Customer's Perspective
PPTX
Modern Collaboration Development (Part 2)
2012 MCT Summit Presentation
Private Cloud Self-Service at Scale
Going MicroServices with Net
AD109 Navigating the Jungle of Modern Web Development
Latest trends in information technology
Microservices
MongoDB Evening Austin, TX 2017
Enterprise Trends for MongoDB as a Service
CAD Practices On the Cloud
Wessel Loth - Fire your Frontend Framework with Lit - TEQnation 2022.pdf
2019-Nov: Domain Driven Design (DDD) and when not to use it
Oracle OpenWorld 2017 Review (31st October 2017 - 250 slides)
Dot net platform and dotnet core fundamentals
Dark Energy, Dark Matter and the Microservices Patterns?!
Your App Deserves More – The Art of App Modernization
Your App deserves more – The Art of App Modernization
Entity Framework and Domain Driven Design
Domain Driven Design Big Picture Strategic Patterns
Case Manager for Content Management - A Customer's Perspective
Modern Collaboration Development (Part 2)
Ad

Recently uploaded (20)

PPTX
A Presentation on Touch Screen Technology
PPTX
Group 1 Presentation -Planning and Decision Making .pptx
PDF
Getting Started with Data Integration: FME Form 101
PPTX
TechTalks-8-2019-Service-Management-ITIL-Refresh-ITIL-4-Framework-Supports-Ou...
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
gpt5_lecture_notes_comprehensive_20250812015547.pdf
PPTX
1. Introduction to Computer Programming.pptx
PDF
Hindi spoken digit analysis for native and non-native speakers
PDF
DASA ADMISSION 2024_FirstRound_FirstRank_LastRank.pdf
PDF
Microsoft Solutions Partner Drive Digital Transformation with D365.pdf
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PPTX
OMC Textile Division Presentation 2021.pptx
PDF
Approach and Philosophy of On baking technology
PDF
1 - Historical Antecedents, Social Consideration.pdf
PDF
A comparative analysis of optical character recognition models for extracting...
PDF
Enhancing emotion recognition model for a student engagement use case through...
PPTX
TLE Review Electricity (Electricity).pptx
PDF
From MVP to Full-Scale Product A Startup’s Software Journey.pdf
PDF
ENT215_Completing-a-large-scale-migration-and-modernization-with-AWS.pdf
PDF
Web App vs Mobile App What Should You Build First.pdf
A Presentation on Touch Screen Technology
Group 1 Presentation -Planning and Decision Making .pptx
Getting Started with Data Integration: FME Form 101
TechTalks-8-2019-Service-Management-ITIL-Refresh-ITIL-4-Framework-Supports-Ou...
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
gpt5_lecture_notes_comprehensive_20250812015547.pdf
1. Introduction to Computer Programming.pptx
Hindi spoken digit analysis for native and non-native speakers
DASA ADMISSION 2024_FirstRound_FirstRank_LastRank.pdf
Microsoft Solutions Partner Drive Digital Transformation with D365.pdf
MIND Revenue Release Quarter 2 2025 Press Release
OMC Textile Division Presentation 2021.pptx
Approach and Philosophy of On baking technology
1 - Historical Antecedents, Social Consideration.pdf
A comparative analysis of optical character recognition models for extracting...
Enhancing emotion recognition model for a student engagement use case through...
TLE Review Electricity (Electricity).pptx
From MVP to Full-Scale Product A Startup’s Software Journey.pdf
ENT215_Completing-a-large-scale-migration-and-modernization-with-AWS.pdf
Web App vs Mobile App What Should You Build First.pdf

2012 mct summit presentation final

  • 1. Deep Dive into WinJS Dmitri Artamonov dmitria@bluemetal.com @dartamon MCT Summit North America | October, 17th – October 20th, 2012 | Redmond
  • 2. Introductions • Your name • Web, client or other? • What’s drawing you towards WinJS? MCT Summit North America | October, 17th – October 20th, 2012 | Redmond
  • 3. Agenda • Introductions • Under the hood • Place in the universe • Patterns and practices • Integration with enterprise systems • Managing WinJS development MCT Summit North America | October, 17th – October 20th, 2012 | Redmond
  • 4. MCT Summit North America | October, 17th – October 20th, 2012 | Redmond
  • 5. Under the hood • Language projections • Connected to same WinRT components • Hardware-accelerated JS technology from IE • Will WinJS evolve away? • Windows Phone 8 MCT Summit North America | October, 17th – October 20th, 2012 | Redmond
  • 6. MCT Summit North America | October, 17th – October 20th, 2012 | Redmond
  • 7. Where does it 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
  • 8. MCT Summit North America | October, 17th – October 20th, 2012 | Redmond
  • 9. Other Libraries • jQuery • Graphing and Charting • Knockout.js • You can even create apps without WinJS MCT Summit North America | October, 17th – October 20th, 2012 | Redmond
  • 10. Patterns - Promises • Async pattern • function – then – done • Still a single thread! • Careful accessing resources not yet returned MCT Summit North America | October, 17th – October 20th, 2012 | Redmond
  • 11. Patterns – MVVM… • No encapsulation of actions • Bloated VMs • Implementation – one context per view • No two-way bindings in WinJS • Bindings in WinJS require knowledge of View MCT Summit North America | October, 17th – October 20th, 2012 | Redmond
  • 12. MCT Summit North America | October, 17th – October 20th, 2012 | Redmond
  • 13. MCT Summit North America | October, 17th – October 20th, 2012 | Redmond
  • 14. MCT Summit North America | October, 17th – October 20th, 2012 | Redmond
  • 15. Patterns - MVC • Standard web pattern for ~17 years • Controllers for user input • AM/DM conversion with namespaces and classes • Classes and namespaces are observable • Multiple contexts – regions… MCT Summit North America | October, 17th – October 20th, 2012 | Redmond
  • 16. Demo - MVC MCT Summit North America | October, 17th – October 20th, 2012 | Redmond
  • 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. 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
  • 19. Patterns – .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
  • 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. Practices – Blend design process • Blend with WinJS • No broken module references or .targets files • True handoff from designer to developer MCT Summit North America | October, 17th – October 20th, 2012 | Redmond
  • 22. Demo – Blend with Javascript MCT Summit North America | October, 17th – October 20th, 2012 | Redmond
  • 23. 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
  • 24. Demo – Executive Dashboard MCT Summit North America | October, 17th – October 20th, 2012 | Redmond
  • 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. MCT Summit North America | October, 17th – October 20th, 2012 | Redmond
  • 27. Managing WinJS - Costs • Training • Design – Blend! • Development • Testing • Deployment • Maintenance MCT Summit North America | October, 17th – October 20th, 2012 | Redmond
  • 28. Managing WinJS (cont’d) • What happens to legacy C# apps? • How to migrate legacy web applications to Windows 8? • Writing cross-platform apps MCT Summit North America | October, 17th – October 20th, 2012 | Redmond
  • 29. A Big Thanks to our Sponsors Platinum Sponsor Gold Sponsors MCT Summit North America | October, 17th – October 20th, 2012 | Redmond
  • 30. Questions? • WinJS Samples: http://code.msdn.microsoft.com/windowsapps/ Windows-8-Modern-Style-App-Samples • BlueMetal Blog: http://blog.bluemetal.com • dmitria@bluemetal.com • @dartamon MCT Summit North America | October, 17th – October 20th, 2012 | Redmond

Editor's Notes

  • #29: Less training with web monkeys and designers who already know HTMLDesign process with blend actually worksDevelopment is easier and iterativeTesting can be easily done with dependency injection modulesDeployment is dead simple – Windows StoreMaintenace – just HTML/JS