SlideShare une entreprise Scribd logo
1  sur  52
Télécharger pour lire hors ligne
itcampro@ itcamp13# Premium conference on Microsoft technologies
Chasing the one codebase,
multiple platforms dream
Lorant Domokos
Fortech
Microsoft Student Partners
itcampro@ itcamp13# Premium conference on Microsoft technologies
Development &
MobileHuge thanks to our sponsors!
itcampro@ itcamp13# Premium conference on Microsoft technologies
Development &
Mobile
• Why HTML5?
• PhoneGap
• Best practices
• Knockout, Durandal
• Breeze
• TypeScript
• Tooling
Agenda
itcampro@ itcamp13# Premium conference on Microsoft technologies
Development &
Mobile
• Convince you that HTML5 is a valid
alternative in some scenarios
• HTML5 is rich enough
• JavaScript is maturing
• Lots of great frameworks
• Great community
• The tooling is improving
• …probably the future
Objective
itcampro@ itcamp13# Premium conference on Microsoft technologies
Development &
Mobile
• The Helios story
Background
itcampro@ itcamp13# Premium conference on Microsoft technologies
WHY HTML5?
itcampro@ itcamp13# Premium conference on Microsoft technologies
Development &
Mobile
itcampro@ itcamp13# Premium conference on Microsoft technologies
Development &
Mobile
itcampro@ itcamp13# Premium conference on Microsoft technologies
Development &
Mobile
itcampro@ itcamp13# Premium conference on Microsoft technologies
Development &
Mobile
itcampro@ itcamp13# Premium conference on Microsoft technologies
Development &
Mobile
itcampro@ itcamp13# Premium conference on Microsoft technologies
Development &
Mobile
• Rng 0: today
• Rng1: 2D games, music, video, apps
• Rng2: Next gen, WebGL
Ringmark
itcampro@ itcamp13# Premium conference on Microsoft technologies
Development &
Mobile
itcampro@ itcamp13# Premium conference on Microsoft technologies
Development &
Mobile
• Performance
– The Facebook issue
– The jQuery Mobile issue
• UX?
• 90 percent
Why not?
itcampro@ itcamp13# Premium conference on Microsoft technologies
Development &
Mobile
• Minimize DOM node instances
• Avoid deeply nested HTML DOM structures
• Use CSS transforms ()
• Use CSS animations & transitions
• Use fixed widths and heights for DOM
elements
• Preload images or assets used in CSS styles
• Be smart with your HTML DOM elemen
• Touch Interactivity
Performance tips
itcampro@ itcamp13# Premium conference on Microsoft technologies
Development &
Mobile
• How do I make an app that exactly matches
native look and feel for all platforms?
– My response: Don’t.
– 1) this is very difficult to do, and 2) if anything
changes in the OS…
• Uncanny valley
• Respect App Store guidelines
• Create custom identity for your app
• That said…it’s not impossible
UX
itcampro@ itcamp13# Premium conference on Microsoft technologies
PHONEGAP
itcampro@ itcamp13# Premium conference on Microsoft technologies
Development &
MobilePhonegap
PhoneGap === Cordova
itcampro@ itcamp13# Premium conference on Microsoft technologies
Development &
MobileNative
itcampro@ itcamp13# Premium conference on Microsoft technologies
Development &
MobileHybrid
itcampro@ itcamp13# Premium conference on Microsoft technologies
Development &
Mobile
itcampro@ itcamp13# Premium conference on Microsoft technologies
Development &
Mobile
• Accelerometer
• Camera
• Capture : Image, Audio, Video
• Compass
• Contacts
• Connection
• File
• Geolocation
• Media
• Notification
• Storage
• Websocket (Android)
API
itcampro@ itcamp13# Premium conference on Microsoft technologies
Development &
MobilePhonegap build
itcampro@ itcamp13# Premium conference on Microsoft technologies
BEST PRACTICES
itcampro@ itcamp13# Premium conference on Microsoft technologies
Development &
Mobile1. Abstract Data Access
$.ajax({url: "/api/employee/3"}).done(function(employee) {
//Do something with employee
});
dataAdapter.findById(3).done(function(employee) {
//Do something with employee
});
VS
itcampro@ itcamp13# Premium conference on Microsoft technologies
Development &
Mobile
itcampro@ itcamp13# Premium conference on Microsoft technologies
Development &
Mobile
• Default JavaScript alert gives away the fact
that your application is not native
• PhoneGap API: navigator.notification.alert(message,
alertCallback, [title], [buttonName])
• ... but that doesn’t work in your browser
• Solution: Build an abstraction layer
• Display JavaScript alert when running in the
browser
2. Browser runnable
itcampro@ itcamp13# Premium conference on Microsoft technologies
Development &
Mobile
• Benefits
– Fast
– Works offline
– Control over experience
• Caveats
– More Complex
– Memory management
– Modular Strategy
3. Use Single Page Architecture
itcampro@ itcamp13# Premium conference on Microsoft technologies
Development &
Mobile
• Benefits
– Maintainable
– Toolable
– Separation of concerns
• Examples
– Mustache.js
– Handlebars.js
– Underscore.js
4. Use Templates
itcampro@ itcamp13# Premium conference on Microsoft technologies
Development &
Mobile
• Javascript does not give you the right to
disregard SOLID principles
5. Use MV*
itcampro@ itcamp13# Premium conference on Microsoft technologies
Development &
Mobile6. Consider Frameworks
itcampro@ itcamp13# Premium conference on Microsoft technologies
Development &
Mobile
• Leverage the browser stack
7. Routing
itcampro@ itcamp13# Premium conference on Microsoft technologies
Development &
Mobile8. Abstract Device Features
Interaction Mouse Touch
Notification Alert Native
Storage Online Offline
Sensors Unavailable Available
itcampro@ itcamp13# Premium conference on Microsoft technologies
Development &
Mobile
• alert()
• -webkit-touch-callout: none;
• -webkit-tap-highlight-color:rgba(0, 0, 0, 0);
9. Hide HTMLish Behaviors
itcampro@ itcamp13# Premium conference on Microsoft technologies
Development &
Mobile
• Don't generate UI on the server
• Don't wait for data to display the UI
• Cache everything (data, selectors, precompiled
templates, ...)
• Use Hardware acceleration
• Avoid click event's 300ms delay
• Use CSS sprite sheets
• Limit shadows and gradients
• Avoid re!ows
• Do you need that framework?
• Test
10. Architect for Performance
itcampro@ itcamp13# Premium conference on Microsoft technologies
KNOCKOUT AND DURANDAL
itcampro@ itcamp13# Premium conference on Microsoft technologies
Development &
Mobile
• Separation of concerns
• Data binding
– Observable properties
– Observable arrays
– Computed properties
Knockout and MVVM
itcampro@ itcamp13# Premium conference on Microsoft technologies
Development &
Mobile
• Prism for JavaScript…or something like that
• Handles UI plumbing
– Navigation
– View and ViewModel compositon and binding
– Maintainability
– App lifecycle
– Async
– Convention based
Durandal
itcampro@ itcamp13# Premium conference on Microsoft technologies
Development &
Mobile
• Separate code into modules
• Load modules on demand
• Bundle, minify, optimize
RequireJS
itcampro@ itcamp13# Premium conference on Microsoft technologies
BREEZE
itcampro@ itcamp13# Premium conference on Microsoft technologies
Development &
Mobile
• CRUD operations are only basics
• Relations, object graphs
• Caching, offline
• LINQ like queries
MVVM+S
itcampro@ itcamp13# Premium conference on Microsoft technologies
TYPESCRIPT
itcampro@ itcamp13# Premium conference on Microsoft technologies
Development &
Mobile
• TypeScript is a superset of JavaScript
• You can enter pure JavaScript into TypeScript
• TypeScript gives you type safety.
• TypeScript gives you encapsulation.
• TypeScript allows you to organize your code
into Modules and Classes
• Cross compiles into JavaScipt
What is TypeScript
itcampro@ itcamp13# Premium conference on Microsoft technologies
Development &
Mobile
• Standard JavaScript Code
• Static Typing
• Encapsulation with Modules and Classes
• Classes support Constructors, Properties,
Fields and Functions
• Interfaces
• Lambda Functions =>
• Intellisense and syntax checking
Features
itcampro@ itcamp13# Premium conference on Microsoft technologies
Development &
Mobile
• exports and imports
• constructor
• extends
• implements
• Interface
• public/private
• … Rest syntax
• => Arrow or lambda functions
• <typename> type conversion
• : assignment
Sintactic sugar
itcampro@ itcamp13# Premium conference on Microsoft technologies
Development &
MobileCode hierarchy
Module
ClassInterface
Fields
Constructors
Properties
Functions
itcampro@ itcamp13# Premium conference on Microsoft technologies
TOOLING
itcampro@ itcamp13# Premium conference on Microsoft technologies
Development &
Mobile
• VS 2012, Blend
• WYSIWYG: Dreamweaver, IBM Worklight
IDE
itcampro@ itcamp13# Premium conference on Microsoft technologies
Development &
Mobile
• The PhoneGap Emulator
– Leverages Chrome and Ripple emulator
– Best in class Chrome developer tools
• On-Device Remote Debugging
– iPhone simulator integration with Safari
– Remote Debugging with Weinre
• Remote web inspector
• HTML, CSS manipulation
• No JS breakpoints
– Good old alert()
Debugging Environments
itcampro@ itcamp13# Premium conference on Microsoft technologies
Development &
Mobile
• Selenium
– UI atutomation
• Unit testing
– Qunit
– Jasmine
• Code coverage
– JSCover
• PhantomJS
– Headless browser
Testing
itcampro@ itcamp13# Premium conference on Microsoft technologies
Development &
Mobile
• No exactly a smooth ride
• Integrate tools/libraries one at a time
• Differences between browsers/platforms
• Need Mac for iOS
• Always test on devices
Conclusins
itcampro@ itcamp13# Premium conference on Microsoft technologies
Q & A

