SlideShare una empresa de Scribd logo
1 de 26
Descargar para leer sin conexión
Building metro style
        applications on Windows 8
          using background task
                                            Radu Vunvulea
                                                   iQuest
                        http://vunvulearadu.blogspot.com
                                  Twitter: @RaduVunvulea

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




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


•   Why we need background tasks
•   Base concepts
•   When to use them
•   Triggers
•   Conditions
•   Notifications
•   Demo
•   Tips and Tricks
•   Q&A

@   itcampro   # itcamp12   Premium conference on Microsoft technologies
Why we need background tasks                                               Mobile &
                                                                           Development


• What happens with classic applications?

• Where Windows Services vanish?

• Why do I need background tasks?




@   itcampro   # itcamp12   Premium conference on Microsoft technologies
Why we need background tasks                                               Mobile &
                                                                           Development


• What happens with classic applications?

• Where Windows Services vanish?

• Why do I need background tasks?




@   itcampro   # itcamp12   Premium conference on Microsoft technologies
Windows Metro Applications                                                 Mobile &
                                                                           Development


• Similar to Windows Phone applications
• Only threads from the current application
  (foreground) are running




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


• Running code in background
• The background task doesn’t depend on
  application state
• Small work items
• No interaction with UI
• What we gain:
     – Smooth user experience
     – Long battery life



@   itcampro   # itcamp12   Premium conference on Microsoft technologies
Background task types                                                      Mobile &
                                                                           Development


• System
     – Playback manager
     – Push notification
     – Background transfer API
         • Upload files
         • Download files
• User-defined
     – Almost any type of custom action




@   itcampro   # itcamp12   Premium conference on Microsoft technologies
When to use them                                                           Mobile &
                                                                           Development


•   Receive chat message
•   Process an incoming SMS
•   Download email
•   Display a toast notification
•   Execute action when something changes
•   Display UI, play music
•   Process photos
•   Index data


@   itcampro   # itcamp12   Premium conference on Microsoft technologies
Background task triggers                                                         Mobile &
                                                                                 Development




ControlChannelTrigger                        ServicingComplete
InternetAvailable                            SessionConnected
InternetNotAvailable                         SessionDisconnected
LockScreenApplicationAdded                   SessionStart
LockScreenApplicationRemoved                 SmsReceived
MaintenanceTrigger                           TimeTrigger
NetworkNotificationChannelReset              TimeZoneChange
NetworkStateChange                           UserAway
OnlineIdConnectedStateChange                 UserPresent
PushNotificationTrigger




@   itcampro        # itcamp12    Premium conference on Microsoft technologies
Background task triggers                                                         Mobile &
                                                                                 Development




ControlChannelTrigger                        ServicingComplete
InternetAvailable                            SessionConnected
InternetNotAvailable                         SessionDisconnected
LockScreenApplicationAdded                   SessionStart
LockScreenApplicationRemoved                 SmsReceived
MaintenanceTrigger                           TimeTrigger
NetworkNotificationChannelReset              TimeZoneChange
NetworkStateChange                           UserAway
OnlineIdConnectedStateChange                 UserPresent
PushNotificationTrigger




@   itcampro        # itcamp12    Premium conference on Microsoft technologies
Background task triggers                                                         Mobile &
                                                                                 Development

• Some triggers require the application to be on the lock screen

ControlChannelTrigger                        ServicingComplete
InternetAvailable                            SessionConnected
InternetNotAvailable                         SessionDisconnected
LockScreenApplicationAdded                   SessionStart
LockScreenApplicationRemoved                 SmsReceived
MaintenanceTrigger                           TimeTrigger
NetworkNotificationChannelReset              TimeZoneChange
NetworkStateChange                           UserAway
OnlineIdConnectedStateChange                 UserPresent
PushNotificationTrigger

• An application can register to be notified when it is added or removed
  from lock screen

@   itcampro    # itcamp12        Premium conference on Microsoft technologies
Background task conditions                                                 Mobile &
                                                                           Development


• 0..n conditions can be added to each
  background task
• Only when all conditions are met, the given
  task is launched
     Background task condition   The condition that must be satisfied
     InternetAvailable           The Internet must be available.
     InternetNotAvailable        The Internet must be unavailable.
     SessionConnected            The session must be connected.
     SessionDisconnected         The session must be disconnected.
     UserNotPresent              The user must be away.
     UserPresent                 The user must be present.



