SlideShare ist ein Scribd-Unternehmen logo
1 von 20
Downloaden Sie, um offline zu lesen
Introduction to
         Windows Runtime (WinRT)
                                                           Raffaele Rialdi

           @raffaeler
           raffaeler@vevy.com                                      http://www.iamraf.net




@   itcampro    # itcamp12      Premium conference on Microsoft technologies
Mobile &
ITCamp 2012 sponsors                                                       Development




@   itcampro   # itcamp12   Premium conference on Microsoft technologies
Mobile &
Agenda                                                                         Development


• You already heard about
     – «Tailored User eXperience»
          • Inspiring confidence, Fast and fluid, Touch-first, Immersive,
            Engaging and Alive, Connected
     – Why current applications does not fit the new market
• We will dig into:
     –   What is the Windows Runtime (WinRT)
     –   Why Win8 is not a simple UI restyling
     –   What are the pillars (from a developer point of view)
     –   How can you get it to the max


@   itcampro    # itcamp12      Premium conference on Microsoft technologies
Mobile &
OO vs not-OO                                                               Development


• Procedural languages have no implicit lifetime
  concept
     – malloc free, CreateFile  CloseHandle, …


• In .NET, Dispose pattern is a partial solution
     – It's not automatic
     – Can lead to resources leak


• Requires PInvoke for accessing C-Libraries
• Communication between processes is done via IPC
  and not between components

@   itcampro   # itcamp12   Premium conference on Microsoft technologies
Mobile &
Windows Runtime Architecture                                                                   Development


                 Metro apps                                                  Desktop apps

                                                                                   Win                     MFC
    XAML            DirectX        HTML                WPF              SL
                                                                                  form
                                                                                            HTML
                                                                                                           DX

           Language Projections                                              .NET / Js / C++
              .NET / Js / C++
                                                          Filtered access                BCL / libraries
                                                              to WinRT
           Windows Runtime APIs and Services


                          UI      Controls      Storage          Media


 Win32       Windows                                                                        Win32
             Metadata   XAML      Pickers      Network              …

                                      Runtime Broker

                                   Windows Runtime Core



                                  Windows Kernel Services

@   itcampro        # itcamp12         Premium conference on Microsoft technologies
Mobile &
What is the Windows Runtime                                                Development


• It's the evolution of Component Object
  Model (COM)
     – Easier
     – Totally different Type System
     – Same metadata of the .NET Fx (ECMA-335)
         • WinRT and CLR talks the same "language"
         • No marshalling gotchas
• It's not a replacement for the CLR
• CLR is required for managed languages
   infrastructure

@   itcampro   # itcamp12   Premium conference on Microsoft technologies
Mobile &
Reference Count VS Garbage Collector                                                    Development




    Root                                                 Root

                        A             B                                           A            B


         Parent
                            Parent                                                    Parent


 • Circular references
     •     GC finds can find them as it freeze the app and search the roots
     •     Reference Count is autonomous and it can't
 • In the new C++11 standard we have weak references




@   itcampro        # itcamp12         Premium conference on Microsoft technologies
Mobile &
WinRT Type System                                                               Development


•       Basic types
    -     bool, integers, floats, enum, guid, type, object
•       Strings
    -     binary compatibile with .NET (string) and C++ STL (wstring)
    -     are immutable
    -     are value-types (non-nullable)
•       There are Reference Types
    -     All types that implement WinRT interfaces
•       There are Value Types
    -     All the others … for example arrays and structures
    -     Structures can't declare reference (deep/shallow copy problem)
•       "Complex" types
    -     Vector (collection) and Map (dictionary)
    -     Vector<T> implements IObservableVector<T> that is mapped
          to INotifyCollectionChanged

@   itcampro      # itcamp12     Premium conference on Microsoft technologies
Mobile &
Language Projections                                                            Development


•Projections map WinRT types to the projected language
• Different casing standards
    -     Javascript (camelCase), C++ and .NET (PascalCase)
•       Developers need to understand edge-cases
    -     Javascript standard only support IEEE-754 (floats).
          This means the max integer is 53 bit maximum
•       Few types are defined both in WinRT and .NET
    -     They are treated as 'special' and seen as equivalent
    -     INotifyPropertyChanged, INotifyCollectionChanged, …
•       Some .NET types cannot be mapped transparently
    -     Streams, Buffers, Tasks are mapped via extension methods
•       I expect third party projections too
    -     Java?, Python?, D language?, Delphi?, …



@   itcampro     # itcamp12      Premium conference on Microsoft technologies
Mobile &
Application Activation                                                          Development



                Explorer.exe

                     Activate                                           RPCSS
     Activation
      System




               Application.exe
                                                        DCOM                      Class
                                                        Launch                   Catalog




@   itcampro       # itcamp12    Premium conference on Microsoft technologies
Mobile &
Contracts : «XXI century's clipboard»                                             Development


•       A standard way to "talk" to other Apps or OS services
    •     A sort of publisher / subscriber pattern
•       Main Contracts available:
    •     Search, Share, Protocol, PlayTo, App to App picking
•       WinRT activate Apps that expose Contracts
    •    Running Apps is done via Launch Contract
        • Tiles are NOT shortcuts!
•       Apps use the Manifest to opt-in for Contracts
    •     They receive parameters in the activation method




@   itcampro      # itcamp12       Premium conference on Microsoft technologies
Mobile &
Asynchronous by design                                                          Development

Problem:       Apps should never block UI thread
Solution:      API that may take more than 50ms are only async


• Special objects wraps Asynchronous Operations
• In WinRT they implement IAsyncOperation<T>
    •   AsTask extension method is used to convert it to a
        Task<T>