Contenu connexe

En vedette

ITCamp 2013 - Radu Vunvulea - Messaging Patterns in the Cloud
ITCamp 2013 - Radu Vunvulea - Messaging Patterns in the CloudITCamp 2013 - Radu Vunvulea - Messaging Patterns in the Cloud
ITCamp 2013 - Radu Vunvulea - Messaging Patterns in the CloudITCamp
 
11플밍 이혜문
11플밍 이혜문11플밍 이혜문
11플밍 이혜문zerg712
 
Which gender networks the most minh2
Which gender networks the most minh2Which gender networks the most minh2
Which gender networks the most minh2Minh Nguyen
 
Review ppt2
Review ppt2Review ppt2
Review ppt2abradle3
 
Spartups Meeting Template
Spartups Meeting TemplateSpartups Meeting Template
Spartups Meeting TemplateSaif Akhtar
 
게임분석 발표
게임분석 발표게임분석 발표
게임분석 발표zerg712
 
Spartups @ Innovate USF
Spartups @ Innovate USFSpartups @ Innovate USF
Spartups @ Innovate USFSaif Akhtar
 
Aktiviti perbualan
Aktiviti perbualanAktiviti perbualan
Aktiviti perbualanmerah_72
 
Lebih dekat dengan libre office writer &lt;v3.1&gt;
Lebih dekat dengan libre office writer &lt;v3.1&gt;Lebih dekat dengan libre office writer &lt;v3.1&gt;
Lebih dekat dengan libre office writer &lt;v3.1&gt;Molavi Arman
 