@   itcampro   # itcamp12   Premium conference on Microsoft technologies
Background task infrastructure                                                                 Mobile &
                                                                                               Development

                            Application             System


                  4. Launch background task



                                                                            System



        My Application                                                              3. Fire trigger
                              2. Register class with triggers




                                                                     Control Channel
                                                                      Control Channel
                             1. Register trigger                         Trigger
                                                                          Trigger




@   itcampro    # itcamp12                Premium conference on Microsoft technologies
Where a background task run                                                        Mobile &
                                                                                   Development




                   Application                         BackgroundTaskHost.exe




                                      Application or
                                 BackgroundTaskHost.exe




@   itcampro   # itcamp12           Premium conference on Microsoft technologies
Where a background task run                                                          Mobile &
                                                                                     Development


                                                           TimeTrigger
                                                          SystemTrigger
               ControlChannelTrigger                    MaintenanceTrigger


                     Application                         BackgroundTaskHost.exe




                                        Application or
                                   BackgroundTaskHost.exe



                               PushNotificationTrigger




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


• The following notification can send to the
  base application:
     – Progress notifications
     – Completion notifications
     – Exceptions thrown
• A background task can be receive
  cancellations notifications only from
  operating system
     – The task have 5s to save his state until the system
       close the application

@   itcampro   # itcamp12   Premium conference on Microsoft technologies
Basic steps to implement                                                     Mobile &
                                                                             Development


• JavaScript
     –   Add a new dedicated worker file
• C#/C++
     – Add a new Windows 8 Metro style app class library project to
       the solution.
     – Add a reference to the newly added class library project in the
       main Windows 8 Metro style app project that registers the
       background tasks.
     – Ensure that the output type of the class library is Winmd and
       not DLL.
     – Add the required manifest entries for background tasks to the
       Windows 8 Metro style app
     – Seal the class that implements the IBackgroundTask


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


• IBackgroundTask – used to implement the
  background task
• IBackgroundTaskInstance – provides access to a
  background task instance
• BackgroundTaskDeferral – used for async calls
  from background task
• BackgroundTaskBuilder – used to register a
  background task
• BackgroundTaskRegistration – a background
  class that was registered
• BackgroundTaskRegistration.AllTasks – get a list
  of tasks of the current application

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




@   itcampro   # itcamp12   Premium conference on Microsoft technologies
CPU resource constrains                                                          Mobile &
                                                                                 Development


• Limited CPU time for each application
• Use BackgroundTaskDeferral for async calls
                              CPU resource quota Refresh period

     Lock screen app          2 CPU seconds            15 minutes

     Non-lock screen app      1 CPU second             2 hours


• Restrictions are applied on AC power also
• Exceptions:
     – Control channel
     – Push notifications

@   itcampro     # itcamp12       Premium conference on Microsoft technologies
Network resource constraints                                                               Mobile &
                                                                                           Development


• Different network interfaces require different
  amount of energy
• Wi-Fi resource constraints:
     Average      Data throughput, in megabytes (MB)        Data throughput, in MB, for non-lock
     throughput   for lock screen apps                      screen apps

                  Every 15”   Per day     Every 2 hours     Per day
     1 Mbps       0.1875      18          0.25              3
     10 Mbps      1.875       180         2.5               30
     20 Mbps      3.75        360         5                 60



• On AC power there is no limitation for Wi-Fi
  network

@   itcampro      # itcamp12             Premium conference on Microsoft technologies
Tips and tricks                                                            Mobile &
                                                                           Development


• TimeTrigger minimum time interval is 15 minutes
• Progress and Complete handlers needs to be
  associated each time when application start
• BackgroundTaskDeferral can be used for async calls
• Don’t rely on global pool when all allocated CPU
  time was used
• When a background task is suspended a message is
  logged in the Event Viewer.
• Share data between application and background
  task only by files or State Manager


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


• Design background tasks to be short lived
• Use persistent storage to share data
  between the background task and the app
• Verify if the app needs to be on the lock
  screen
• Do not display UI other than toast, tiles or
  badges from a background task.
• Do not rely on user interaction in
  background tasks