• In .NET these objects are Task<T>
    •   AsAsyncOperation extension method to obtain an
        IAsyncOperation<T>
• C# 5.0 have new async/await keywords
• Javascript and C++ can use "promises" pattern

@   itcampro    # itcamp12       Premium conference on Microsoft technologies
Mobile &
Application lifecycle                                                         Development


                    Process   Suspend
      App              in                           Process          Low          App
        is           Active                      in Suspended      Memory           is
                     state                           state
    Activated                                                      (system)      closed
                              Resume



 • Suspension happens after ~5s the App is not visible
 • Suspension message is used to save App state
 • Resume happens when user switch to the App
 • Typically used to refresh data from sensors, WS, …
 •There is no notification for the close transition
 • App state is already saved during suspension




@   itcampro    # itcamp12    Premium conference on Microsoft technologies
Mobile &
The sandbox                                                                              Development




      Application Package

                            Application
                              code                   Manifest                       Marketplace



                                                 Security Broker                        Proxy


                                      WinRT                                            Libraries


               Win32                                                                 White-listed


                       Windows Kernel Services


@   itcampro    # itcamp12           Premium conference on Microsoft technologies
Mobile &
Developing with WinRT                                                         Development

•       XAML UI for .NET and C++
•       XAML / DirectX can share surfaces
    •    DirectX inside a XAML control
    •    Large virtual DirectX surface in conjunction with XAML
    •    High Performance DirectX drawing, XAML overlapped
•       Custom WinRT components are easy to write
    •    i.e. exposing C# or C++ code to Javascript or vice-versa
    •    Custom components are private to the App (no RegSvr32)
•       Cross language calls are cheap
    •    No more P-Invokes!
    •    As fast as a vtable call
    •    Desktop Apps can use a WinRT APIs subset
•       CLR have an additional weapon: "Portable Class Library"
    •    A DLL with code that run on Metro, desktop, SL, …
    •    As it's IL code, it runs as 32 or 64 bits as well

@   itcampro    # itcamp12     Premium conference on Microsoft technologies
Mobile &
Metro profile for .NET development                                                  Development

 Metro profile was a good opportunity to clean BCL
 •       Removed: Xml DOM, WebClient, Threads, …
 •       Moved Reflection in System.Reflection
     •     GetTypeInfo extension method to access reflection classes

                                      Metro              Fx 4.5            WP7
                # assemblies              15               120               22
                # namespaces              60               400               88
                # types               ~1'000           ~14'000           ~2'000
                # members            ~10'000          ~110'000         ~14'000


 • What else is not in the Metro profile?
 • APIs that are already in WinRT (Storage, Sockets, Network, etc.)
 • Server libraries like WCF, Asp.net, …
 • APIs that could bypass the sandbox
     •     System.Data, Remoting, AppDomain, Private Reflection, …



@    itcampro       # itcamp12       Premium conference on Microsoft technologies
Mobile &
Developer thoughts                                                              Development


•       No need to elevate (UAC) a Metro App
    •     Admin Apps will run in the old desktop
•       Storage
    •     Apps can access only locations specified by manifest
    •     Users can pick (via UI) a file that is stored elsewhere
    •     No local db APIs at the moment
•       Media and Sensors
    •     Easy access to cameras, accelerometer, …
    •     Require user consent (requested via manifest)
•       Network
    •     Great library to ease oAuth authentication
    •     Flexible HttpClient replace WebClient
    •     Websockets support
•       Dig into the APIs and discover it by yourself!


@   itcampro      # itcamp12     Premium conference on Microsoft technologies
Mobile &
Takeaways                                                                  Development


• WinRT is a great step in Windows evolution
    •   Exposes native OS services in a pure OOP way
    •   Closes the gap between managed and native
        languages
• Developers can use their current knowledge to
  create Apps from small devices to classic PCs
• Marketplace is an opportunity for developers
  and a sweet experience for end-users
• Think about performance/battery issues
• It's Framework.NET best friend

@   itcampro   # itcamp12   Premium conference on Microsoft technologies
Mobile &
Tools for WinRT                                                            Development


• WinRT.codeplex.com
• Debug Activation, WRL project template, ... (more to come)




@   itcampro   # itcamp12   Premium conference on Microsoft technologies
Q&A


@   itcampro   # itcamp12   Premium conference on Microsoft technologies

Weitere ähnliche Inhalte

Was ist angesagt?

Visual programming lab
Visual programming labVisual programming lab
Visual programming labSoumya Behera
 
WPF Applications, It's all about XAML these days
WPF Applications, It's all about XAML these daysWPF Applications, It's all about XAML these days
WPF Applications, It's all about XAML these daysDave Bost
 
Windows programming ppt
Windows programming pptWindows programming ppt
Windows programming pptSAMIR CHANDRA
 
VC++ Fundamentals
VC++ FundamentalsVC++ Fundamentals
VC++ Fundamentalsranigiyer
 
Developing for Windows Phone 8 and Windows 8
Developing for Windows Phone 8 and Windows 8Developing for Windows Phone 8 and Windows 8
Developing for Windows Phone 8 and Windows 8Dave Bost
 
introduction to_mfc
 introduction to_mfc introduction to_mfc
introduction to_mfctuttukuttu
 
Beginning direct3d gameprogramming02_overviewofhalandcom_20160408_jintaeks
Beginning direct3d gameprogramming02_overviewofhalandcom_20160408_jintaeksBeginning direct3d gameprogramming02_overviewofhalandcom_20160408_jintaeks
Beginning direct3d gameprogramming02_overviewofhalandcom_20160408_jintaeksJinTaek Seo
 
