SlideShare ist ein Scribd-Unternehmen logo
1 von 52
Downloaden Sie, um offline zu lesen
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

Weitere ähnliche Inhalte

Andere mochten auch

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
 

Andere mochten auch (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
 

Ähnlich wie 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
 

Ähnlich wie 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
 

Mehr von ITCamp

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

Mehr von ITCamp (20)

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

Kürzlich hochgeladen

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
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...Zilliz
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistandanishmna97
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityWSO2
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
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
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDropbox
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
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
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxRustici Software
 
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
 
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
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Angeliki Cooney
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Jeffrey Haguewood
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Zilliz
 
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
 
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
 
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
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 

Kürzlich hochgeladen (20)

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...
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
+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...
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
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...
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
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 ...
 
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
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
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
 
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...
 
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
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 

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