@   itcampro   # itcamp12   Premium conference on Microsoft technologies
@   itcampro   # itcamp12   Premium conference on Microsoft technologies
THE END



                                                           Radu Vunvulea
                                                                  iQuest
                                       http://vunvulearadu.blogspot.com
                                                 Twitter: @RaduVunvulea

@   itcampro   # itcamp12    Premium conference on Microsoft technologies

Más contenido relacionado

La actualidad más candente

Security Technology Arms Race - Hack in the Box 2021 keynote
Security Technology Arms Race - Hack in the Box 2021 keynoteSecurity Technology Arms Race - Hack in the Box 2021 keynote
Security Technology Arms Race - Hack in the Box 2021 keynoteMarkDowd13
 
Developing for Windows Phone 8.1 (Dan Ardelean)
Developing for Windows Phone 8.1 (Dan Ardelean)Developing for Windows Phone 8.1 (Dan Ardelean)
Developing for Windows Phone 8.1 (Dan Ardelean)ITCamp
 
Developing for Windows Phone 8.1
Developing for Windows Phone 8.1Developing for Windows Phone 8.1
Developing for Windows Phone 8.1Dan Ardelean
 
Trend Micro - Virtualization and Security Compliance
Trend Micro - Virtualization and Security Compliance Trend Micro - Virtualization and Security Compliance
Trend Micro - Virtualization and Security Compliance 1CloudRoad.com
 
Introduction - Trend Micro Deep Security
Introduction - Trend Micro Deep SecurityIntroduction - Trend Micro Deep Security
Introduction - Trend Micro Deep SecurityAndrew Wong
 
AWS Partner Presentation - TrendMicro - Securing your Journey to the Cloud, A...
AWS Partner Presentation - TrendMicro - Securing your Journey to the Cloud, A...AWS Partner Presentation - TrendMicro - Securing your Journey to the Cloud, A...
AWS Partner Presentation - TrendMicro - Securing your Journey to the Cloud, A...Amazon Web Services
 
Trend Micro Dec 6 Toronto VMUG
Trend Micro Dec 6 Toronto VMUGTrend Micro Dec 6 Toronto VMUG
Trend Micro Dec 6 Toronto VMUGtovmug
 
Im cloud workshop denver 2
Im cloud workshop   denver 2Im cloud workshop   denver 2
Im cloud workshop denver 2David Stephens
 
Mikehall FutureWorld 2010 - enabling connectivity
Mikehall FutureWorld 2010 - enabling connectivityMikehall FutureWorld 2010 - enabling connectivity
Mikehall FutureWorld 2010 - enabling connectivityMicrosoft Windows Embedded
 
Trend Micro - 13martie2012
Trend Micro - 13martie2012Trend Micro - 13martie2012
Trend Micro - 13martie2012Agora Group
 
Barco CineCare Web
Barco CineCare WebBarco CineCare Web
Barco CineCare WebBarco
 
IPNexus Datasheet
IPNexus DatasheetIPNexus Datasheet
IPNexus DatasheetClearOne
 
Tech trendnotes
Tech trendnotesTech trendnotes
Tech trendnotesStudying
 
BYOD - Protecting Your School
BYOD - Protecting Your SchoolBYOD - Protecting Your School
BYOD - Protecting Your SchoolSophos
 
Bcs presentation zacharias_enislidis
Bcs presentation zacharias_enislidisBcs presentation zacharias_enislidis
Bcs presentation zacharias_enislidiszakmackraken
 
Mitigating Risk for the Mobile Worker: Novell ZENworks Endpoint Security Mana...
Mitigating Risk for the Mobile Worker: Novell ZENworks Endpoint Security Mana...Mitigating Risk for the Mobile Worker: Novell ZENworks Endpoint Security Mana...
Mitigating Risk for the Mobile Worker: Novell ZENworks Endpoint Security Mana...Novell
 

La actualidad más candente (20)

Security Technology Arms Race - Hack in the Box 2021 keynote
Security Technology Arms Race - Hack in the Box 2021 keynoteSecurity Technology Arms Race - Hack in the Box 2021 keynote
Security Technology Arms Race - Hack in the Box 2021 keynote
 
Developing for Windows Phone 8.1 (Dan Ardelean)
Developing for Windows Phone 8.1 (Dan Ardelean)Developing for Windows Phone 8.1 (Dan Ardelean)
Developing for Windows Phone 8.1 (Dan Ardelean)
 