Online lg prodect
Online lg prodectOnline lg prodect
Online lg prodectYesu Raj
 
Viktor Aleksandrov-Resume-2015
Viktor Aleksandrov-Resume-2015Viktor Aleksandrov-Resume-2015
Viktor Aleksandrov-Resume-2015Viktor Aleksandrov
 
Dot Net Interview Questions - Part 1
Dot Net Interview Questions - Part 1Dot Net Interview Questions - Part 1
Dot Net Interview Questions - Part 1ReKruiTIn.com
 

Was ist angesagt? (16)

Visual programming lab
Visual programming labVisual programming lab
Visual programming lab
 
WPF Applications, It's all about XAML these days
WPF Applications, It's all about XAML these daysWPF Applications, It's all about XAML these days
WPF Applications, It's all about XAML these days
 
Windows programming ppt
Windows programming pptWindows programming ppt
Windows programming ppt
 
Visual programming
Visual programmingVisual programming
Visual programming
 
VC++ Fundamentals
VC++ FundamentalsVC++ Fundamentals
VC++ Fundamentals
 
Developing for Windows Phone 8 and Windows 8
Developing for Windows Phone 8 and Windows 8Developing for Windows Phone 8 and Windows 8
Developing for Windows Phone 8 and Windows 8
 
VB.Net GUI Unit_01
VB.Net GUI Unit_01VB.Net GUI Unit_01
VB.Net GUI Unit_01
 
Dot net Introduction and their usabilities
Dot net Introduction and  their usabilitiesDot net Introduction and  their usabilities
Dot net Introduction and their usabilities
 
introduction to_mfc
 introduction to_mfc introduction to_mfc
introduction to_mfc
 
Vc++ 3
Vc++ 3Vc++ 3
Vc++ 3
 
Beginning direct3d gameprogramming02_overviewofhalandcom_20160408_jintaeks
Beginning direct3d gameprogramming02_overviewofhalandcom_20160408_jintaeksBeginning direct3d gameprogramming02_overviewofhalandcom_20160408_jintaeks
Beginning direct3d gameprogramming02_overviewofhalandcom_20160408_jintaeks
 
Online lg prodect
Online lg prodectOnline lg prodect
Online lg prodect
 
Darko Mijić CV
Darko Mijić CVDarko Mijić CV
Darko Mijić CV
 
Embarcadero C++Builder XE3 Datasheet
Embarcadero C++Builder XE3 DatasheetEmbarcadero C++Builder XE3 Datasheet
Embarcadero C++Builder XE3 Datasheet
 
Viktor Aleksandrov-Resume-2015
Viktor Aleksandrov-Resume-2015Viktor Aleksandrov-Resume-2015
Viktor Aleksandrov-Resume-2015
 
Dot Net Interview Questions - Part 1
Dot Net Interview Questions - Part 1Dot Net Interview Questions - Part 1
Dot Net Interview Questions - Part 1
 

Andere mochten auch

Visual studio 2012 - What's in it for me?
Visual studio 2012 - What's in it for me?Visual studio 2012 - What's in it for me?
Visual studio 2012 - What's in it for me?Jeff Bramwell
 
Tools for Building Windows 8 style apps
Tools for Building Windows 8 style appsTools for Building Windows 8 style apps
Tools for Building Windows 8 style appsZubair Ahmed
 
ITCamp 2012 - Lorant Domokos - Building single page, modular HTML5 applications
ITCamp 2012 - Lorant Domokos - Building single page, modular HTML5 applicationsITCamp 2012 - Lorant Domokos - Building single page, modular HTML5 applications
ITCamp 2012 - Lorant Domokos - Building single page, modular HTML5 applicationsITCamp
 
Win8 architecture for developers
Win8 architecture for developersWin8 architecture for developers
Win8 architecture for developersRobert MacLean
 