The Need for Spartups
The Need for SpartupsThe Need for Spartups
The Need for SpartupsSaif Akhtar
 
06. rpp pengembangan e learning berbasis web
06. rpp pengembangan e learning berbasis web06. rpp pengembangan e learning berbasis web
06. rpp pengembangan e learning berbasis webMolavi Arman
 
Presentació Candidatura Badia de Roses al Club de les Badies més Belles del Món
Presentació Candidatura Badia de Roses al Club de les Badies més Belles del MónPresentació Candidatura Badia de Roses al Club de les Badies més Belles del Món
Presentació Candidatura Badia de Roses al Club de les Badies més Belles del Mónsantpere
 
Pengenalan sistem-operasi1
Pengenalan sistem-operasi1Pengenalan sistem-operasi1
Pengenalan sistem-operasi1Molavi Arman
 
SAP Certification Doc
SAP Certification DocSAP Certification Doc
SAP Certification DocSanji Rajdew
 
Scrisoare de recomandare Stefan Mosneanu
Scrisoare de recomandare Stefan MosneanuScrisoare de recomandare Stefan Mosneanu
Scrisoare de recomandare Stefan MosneanuStefan Mosneanu
 
Toàn cảnh văn hóa, thể thao và du lịch – Số 1032 – vanhien.vn
Toàn cảnh văn hóa, thể thao và du lịch – Số 1032 – vanhien.vnToàn cảnh văn hóa, thể thao và du lịch – Số 1032 – vanhien.vn
Toàn cảnh văn hóa, thể thao và du lịch – Số 1032 – vanhien.vnlongvanhien
 