Developing for Windows Phone 8.1
Developing for Windows Phone 8.1Developing for Windows Phone 8.1
Developing for Windows Phone 8.1
 
Trend Micro - Virtualization and Security Compliance
Trend Micro - Virtualization and Security Compliance Trend Micro - Virtualization and Security Compliance
Trend Micro - Virtualization and Security Compliance
 
Introduction - Trend Micro Deep Security
Introduction - Trend Micro Deep SecurityIntroduction - Trend Micro Deep Security
Introduction - Trend Micro Deep Security
 
AWS Partner Presentation - TrendMicro - Securing your Journey to the Cloud, A...
AWS Partner Presentation - TrendMicro - Securing your Journey to the Cloud, A...AWS Partner Presentation - TrendMicro - Securing your Journey to the Cloud, A...
AWS Partner Presentation - TrendMicro - Securing your Journey to the Cloud, A...
 
Trend Micro Dec 6 Toronto VMUG
Trend Micro Dec 6 Toronto VMUGTrend Micro Dec 6 Toronto VMUG
Trend Micro Dec 6 Toronto VMUG
 
Im cloud workshop denver 2
Im cloud workshop   denver 2Im cloud workshop   denver 2
Im cloud workshop denver 2
 
Mikehall FutureWorld 2010 - enabling connectivity
Mikehall FutureWorld 2010 - enabling connectivityMikehall FutureWorld 2010 - enabling connectivity
Mikehall FutureWorld 2010 - enabling connectivity
 
Trend Micro - 13martie2012
Trend Micro - 13martie2012Trend Micro - 13martie2012
Trend Micro - 13martie2012
 
Empower Employee to Work Anyplace, Amytime
Empower Employee to Work Anyplace, AmytimeEmpower Employee to Work Anyplace, Amytime
Empower Employee to Work Anyplace, Amytime
 
Barco CineCare Web
Barco CineCare WebBarco CineCare Web
Barco CineCare Web
 
IPNexus Datasheet
IPNexus DatasheetIPNexus Datasheet
IPNexus Datasheet
 
Tech trendnotes
Tech trendnotesTech trendnotes
Tech trendnotes
 
Moderne device management door middel van cloud
Moderne device management door middel van cloudModerne device management door middel van cloud
Moderne device management door middel van cloud
 
BYOD - Protecting Your School
BYOD - Protecting Your SchoolBYOD - Protecting Your School
BYOD - Protecting Your School
 
Mobile application development
Mobile application developmentMobile application development
Mobile application development
 
Android Internals
Android InternalsAndroid Internals
Android Internals
 
Bcs presentation zacharias_enislidis
Bcs presentation zacharias_enislidisBcs presentation zacharias_enislidis
Bcs presentation zacharias_enislidis
 
Mitigating Risk for the Mobile Worker: Novell ZENworks Endpoint Security Mana...
Mitigating Risk for the Mobile Worker: Novell ZENworks Endpoint Security Mana...Mitigating Risk for the Mobile Worker: Novell ZENworks Endpoint Security Mana...
Mitigating Risk for the Mobile Worker: Novell ZENworks Endpoint Security Mana...
 

Similar a ITCamp 2012 - Radu Vunvulea - Building metro style applications on Windows 8 using background tasks

ITCamp 2011 - Adrian Stoian - System Center Configuration Manager 2012
ITCamp 2011 - Adrian Stoian - System Center Configuration Manager 2012ITCamp 2011 - Adrian Stoian - System Center Configuration Manager 2012
ITCamp 2011 - Adrian Stoian - System Center Configuration Manager 2012ITCamp
 
Elements of DDD with ASP.NET MVC & Entity Framework Code First v2
Elements of DDD with ASP.NET MVC & Entity Framework Code First v2Elements of DDD with ASP.NET MVC & Entity Framework Code First v2
Elements of DDD with ASP.NET MVC & Entity Framework Code First v2Enea Gabriel
 
