SlideShare una empresa de Scribd logo
1 de 26
Deep Dive into WinJS


                     Dmitri Artamonov




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




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




   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 – 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
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 - 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
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
Managing WinJS - Costs
 •   Training
 •   Design
 •   Development
 •   Testing
 •   Deployment
 •   Maintenance



     MCT Summit North America | October, 17th – October 20th, 2012 | Redmond
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
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
A Big Thanks to our Sponsors




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

Más contenido relacionado

La actualidad más candente

Building a Better Web with HTML5 and CSS3
Building a Better Web with HTML5 and CSS3Building a Better Web with HTML5 and CSS3
Building a Better Web with HTML5 and CSS3
Karambir Singh Nain
 

La actualidad más candente (12)

Component Based Development
Component Based DevelopmentComponent Based Development
Component Based Development
 
BDD by example
BDD by exampleBDD by example
BDD by example
 
Ui technologies
Ui technologiesUi technologies
Ui technologies
 
Microservice intro
Microservice introMicroservice intro
Microservice intro
 
Building a Better Web with HTML5 and CSS3
Building a Better Web with HTML5 and CSS3Building a Better Web with HTML5 and CSS3
Building a Better Web with HTML5 and CSS3
 
Introduction to NativeScript - BuildTruly Native Apps using JavaScript
Introduction to NativeScript - BuildTruly Native Apps using JavaScriptIntroduction to NativeScript - BuildTruly Native Apps using JavaScript
Introduction to NativeScript - BuildTruly Native Apps using JavaScript
 
Introduction to Front End Engineering
Introduction to Front End EngineeringIntroduction to Front End Engineering
Introduction to Front End Engineering
 
Access.net presentation
Access.net presentationAccess.net presentation
Access.net presentation
 
Doktool
DoktoolDoktool
Doktool
 
An Unexpected Solution to Microservices UI Composition
An Unexpected Solution to Microservices UI CompositionAn Unexpected Solution to Microservices UI Composition
An Unexpected Solution to Microservices UI Composition
 
Make your own Pokédex with the Pokéapi & Node/Express!
Make your own Pokédex with the Pokéapi & Node/Express! Make your own Pokédex with the Pokéapi & Node/Express!
Make your own Pokédex with the Pokéapi & Node/Express!
 
Eureko frameworks
Eureko frameworksEureko frameworks
Eureko frameworks
 

Similar a 2012 MCT Summit Presentation

2012 mct summit presentation final
2012 mct summit presentation final2012 mct summit presentation final
2012 mct summit presentation final
Dmitri Artamonov
 
MongoDB Evening Austin, TX 2017
MongoDB Evening Austin, TX 2017MongoDB Evening Austin, TX 2017
MongoDB Evening Austin, TX 2017
MongoDB
 

Similar a 2012 MCT Summit Presentation (20)

2012 mct summit presentation final
2012 mct summit presentation final2012 mct summit presentation final
2012 mct summit presentation final
 
Private Cloud Self-Service at Scale
Private Cloud Self-Service at Scale Private Cloud Self-Service at Scale
Private Cloud Self-Service at Scale
 
Going MicroServices with Net
Going MicroServices with NetGoing MicroServices with Net
Going MicroServices with Net
 
Microservices
MicroservicesMicroservices
Microservices
 
MongoDB Evening Austin, TX 2017
MongoDB Evening Austin, TX 2017MongoDB Evening Austin, TX 2017
MongoDB Evening Austin, TX 2017
 
Oracle OpenWorld 2017 Review (31st October 2017 - 250 slides)
Oracle OpenWorld 2017 Review (31st October 2017 - 250 slides)Oracle OpenWorld 2017 Review (31st October 2017 - 250 slides)
Oracle OpenWorld 2017 Review (31st October 2017 - 250 slides)
 
Enterprise Trends for MongoDB as a Service
Enterprise Trends for MongoDB as a ServiceEnterprise Trends for MongoDB as a Service
Enterprise Trends for MongoDB as a Service
 