En vedette (19)

ITCamp 2013 - Radu Vunvulea - Messaging Patterns in the Cloud
ITCamp 2013 - Radu Vunvulea - Messaging Patterns in the CloudITCamp 2013 - Radu Vunvulea - Messaging Patterns in the Cloud
ITCamp 2013 - Radu Vunvulea - Messaging Patterns in the Cloud
 
11플밍 이혜문
11플밍 이혜문11플밍 이혜문
11플밍 이혜문
 
Which gender networks the most minh2
Which gender networks the most minh2Which gender networks the most minh2
Which gender networks the most minh2
 
Lazy Fare
Lazy Fare Lazy Fare
Lazy Fare
 
Review ppt2
Review ppt2Review ppt2
Review ppt2
 
Spartups Meeting Template
Spartups Meeting TemplateSpartups Meeting Template
Spartups Meeting Template
 
게임분석 발표
게임분석 발표게임분석 발표
게임분석 발표
 
LAZY FARE
LAZY FARE LAZY FARE
LAZY FARE
 
Spartups @ Innovate USF
Spartups @ Innovate USFSpartups @ Innovate USF
Spartups @ Innovate USF
 
Aktiviti perbualan
Aktiviti perbualanAktiviti perbualan
Aktiviti perbualan
 
Lebih dekat dengan libre office writer &lt;v3.1&gt;
Lebih dekat dengan libre office writer &lt;v3.1&gt;Lebih dekat dengan libre office writer &lt;v3.1&gt;
Lebih dekat dengan libre office writer &lt;v3.1&gt;
 
The Need for Spartups
The Need for SpartupsThe Need for Spartups
The Need for Spartups
 
06. rpp pengembangan e learning berbasis web
06. rpp pengembangan e learning berbasis web06. rpp pengembangan e learning berbasis web
06. rpp pengembangan e learning berbasis web
 
Presentació Candidatura Badia de Roses al Club de les Badies més Belles del Món
Presentació Candidatura Badia de Roses al Club de les Badies més Belles del MónPresentació Candidatura Badia de Roses al Club de les Badies més Belles del Món
Presentació Candidatura Badia de Roses al Club de les Badies més Belles del Món
 
Pengenalan sistem-operasi1
Pengenalan sistem-operasi1Pengenalan sistem-operasi1
Pengenalan sistem-operasi1
 
SAP Certification Doc
SAP Certification DocSAP Certification Doc
SAP Certification Doc
 
Scrisoare de recomandare Stefan Mosneanu
Scrisoare de recomandare Stefan MosneanuScrisoare de recomandare Stefan Mosneanu
Scrisoare de recomandare Stefan Mosneanu
 
Saad Malik
Saad MalikSaad Malik
Saad Malik
 
Toàn cảnh văn hóa, thể thao và du lịch – Số 1032 – vanhien.vn
Toàn cảnh văn hóa, thể thao và du lịch – Số 1032 – vanhien.vnToàn cảnh văn hóa, thể thao và du lịch – Số 1032 – vanhien.vn
Toàn cảnh văn hóa, thể thao và du lịch – Số 1032 – vanhien.vn
 

Similaire à ITCamp 2013 - Lorant Domokos - Chasing the one codebase, multiple platforms dream

ITCamp 2013 - Petru Jucovschi - Application ecosystems
ITCamp 2013 - Petru Jucovschi - Application ecosystemsITCamp 2013 - Petru Jucovschi - Application ecosystems
ITCamp 2013 - Petru Jucovschi - Application ecosystemsITCamp
 
ITCamp 2011 - Melania Danciu - Mobile apps
ITCamp 2011 - Melania Danciu - Mobile appsITCamp 2011 - Melania Danciu - Mobile apps
ITCamp 2011 - Melania Danciu - Mobile appsITCamp
 
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
 
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 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
 
Developing for Windows Phone 8.1
Developing for Windows Phone 8.1Developing for Windows Phone 8.1
Developing for Windows Phone 8.1Dan 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 (Dan Ardelean)ITCamp
 
The New Era of Code in the Cloud (Bogdan Toporan)
The New Era of Code in the Cloud (Bogdan Toporan)The New Era of Code in the Cloud (Bogdan Toporan)
The New Era of Code in the Cloud (Bogdan Toporan)ITCamp
 
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 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
 