ITCamp 2012 - Paula Januszkiewicz - Stronghold to Strengthen
ITCamp 2012 - Paula Januszkiewicz - Stronghold to StrengthenITCamp 2012 - Paula Januszkiewicz - Stronghold to Strengthen
ITCamp 2012 - Paula Januszkiewicz - Stronghold to StrengthenITCamp
 
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 - Lorant Domokos - Chasing the one codebase, multiple platforms d...
ITCamp 2013 - Lorant Domokos - Chasing the one codebase, multiple platforms d...ITCamp 2013 - Lorant Domokos - Chasing the one codebase, multiple platforms d...
ITCamp 2013 - Lorant Domokos - Chasing the one codebase, multiple platforms d...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
 
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
 
ITCamp 2011 - Paula Januszkiewicz - 10 deadly sins of Windows Administrators
ITCamp 2011 - Paula Januszkiewicz - 10 deadly sins of Windows AdministratorsITCamp 2011 - Paula Januszkiewicz - 10 deadly sins of Windows Administrators
ITCamp 2011 - Paula Januszkiewicz - 10 deadly sins of Windows AdministratorsITCamp
 
ITCamp 2012 - Ovidiu Stan - Social media platform with Telligent Community, W...
ITCamp 2012 - Ovidiu Stan - Social media platform with Telligent Community, W...ITCamp 2012 - Ovidiu Stan - Social media platform with Telligent Community, W...
ITCamp 2012 - Ovidiu Stan - Social media platform with Telligent Community, W...ITCamp
 
ITCamp 2013 - Petru Jucovschi - Application ecosystems
ITCamp 2013 - Petru Jucovschi - Application ecosystemsITCamp 2013 - Petru Jucovschi - Application ecosystems
ITCamp 2013 - Petru Jucovschi - Application ecosystemsITCamp
 
ItCamp2012-Real-Time-Web-Web-Sockets-Windows 8- Florin-Cardasim
ItCamp2012-Real-Time-Web-Web-Sockets-Windows 8- Florin-CardasimItCamp2012-Real-Time-Web-Web-Sockets-Windows 8- Florin-Cardasim
ItCamp2012-Real-Time-Web-Web-Sockets-Windows 8- Florin-CardasimFlorin Cardasim
 
ITCamp 2012 - Dan Fizesan - Serving 10 million requests per day
ITCamp 2012 - Dan Fizesan - Serving 10 million requests per dayITCamp 2012 - Dan Fizesan - Serving 10 million requests per day
ITCamp 2012 - Dan Fizesan - Serving 10 million requests per dayITCamp
 
ITCamp 2012 - Mihai Nadas - Tackling the single sign-on challenge
ITCamp 2012 - Mihai Nadas - Tackling the single sign-on challengeITCamp 2012 - Mihai Nadas - Tackling the single sign-on challenge
ITCamp 2012 - Mihai Nadas - Tackling the single sign-on challengeITCamp
 
NXP'S-PORTFOLIO-FOR-ADDRESSING-IOT-SECURITY.pdf
NXP'S-PORTFOLIO-FOR-ADDRESSING-IOT-SECURITY.pdfNXP'S-PORTFOLIO-FOR-ADDRESSING-IOT-SECURITY.pdf
NXP'S-PORTFOLIO-FOR-ADDRESSING-IOT-SECURITY.pdfssuser57b3e5
 
How to Tackle the Single Sign-On Challenge in 2012
How to Tackle the Single Sign-On Challenge in 2012How to Tackle the Single Sign-On Challenge in 2012
How to Tackle the Single Sign-On Challenge in 2012Mihai Dan Nadas
 
ITCamp 2013 - Melania Danciu - HTML5 apps with LightSwitch
ITCamp 2013 - Melania Danciu - HTML5 apps with LightSwitchITCamp 2013 - Melania Danciu - HTML5 apps with LightSwitch
ITCamp 2013 - Melania Danciu - HTML5 apps with LightSwitchITCamp
 
ITCamp 2011 - Melania Danciu - Mobile apps
ITCamp 2011 - Melania Danciu - Mobile appsITCamp 2011 - Melania Danciu - Mobile apps
ITCamp 2011 - Melania Danciu - Mobile appsITCamp
 
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 2013 - Martin Kulov - Demystifying Visual Studio 2012 Performance Tools
ITCamp 2013 - Martin Kulov - Demystifying Visual Studio 2012 Performance ToolsITCamp 2013 - Martin Kulov - Demystifying Visual Studio 2012 Performance Tools
ITCamp 2013 - Martin Kulov - Demystifying Visual Studio 2012 Performance ToolsITCamp
 
