SlideShare una empresa de Scribd logo
1 de 46
Cross-Platform Mobile Development
using Visual Studio and Xamarin
Shravan Kumar Kasagoni
Senior Developer - RealPage
Microsoft MVP – VSDT
Microsoft User Group Hyderabad
@techieshravan
Approaches for device development
Native Hybrid
Tool maturity
Device optimized experience
Updatability
Portability across devices
Black Box
CSS | HTML
JavaScript | TypeScript
Native mobile apps are better…
- Performance
- Richness of UI
Using the platform’s native tools
(Siloed approaches are long term problems)
Xcode ADT Visual Studio End user
experience
Better productivity and
global developer experience
✗
Building native apps multiple times
when targeting multiple platforms!
…very expensive,
not sustainable…
+
+
-
C# and Xamarin
to the rescue!
How?
Mono
Framework
What is Mono?
• Open source implementation of the .NET platform created by
Ximian (ECMA 334/335)
• 2001: Created to bring Windows applications to Linux
• 2003: Acquired by Novell with Ximian
• Matured at Novell in research mode; now a world-class runtime.
Bringing .NET to Linux
Windows Linux
Microsoft .NET
.NET Apps
Mono/.NET Core
.NET Apps
.NET on Android, iOS
Linux
Mono
iOS
Mono Touch
Android
Mono for Android
iOS
Xamarin.iOS
Android
Xamarin.Andriod
Xamarin
• Founded in May 2011
• Xamarin has a perpetual license to all Mono IP: Copyrights, patents
and trademarks
• Focused on mobile app development
Bringing .NET to Android
Android Kernel
Mono Runtime
.NET APIs
Apps
Android Bindings
Dalvik Runtime/ART
android.* java.*MCW
ACW
Bringing .NET to iOS
iOS
Mono Runtime
NO RUNTIMES ALLOWED
Bringing .NET to iOS
iOS
App
.NET APIS iOS Bindings
Application Code
Microsoft supports your choice
Desktop apps
Universal Windows apps
Browser-based applications
Xamarin and Visual Studio
Black Box
C# in Xamarin
+ Visual Studio
iPhone native (C# and XIB)
Android native (C# and AXML)
Windows Store (C# and XAML)
Native apps and cross-platform
UI (C# and Xamarin.Forms)
Cross-platform with C#
C# + XIB C# + AXML C# + XAML
iPhone Android Windows
Xamarin.iOS does full ahead-of-time
(AOT) compilation to produce an
ARM binary suitable
for Apple’s App Store
Xamarin.Android takes advantage
of just-in-time (JIT) compilation on
the Android device
Native cross-platform apps with Xamarin
Native compilation, native performance
C# unique approach powered by .NET and Xamarin
The best of both worlds (UX & TCO)
Great native apps delivered
to the user’s choice of device
Development agility, with
Visual Studio to move at
mobile speed
Xamarin designer for Android apps
Xamarin designer for iOS apps
Windows
APIs
100%
coverage
with .NET
iOS
APIs
100%
coverage
with Xamarin
Android
APIs
100%
coverage
with Xamarin
Maximizing code reuse across platforms
Views
How to display information
View models
What information to display
Flow of interaction
Models
Data objects
Business logic
Etc.
Model
View Model
View Device-specific
Portable codeReferences
Databinds
Implemented in
PCL or shared project
Demo
Xamarin + C# + Visual Studio
Sharing code
Sharing code
One of the main reasons to use
Xamarin is the possibility of sharing a
significant portion of your code
across all your supported platforms
Sharable Code
Xamarin applications are
native and therefore will
always include some
platform-specific code
30%
70%
iOS
14%
86%
Android
15%
86%
Windows Phone
Platform Specific
Cross Platform
Where can I use shared code?
Anytime you are writing code which does not depend on a specific platform
feature, it is potentially sharable, particularly if it:
• Talks to a web service
• Parses a data format
• Uses a database
• Performs processing or logic
Create shared classes + methods and then use them from your platform-
specific code to maximize the shareable surface area
Where can I use shared code?
Data Access (Database)
• SQLite support available for iOS, Android and Windows
• Can also store in the cloud – Azure Mobile Services, Amazon, Dropbox, etc.
Web Services
• Use HttpClient for REST services
Xamarin.* Libraries
• Xamarin.Social
• Xamarin.Auth
• Xamarin.Mobile
Open-Source, Cross-Platform APIs available from Github.com/Xamarin
When is code not sharable?
If the code you are writing depends on device or platform-specific APIs, or
APIs not available in your project, then you will need to isolate it's use or
provide some kind of abstraction to use it from your shared code
• Access system information
• Use files and folders on the device
• Access personal information
• Use external devices
Xamarin Component Store
Can also get reusable components
from the Xamarin Component Store
which is accessible through the
Components folder in each project
Available project types
There are two project styles available for sharing code – which one you
select has an impact on how and what kind of code is shared
Shared Project Portable Class Library
Demo
Shared Projects
Demo
Portable Class Library
Thank You

Más contenido relacionado

La actualidad más candente

Application innovation & Developer Productivity
Application innovation & Developer ProductivityApplication innovation & Developer Productivity
Application innovation & Developer ProductivityKushan Lahiru Perera
 
The Universal Programming Language: C#
The Universal Programming Language: C#The Universal Programming Language: C#
The Universal Programming Language: C#BizTalk360
 
Microsoft xamarin-experience
Microsoft xamarin-experienceMicrosoft xamarin-experience
Microsoft xamarin-experienceXpand IT
 
Build 2017 - B8110 - Modernize WinForms and WPF apps with maximum code reuse,...
Build 2017 - B8110 - Modernize WinForms and WPF apps with maximum code reuse,...Build 2017 - B8110 - Modernize WinForms and WPF apps with maximum code reuse,...
Build 2017 - B8110 - Modernize WinForms and WPF apps with maximum code reuse,...Windows Developer
 
Xamarin.forms Shell + Navigation
Xamarin.forms Shell + NavigationXamarin.forms Shell + Navigation
Xamarin.forms Shell + NavigationJames Montemagno
 
Azure Integration DTAP Series, How to go from Development to Production – Par...
Azure Integration DTAP Series, How to go from Development to Production – Par...Azure Integration DTAP Series, How to go from Development to Production – Par...
Azure Integration DTAP Series, How to go from Development to Production – Par...BizTalk360
 
Олександр Краковецький - UWP
Олександр Краковецький - UWPОлександр Краковецький - UWP
Олександр Краковецький - UWPHackraft
 
Building a Web API with ASP.Net Core
Building a Web API with ASP.Net CoreBuilding a Web API with ASP.Net Core
Building a Web API with ASP.Net CoreBizTalk360
 
ASP.NET Core 2.0: The Future of Web Apps
ASP.NET Core 2.0: The Future of Web AppsASP.NET Core 2.0: The Future of Web Apps
ASP.NET Core 2.0: The Future of Web AppsShahed Chowdhuri
 
Unlimited Frameworks
Unlimited FrameworksUnlimited Frameworks
Unlimited FrameworksTerui Masashi
 
Controle do ciclo de vida do desenvolvimento de software com tfs vsts
Controle do ciclo de vida do desenvolvimento de software com tfs  vstsControle do ciclo de vida do desenvolvimento de software com tfs  vsts
Controle do ciclo de vida do desenvolvimento de software com tfs vstsRodrigo Kono
 
Azure Deployment(Seattle)
Azure Deployment(Seattle)Azure Deployment(Seattle)
Azure Deployment(Seattle)Mithun T. Dhar
 
.NET MAUI with .NET 6 (December 2021, Preview 10)
.NET MAUI with .NET 6 (December 2021, Preview 10).NET MAUI with .NET 6 (December 2021, Preview 10)
.NET MAUI with .NET 6 (December 2021, Preview 10)Alex Pshul
 
4 steps to great xplat apps (M
4 steps to great xplat apps (M4 steps to great xplat apps (M
4 steps to great xplat apps (MAlexey Strakh
 
Azure Mobile Services for Cross Platform Mobile Apps
Azure Mobile Services for Cross Platform Mobile AppsAzure Mobile Services for Cross Platform Mobile Apps
Azure Mobile Services for Cross Platform Mobile AppsWinWire Technologies Inc
 
LaunchingYourAppTheAmazonWay_SFStartupDay
LaunchingYourAppTheAmazonWay_SFStartupDayLaunchingYourAppTheAmazonWay_SFStartupDay
LaunchingYourAppTheAmazonWay_SFStartupDayAmazon Web Services
 
Logic Apps – Deployments
Logic Apps – DeploymentsLogic Apps – Deployments
Logic Apps – DeploymentsBizTalk360
 
Creating reusable pieces in Logic Apps
Creating reusable pieces in Logic AppsCreating reusable pieces in Logic Apps
Creating reusable pieces in Logic AppsBizTalk360
 
TypeScript and SharePoint Framework
TypeScript and SharePoint FrameworkTypeScript and SharePoint Framework
TypeScript and SharePoint FrameworkBob German
 

La actualidad más candente (20)

TypeScript
TypeScriptTypeScript
TypeScript
 
Application innovation & Developer Productivity
Application innovation & Developer ProductivityApplication innovation & Developer Productivity
Application innovation & Developer Productivity
 
The Universal Programming Language: C#
The Universal Programming Language: C#The Universal Programming Language: C#
The Universal Programming Language: C#
 
Microsoft xamarin-experience
Microsoft xamarin-experienceMicrosoft xamarin-experience
Microsoft xamarin-experience
 
Build 2017 - B8110 - Modernize WinForms and WPF apps with maximum code reuse,...
Build 2017 - B8110 - Modernize WinForms and WPF apps with maximum code reuse,...Build 2017 - B8110 - Modernize WinForms and WPF apps with maximum code reuse,...
Build 2017 - B8110 - Modernize WinForms and WPF apps with maximum code reuse,...
 
Xamarin.forms Shell + Navigation
Xamarin.forms Shell + NavigationXamarin.forms Shell + Navigation
Xamarin.forms Shell + Navigation
 
Azure Integration DTAP Series, How to go from Development to Production – Par...
Azure Integration DTAP Series, How to go from Development to Production – Par...Azure Integration DTAP Series, How to go from Development to Production – Par...
Azure Integration DTAP Series, How to go from Development to Production – Par...
 
Олександр Краковецький - UWP
Олександр Краковецький - UWPОлександр Краковецький - UWP
Олександр Краковецький - UWP
 
Building a Web API with ASP.Net Core
Building a Web API with ASP.Net CoreBuilding a Web API with ASP.Net Core
Building a Web API with ASP.Net Core
 
ASP.NET Core 2.0: The Future of Web Apps
ASP.NET Core 2.0: The Future of Web AppsASP.NET Core 2.0: The Future of Web Apps
ASP.NET Core 2.0: The Future of Web Apps
 
Unlimited Frameworks
Unlimited FrameworksUnlimited Frameworks
Unlimited Frameworks
 
Controle do ciclo de vida do desenvolvimento de software com tfs vsts
Controle do ciclo de vida do desenvolvimento de software com tfs  vstsControle do ciclo de vida do desenvolvimento de software com tfs  vsts
Controle do ciclo de vida do desenvolvimento de software com tfs vsts
 
Azure Deployment(Seattle)
Azure Deployment(Seattle)Azure Deployment(Seattle)
Azure Deployment(Seattle)
 
.NET MAUI with .NET 6 (December 2021, Preview 10)
.NET MAUI with .NET 6 (December 2021, Preview 10).NET MAUI with .NET 6 (December 2021, Preview 10)
.NET MAUI with .NET 6 (December 2021, Preview 10)
 
4 steps to great xplat apps (M
4 steps to great xplat apps (M4 steps to great xplat apps (M
4 steps to great xplat apps (M
 
Azure Mobile Services for Cross Platform Mobile Apps
Azure Mobile Services for Cross Platform Mobile AppsAzure Mobile Services for Cross Platform Mobile Apps
Azure Mobile Services for Cross Platform Mobile Apps
 
LaunchingYourAppTheAmazonWay_SFStartupDay
LaunchingYourAppTheAmazonWay_SFStartupDayLaunchingYourAppTheAmazonWay_SFStartupDay
LaunchingYourAppTheAmazonWay_SFStartupDay
 
Logic Apps – Deployments
Logic Apps – DeploymentsLogic Apps – Deployments
Logic Apps – Deployments
 
Creating reusable pieces in Logic Apps
Creating reusable pieces in Logic AppsCreating reusable pieces in Logic Apps
Creating reusable pieces in Logic Apps
 
TypeScript and SharePoint Framework
TypeScript and SharePoint FrameworkTypeScript and SharePoint Framework
TypeScript and SharePoint Framework
 

Destacado

Caso conflicto
Caso conflictoCaso conflicto
Caso conflictorebvilma
 
iRep Presentation BASIC Nov 2016
iRep Presentation BASIC Nov 2016iRep Presentation BASIC Nov 2016
iRep Presentation BASIC Nov 2016Einat Hurvitz
 
Theoryofmetalcutting 130628042955-phpapp02
Theoryofmetalcutting 130628042955-phpapp02Theoryofmetalcutting 130628042955-phpapp02
Theoryofmetalcutting 130628042955-phpapp02manojkumarg1990
 
Estructura del computorador uft
Estructura del computorador uftEstructura del computorador uft
Estructura del computorador uftdanielbarrios95
 
4 alerta cat
4 alerta cat4 alerta cat
4 alerta catpasseris
 
Acta comisión mixta trabajo taller empleo
Acta comisión mixta trabajo taller empleoActa comisión mixta trabajo taller empleo
Acta comisión mixta trabajo taller empleoCarlos Vidal Gil
 
Fluid Tech Solidification Made Easy
Fluid Tech Solidification Made EasyFluid Tech Solidification Made Easy
Fluid Tech Solidification Made EasyGreg Broda
 
Siempre democracia
Siempre democraciaSiempre democracia
Siempre democraciaDanpoter
 
Δεν Ξεχνώ
Δεν ΞεχνώΔεν Ξεχνώ
Δεν Ξεχνώlakatameiab
 

Destacado (17)

Missão Diakonia
Missão DiakoniaMissão Diakonia
Missão Diakonia
 
Caso conflicto
Caso conflictoCaso conflicto
Caso conflicto
 
Ciclo del agua pdf
Ciclo del agua   pdfCiclo del agua   pdf
Ciclo del agua pdf
 
Kongkasem5713.
Kongkasem5713.Kongkasem5713.
Kongkasem5713.
 
iRep Presentation BASIC Nov 2016
iRep Presentation BASIC Nov 2016iRep Presentation BASIC Nov 2016
iRep Presentation BASIC Nov 2016
 
Missão diakonia
Missão diakoniaMissão diakonia
Missão diakonia
 
Theoryofmetalcutting 130628042955-phpapp02
Theoryofmetalcutting 130628042955-phpapp02Theoryofmetalcutting 130628042955-phpapp02
Theoryofmetalcutting 130628042955-phpapp02
 
Ramkumar_CV
Ramkumar_CVRamkumar_CV
Ramkumar_CV
 
Estructura del computorador uft
Estructura del computorador uftEstructura del computorador uft
Estructura del computorador uft
 
4 alerta cat
4 alerta cat4 alerta cat
4 alerta cat
 
Media tecnica
Media tecnicaMedia tecnica
Media tecnica
 
Acta comisión mixta trabajo taller empleo
Acta comisión mixta trabajo taller empleoActa comisión mixta trabajo taller empleo
Acta comisión mixta trabajo taller empleo
 
Scan10024
Scan10024Scan10024
Scan10024
 
Fluid Tech Solidification Made Easy
Fluid Tech Solidification Made EasyFluid Tech Solidification Made Easy
Fluid Tech Solidification Made Easy
 
Siempre democracia
Siempre democraciaSiempre democracia
Siempre democracia
 
Δεν Ξεχνώ
Δεν ΞεχνώΔεν Ξεχνώ
Δεν Ξεχνώ
 
iconic directors
 iconic directors iconic directors
iconic directors
 

Similar a Cross-Platform Mobile Development using Visual Studio and Xamarin

Building Mobile Cross-Platform Apps for iOS, Android & Windows in C# with Xam...
Building Mobile Cross-Platform Apps foriOS, Android & Windows in C# with Xam...Building Mobile Cross-Platform Apps foriOS, Android & Windows in C# with Xam...
Building Mobile Cross-Platform Apps for iOS, Android & Windows in C# with Xam...Nick Landry
 
Developing Cross-platform Native Apps with Xamarin
Developing Cross-platform Native Apps with XamarinDeveloping Cross-platform Native Apps with Xamarin
Developing Cross-platform Native Apps with Xamarindanhermes
 
Xamarin Open House talk - Sela Group - Ofir Makmal
Xamarin Open House talk - Sela Group - Ofir MakmalXamarin Open House talk - Sela Group - Ofir Makmal
Xamarin Open House talk - Sela Group - Ofir MakmalOfir Makmal
 
Introduction to Xamarin
Introduction to XamarinIntroduction to Xamarin
Introduction to XamarinGuy Barrette
 
Essential Tools for Xamarin Developers
Essential Tools for Xamarin DevelopersEssential Tools for Xamarin Developers
Essential Tools for Xamarin DevelopersSam Basu
 
Introduction to xamarin
Introduction to xamarinIntroduction to xamarin
Introduction to xamarinDaniel Fikre
 
Mobile Cross-Platform App Development in C# with Xamarin
Mobile Cross-Platform App Development in C# with XamarinMobile Cross-Platform App Development in C# with Xamarin
Mobile Cross-Platform App Development in C# with XamarinNick Landry
 
C# no bolso - desenvolvendo apps multiplataforma
C# no bolso - desenvolvendo apps multiplataformaC# no bolso - desenvolvendo apps multiplataforma
C# no bolso - desenvolvendo apps multiplataformaAllan Cleysson
 
Apps development for mobile devices
Apps development for mobile devicesApps development for mobile devices
Apps development for mobile devicesrdresler
 
TechEd Europ 2014 DEV-B306 Building Multi-Device Applications with Xamarin an...
TechEd Europ 2014 DEV-B306 Building Multi-Device Applications with Xamarin an...TechEd Europ 2014 DEV-B306 Building Multi-Device Applications with Xamarin an...
TechEd Europ 2014 DEV-B306 Building Multi-Device Applications with Xamarin an...James Montemagno
 
Mono for Android... for Google Devs
Mono for Android... for Google DevsMono for Android... for Google Devs
Mono for Android... for Google DevsCraig Dunn
 
Deep Dive in Xamarin.Forms
Deep Dive in Xamarin.FormsDeep Dive in Xamarin.Forms
Deep Dive in Xamarin.FormsJames Montemagno
 
Cross platform app dev with xamarin forms
Cross platform app dev with xamarin formsCross platform app dev with xamarin forms
Cross platform app dev with xamarin formsShahriar Hossain
 
Xamarin Platform
Xamarin PlatformXamarin Platform
Xamarin PlatformLiddle Fang
 
Xamarin Platform
Xamarin PlatformXamarin Platform
Xamarin PlatformRui Marinho
 
Develop business apps cross-platform development using visual studio with x...
Develop business apps   cross-platform development using visual studio with x...Develop business apps   cross-platform development using visual studio with x...
Develop business apps cross-platform development using visual studio with x...Alexander Meijers
 

Similar a Cross-Platform Mobile Development using Visual Studio and Xamarin (20)

Building Mobile Cross-Platform Apps for iOS, Android & Windows in C# with Xam...
Building Mobile Cross-Platform Apps foriOS, Android & Windows in C# with Xam...Building Mobile Cross-Platform Apps foriOS, Android & Windows in C# with Xam...
Building Mobile Cross-Platform Apps for iOS, Android & Windows in C# with Xam...
 
Developing Cross-platform Native Apps with Xamarin
Developing Cross-platform Native Apps with XamarinDeveloping Cross-platform Native Apps with Xamarin
Developing Cross-platform Native Apps with Xamarin
 
Introduction to xamarin
Introduction to xamarinIntroduction to xamarin
Introduction to xamarin
 
Xamarin Open House talk - Sela Group - Ofir Makmal
Xamarin Open House talk - Sela Group - Ofir MakmalXamarin Open House talk - Sela Group - Ofir Makmal
Xamarin Open House talk - Sela Group - Ofir Makmal
 
Introduction to Xamarin
Introduction to XamarinIntroduction to Xamarin
Introduction to Xamarin
 
Essential Tools for Xamarin Developers
Essential Tools for Xamarin DevelopersEssential Tools for Xamarin Developers
Essential Tools for Xamarin Developers
 
Xamarin - Beyond the Basics
Xamarin - Beyond the BasicsXamarin - Beyond the Basics
Xamarin - Beyond the Basics
 
Introduction to xamarin
Introduction to xamarinIntroduction to xamarin
Introduction to xamarin
 
Mobile Cross-Platform App Development in C# with Xamarin
Mobile Cross-Platform App Development in C# with XamarinMobile Cross-Platform App Development in C# with Xamarin
Mobile Cross-Platform App Development in C# with Xamarin
 
C# no bolso - desenvolvendo apps multiplataforma
C# no bolso - desenvolvendo apps multiplataformaC# no bolso - desenvolvendo apps multiplataforma
C# no bolso - desenvolvendo apps multiplataforma
 
Apps development for mobile devices
Apps development for mobile devicesApps development for mobile devices
Apps development for mobile devices
 
Xamarin介紹
Xamarin介紹Xamarin介紹
Xamarin介紹
 
TechEd Europ 2014 DEV-B306 Building Multi-Device Applications with Xamarin an...
TechEd Europ 2014 DEV-B306 Building Multi-Device Applications with Xamarin an...TechEd Europ 2014 DEV-B306 Building Multi-Device Applications with Xamarin an...
TechEd Europ 2014 DEV-B306 Building Multi-Device Applications with Xamarin an...
 
Mono for Android... for Google Devs
Mono for Android... for Google DevsMono for Android... for Google Devs
Mono for Android... for Google Devs
 
Deep Dive in Xamarin.Forms
Deep Dive in Xamarin.FormsDeep Dive in Xamarin.Forms
Deep Dive in Xamarin.Forms
 
Introduction to xamarin
Introduction to xamarin  Introduction to xamarin
Introduction to xamarin
 
Cross platform app dev with xamarin forms
Cross platform app dev with xamarin formsCross platform app dev with xamarin forms
Cross platform app dev with xamarin forms
 
Xamarin Platform
Xamarin PlatformXamarin Platform
Xamarin Platform
 
Xamarin Platform
Xamarin PlatformXamarin Platform
Xamarin Platform
 
Develop business apps cross-platform development using visual studio with x...
Develop business apps   cross-platform development using visual studio with x...Develop business apps   cross-platform development using visual studio with x...
Develop business apps cross-platform development using visual studio with x...
 

Más de Shravan Kumar Kasagoni

ASP.NET Core – Deep Dive on Building a Real Website
ASP.NET Core – Deep Dive on Building a Real WebsiteASP.NET Core – Deep Dive on Building a Real Website
ASP.NET Core – Deep Dive on Building a Real WebsiteShravan Kumar Kasagoni
 
Writing Application-Scale JavaScript:TypeScript
Writing Application-Scale JavaScript:TypeScriptWriting Application-Scale JavaScript:TypeScript
Writing Application-Scale JavaScript:TypeScriptShravan Kumar Kasagoni
 
Running, improving and maintaining a site in the real world
Running, improving and maintaining a site in the real worldRunning, improving and maintaining a site in the real world
Running, improving and maintaining a site in the real worldShravan Kumar Kasagoni
 
Windows Store Application Development using HTML5
Windows Store Application Development using HTML5Windows Store Application Development using HTML5
Windows Store Application Development using HTML5Shravan Kumar Kasagoni
 
Cross Platform, Native Mobile Application Development Using Xamarin and C#
Cross Platform, Native Mobile Application Development Using Xamarin and C#Cross Platform, Native Mobile Application Development Using Xamarin and C#
Cross Platform, Native Mobile Application Development Using Xamarin and C#Shravan Kumar Kasagoni
 
Building Mobile Web Applications using ASP.NET MVC
Building Mobile Web Applications using ASP.NET MVCBuilding Mobile Web Applications using ASP.NET MVC
Building Mobile Web Applications using ASP.NET MVCShravan Kumar Kasagoni
 
Glance at Visual Studio 2013 ASP.NET and Web tools 2013
Glance at Visual Studio 2013  ASP.NET and Web tools 2013Glance at Visual Studio 2013  ASP.NET and Web tools 2013
Glance at Visual Studio 2013 ASP.NET and Web tools 2013Shravan Kumar Kasagoni
 
Building Realtime Web Applications With ASP.NET SignalR
Building Realtime Web Applications With ASP.NET SignalRBuilding Realtime Web Applications With ASP.NET SignalR
Building Realtime Web Applications With ASP.NET SignalRShravan Kumar Kasagoni
 
Building Single Page Apps for desktop, mobile, tablet with ASP.NET MVC 4
Building Single Page Apps for desktop, mobile, tablet with ASP.NET MVC 4 Building Single Page Apps for desktop, mobile, tablet with ASP.NET MVC 4
Building Single Page Apps for desktop, mobile, tablet with ASP.NET MVC 4 Shravan Kumar Kasagoni
 

Más de Shravan Kumar Kasagoni (20)

ASP.NET Core – Deep Dive on Building a Real Website
ASP.NET Core – Deep Dive on Building a Real WebsiteASP.NET Core – Deep Dive on Building a Real Website
ASP.NET Core – Deep Dive on Building a Real Website
 
Angular 2 with TypeScript
Angular 2 with TypeScriptAngular 2 with TypeScript
Angular 2 with TypeScript
 
Writing Application-Scale JavaScript:TypeScript
Writing Application-Scale JavaScript:TypeScriptWriting Application-Scale JavaScript:TypeScript
Writing Application-Scale JavaScript:TypeScript
 
Real-time Communications with SignalR
Real-time Communications with SignalRReal-time Communications with SignalR
Real-time Communications with SignalR
 
Running, improving and maintaining a site in the real world
Running, improving and maintaining a site in the real worldRunning, improving and maintaining a site in the real world
Running, improving and maintaining a site in the real world
 
Introduction to Xamarin
Introduction to XamarinIntroduction to Xamarin
Introduction to Xamarin
 
Windows Store Application Development using HTML5
Windows Store Application Development using HTML5Windows Store Application Development using HTML5
Windows Store Application Development using HTML5
 
Windows Azure Web Sites - REBOOT 2014
Windows Azure Web Sites - REBOOT 2014Windows Azure Web Sites - REBOOT 2014
Windows Azure Web Sites - REBOOT 2014
 
Introduction to cloud computing
Introduction to cloud computingIntroduction to cloud computing
Introduction to cloud computing
 
Cross Platform, Native Mobile Application Development Using Xamarin and C#
Cross Platform, Native Mobile Application Development Using Xamarin and C#Cross Platform, Native Mobile Application Development Using Xamarin and C#
Cross Platform, Native Mobile Application Development Using Xamarin and C#
 
Open Web Interface for .Net
Open Web Interface for .NetOpen Web Interface for .Net
Open Web Interface for .Net
 
Building Mobile Web Applications using ASP.NET MVC
Building Mobile Web Applications using ASP.NET MVCBuilding Mobile Web Applications using ASP.NET MVC
Building Mobile Web Applications using ASP.NET MVC
 
Glance at Visual Studio 2013 ASP.NET and Web tools 2013
Glance at Visual Studio 2013  ASP.NET and Web tools 2013Glance at Visual Studio 2013  ASP.NET and Web tools 2013
Glance at Visual Studio 2013 ASP.NET and Web tools 2013
 
Building Realtime Web Applications With ASP.NET SignalR
Building Realtime Web Applications With ASP.NET SignalRBuilding Realtime Web Applications With ASP.NET SignalR
Building Realtime Web Applications With ASP.NET SignalR
 
Windows Azure WebSites
Windows Azure WebSitesWindows Azure WebSites
Windows Azure WebSites
 
Introduction to Word 2013
Introduction to Word 2013Introduction to Word 2013
Introduction to Word 2013
 
One ASP.NET
One ASP.NETOne ASP.NET
One ASP.NET
 
Building Single Page Apps for desktop, mobile, tablet with ASP.NET MVC 4
Building Single Page Apps for desktop, mobile, tablet with ASP.NET MVC 4 Building Single Page Apps for desktop, mobile, tablet with ASP.NET MVC 4
Building Single Page Apps for desktop, mobile, tablet with ASP.NET MVC 4
 
Introduction to Windows Phone
Introduction to Windows PhoneIntroduction to Windows Phone
Introduction to Windows Phone
 
I Love HTML5
I Love HTML5I Love HTML5
I Love HTML5
 

Último

Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodJuan lago vázquez
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024The Digital Insurer
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesrafiqahmad00786416
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native ApplicationsWSO2
 
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
 
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
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDropbox
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsNanddeep Nachan
 
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
 
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
 
"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
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
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
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...apidays
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdfSandro Moreira
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfOverkill Security
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Zilliz
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 

Último (20)

Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
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
 
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
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
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
 
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...
 
"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 ...
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
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
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 

Cross-Platform Mobile Development using Visual Studio and Xamarin

  • 1. Cross-Platform Mobile Development using Visual Studio and Xamarin
  • 2. Shravan Kumar Kasagoni Senior Developer - RealPage Microsoft MVP – VSDT Microsoft User Group Hyderabad @techieshravan
  • 3.
  • 4.
  • 5.
  • 6.
  • 7. Approaches for device development Native Hybrid Tool maturity Device optimized experience Updatability Portability across devices
  • 8.
  • 9. Black Box CSS | HTML JavaScript | TypeScript
  • 10. Native mobile apps are better… - Performance - Richness of UI
  • 11.
  • 12. Using the platform’s native tools (Siloed approaches are long term problems) Xcode ADT Visual Studio End user experience Better productivity and global developer experience ✗ Building native apps multiple times when targeting multiple platforms! …very expensive, not sustainable… + + -
  • 13. C# and Xamarin to the rescue!
  • 14. How?
  • 16. What is Mono? • Open source implementation of the .NET platform created by Ximian (ECMA 334/335) • 2001: Created to bring Windows applications to Linux • 2003: Acquired by Novell with Ximian • Matured at Novell in research mode; now a world-class runtime.
  • 17. Bringing .NET to Linux Windows Linux Microsoft .NET .NET Apps Mono/.NET Core .NET Apps
  • 18. .NET on Android, iOS Linux Mono iOS Mono Touch Android Mono for Android iOS Xamarin.iOS Android Xamarin.Andriod
  • 19. Xamarin • Founded in May 2011 • Xamarin has a perpetual license to all Mono IP: Copyrights, patents and trademarks • Focused on mobile app development
  • 20. Bringing .NET to Android Android Kernel Mono Runtime .NET APIs Apps Android Bindings Dalvik Runtime/ART android.* java.*MCW ACW
  • 21. Bringing .NET to iOS iOS Mono Runtime NO RUNTIMES ALLOWED
  • 22. Bringing .NET to iOS iOS App .NET APIS iOS Bindings Application Code
  • 23.
  • 24. Microsoft supports your choice Desktop apps Universal Windows apps Browser-based applications
  • 26. Black Box C# in Xamarin + Visual Studio iPhone native (C# and XIB) Android native (C# and AXML) Windows Store (C# and XAML) Native apps and cross-platform UI (C# and Xamarin.Forms) Cross-platform with C#
  • 27. C# + XIB C# + AXML C# + XAML iPhone Android Windows
  • 28. Xamarin.iOS does full ahead-of-time (AOT) compilation to produce an ARM binary suitable for Apple’s App Store Xamarin.Android takes advantage of just-in-time (JIT) compilation on the Android device Native cross-platform apps with Xamarin Native compilation, native performance
  • 29. C# unique approach powered by .NET and Xamarin The best of both worlds (UX & TCO) Great native apps delivered to the user’s choice of device Development agility, with Visual Studio to move at mobile speed
  • 30. Xamarin designer for Android apps Xamarin designer for iOS apps
  • 34. Maximizing code reuse across platforms Views How to display information View models What information to display Flow of interaction Models Data objects Business logic Etc. Model View Model View Device-specific Portable codeReferences Databinds Implemented in PCL or shared project
  • 35. Demo Xamarin + C# + Visual Studio
  • 37. Sharing code One of the main reasons to use Xamarin is the possibility of sharing a significant portion of your code across all your supported platforms
  • 38. Sharable Code Xamarin applications are native and therefore will always include some platform-specific code 30% 70% iOS 14% 86% Android 15% 86% Windows Phone Platform Specific Cross Platform
  • 39. Where can I use shared code? Anytime you are writing code which does not depend on a specific platform feature, it is potentially sharable, particularly if it: • Talks to a web service • Parses a data format • Uses a database • Performs processing or logic Create shared classes + methods and then use them from your platform- specific code to maximize the shareable surface area
  • 40. Where can I use shared code? Data Access (Database) • SQLite support available for iOS, Android and Windows • Can also store in the cloud – Azure Mobile Services, Amazon, Dropbox, etc. Web Services • Use HttpClient for REST services Xamarin.* Libraries • Xamarin.Social • Xamarin.Auth • Xamarin.Mobile Open-Source, Cross-Platform APIs available from Github.com/Xamarin
  • 41. When is code not sharable? If the code you are writing depends on device or platform-specific APIs, or APIs not available in your project, then you will need to isolate it's use or provide some kind of abstraction to use it from your shared code • Access system information • Use files and folders on the device • Access personal information • Use external devices
  • 42. Xamarin Component Store Can also get reusable components from the Xamarin Component Store which is accessible through the Components folder in each project
  • 43. Available project types There are two project styles available for sharing code – which one you select has an impact on how and what kind of code is shared Shared Project Portable Class Library

Notas del editor

  1. Device optimized experience: access to any API, performance, full customization per device, use of native controls, etc.
  2. This preview adds new project templates and tools for you to target the Apache Cordova project within Visual Studio. It is built on top of the existing great HTML, CSS, and JavaScript tooling in Visual Studio, but it integrates it with Apache Cordova. So you have things like Intellisense support for the Cordova API, the ability to build for any targeted platform such as Android and directly from Visual Studio, and the ability to run and debug the app on a device emulator or a remote device. The cool thing about these tools is that you will naturally know how to use it if you are familiar with web development. It supports TypeScript, which is very handy for these applications that can get very complex. It also supports the most popular JavaScript frameworks that you are probably using already for your mobile web applications such as Angular, JQuery Mobile or Backbone. Now you have the option to choose the multi-device strategy that is better for you: Native development with .NET Hybrid development with HTML and CSS
  3. First is the silo approach. This is very common, where you see a company or developer creating an app multiple times in different languages with different tools. Expensive, multiple teams, takes more time. Biggest issue -> future maintenance in different platforms.
  4. Fully native apps written in C# Share on average 75% source code across platforms Even higher with xamarin.forms C# + .NET Runtime Native UI Native Performance
  5. AOT = http://www.mono-project.com/AOT
  6. If you are a Windows developer you will be used to these name spaces. These are the core .NET base libraries that we know and love. If you mix in Windows Phone and Windows Store development, you get new namespaces. Windows. And Microsoft. With platform specific APIs.
  7. Xamarin gives you the best of both worlds with full support for the .NET Framework (your System. Libraries). Then they create C# bindings for every API in iOS and Android. As you can see here there are a few, CoreGraphics, CoreMotion, etc. These are your platform-specific bits to take advantage of everything in iOS.
  8. Then they do the same thing for Android so here you get the Android specifics. Renderscript, NFC to do cool phone tapping of data transfer. And text to speech APIs to make your app shine.
  9. Xamarin 3 introduces two great new code sharing techniques for cross-platform apps: Shared Projects Shared Projects provide a simple, clean approach to code sharing for cross-platform application developers. Xamarin developers can now use Shared Projects to share code across iOS, Android, and Windows in either Xamarin Studio or Visual Studio. Portable Class Libraries Portable Class Libraries are libraries that are consumable across a diverse range of .NET platforms. Xamarin 3 can both produce and consume PCLs from both Xamarin Studio and Visual Studio. In our demo app we’re using a PCL to share code across all the different platforms, including Windows apps, iOS, and Android. Shared Projects between many different platforms/projects (more than two) might be a bit confusing because you need to have many different #if precompiler conditions, since the Shared Projects is nothing more than a link to a whole project.