How # (sharp) is Your Katana (Ciprian Jichici)
How # (sharp) is Your Katana (Ciprian Jichici)How # (sharp) is Your Katana (Ciprian Jichici)
How # (sharp) is Your Katana (Ciprian Jichici)ITCamp
 
Vunvulea radu it camp-ro 2012 - building metro style applications on window...
Vunvulea radu   it camp-ro 2012 - building metro style applications on window...Vunvulea radu   it camp-ro 2012 - building metro style applications on window...
Vunvulea radu it camp-ro 2012 - building metro style applications on window...Radu Vunvulea
 
ITCamp 2012 - Radu Vunvulea - Building metro style applications on Windows 8 ...
ITCamp 2012 - Radu Vunvulea - Building metro style applications on Windows 8 ...ITCamp 2012 - Radu Vunvulea - Building metro style applications on Windows 8 ...
ITCamp 2012 - Radu Vunvulea - Building metro style applications on Windows 8 ...ITCamp
 
ITCamp 2011 - Raul Andrisan - What’s new in Silverlight 5
ITCamp 2011 - Raul Andrisan - What’s new in Silverlight 5ITCamp 2011 - Raul Andrisan - What’s new in Silverlight 5
ITCamp 2011 - Raul Andrisan - What’s new in Silverlight 5ITCamp
 
ITCamp 2011 - Catalin Zima - Common pitfalls in Windows Phone 7 game development
ITCamp 2011 - Catalin Zima - Common pitfalls in Windows Phone 7 game developmentITCamp 2011 - Catalin Zima - Common pitfalls in Windows Phone 7 game development
ITCamp 2011 - Catalin Zima - Common pitfalls in Windows Phone 7 game developmentITCamp
 
Database and Public EndPoints Redundancy on Azure (Radu Vunvulea)
Database and Public EndPoints Redundancy on Azure (Radu Vunvulea)Database and Public EndPoints Redundancy on Azure (Radu Vunvulea)
Database and Public EndPoints Redundancy on Azure (Radu Vunvulea)ITCamp
 
Patterns for Scalability in Windows Azure Applications (Alex Mang)
Patterns for Scalability in Windows Azure Applications (Alex Mang)Patterns for Scalability in Windows Azure Applications (Alex Mang)
Patterns for Scalability in Windows Azure Applications (Alex Mang)ITCamp
 
Building modern web sites with ASP .Net Web API, WebSockets and RSignal
Building modern web sites with ASP .Net Web API, WebSockets and RSignalBuilding modern web sites with ASP .Net Web API, WebSockets and RSignal
Building modern web sites with ASP .Net Web API, WebSockets and RSignalAlessandro Pilotti
 
ITCamp 2013 - Andy Cross - Broadcasting Music from the Cloud
ITCamp 2013 - Andy Cross - Broadcasting Music from the CloudITCamp 2013 - Andy Cross - Broadcasting Music from the Cloud
ITCamp 2013 - Andy Cross - Broadcasting Music from the CloudITCamp
 
Broadcasting music from the cloud
Broadcasting music from the cloudBroadcasting music from the cloud
Broadcasting music from the cloudandyelastacloud
 

Similaire à ITCamp 2013 - Lorant Domokos - Chasing the one codebase, multiple platforms dream (20)

ITCamp 2013 - Petru Jucovschi - Application ecosystems
ITCamp 2013 - Petru Jucovschi - Application ecosystemsITCamp 2013 - Petru Jucovschi - Application ecosystems
ITCamp 2013 - Petru Jucovschi - Application ecosystems
 
ITCamp 2011 - Melania Danciu - Mobile apps
ITCamp 2011 - Melania Danciu - Mobile appsITCamp 2011 - Melania Danciu - Mobile apps
ITCamp 2011 - Melania Danciu - Mobile apps
 
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
 
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 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
 
Developing for Windows Phone 8.1
Developing for Windows Phone 8.1Developing for Windows Phone 8.1
Developing for Windows Phone 8.1
 
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)
 
The New Era of Code in the Cloud (Bogdan Toporan)
The New Era of Code in the Cloud (Bogdan Toporan)The New Era of Code in the Cloud (Bogdan Toporan)
The New Era of Code in the Cloud (Bogdan Toporan)
 
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 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...
 
How # (sharp) is Your Katana (Ciprian Jichici)
How # (sharp) is Your Katana (Ciprian Jichici)How # (sharp) is Your Katana (Ciprian Jichici)
How # (sharp) is Your Katana (Ciprian Jichici)
 