ITCamp 2012 - Florin Cardasim - HTML5 web-sockets
ITCamp 2012 - Florin Cardasim - HTML5 web-socketsITCamp 2012 - Florin Cardasim - HTML5 web-sockets
ITCamp 2012 - Florin Cardasim - HTML5 web-socketsITCamp
 

Similar a ITCamp 2012 - Radu Vunvulea - Building metro style applications on Windows 8 using background tasks (20)

ITCamp 2011 - Adrian Stoian - System Center Configuration Manager 2012
ITCamp 2011 - Adrian Stoian - System Center Configuration Manager 2012ITCamp 2011 - Adrian Stoian - System Center Configuration Manager 2012
ITCamp 2011 - Adrian Stoian - System Center Configuration Manager 2012
 
Elements of DDD with ASP.NET MVC & Entity Framework Code First v2
Elements of DDD with ASP.NET MVC & Entity Framework Code First v2Elements of DDD with ASP.NET MVC & Entity Framework Code First v2
Elements of DDD with ASP.NET MVC & Entity Framework Code First v2
 
ITCamp 2012 - Paula Januszkiewicz - Stronghold to Strengthen
ITCamp 2012 - Paula Januszkiewicz - Stronghold to StrengthenITCamp 2012 - Paula Januszkiewicz - Stronghold to Strengthen
ITCamp 2012 - Paula Januszkiewicz - Stronghold to Strengthen
 
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 - Lorant Domokos - Chasing the one codebase, multiple platforms d...
ITCamp 2013 - Lorant Domokos - Chasing the one codebase, multiple platforms d...ITCamp 2013 - Lorant Domokos - Chasing the one codebase, multiple platforms d...
ITCamp 2013 - Lorant Domokos - Chasing the one codebase, multiple platforms d...
 
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
 
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
 
ITCamp 2011 - Paula Januszkiewicz - 10 deadly sins of Windows Administrators
ITCamp 2011 - Paula Januszkiewicz - 10 deadly sins of Windows AdministratorsITCamp 2011 - Paula Januszkiewicz - 10 deadly sins of Windows Administrators
ITCamp 2011 - Paula Januszkiewicz - 10 deadly sins of Windows Administrators
 
ITCamp 2012 - Ovidiu Stan - Social media platform with Telligent Community, W...
ITCamp 2012 - Ovidiu Stan - Social media platform with Telligent Community, W...ITCamp 2012 - Ovidiu Stan - Social media platform with Telligent Community, W...
ITCamp 2012 - Ovidiu Stan - Social media platform with Telligent Community, W...
 
ITCamp 2013 - Petru Jucovschi - Application ecosystems
ITCamp 2013 - Petru Jucovschi - Application ecosystemsITCamp 2013 - Petru Jucovschi - Application ecosystems
ITCamp 2013 - Petru Jucovschi - Application ecosystems
 
ItCamp2012-Real-Time-Web-Web-Sockets-Windows 8- Florin-Cardasim
ItCamp2012-Real-Time-Web-Web-Sockets-Windows 8- Florin-CardasimItCamp2012-Real-Time-Web-Web-Sockets-Windows 8- Florin-Cardasim
ItCamp2012-Real-Time-Web-Web-Sockets-Windows 8- Florin-Cardasim
 
ITCamp 2012 - Dan Fizesan - Serving 10 million requests per day
ITCamp 2012 - Dan Fizesan - Serving 10 million requests per dayITCamp 2012 - Dan Fizesan - Serving 10 million requests per day
ITCamp 2012 - Dan Fizesan - Serving 10 million requests per day
 
ITCamp 2012 - Mihai Nadas - Tackling the single sign-on challenge
ITCamp 2012 - Mihai Nadas - Tackling the single sign-on challengeITCamp 2012 - Mihai Nadas - Tackling the single sign-on challenge
ITCamp 2012 - Mihai Nadas - Tackling the single sign-on challenge
 
NXP'S-PORTFOLIO-FOR-ADDRESSING-IOT-SECURITY.pdf
NXP'S-PORTFOLIO-FOR-ADDRESSING-IOT-SECURITY.pdfNXP'S-PORTFOLIO-FOR-ADDRESSING-IOT-SECURITY.pdf
NXP'S-PORTFOLIO-FOR-ADDRESSING-IOT-SECURITY.pdf
 