Dot net platform and dotnet core fundamentals
Dot net platform and dotnet core fundamentalsDot net platform and dotnet core fundamentals
Dot net platform and dotnet core fundamentals
 
CAD Practices On the Cloud
CAD Practices On the CloudCAD Practices On the Cloud
CAD Practices On the Cloud
 
Latest trends in information technology
Latest trends in information technologyLatest trends in information technology
Latest trends in information technology
 
AD109 Navigating the Jungle of Modern Web Development
AD109 Navigating the Jungle of Modern Web DevelopmentAD109 Navigating the Jungle of Modern Web Development
AD109 Navigating the Jungle of Modern Web Development
 
Wessel Loth - Fire your Frontend Framework with Lit - TEQnation 2022.pdf
Wessel Loth - Fire your Frontend Framework with Lit - TEQnation 2022.pdfWessel Loth - Fire your Frontend Framework with Lit - TEQnation 2022.pdf
Wessel Loth - Fire your Frontend Framework with Lit - TEQnation 2022.pdf
 
Dark Energy, Dark Matter and the Microservices Patterns?!
Dark Energy, Dark Matter and the Microservices Patterns?!Dark Energy, Dark Matter and the Microservices Patterns?!
Dark Energy, Dark Matter and the Microservices Patterns?!
 
Modern Collaboration Development (Part 2)
Modern Collaboration Development (Part 2)Modern Collaboration Development (Part 2)
Modern Collaboration Development (Part 2)
 
Case Manager for Content Management - A Customer's Perspective
Case Manager for Content Management - A Customer's PerspectiveCase Manager for Content Management - A Customer's Perspective
Case Manager for Content Management - A Customer's Perspective
 
Дов Німрац “Manage home based Soft Ware team” - Lviv PMDay
Дов Німрац “Manage home based Soft Ware team” - Lviv PMDayДов Німрац “Manage home based Soft Ware team” - Lviv PMDay
Дов Німрац “Manage home based Soft Ware team” - Lviv PMDay
 
Your App Deserves More – The Art of App Modernization
Your App Deserves More – The Art of App ModernizationYour App Deserves More – The Art of App Modernization
Your App Deserves More – The Art of App Modernization
 
Your App deserves more – The Art of App Modernization
Your App deserves more – The Art of App ModernizationYour App deserves more – The Art of App Modernization
Your App deserves more – The Art of App Modernization
 
2019-Nov: Domain Driven Design (DDD) and when not to use it
2019-Nov: Domain Driven Design (DDD) and when not to use it2019-Nov: Domain Driven Design (DDD) and when not to use it
2019-Nov: Domain Driven Design (DDD) and when not to use it
 
Domain Driven Design Big Picture Strategic Patterns
Domain Driven Design Big Picture Strategic PatternsDomain Driven Design Big Picture Strategic Patterns
Domain Driven Design Big Picture Strategic Patterns
 

Último

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 

Último (20)

2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 

2012 MCT Summit Presentation

  • 1. Deep Dive into WinJS Dmitri Artamonov MCT Summit North America | October, 17th – October 20th, 2012 | Redmond
  • 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. 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. 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. MCT Summit North America | October, 17th – October 20th, 2012 | Redmond
  • 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. MCT Summit North America | October, 17th – October 20th, 2012 | Redmond
  • 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. MCT Summit North America | October, 17th – October 20th, 2012 | Redmond
  • 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. 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. 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. MCT Summit North America | October, 17th – October 20th, 2012 | Redmond
  • 14. MCT Summit North America | October, 17th – October 20th, 2012 | Redmond
  • 15. MCT Summit North America | October, 17th – October 20th, 2012 | Redmond
  • 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. 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 – 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. 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. 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. 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. Managing WinJS - Costs • Training • Design • Development • Testing • Deployment • Maintenance MCT Summit North America | October, 17th – October 20th, 2012 | Redmond
  • 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. 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. A Big Thanks to our Sponsors MCT Summit North America | October, 17th – October 20th, 2012 | Redmond