Vunvulea radu it camp-ro 2012 - building metro style applications on window...
Vunvulea radu   it camp-ro 2012 - building metro style applications on window...Vunvulea radu   it camp-ro 2012 - building metro style applications on window...
Vunvulea radu it camp-ro 2012 - building metro style applications on window...
 
ITCamp 2012 - Radu Vunvulea - Building metro style applications on Windows 8 ...
ITCamp 2012 - Radu Vunvulea - Building metro style applications on Windows 8 ...ITCamp 2012 - Radu Vunvulea - Building metro style applications on Windows 8 ...
ITCamp 2012 - Radu Vunvulea - Building metro style applications on Windows 8 ...
 
ITCamp 2011 - Raul Andrisan - What’s new in Silverlight 5
ITCamp 2011 - Raul Andrisan - What’s new in Silverlight 5ITCamp 2011 - Raul Andrisan - What’s new in Silverlight 5
ITCamp 2011 - Raul Andrisan - What’s new in Silverlight 5
 
ITCamp 2011 - Catalin Zima - Common pitfalls in Windows Phone 7 game development
ITCamp 2011 - Catalin Zima - Common pitfalls in Windows Phone 7 game developmentITCamp 2011 - Catalin Zima - Common pitfalls in Windows Phone 7 game development
ITCamp 2011 - Catalin Zima - Common pitfalls in Windows Phone 7 game development
 
Database and Public EndPoints Redundancy on Azure (Radu Vunvulea)
Database and Public EndPoints Redundancy on Azure (Radu Vunvulea)Database and Public EndPoints Redundancy on Azure (Radu Vunvulea)
Database and Public EndPoints Redundancy on Azure (Radu Vunvulea)
 
Patterns for Scalability in Windows Azure Applications (Alex Mang)
Patterns for Scalability in Windows Azure Applications (Alex Mang)Patterns for Scalability in Windows Azure Applications (Alex Mang)
Patterns for Scalability in Windows Azure Applications (Alex Mang)
 
Building modern web sites with ASP .Net Web API, WebSockets and RSignal
Building modern web sites with ASP .Net Web API, WebSockets and RSignalBuilding modern web sites with ASP .Net Web API, WebSockets and RSignal
Building modern web sites with ASP .Net Web API, WebSockets and RSignal
 
ITCamp 2013 - Andy Cross - Broadcasting Music from the Cloud
ITCamp 2013 - Andy Cross - Broadcasting Music from the CloudITCamp 2013 - Andy Cross - Broadcasting Music from the Cloud
ITCamp 2013 - Andy Cross - Broadcasting Music from the Cloud
 
Broadcasting music from the cloud
Broadcasting music from the cloudBroadcasting music from the cloud
Broadcasting music from the cloud
 

Plus 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
 

Plus 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...
 

Dernier

Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterMydbops
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Mark Goldstein
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch TuesdayIvanti
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesKari Kakkonen
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentPim van der Noll
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality AssuranceInflectra
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rick Flair
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...AliaaTarek5
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfpanagenda
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI AgeCprime
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationKnoldus Inc.
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...panagenda
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Strongerpanagenda
 

Dernier (20)

Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL Router
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch Tuesday
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examples
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI Age
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog Presentation
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
 