How to Tackle the Single Sign-On Challenge in 2012
How to Tackle the Single Sign-On Challenge in 2012How to Tackle the Single Sign-On Challenge in 2012
How to Tackle the Single Sign-On Challenge in 2012
 
ITCamp 2013 - Melania Danciu - HTML5 apps with LightSwitch
ITCamp 2013 - Melania Danciu - HTML5 apps with LightSwitchITCamp 2013 - Melania Danciu - HTML5 apps with LightSwitch
ITCamp 2013 - Melania Danciu - HTML5 apps with LightSwitch
 
ITCamp 2011 - Melania Danciu - Mobile apps
ITCamp 2011 - Melania Danciu - Mobile appsITCamp 2011 - Melania Danciu - Mobile apps
ITCamp 2011 - Melania Danciu - Mobile apps
 
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 2013 - Martin Kulov - Demystifying Visual Studio 2012 Performance Tools
ITCamp 2013 - Martin Kulov - Demystifying Visual Studio 2012 Performance ToolsITCamp 2013 - Martin Kulov - Demystifying Visual Studio 2012 Performance Tools
ITCamp 2013 - Martin Kulov - Demystifying Visual Studio 2012 Performance Tools
 
ITCamp 2012 - Florin Cardasim - HTML5 web-sockets
ITCamp 2012 - Florin Cardasim - HTML5 web-socketsITCamp 2012 - Florin Cardasim - HTML5 web-sockets
ITCamp 2012 - Florin Cardasim - HTML5 web-sockets
 

Más de 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
 

Más de 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...
 

Último