Delivering High Availability and Performance with SQL Server 2014 (Silviu Nic...
Delivering High Availability and Performance with SQL Server 2014 (Silviu Nic...Delivering High Availability and Performance with SQL Server 2014 (Silviu Nic...
Delivering High Availability and Performance with SQL Server 2014 (Silviu Nic...ITCamp
 

Andere mochten auch (6)

Visual studio 2012 - What's in it for me?
Visual studio 2012 - What's in it for me?Visual studio 2012 - What's in it for me?
Visual studio 2012 - What's in it for me?
 
Tools for Building Windows 8 style apps
Tools for Building Windows 8 style appsTools for Building Windows 8 style apps
Tools for Building Windows 8 style apps
 
Making Programs Talk
Making Programs TalkMaking Programs Talk
Making Programs Talk
 
ITCamp 2012 - Lorant Domokos - Building single page, modular HTML5 applications
ITCamp 2012 - Lorant Domokos - Building single page, modular HTML5 applicationsITCamp 2012 - Lorant Domokos - Building single page, modular HTML5 applications
ITCamp 2012 - Lorant Domokos - Building single page, modular HTML5 applications
 
Win8 architecture for developers
Win8 architecture for developersWin8 architecture for developers
Win8 architecture for developers
 
Delivering High Availability and Performance with SQL Server 2014 (Silviu Nic...
Delivering High Availability and Performance with SQL Server 2014 (Silviu Nic...Delivering High Availability and Performance with SQL Server 2014 (Silviu Nic...
Delivering High Availability and Performance with SQL Server 2014 (Silviu Nic...
 

Ähnlich wie ITCamp 2012 - Raffaele Rialdi - Introduction to WinRT

ITCamp 2013 - Raffaele Rialdi - Windows Runtime (WinRT) deep dive
ITCamp 2013 - Raffaele Rialdi - Windows Runtime (WinRT) deep diveITCamp 2013 - Raffaele Rialdi - Windows Runtime (WinRT) deep dive
ITCamp 2013 - Raffaele Rialdi - Windows Runtime (WinRT) deep diveITCamp
 
Latest trends in information technology
Latest trends in information technologyLatest trends in information technology
Latest trends in information technologyEldos Kuriakose
 
Mihai Tataran - Building Windows 8 Applications with HTML5 and JS
Mihai Tataran - Building Windows 8 Applications with HTML5 and JSMihai Tataran - Building Windows 8 Applications with HTML5 and JS
Mihai Tataran - Building Windows 8 Applications with HTML5 and JSITCamp
 
ITCamp 2013 - Petru Jucovschi - Application ecosystems
ITCamp 2013 - Petru Jucovschi - Application ecosystemsITCamp 2013 - Petru Jucovschi - Application ecosystems
ITCamp 2013 - Petru Jucovschi - Application ecosystemsITCamp
 
ITCamp 2012 - Adam Granicz - Web development with WebSharper in F#
ITCamp 2012 - Adam Granicz - Web development with WebSharper in F#ITCamp 2012 - Adam Granicz - Web development with WebSharper in F#
ITCamp 2012 - Adam Granicz - Web development with WebSharper in F#ITCamp
 
ITCamp 2011 - Mihai Nadas - Windows Azure interop
ITCamp 2011 - Mihai Nadas - Windows Azure interopITCamp 2011 - Mihai Nadas - Windows Azure interop
ITCamp 2011 - Mihai Nadas - Windows Azure interopITCamp
 
Robots in Human Environments
Robots in Human EnvironmentsRobots in Human Environments
Robots in Human EnvironmentsAndreas Heil
 
Win rt fundamentals
Win rt fundamentalsWin rt fundamentals
Win rt fundamentalsKevin Stumpf
 
1 get started with c#
1   get started with c#1   get started with c#
1 get started with c#Tuan Ngo
 
Windows 8 Hot or Not
Windows 8 Hot or NotWindows 8 Hot or Not
Windows 8 Hot or Notpwlodek
 
Training - Managing .NET/J2EE Projects
Training - Managing .NET/J2EE ProjectsTraining - Managing .NET/J2EE Projects
Training - Managing .NET/J2EE ProjectsShashank Banerjea
 
Shape 2013 developing multi targeting windows store and windows phone apps
Shape 2013   developing multi targeting windows store and windows phone appsShape 2013   developing multi targeting windows store and windows phone apps
Shape 2013 developing multi targeting windows store and windows phone appsJose Luis Latorre Millas
 
dot net technology
dot net technologydot net technology
dot net technologyImran Khan
 
Kahuna Systems : Product Engineering Services
Kahuna Systems : Product Engineering ServicesKahuna Systems : Product Engineering Services
Kahuna Systems : Product Engineering Serviceskahunasystems
 
Presentation1
Presentation1Presentation1
Presentation1kpkcsc
 

Ähnlich wie ITCamp 2012 - Raffaele Rialdi - Introduction to WinRT (20)

Geek a-paloozaaa metro-xaml_appdev
Geek a-paloozaaa metro-xaml_appdevGeek a-paloozaaa metro-xaml_appdev
Geek a-paloozaaa metro-xaml_appdev
 
ITCamp 2013 - Raffaele Rialdi - Windows Runtime (WinRT) deep dive
ITCamp 2013 - Raffaele Rialdi - Windows Runtime (WinRT) deep diveITCamp 2013 - Raffaele Rialdi - Windows Runtime (WinRT) deep dive
ITCamp 2013 - Raffaele Rialdi - Windows Runtime (WinRT) deep dive
 
.Net + novas tecnologias + win8
.Net + novas tecnologias + win8.Net + novas tecnologias + win8
.Net + novas tecnologias + win8
 
Deep Dive into WinRT
Deep Dive into WinRTDeep Dive into WinRT
Deep Dive into WinRT
 
Latest trends in information technology
Latest trends in information technologyLatest trends in information technology
Latest trends in information technology
 
Mihai Tataran - Building Windows 8 Applications with HTML5 and JS
Mihai Tataran - Building Windows 8 Applications with HTML5 and JSMihai Tataran - Building Windows 8 Applications with HTML5 and JS
Mihai Tataran - Building Windows 8 Applications with HTML5 and JS
 
ITCamp 2013 - Petru Jucovschi - Application ecosystems
ITCamp 2013 - Petru Jucovschi - Application ecosystemsITCamp 2013 - Petru Jucovschi - Application ecosystems
ITCamp 2013 - Petru Jucovschi - Application ecosystems
 
ITCamp 2012 - Adam Granicz - Web development with WebSharper in F#
ITCamp 2012 - Adam Granicz - Web development with WebSharper in F#ITCamp 2012 - Adam Granicz - Web development with WebSharper in F#
ITCamp 2012 - Adam Granicz - Web development with WebSharper in F#
 
ITCamp 2011 - Mihai Nadas - Windows Azure interop
ITCamp 2011 - Mihai Nadas - Windows Azure interopITCamp 2011 - Mihai Nadas - Windows Azure interop
ITCamp 2011 - Mihai Nadas - Windows Azure interop
 
Robots in Human Environments
Robots in Human EnvironmentsRobots in Human Environments
Robots in Human Environments
 
Win rt fundamentals
Win rt fundamentalsWin rt fundamentals
Win rt fundamentals
 
1 get started with c#
1   get started with c#1   get started with c#
1 get started with c#
 
Windows 8 Hot or Not
Windows 8 Hot or NotWindows 8 Hot or Not
Windows 8 Hot or Not
 
Training - Managing .NET/J2EE Projects
Training - Managing .NET/J2EE ProjectsTraining - Managing .NET/J2EE Projects
Training - Managing .NET/J2EE Projects
 
Shape 2013 developing multi targeting windows store and windows phone apps
Shape 2013   developing multi targeting windows store and windows phone appsShape 2013   developing multi targeting windows store and windows phone apps
Shape 2013 developing multi targeting windows store and windows phone apps
 
dot net technology
dot net technologydot net technology
dot net technology
 
Kahuna Systems : Product Engineering Services
Kahuna Systems : Product Engineering ServicesKahuna Systems : Product Engineering Services
Kahuna Systems : Product Engineering Services
 
Dot net
Dot netDot net
Dot net
 
Presentation1
Presentation1Presentation1
Presentation1
 
Introducing Windows Runtime in Windows 8
Introducing Windows Runtime in Windows 8Introducing Windows Runtime in Windows 8
Introducing Windows Runtime in Windows 8
 

Mehr von ITCamp

ITCamp 2019 - Stacey M. Jenkins - Protecting your company's data - By psychol...
ITCamp 2019 - Stacey M. Jenkins - Protecting your company's data - By psychol...ITCamp 2019 - Stacey M. Jenkins - Protecting your company's data - By psychol...
ITCamp 2019 - Stacey M. Jenkins - Protecting your company's data - By psychol...ITCamp
 
ITCamp 2019 - Silviu Niculita - Supercharge your AI efforts with the use of A...
ITCamp 2019 - Silviu Niculita - Supercharge your AI efforts with the use of A...ITCamp 2019 - Silviu Niculita - Supercharge your AI efforts with the use of A...
ITCamp 2019 - Silviu Niculita - Supercharge your AI efforts with the use of A...ITCamp
 
ITCamp 2019 - Peter Leeson - Managing Skills
ITCamp 2019 - Peter Leeson - Managing SkillsITCamp 2019 - Peter Leeson - Managing Skills
ITCamp 2019 - Peter Leeson - Managing SkillsITCamp
 
ITCamp 2019 - Mihai Tataran - Governing your Cloud Resources
ITCamp 2019 - Mihai Tataran - Governing your Cloud ResourcesITCamp 2019 - Mihai Tataran - Governing your Cloud Resources
ITCamp 2019 - Mihai Tataran - Governing your Cloud ResourcesITCamp
 
ITCamp 2019 - Ivana Milicic - Color - The Shadow Ruler of UX
ITCamp 2019 - Ivana Milicic - Color - The Shadow Ruler of UXITCamp 2019 - Ivana Milicic - Color - The Shadow Ruler of UX
ITCamp 2019 - Ivana Milicic - Color - The Shadow Ruler of UXITCamp
 
ITCamp 2019 - Florin Coros - Implementing Clean Architecture
ITCamp 2019 - Florin Coros - Implementing Clean ArchitectureITCamp 2019 - Florin Coros - Implementing Clean Architecture
ITCamp 2019 - Florin Coros - Implementing Clean ArchitectureITCamp
 
ITCamp 2019 - Florin Loghiade - Azure Kubernetes in Production - Field notes...
ITCamp 2019 - Florin Loghiade -  Azure Kubernetes in Production - Field notes...ITCamp 2019 - Florin Loghiade -  Azure Kubernetes in Production - Field notes...
ITCamp 2019 - Florin Loghiade - Azure Kubernetes in Production - Field notes...ITCamp
 
ITCamp 2019 - Florin Flestea - How 3rd Level support experience influenced m...
ITCamp 2019 - Florin Flestea -  How 3rd Level support experience influenced m...ITCamp 2019 - Florin Flestea -  How 3rd Level support experience influenced m...
ITCamp 2019 - Florin Flestea - How 3rd Level support experience influenced m...ITCamp
 
ITCamp 2019 - Emil Craciun - RoboRestaurant of the future powered by serverle...
ITCamp 2019 - Emil Craciun - RoboRestaurant of the future powered by serverle...ITCamp 2019 - Emil Craciun - RoboRestaurant of the future powered by serverle...
ITCamp 2019 - Emil Craciun - RoboRestaurant of the future powered by serverle...ITCamp
 
ITCamp 2019 - Eldert Grootenboer - Cloud Architecture Recipes for The Enterprise
ITCamp 2019 - Eldert Grootenboer - Cloud Architecture Recipes for The EnterpriseITCamp 2019 - Eldert Grootenboer - Cloud Architecture Recipes for The Enterprise
ITCamp 2019 - Eldert Grootenboer - Cloud Architecture Recipes for The EnterpriseITCamp
 
ITCamp 2019 - Cristiana Fernbach - Blockchain Legal Trends
ITCamp 2019 - Cristiana Fernbach - Blockchain Legal TrendsITCamp 2019 - Cristiana Fernbach - Blockchain Legal Trends
ITCamp 2019 - Cristiana Fernbach - Blockchain Legal TrendsITCamp
 
ITCamp 2019 - Andy Cross - Machine Learning with ML.NET and Azure Data Lake
ITCamp 2019 - Andy Cross - Machine Learning with ML.NET and Azure Data LakeITCamp 2019 - Andy Cross - Machine Learning with ML.NET and Azure Data Lake
ITCamp 2019 - Andy Cross - Machine Learning with ML.NET and Azure Data LakeITCamp
 
ITCamp 2019 - Andy Cross - Business Outcomes from AI
ITCamp 2019 - Andy Cross - Business Outcomes from AIITCamp 2019 - Andy Cross - Business Outcomes from AI
ITCamp 2019 - Andy Cross - Business Outcomes from AIITCamp
 
ITCamp 2019 - Andrea Saltarello - Modernise your app. The Cloud Story
ITCamp 2019 - Andrea Saltarello - Modernise your app. The Cloud StoryITCamp 2019 - Andrea Saltarello - Modernise your app. The Cloud Story
ITCamp 2019 - Andrea Saltarello - Modernise your app. The Cloud StoryITCamp
 
ITCamp 2019 - Andrea Saltarello - Implementing bots and Alexa skills using Az...
ITCamp 2019 - Andrea Saltarello - Implementing bots and Alexa skills using Az...ITCamp 2019 - Andrea Saltarello - Implementing bots and Alexa skills using Az...
ITCamp 2019 - Andrea Saltarello - Implementing bots and Alexa skills using Az...ITCamp
 
ITCamp 2019 - Alex Mang - I'm Confused Should I Orchestrate my Containers on ...
ITCamp 2019 - Alex Mang - I'm Confused Should I Orchestrate my Containers on ...ITCamp 2019 - Alex Mang - I'm Confused Should I Orchestrate my Containers on ...
ITCamp 2019 - Alex Mang - I'm Confused Should I Orchestrate my Containers on ...ITCamp
 
ITCamp 2019 - Alex Mang - How Far Can Serverless Actually Go Now
ITCamp 2019 - Alex Mang - How Far Can Serverless Actually Go NowITCamp 2019 - Alex Mang - How Far Can Serverless Actually Go Now
ITCamp 2019 - Alex Mang - How Far Can Serverless Actually Go NowITCamp
 
ITCamp 2019 - Peter Leeson - Vitruvian Quality
ITCamp 2019 - Peter Leeson - Vitruvian QualityITCamp 2019 - Peter Leeson - Vitruvian Quality
ITCamp 2019 - Peter Leeson - Vitruvian QualityITCamp
 
ITCamp 2018 - Ciprian Sorlea - Million Dollars Hello World Application
ITCamp 2018 - Ciprian Sorlea - Million Dollars Hello World ApplicationITCamp 2018 - Ciprian Sorlea - Million Dollars Hello World Application
ITCamp 2018 - Ciprian Sorlea - Million Dollars Hello World ApplicationITCamp
 
ITCamp 2018 - Ciprian Sorlea - Enterprise Architectures with TypeScript And F...
ITCamp 2018 - Ciprian Sorlea - Enterprise Architectures with TypeScript And F...ITCamp 2018 - Ciprian Sorlea - Enterprise Architectures with TypeScript And F...
ITCamp 2018 - Ciprian Sorlea - Enterprise Architectures with TypeScript And F...ITCamp
 

Mehr von ITCamp (20)

ITCamp 2019 - Stacey M. Jenkins - Protecting your company's data - By psychol...
ITCamp 2019 - Stacey M. Jenkins - Protecting your company's data - By psychol...ITCamp 2019 - Stacey M. Jenkins - Protecting your company's data - By psychol...
ITCamp 2019 - Stacey M. Jenkins - Protecting your company's data - By psychol...
 
ITCamp 2019 - Silviu Niculita - Supercharge your AI efforts with the use of A...
ITCamp 2019 - Silviu Niculita - Supercharge your AI efforts with the use of A...ITCamp 2019 - Silviu Niculita - Supercharge your AI efforts with the use of A...
ITCamp 2019 - Silviu Niculita - Supercharge your AI efforts with the use of A...
 
ITCamp 2019 - Peter Leeson - Managing Skills
ITCamp 2019 - Peter Leeson - Managing SkillsITCamp 2019 - Peter Leeson - Managing Skills
ITCamp 2019 - Peter Leeson - Managing Skills
 
ITCamp 2019 - Mihai Tataran - Governing your Cloud Resources
ITCamp 2019 - Mihai Tataran - Governing your Cloud ResourcesITCamp 2019 - Mihai Tataran - Governing your Cloud Resources
ITCamp 2019 - Mihai Tataran - Governing your Cloud Resources
 
ITCamp 2019 - Ivana Milicic - Color - The Shadow Ruler of UX
ITCamp 2019 - Ivana Milicic - Color - The Shadow Ruler of UXITCamp 2019 - Ivana Milicic - Color - The Shadow Ruler of UX
ITCamp 2019 - Ivana Milicic - Color - The Shadow Ruler of UX
 
ITCamp 2019 - Florin Coros - Implementing Clean Architecture
ITCamp 2019 - Florin Coros - Implementing Clean ArchitectureITCamp 2019 - Florin Coros - Implementing Clean Architecture
ITCamp 2019 - Florin Coros - Implementing Clean Architecture
 
ITCamp 2019 - Florin Loghiade - Azure Kubernetes in Production - Field notes...
ITCamp 2019 - Florin Loghiade -  Azure Kubernetes in Production - Field notes...ITCamp 2019 - Florin Loghiade -  Azure Kubernetes in Production - Field notes...
ITCamp 2019 - Florin Loghiade - Azure Kubernetes in Production - Field notes...
 
ITCamp 2019 - Florin Flestea - How 3rd Level support experience influenced m...
ITCamp 2019 - Florin Flestea -  How 3rd Level support experience influenced m...ITCamp 2019 - Florin Flestea -  How 3rd Level support experience influenced m...
ITCamp 2019 - Florin Flestea - How 3rd Level support experience influenced m...
 
ITCamp 2019 - Emil Craciun - RoboRestaurant of the future powered by serverle...
ITCamp 2019 - Emil Craciun - RoboRestaurant of the future powered by serverle...ITCamp 2019 - Emil Craciun - RoboRestaurant of the future powered by serverle...
ITCamp 2019 - Emil Craciun - RoboRestaurant of the future powered by serverle...
 
ITCamp 2019 - Eldert Grootenboer - Cloud Architecture Recipes for The Enterprise
ITCamp 2019 - Eldert Grootenboer - Cloud Architecture Recipes for The EnterpriseITCamp 2019 - Eldert Grootenboer - Cloud Architecture Recipes for The Enterprise
ITCamp 2019 - Eldert Grootenboer - Cloud Architecture Recipes for The Enterprise
 
ITCamp 2019 - Cristiana Fernbach - Blockchain Legal Trends
ITCamp 2019 - Cristiana Fernbach - Blockchain Legal TrendsITCamp 2019 - Cristiana Fernbach - Blockchain Legal Trends
ITCamp 2019 - Cristiana Fernbach - Blockchain Legal Trends
 
ITCamp 2019 - Andy Cross - Machine Learning with ML.NET and Azure Data Lake
ITCamp 2019 - Andy Cross - Machine Learning with ML.NET and Azure Data LakeITCamp 2019 - Andy Cross - Machine Learning with ML.NET and Azure Data Lake
ITCamp 2019 - Andy Cross - Machine Learning with ML.NET and Azure Data Lake
 
ITCamp 2019 - Andy Cross - Business Outcomes from AI
ITCamp 2019 - Andy Cross - Business Outcomes from AIITCamp 2019 - Andy Cross - Business Outcomes from AI
ITCamp 2019 - Andy Cross - Business Outcomes from AI
 
ITCamp 2019 - Andrea Saltarello - Modernise your app. The Cloud Story
ITCamp 2019 - Andrea Saltarello - Modernise your app. The Cloud StoryITCamp 2019 - Andrea Saltarello - Modernise your app. The Cloud Story
ITCamp 2019 - Andrea Saltarello - Modernise your app. The Cloud Story
 
ITCamp 2019 - Andrea Saltarello - Implementing bots and Alexa skills using Az...
ITCamp 2019 - Andrea Saltarello - Implementing bots and Alexa skills using Az...ITCamp 2019 - Andrea Saltarello - Implementing bots and Alexa skills using Az...
ITCamp 2019 - Andrea Saltarello - Implementing bots and Alexa skills using Az...
 
ITCamp 2019 - Alex Mang - I'm Confused Should I Orchestrate my Containers on ...
ITCamp 2019 - Alex Mang - I'm Confused Should I Orchestrate my Containers on ...ITCamp 2019 - Alex Mang - I'm Confused Should I Orchestrate my Containers on ...
ITCamp 2019 - Alex Mang - I'm Confused Should I Orchestrate my Containers on ...
 
ITCamp 2019 - Alex Mang - How Far Can Serverless Actually Go Now
ITCamp 2019 - Alex Mang - How Far Can Serverless Actually Go NowITCamp 2019 - Alex Mang - How Far Can Serverless Actually Go Now
ITCamp 2019 - Alex Mang - How Far Can Serverless Actually Go Now
 
ITCamp 2019 - Peter Leeson - Vitruvian Quality
ITCamp 2019 - Peter Leeson - Vitruvian QualityITCamp 2019 - Peter Leeson - Vitruvian Quality
ITCamp 2019 - Peter Leeson - Vitruvian Quality
 
ITCamp 2018 - Ciprian Sorlea - Million Dollars Hello World Application
ITCamp 2018 - Ciprian Sorlea - Million Dollars Hello World ApplicationITCamp 2018 - Ciprian Sorlea - Million Dollars Hello World Application
ITCamp 2018 - Ciprian Sorlea - Million Dollars Hello World Application
 
ITCamp 2018 - Ciprian Sorlea - Enterprise Architectures with TypeScript And F...
ITCamp 2018 - Ciprian Sorlea - Enterprise Architectures with TypeScript And F...ITCamp 2018 - Ciprian Sorlea - Enterprise Architectures with TypeScript And F...
ITCamp 2018 - Ciprian Sorlea - Enterprise Architectures with TypeScript And F...
 

Kürzlich hochgeladen

The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxBkGupta21
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 

Kürzlich hochgeladen (20)

The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptx
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 

ITCamp 2012 - Raffaele Rialdi - Introduction to WinRT

  • 1. Introduction to Windows Runtime (WinRT) Raffaele Rialdi @raffaeler raffaeler@vevy.com http://www.iamraf.net @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 2. Mobile & ITCamp 2012 sponsors Development @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 3. Mobile & Agenda Development • You already heard about – «Tailored User eXperience» • Inspiring confidence, Fast and fluid, Touch-first, Immersive, Engaging and Alive, Connected – Why current applications does not fit the new market • We will dig into: – What is the Windows Runtime (WinRT) – Why Win8 is not a simple UI restyling – What are the pillars (from a developer point of view) – How can you get it to the max @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 4. Mobile & OO vs not-OO Development • Procedural languages have no implicit lifetime concept – malloc free, CreateFile  CloseHandle, … • In .NET, Dispose pattern is a partial solution – It's not automatic – Can lead to resources leak • Requires PInvoke for accessing C-Libraries • Communication between processes is done via IPC and not between components @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 5. Mobile & Windows Runtime Architecture Development Metro apps Desktop apps Win MFC XAML DirectX HTML WPF SL form HTML DX Language Projections .NET / Js / C++ .NET / Js / C++ Filtered access BCL / libraries to WinRT Windows Runtime APIs and Services UI Controls Storage Media Win32 Windows Win32 Metadata XAML Pickers Network … Runtime Broker Windows Runtime Core Windows Kernel Services @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 6. Mobile & What is the Windows Runtime Development • It's the evolution of Component Object Model (COM) – Easier – Totally different Type System – Same metadata of the .NET Fx (ECMA-335) • WinRT and CLR talks the same "language" • No marshalling gotchas • It's not a replacement for the CLR • CLR is required for managed languages infrastructure @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 7. Mobile & Reference Count VS Garbage Collector Development Root Root A B A B Parent Parent Parent • Circular references • GC finds can find them as it freeze the app and search the roots • Reference Count is autonomous and it can't • In the new C++11 standard we have weak references @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 8. Mobile & WinRT Type System Development • Basic types - bool, integers, floats, enum, guid, type, object • Strings - binary compatibile with .NET (string) and C++ STL (wstring) - are immutable - are value-types (non-nullable) • There are Reference Types - All types that implement WinRT interfaces • There are Value Types - All the others … for example arrays and structures - Structures can't declare reference (deep/shallow copy problem) • "Complex" types - Vector (collection) and Map (dictionary) - Vector<T> implements IObservableVector<T> that is mapped to INotifyCollectionChanged @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 9. Mobile & Language Projections Development •Projections map WinRT types to the projected language • Different casing standards - Javascript (camelCase), C++ and .NET (PascalCase) • Developers need to understand edge-cases - Javascript standard only support IEEE-754 (floats). This means the max integer is 53 bit maximum • Few types are defined both in WinRT and .NET - They are treated as 'special' and seen as equivalent - INotifyPropertyChanged, INotifyCollectionChanged, … • Some .NET types cannot be mapped transparently - Streams, Buffers, Tasks are mapped via extension methods • I expect third party projections too - Java?, Python?, D language?, Delphi?, … @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 10. Mobile & Application Activation Development Explorer.exe Activate RPCSS Activation System Application.exe DCOM Class Launch Catalog @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 11. Mobile & Contracts : «XXI century's clipboard» Development • A standard way to "talk" to other Apps or OS services • A sort of publisher / subscriber pattern • Main Contracts available: • Search, Share, Protocol, PlayTo, App to App picking • WinRT activate Apps that expose Contracts • Running Apps is done via Launch Contract • Tiles are NOT shortcuts! • Apps use the Manifest to opt-in for Contracts • They receive parameters in the activation method @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 12. Mobile & Asynchronous by design Development Problem: Apps should never block UI thread Solution: API that may take more than 50ms are only async • Special objects wraps Asynchronous Operations • In WinRT they implement IAsyncOperation<T> • AsTask extension method is used to convert it to a Task<T> • In .NET these objects are Task<T> • AsAsyncOperation extension method to obtain an IAsyncOperation<T> • C# 5.0 have new async/await keywords • Javascript and C++ can use "promises" pattern @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 13. Mobile & Application lifecycle Development Process Suspend App in Process Low App is Active in Suspended Memory is state state Activated (system) closed Resume • Suspension happens after ~5s the App is not visible • Suspension message is used to save App state • Resume happens when user switch to the App • Typically used to refresh data from sensors, WS, … •There is no notification for the close transition • App state is already saved during suspension @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 14. Mobile & The sandbox Development Application Package Application code Manifest Marketplace Security Broker Proxy WinRT Libraries Win32 White-listed Windows Kernel Services @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 15. Mobile & Developing with WinRT Development • XAML UI for .NET and C++ • XAML / DirectX can share surfaces • DirectX inside a XAML control • Large virtual DirectX surface in conjunction with XAML • High Performance DirectX drawing, XAML overlapped • Custom WinRT components are easy to write • i.e. exposing C# or C++ code to Javascript or vice-versa • Custom components are private to the App (no RegSvr32) • Cross language calls are cheap • No more P-Invokes! • As fast as a vtable call • Desktop Apps can use a WinRT APIs subset • CLR have an additional weapon: "Portable Class Library" • A DLL with code that run on Metro, desktop, SL, … • As it's IL code, it runs as 32 or 64 bits as well @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 16. Mobile & Metro profile for .NET development Development Metro profile was a good opportunity to clean BCL • Removed: Xml DOM, WebClient, Threads, … • Moved Reflection in System.Reflection • GetTypeInfo extension method to access reflection classes Metro Fx 4.5 WP7 # assemblies 15 120 22 # namespaces 60 400 88 # types ~1'000 ~14'000 ~2'000 # members ~10'000 ~110'000 ~14'000 • What else is not in the Metro profile? • APIs that are already in WinRT (Storage, Sockets, Network, etc.) • Server libraries like WCF, Asp.net, … • APIs that could bypass the sandbox • System.Data, Remoting, AppDomain, Private Reflection, … @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 17. Mobile & Developer thoughts Development • No need to elevate (UAC) a Metro App • Admin Apps will run in the old desktop • Storage • Apps can access only locations specified by manifest • Users can pick (via UI) a file that is stored elsewhere • No local db APIs at the moment • Media and Sensors • Easy access to cameras, accelerometer, … • Require user consent (requested via manifest) • Network • Great library to ease oAuth authentication • Flexible HttpClient replace WebClient • Websockets support • Dig into the APIs and discover it by yourself! @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 18. Mobile & Takeaways Development • WinRT is a great step in Windows evolution • Exposes native OS services in a pure OOP way • Closes the gap between managed and native languages • Developers can use their current knowledge to create Apps from small devices to classic PCs • Marketplace is an opportunity for developers and a sweet experience for end-users • Think about performance/battery issues • It's Framework.NET best friend @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 19. Mobile & Tools for WinRT Development • WinRT.codeplex.com • Debug Activation, WRL project template, ... (more to come) @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 20. Q&A @ itcampro # itcamp12 Premium conference on Microsoft technologies