ITCamp 2013 - Lorant Domokos - Chasing the one codebase, multiple platforms dream

  • 1. itcampro@ itcamp13# Premium conference on Microsoft technologies Chasing the one codebase, multiple platforms dream Lorant Domokos Fortech Microsoft Student Partners
  • 2. itcampro@ itcamp13# Premium conference on Microsoft technologies Development & MobileHuge thanks to our sponsors!
  • 3. itcampro@ itcamp13# Premium conference on Microsoft technologies Development & Mobile • Why HTML5? • PhoneGap • Best practices • Knockout, Durandal • Breeze • TypeScript • Tooling Agenda
  • 4. itcampro@ itcamp13# Premium conference on Microsoft technologies Development & Mobile • Convince you that HTML5 is a valid alternative in some scenarios • HTML5 is rich enough • JavaScript is maturing • Lots of great frameworks • Great community • The tooling is improving • …probably the future Objective
  • 5. itcampro@ itcamp13# Premium conference on Microsoft technologies Development & Mobile • The Helios story Background
  • 6. itcampro@ itcamp13# Premium conference on Microsoft technologies WHY HTML5?
  • 7. itcampro@ itcamp13# Premium conference on Microsoft technologies Development & Mobile
  • 8. itcampro@ itcamp13# Premium conference on Microsoft technologies Development & Mobile
  • 9. itcampro@ itcamp13# Premium conference on Microsoft technologies Development & Mobile
  • 10. itcampro@ itcamp13# Premium conference on Microsoft technologies Development & Mobile
  • 11. itcampro@ itcamp13# Premium conference on Microsoft technologies Development & Mobile
  • 12. itcampro@ itcamp13# Premium conference on Microsoft technologies Development & Mobile • Rng 0: today • Rng1: 2D games, music, video, apps • Rng2: Next gen, WebGL Ringmark
  • 13. itcampro@ itcamp13# Premium conference on Microsoft technologies Development & Mobile
  • 14. itcampro@ itcamp13# Premium conference on Microsoft technologies Development & Mobile • Performance – The Facebook issue – The jQuery Mobile issue • UX? • 90 percent Why not?
  • 15. itcampro@ itcamp13# Premium conference on Microsoft technologies Development & Mobile • Minimize DOM node instances • Avoid deeply nested HTML DOM structures • Use CSS transforms () • Use CSS animations & transitions • Use fixed widths and heights for DOM elements • Preload images or assets used in CSS styles • Be smart with your HTML DOM elemen • Touch Interactivity Performance tips
  • 16. itcampro@ itcamp13# Premium conference on Microsoft technologies Development & Mobile • How do I make an app that exactly matches native look and feel for all platforms? – My response: Don’t. – 1) this is very difficult to do, and 2) if anything changes in the OS… • Uncanny valley • Respect App Store guidelines • Create custom identity for your app • That said…it’s not impossible UX
  • 17. itcampro@ itcamp13# Premium conference on Microsoft technologies PHONEGAP
  • 18. itcampro@ itcamp13# Premium conference on Microsoft technologies Development & MobilePhonegap PhoneGap === Cordova
  • 19. itcampro@ itcamp13# Premium conference on Microsoft technologies Development & MobileNative
  • 20. itcampro@ itcamp13# Premium conference on Microsoft technologies Development & MobileHybrid
  • 21. itcampro@ itcamp13# Premium conference on Microsoft technologies Development & Mobile
  • 22. itcampro@ itcamp13# Premium conference on Microsoft technologies Development & Mobile • Accelerometer • Camera • Capture : Image, Audio, Video • Compass • Contacts • Connection • File • Geolocation • Media • Notification • Storage • Websocket (Android) API
  • 23. itcampro@ itcamp13# Premium conference on Microsoft technologies Development & MobilePhonegap build
  • 24. itcampro@ itcamp13# Premium conference on Microsoft technologies BEST PRACTICES
  • 25. itcampro@ itcamp13# Premium conference on Microsoft technologies Development & Mobile1. Abstract Data Access $.ajax({url: "/api/employee/3"}).done(function(employee) { //Do something with employee }); dataAdapter.findById(3).done(function(employee) { //Do something with employee }); VS
  • 26. itcampro@ itcamp13# Premium conference on Microsoft technologies Development & Mobile
  • 27. itcampro@ itcamp13# Premium conference on Microsoft technologies Development & Mobile • Default JavaScript alert gives away the fact that your application is not native • PhoneGap API: navigator.notification.alert(message, alertCallback, [title], [buttonName]) • ... but that doesn’t work in your browser • Solution: Build an abstraction layer • Display JavaScript alert when running in the browser 2. Browser runnable
  • 28. itcampro@ itcamp13# Premium conference on Microsoft technologies Development & Mobile • Benefits – Fast – Works offline – Control over experience • Caveats – More Complex – Memory management – Modular Strategy 3. Use Single Page Architecture
  • 29. itcampro@ itcamp13# Premium conference on Microsoft technologies Development & Mobile • Benefits – Maintainable – Toolable – Separation of concerns • Examples – Mustache.js – Handlebars.js – Underscore.js 4. Use Templates
  • 30. itcampro@ itcamp13# Premium conference on Microsoft technologies Development & Mobile • Javascript does not give you the right to disregard SOLID principles 5. Use MV*
  • 31. itcampro@ itcamp13# Premium conference on Microsoft technologies Development & Mobile6. Consider Frameworks
  • 32. itcampro@ itcamp13# Premium conference on Microsoft technologies Development & Mobile • Leverage the browser stack 7. Routing
  • 33. itcampro@ itcamp13# Premium conference on Microsoft technologies Development & Mobile8. Abstract Device Features Interaction Mouse Touch Notification Alert Native Storage Online Offline Sensors Unavailable Available
  • 34. itcampro@ itcamp13# Premium conference on Microsoft technologies Development & Mobile • alert() • -webkit-touch-callout: none; • -webkit-tap-highlight-color:rgba(0, 0, 0, 0); 9. Hide HTMLish Behaviors
  • 35. itcampro@ itcamp13# Premium conference on Microsoft technologies Development & Mobile • Don't generate UI on the server • Don't wait for data to display the UI • Cache everything (data, selectors, precompiled templates, ...) • Use Hardware acceleration • Avoid click event's 300ms delay • Use CSS sprite sheets • Limit shadows and gradients • Avoid re!ows • Do you need that framework? • Test 10. Architect for Performance
  • 36. itcampro@ itcamp13# Premium conference on Microsoft technologies KNOCKOUT AND DURANDAL
  • 37. itcampro@ itcamp13# Premium conference on Microsoft technologies Development & Mobile • Separation of concerns • Data binding – Observable properties – Observable arrays – Computed properties Knockout and MVVM
  • 38. itcampro@ itcamp13# Premium conference on Microsoft technologies Development & Mobile • Prism for JavaScript…or something like that • Handles UI plumbing – Navigation – View and ViewModel compositon and binding – Maintainability – App lifecycle – Async – Convention based Durandal
  • 39. itcampro@ itcamp13# Premium conference on Microsoft technologies Development & Mobile • Separate code into modules • Load modules on demand • Bundle, minify, optimize RequireJS
  • 40. itcampro@ itcamp13# Premium conference on Microsoft technologies BREEZE
  • 41. itcampro@ itcamp13# Premium conference on Microsoft technologies Development & Mobile • CRUD operations are only basics • Relations, object graphs • Caching, offline • LINQ like queries MVVM+S
  • 42. itcampro@ itcamp13# Premium conference on Microsoft technologies TYPESCRIPT
  • 43. itcampro@ itcamp13# Premium conference on Microsoft technologies Development & Mobile • TypeScript is a superset of JavaScript • You can enter pure JavaScript into TypeScript • TypeScript gives you type safety. • TypeScript gives you encapsulation. • TypeScript allows you to organize your code into Modules and Classes • Cross compiles into JavaScipt What is TypeScript
  • 44. itcampro@ itcamp13# Premium conference on Microsoft technologies Development & Mobile • Standard JavaScript Code • Static Typing • Encapsulation with Modules and Classes • Classes support Constructors, Properties, Fields and Functions • Interfaces • Lambda Functions => • Intellisense and syntax checking Features
  • 45. itcampro@ itcamp13# Premium conference on Microsoft technologies Development & Mobile • exports and imports • constructor • extends • implements • Interface • public/private • … Rest syntax • => Arrow or lambda functions • <typename> type conversion • : assignment Sintactic sugar
  • 46. itcampro@ itcamp13# Premium conference on Microsoft technologies Development & MobileCode hierarchy Module ClassInterface Fields Constructors Properties Functions
  • 47. itcampro@ itcamp13# Premium conference on Microsoft technologies TOOLING
  • 48. itcampro@ itcamp13# Premium conference on Microsoft technologies Development & Mobile • VS 2012, Blend • WYSIWYG: Dreamweaver, IBM Worklight IDE
  • 49. itcampro@ itcamp13# Premium conference on Microsoft technologies Development & Mobile • The PhoneGap Emulator – Leverages Chrome and Ripple emulator – Best in class Chrome developer tools • On-Device Remote Debugging – iPhone simulator integration with Safari – Remote Debugging with Weinre • Remote web inspector • HTML, CSS manipulation • No JS breakpoints – Good old alert() Debugging Environments
  • 50. itcampro@ itcamp13# Premium conference on Microsoft technologies Development & Mobile • Selenium – UI atutomation • Unit testing – Qunit – Jasmine • Code coverage – JSCover • PhantomJS – Headless browser Testing
  • 51. itcampro@ itcamp13# Premium conference on Microsoft technologies Development & Mobile • No exactly a smooth ride • Integrate tools/libraries one at a time • Differences between browsers/platforms • Need Mac for iOS • Always test on devices Conclusins
  • 52. itcampro@ itcamp13# Premium conference on Microsoft technologies Q & A