[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdfSandro Moreira
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...apidays
 
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...apidays
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfOverkill Security
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDropbox
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
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 ...apidays
 
Cyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdfCyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdfOverkill Security
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
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 SavingEdi Saputra
 
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 connectorsNanddeep Nachan
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
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 DiscoveryTrustArc
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native ApplicationsWSO2
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Orbitshub
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024The Digital Insurer
 

Último (20)

[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
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...
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
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 ...
 
Cyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdfCyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdf
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
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
 
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
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
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
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 

ITCamp 2012 - Radu Vunvulea - Building metro style applications on Windows 8 using background tasks

  • 1. Building metro style applications on Windows 8 using background task Radu Vunvulea iQuest http://vunvulearadu.blogspot.com Twitter: @RaduVunvulea @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 2. ITCamp 2012 sponsors Mobile & Development @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 3. Agenda Mobile & Development • Why we need background tasks • Base concepts • When to use them • Triggers • Conditions • Notifications • Demo • Tips and Tricks • Q&A @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 4. Why we need background tasks Mobile & Development • What happens with classic applications? • Where Windows Services vanish? • Why do I need background tasks? @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 5. Why we need background tasks Mobile & Development • What happens with classic applications? • Where Windows Services vanish? • Why do I need background tasks? @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 6. Windows Metro Applications Mobile & Development • Similar to Windows Phone applications • Only threads from the current application (foreground) are running @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 7. Background tasks Mobile & Development • Running code in background • The background task doesn’t depend on application state • Small work items • No interaction with UI • What we gain: – Smooth user experience – Long battery life @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 8. Background task types Mobile & Development • System – Playback manager – Push notification – Background transfer API • Upload files • Download files • User-defined – Almost any type of custom action @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 9. When to use them Mobile & Development • Receive chat message • Process an incoming SMS • Download email • Display a toast notification • Execute action when something changes • Display UI, play music • Process photos • Index data @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 10. Background task triggers Mobile & Development ControlChannelTrigger ServicingComplete InternetAvailable SessionConnected InternetNotAvailable SessionDisconnected LockScreenApplicationAdded SessionStart LockScreenApplicationRemoved SmsReceived MaintenanceTrigger TimeTrigger NetworkNotificationChannelReset TimeZoneChange NetworkStateChange UserAway OnlineIdConnectedStateChange UserPresent PushNotificationTrigger @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 11. Background task triggers Mobile & Development ControlChannelTrigger ServicingComplete InternetAvailable SessionConnected InternetNotAvailable SessionDisconnected LockScreenApplicationAdded SessionStart LockScreenApplicationRemoved SmsReceived MaintenanceTrigger TimeTrigger NetworkNotificationChannelReset TimeZoneChange NetworkStateChange UserAway OnlineIdConnectedStateChange UserPresent PushNotificationTrigger @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 12. Background task triggers Mobile & Development • Some triggers require the application to be on the lock screen ControlChannelTrigger ServicingComplete InternetAvailable SessionConnected InternetNotAvailable SessionDisconnected LockScreenApplicationAdded SessionStart LockScreenApplicationRemoved SmsReceived MaintenanceTrigger TimeTrigger NetworkNotificationChannelReset TimeZoneChange NetworkStateChange UserAway OnlineIdConnectedStateChange UserPresent PushNotificationTrigger • An application can register to be notified when it is added or removed from lock screen @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 13. Background task conditions Mobile & Development • 0..n conditions can be added to each background task • Only when all conditions are met, the given task is launched Background task condition The condition that must be satisfied InternetAvailable The Internet must be available. InternetNotAvailable The Internet must be unavailable. SessionConnected The session must be connected. SessionDisconnected The session must be disconnected. UserNotPresent The user must be away. UserPresent The user must be present. @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 14. Background task infrastructure Mobile & Development Application System 4. Launch background task System My Application 3. Fire trigger 2. Register class with triggers Control Channel Control Channel 1. Register trigger Trigger Trigger @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 15. Where a background task run Mobile & Development Application BackgroundTaskHost.exe Application or BackgroundTaskHost.exe @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 16. Where a background task run Mobile & Development TimeTrigger SystemTrigger ControlChannelTrigger MaintenanceTrigger Application BackgroundTaskHost.exe Application or BackgroundTaskHost.exe PushNotificationTrigger @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 17. Notifications Mobile & Development • The following notification can send to the base application: – Progress notifications – Completion notifications – Exceptions thrown • A background task can be receive cancellations notifications only from operating system – The task have 5s to save his state until the system close the application @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 18. Basic steps to implement Mobile & Development • JavaScript – Add a new dedicated worker file • C#/C++ – Add a new Windows 8 Metro style app class library project to the solution. – Add a reference to the newly added class library project in the main Windows 8 Metro style app project that registers the background tasks. – Ensure that the output type of the class library is Winmd and not DLL. – Add the required manifest entries for background tasks to the Windows 8 Metro style app – Seal the class that implements the IBackgroundTask @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 19. Base classes Mobile & Development • IBackgroundTask – used to implement the background task • IBackgroundTaskInstance – provides access to a background task instance • BackgroundTaskDeferral – used for async calls from background task • BackgroundTaskBuilder – used to register a background task • BackgroundTaskRegistration – a background class that was registered • BackgroundTaskRegistration.AllTasks – get a list of tasks of the current application @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 20. Live demo Mobile & Development @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 21. CPU resource constrains Mobile & Development • Limited CPU time for each application • Use BackgroundTaskDeferral for async calls CPU resource quota Refresh period Lock screen app 2 CPU seconds 15 minutes Non-lock screen app 1 CPU second 2 hours • Restrictions are applied on AC power also • Exceptions: – Control channel – Push notifications @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 22. Network resource constraints Mobile & Development • Different network interfaces require different amount of energy • Wi-Fi resource constraints: Average Data throughput, in megabytes (MB) Data throughput, in MB, for non-lock throughput for lock screen apps screen apps Every 15” Per day Every 2 hours Per day 1 Mbps 0.1875 18 0.25 3 10 Mbps 1.875 180 2.5 30 20 Mbps 3.75 360 5 60 • On AC power there is no limitation for Wi-Fi network @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 23. Tips and tricks Mobile & Development • TimeTrigger minimum time interval is 15 minutes • Progress and Complete handlers needs to be associated each time when application start • BackgroundTaskDeferral can be used for async calls • Don’t rely on global pool when all allocated CPU time was used • When a background task is suspended a message is logged in the Event Viewer. • Share data between application and background task only by files or State Manager @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 24. Best practices Mobile & Development • Design background tasks to be short lived • Use persistent storage to share data between the background task and the app • Verify if the app needs to be on the lock screen • Do not display UI other than toast, tiles or badges from a background task. • Do not rely on user interaction in background tasks @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 25. @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 26. THE END Radu Vunvulea iQuest http://vunvulearadu.blogspot.com Twitter: @RaduVunvulea @ itcampro # itcamp12 Premium conference on Microsoft technologies