SlideShare a Scribd company logo
Pierce Boggan
@pierceboggan
@bostonmobiledev
Powerful Backends with Microsoft Azure
RESTAPI
Offline
sync
Facebook Twitter Microsoft Google Azure Active
Directory
Azure Mobile Apps
WindowsAndroid
Chrome
iOS
OSX
In-AppKindle
Backend code
SQL MongoTables O365 API Apps
Offline Sync
Introducing Azure
Mobile Apps
Xamarin Platform: native apps across platforms
Shared C# codebase • 100% native API access • High performance
iOS C# UI Windows C# UIAndroid C# UI
Shared C# Mobile C# Server
Linux/Mono
CoreCLRAzure
Shared C# Client/Server
Traditional Xamarin
Approach
With Xamarin.Forms:
More code-sharing, all native
iOS C# UI Windows C# UIAndroid C# UI
Shared C# Backend
Shared UI Code
Shared C# Backend
✓ 40+ Pages, layouts, and controls
(Build from code behind or XAML)
✓ Two-way data binding
✓ Navigation
✓ Animation API
✓ Dependency Service
✓ Messaging Center
Shared C# Backend
Shared UI Code
<?xml version="1.0" encoding="UTF-8"?>
<TabbedPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="MyApp.MainPage">
<TabbedPage.Children>
<ContentPage Title="Profile" Icon="Profile.png">
<StackLayout Spacing="20" Padding="20"
VerticalOptions="Center">
<Entry Placeholder="Username"
Text="{Binding Username}"/>
<Entry Placeholder="Password"
Text="{Binding Password}"
IsPassword="true"/>
<Button Text="Login" TextColor="White"
BackgroundColor="#77D065"
Command="{Binding LoginCommand}"/>
</StackLayout>
</ContentPage>
<ContentPage Title="Settings" Icon="Settings.png">
<!-- Settings -->
</ContentPage>
</TabbedPage.Children>
Windows Xamarin.Forms
StackPanel StackLayout
TextBox Entry
ListBox ListView
CheckBox Switch
ProgressBar ActivityIndicator
Grid Grid
Label Label
Button Button
Image Image
Date/TimePicker Date/TimePicker
Windows Xamarin.Forms
DataContext BindingContext
{Binding Property} {Binding Property}
ItemsSource ItemsSource
ItemTemplate ItemTemplate
DataTemplate DataTemplate
Azure Easy Tables
Create a MobileService
MobileService = new MobileServiceClient(
"https://myapp.azurewebsites.net);
Create Tables
IMobileServiceSyncTable<Todo> table;
public async Task Init()
{
const string path = "syncstore.db";
var db = new MobileServiceSQLiteStore(path);
db.DefineTable<Todo>();
}
var handler = new MobileServiceSyncHandler();
await MobileService.SyncContext.InitializeAsync(db, h);
table = MobileService.GetSyncTable<Todo>();
Get and Modify Data
public async Task<IEnumerable<Store>> GetStoresAsync()
{
await table.PullAsync("allStores", table.CreateQuery());
return await table.ToEnumerableAsync();
}
public async Task<Store> AddStoreAsync (Store store)
{
await table.InsertAsync (store);
await table.PullAsync("allStores", table.CreateQuery());
await MobileService.SyncContext.PushAsync();
return store;
}
Let’s build an app!
Get Started Today
xamarin.com
Free 30 Day Trial - xamarin.com/university
Unrivaled Mobile
Development
Training
Live unlimited mobile development training from
mobile experts, in your time-zone, on your
schedule, and as often as you'd like.
evolve.xamarin.com
Thank You! Questions?
Pierce Boggan
Software Engineer, Evangelism Team, Xamarin
@pierceboggan @bostonmobilede
v
github.com/pierceboggan

More Related Content

What's hot

Xamarin.Forms
Xamarin.FormsXamarin.Forms
Xamarin.Forms
Nicolò Carandini
 
Building Your First Xamarin.Forms App
Building Your First Xamarin.Forms AppBuilding Your First Xamarin.Forms App
Building Your First Xamarin.Forms App
Xamarin
 
Intro to Xamarin.Forms for Visual Studio 2017
Intro to Xamarin.Forms for Visual Studio 2017Intro to Xamarin.Forms for Visual Studio 2017
Intro to Xamarin.Forms for Visual Studio 2017
Xamarin
 
Pembuatan Aplikasi Multiplatform dengan Xamarin Forms
Pembuatan Aplikasi Multiplatform dengan Xamarin FormsPembuatan Aplikasi Multiplatform dengan Xamarin Forms
Pembuatan Aplikasi Multiplatform dengan Xamarin Forms
Yoza Aprilio
 
Xamarin.forms
Xamarin.forms Xamarin.forms
Xamarin.forms
Alexandre Marreiros
 
Native App Development for iOS, Android, and Windows with Visual Studio
Native App Development for iOS, Android, and Windows with Visual StudioNative App Development for iOS, Android, and Windows with Visual Studio
Native App Development for iOS, Android, and Windows with Visual Studio
Xamarin
 
Introduction to xamarin
Introduction to xamarinIntroduction to xamarin
Introduction to xamarin
Nicolò Carandini
 
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
Nick Landry
 
Xamarin Platform
Xamarin PlatformXamarin Platform
Xamarin Platform
Rui Marinho
 
Xamarin and SAP Mobile Platform for Mobile Enterprise Success
Xamarin and SAP Mobile Platform for Mobile Enterprise SuccessXamarin and SAP Mobile Platform for Mobile Enterprise Success
Xamarin and SAP Mobile Platform for Mobile Enterprise SuccessXamarin
 
Getting Started with Xamarin App Development
Getting Started with Xamarin App DevelopmentGetting Started with Xamarin App Development
Getting Started with Xamarin App Development
Jasjit Chopra
 
Introduction to Xamarin
Introduction to XamarinIntroduction to Xamarin
Introduction to Xamarin
Vinicius Quaiato
 
Introduction to Xamarin for Visual Studio 2017
Introduction to Xamarin for Visual Studio 2017Introduction to Xamarin for Visual Studio 2017
Introduction to Xamarin for Visual Studio 2017
Xamarin
 
Xamarin microsoft graph
Xamarin microsoft graphXamarin microsoft graph
Xamarin microsoft graph
Nicolò Carandini
 
State of Union: Xamarin & Cross-Platform .NET in 2016 and Beyond
State of Union: Xamarin & Cross-Platform .NET in 2016 and BeyondState of Union: Xamarin & Cross-Platform .NET in 2016 and Beyond
State of Union: Xamarin & Cross-Platform .NET in 2016 and Beyond
Nick Landry
 
Flying High with Xamarin!
Flying High with Xamarin!Flying High with Xamarin!
Flying High with Xamarin!
Sam Basu
 
Xamarin 0
Xamarin 0Xamarin 0
Xamarin 0
Fajar Baskoro
 
Xamarin.Forms: a cross-platform mobile UI toolkit - ConFoo 2016
Xamarin.Forms:  a cross-platform mobile UI toolkit - ConFoo 2016Xamarin.Forms:  a cross-platform mobile UI toolkit - ConFoo 2016
Xamarin.Forms: a cross-platform mobile UI toolkit - ConFoo 2016
Guy Barrette
 
Intro to Xamarin
Intro to XamarinIntro to Xamarin
Intro to Xamarin
Abhishek-Joshi
 
Building Your First iOS App with Xamarin for Visual Studio
Building Your First iOS App with Xamarin for Visual StudioBuilding Your First iOS App with Xamarin for Visual Studio
Building Your First iOS App with Xamarin for Visual Studio
Xamarin
 

What's hot (20)

Xamarin.Forms
Xamarin.FormsXamarin.Forms
Xamarin.Forms
 
Building Your First Xamarin.Forms App
Building Your First Xamarin.Forms AppBuilding Your First Xamarin.Forms App
Building Your First Xamarin.Forms App
 
Intro to Xamarin.Forms for Visual Studio 2017
Intro to Xamarin.Forms for Visual Studio 2017Intro to Xamarin.Forms for Visual Studio 2017
Intro to Xamarin.Forms for Visual Studio 2017
 
Pembuatan Aplikasi Multiplatform dengan Xamarin Forms
Pembuatan Aplikasi Multiplatform dengan Xamarin FormsPembuatan Aplikasi Multiplatform dengan Xamarin Forms
Pembuatan Aplikasi Multiplatform dengan Xamarin Forms
 
Xamarin.forms
Xamarin.forms Xamarin.forms
Xamarin.forms
 
Native App Development for iOS, Android, and Windows with Visual Studio
Native App Development for iOS, Android, and Windows with Visual StudioNative App Development for iOS, Android, and Windows with Visual Studio
Native App Development for iOS, Android, and Windows with Visual Studio
 
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
 
Xamarin Platform
Xamarin PlatformXamarin Platform
Xamarin Platform
 
Xamarin and SAP Mobile Platform for Mobile Enterprise Success
Xamarin and SAP Mobile Platform for Mobile Enterprise SuccessXamarin and SAP Mobile Platform for Mobile Enterprise Success
Xamarin and SAP Mobile Platform for Mobile Enterprise Success
 
Getting Started with Xamarin App Development
Getting Started with Xamarin App DevelopmentGetting Started with Xamarin App Development
Getting Started with Xamarin App Development
 
Introduction to Xamarin
Introduction to XamarinIntroduction to Xamarin
Introduction to Xamarin
 
Introduction to Xamarin for Visual Studio 2017
Introduction to Xamarin for Visual Studio 2017Introduction to Xamarin for Visual Studio 2017
Introduction to Xamarin for Visual Studio 2017
 
Xamarin microsoft graph
Xamarin microsoft graphXamarin microsoft graph
Xamarin microsoft graph
 
State of Union: Xamarin & Cross-Platform .NET in 2016 and Beyond
State of Union: Xamarin & Cross-Platform .NET in 2016 and BeyondState of Union: Xamarin & Cross-Platform .NET in 2016 and Beyond
State of Union: Xamarin & Cross-Platform .NET in 2016 and Beyond
 
Flying High with Xamarin!
Flying High with Xamarin!Flying High with Xamarin!
Flying High with Xamarin!
 
Xamarin 0
Xamarin 0Xamarin 0
Xamarin 0
 
Xamarin.Forms: a cross-platform mobile UI toolkit - ConFoo 2016
Xamarin.Forms:  a cross-platform mobile UI toolkit - ConFoo 2016Xamarin.Forms:  a cross-platform mobile UI toolkit - ConFoo 2016
Xamarin.Forms: a cross-platform mobile UI toolkit - ConFoo 2016
 
Intro to Xamarin
Intro to XamarinIntro to Xamarin
Intro to Xamarin
 
Building Your First iOS App with Xamarin for Visual Studio
Building Your First iOS App with Xamarin for Visual StudioBuilding Your First iOS App with Xamarin for Visual Studio
Building Your First iOS App with Xamarin for Visual Studio
 

Viewers also liked

Delicuencia en valle de bravo
Delicuencia en valle de bravoDelicuencia en valle de bravo
Delicuencia en valle de bravo
CarmenSocio
 
Presentació dreamslab
Presentació   dreamslabPresentació   dreamslab
Presentació dreamslab
joanaliau22
 
Знову Declined by Client? Це ще не кінець! (Христина Монець)
Знову Declined by Client? Це ще не кінець! (Христина Монець)Знову Declined by Client? Це ще не кінець! (Христина Монець)
Знову Declined by Client? Це ще не кінець! (Христина Монець)
BeTWinCon
 
Var arg methods
Var arg methodsVar arg methods
Var arg methods
Rahul Sharma
 
Mobile Success Case: Caixagest App
Mobile Success Case: Caixagest AppMobile Success Case: Caixagest App
Mobile Success Case: Caixagest App
Xpand IT
 
แบบเสนอโครงร่างโครงงานคอมพิวเตอร์
แบบเสนอโครงร่างโครงงานคอมพิวเตอร์แบบเสนอโครงร่างโครงงานคอมพิวเตอร์
แบบเสนอโครงร่างโครงงานคอมพิวเตอร์
มัลลิกา คมอ่อน
 
Retazos
RetazosRetazos
Concurso logo escuelas sostenibles
Concurso logo  escuelas  sosteniblesConcurso logo  escuelas  sostenibles
Concurso logo escuelas sostenibles
Pilar Sánchez López
 
Martin Lindstrom - Small Data - full day content for part 3 of 4 handout
Martin Lindstrom - Small Data - full day content for part 3 of 4 handoutMartin Lindstrom - Small Data - full day content for part 3 of 4 handout
Martin Lindstrom - Small Data - full day content for part 3 of 4 handout
Marian Costache
 
ใบงานแบบสำรวจและประวัติ
ใบงานแบบสำรวจและประวัติใบงานแบบสำรวจและประวัติ
ใบงานแบบสำรวจและประวัติ
Patipan Punyakaew
 
โครงร่างโครงงาน
โครงร่างโครงงานโครงร่างโครงงาน
โครงร่างโครงงาน
Angkana Potha
 
ข้อสอบโควตา มช 2555 คณิต
ข้อสอบโควตา มช 2555 คณิตข้อสอบโควตา มช 2555 คณิต
ข้อสอบโควตา มช 2555 คณิตGe Ar
 
Presentació eportafolis IOC
Presentació eportafolis IOCPresentació eportafolis IOC
Presentació eportafolis IOC
Joan Queralt
 
El Portfolio como herramienta de evaluación
El Portfolio como herramienta de evaluaciónEl Portfolio como herramienta de evaluación
El Portfolio como herramienta de evaluación
Rosa Liarte Alcaine
 

Viewers also liked (17)

CardTech_SESAMES_F[1]
CardTech_SESAMES_F[1]CardTech_SESAMES_F[1]
CardTech_SESAMES_F[1]
 
Delicuencia en valle de bravo
Delicuencia en valle de bravoDelicuencia en valle de bravo
Delicuencia en valle de bravo
 
Presentació dreamslab
Presentació   dreamslabPresentació   dreamslab
Presentació dreamslab
 
Знову Declined by Client? Це ще не кінець! (Христина Монець)
Знову Declined by Client? Це ще не кінець! (Христина Монець)Знову Declined by Client? Це ще не кінець! (Христина Монець)
Знову Declined by Client? Це ще не кінець! (Христина Монець)
 
Var arg methods
Var arg methodsVar arg methods
Var arg methods
 
Mobile Success Case: Caixagest App
Mobile Success Case: Caixagest AppMobile Success Case: Caixagest App
Mobile Success Case: Caixagest App
 
แบบเสนอโครงร่างโครงงานคอมพิวเตอร์
แบบเสนอโครงร่างโครงงานคอมพิวเตอร์แบบเสนอโครงร่างโครงงานคอมพิวเตอร์
แบบเสนอโครงร่างโครงงานคอมพิวเตอร์
 
Retazos
RetazosRetazos
Retazos
 
Concurso logo escuelas sostenibles
Concurso logo  escuelas  sosteniblesConcurso logo  escuelas  sostenibles
Concurso logo escuelas sostenibles
 
Martin Lindstrom - Small Data - full day content for part 3 of 4 handout
Martin Lindstrom - Small Data - full day content for part 3 of 4 handoutMartin Lindstrom - Small Data - full day content for part 3 of 4 handout
Martin Lindstrom - Small Data - full day content for part 3 of 4 handout
 
ใบงานแบบสำรวจและประวัติ
ใบงานแบบสำรวจและประวัติใบงานแบบสำรวจและประวัติ
ใบงานแบบสำรวจและประวัติ
 
MISMO / eMortgage Update
MISMO / eMortgage UpdateMISMO / eMortgage Update
MISMO / eMortgage Update
 
โครงร่างโครงงาน
โครงร่างโครงงานโครงร่างโครงงาน
โครงร่างโครงงาน
 
ข้อสอบโควตา มช 2555 คณิต
ข้อสอบโควตา มช 2555 คณิตข้อสอบโควตา มช 2555 คณิต
ข้อสอบโควตา มช 2555 คณิต
 
Presentació eportafolis IOC
Presentació eportafolis IOCPresentació eportafolis IOC
Presentació eportafolis IOC
 
Pat2 พ.ย. 57
Pat2 พ.ย. 57Pat2 พ.ย. 57
Pat2 พ.ย. 57
 
El Portfolio como herramienta de evaluación
El Portfolio como herramienta de evaluaciónEl Portfolio como herramienta de evaluación
El Portfolio como herramienta de evaluación
 

Similar to Powerful Backends with Microsoft Azure

[MobConf] Go mobile with C#, Visual Studio & Xamarin
[MobConf] Go mobile with C#, Visual Studio & Xamarin[MobConf] Go mobile with C#, Visual Studio & Xamarin
[MobConf] Go mobile with C#, Visual Studio & Xamarin
Nish Anil
 
Xamarin.Forms - Your Complete Mobile Solution
Xamarin.Forms - Your Complete Mobile SolutionXamarin.Forms - Your Complete Mobile Solution
Xamarin.Forms - Your Complete Mobile Solution
Commit University
 
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
Shahriar Hossain
 
TDC2016SP - Cross-Platform Development with C#
TDC2016SP - Cross-Platform Development with C#TDC2016SP - Cross-Platform Development with C#
TDC2016SP - Cross-Platform Development with C#
tdc-globalcode
 
Introduction to Cross Platform Mobile Apps (Xamarin)
Introduction to Cross Platform Mobile Apps (Xamarin)Introduction to Cross Platform Mobile Apps (Xamarin)
Introduction to Cross Platform Mobile Apps (Xamarin)
BizTalk360
 
Xamarin COE by Mukteswar Patnaik
Xamarin COE by Mukteswar PatnaikXamarin COE by Mukteswar Patnaik
Xamarin COE by Mukteswar Patnaik
Mukteswar Patnaik
 
Xamarin Dev Days - Xamarin.Forms
Xamarin Dev Days -  Xamarin.FormsXamarin Dev Days -  Xamarin.Forms
Xamarin Dev Days - Xamarin.Forms
Javier Suárez Ruiz
 
Introduction to Mobile Development with Xamarin -DotNet Westide
Introduction to Mobile Development with Xamarin -DotNet WestideIntroduction to Mobile Development with Xamarin -DotNet Westide
Introduction to Mobile Development with Xamarin -DotNet Westide
James Montemagno
 
Xamarin Dev Days Madrid 2017 - Xamarin.Forms
Xamarin Dev Days Madrid 2017 -  Xamarin.FormsXamarin Dev Days Madrid 2017 -  Xamarin.Forms
Xamarin Dev Days Madrid 2017 - Xamarin.Forms
Javier Suárez Ruiz
 
Azure MobileApp & Xamarin.Forms
Azure MobileApp & Xamarin.FormsAzure MobileApp & Xamarin.Forms
Azure MobileApp & Xamarin.Forms
Alessandro Pozone
 
Xamarin Forms
Xamarin FormsXamarin Forms
Xamarin Forms
Pranav Ainavolu
 
Xamarin.forms Shell + Navigation
Xamarin.forms Shell + NavigationXamarin.forms Shell + Navigation
Xamarin.forms Shell + Navigation
James Montemagno
 
Overview to iOS & Android Development using Visual Studio 2017 & Xamarin
Overview to iOS & Android Development using Visual Studio 2017 & XamarinOverview to iOS & Android Development using Visual Studio 2017 & Xamarin
Overview to iOS & Android Development using Visual Studio 2017 & Xamarin
Mark Arteaga
 
Mobile Development Simplified with Xamarin
Mobile Development Simplified with XamarinMobile Development Simplified with Xamarin
Mobile Development Simplified with Xamarin
akamud
 
Xamarin Dev Day
Xamarin Dev DayXamarin Dev Day
Xamarin Dev Day
Ian Chen
 
DevOps on Microsoft Platform
DevOps on Microsoft PlatformDevOps on Microsoft Platform
DevOps on Microsoft Platform
Osman Seckin Karabas
 
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
 
Xamarin Dev Days 2016 introduction to xamarin
Xamarin Dev Days 2016   introduction to xamarinXamarin Dev Days 2016   introduction to xamarin
Xamarin Dev Days 2016 introduction to xamarin
Dan Ardelean
 
Introduction to xamarin
Introduction to xamarinIntroduction to xamarin
Introduction to xamarin
Christos Matskas
 
Introduction to xamarin.forms
Introduction to xamarin.formsIntroduction to xamarin.forms
Introduction to xamarin.forms
Abhishek Kumar Gupta
 

Similar to Powerful Backends with Microsoft Azure (20)

[MobConf] Go mobile with C#, Visual Studio & Xamarin
[MobConf] Go mobile with C#, Visual Studio & Xamarin[MobConf] Go mobile with C#, Visual Studio & Xamarin
[MobConf] Go mobile with C#, Visual Studio & Xamarin
 
Xamarin.Forms - Your Complete Mobile Solution
Xamarin.Forms - Your Complete Mobile SolutionXamarin.Forms - Your Complete Mobile Solution
Xamarin.Forms - Your Complete Mobile Solution
 
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
 
TDC2016SP - Cross-Platform Development with C#
TDC2016SP - Cross-Platform Development with C#TDC2016SP - Cross-Platform Development with C#
TDC2016SP - Cross-Platform Development with C#
 
Introduction to Cross Platform Mobile Apps (Xamarin)
Introduction to Cross Platform Mobile Apps (Xamarin)Introduction to Cross Platform Mobile Apps (Xamarin)
Introduction to Cross Platform Mobile Apps (Xamarin)
 
Xamarin COE by Mukteswar Patnaik
Xamarin COE by Mukteswar PatnaikXamarin COE by Mukteswar Patnaik
Xamarin COE by Mukteswar Patnaik
 
Xamarin Dev Days - Xamarin.Forms
Xamarin Dev Days -  Xamarin.FormsXamarin Dev Days -  Xamarin.Forms
Xamarin Dev Days - Xamarin.Forms
 
Introduction to Mobile Development with Xamarin -DotNet Westide
Introduction to Mobile Development with Xamarin -DotNet WestideIntroduction to Mobile Development with Xamarin -DotNet Westide
Introduction to Mobile Development with Xamarin -DotNet Westide
 
Xamarin Dev Days Madrid 2017 - Xamarin.Forms
Xamarin Dev Days Madrid 2017 -  Xamarin.FormsXamarin Dev Days Madrid 2017 -  Xamarin.Forms
Xamarin Dev Days Madrid 2017 - Xamarin.Forms
 
Azure MobileApp & Xamarin.Forms
Azure MobileApp & Xamarin.FormsAzure MobileApp & Xamarin.Forms
Azure MobileApp & Xamarin.Forms
 
Xamarin Forms
Xamarin FormsXamarin Forms
Xamarin Forms
 
Xamarin.forms Shell + Navigation
Xamarin.forms Shell + NavigationXamarin.forms Shell + Navigation
Xamarin.forms Shell + Navigation
 
Overview to iOS & Android Development using Visual Studio 2017 & Xamarin
Overview to iOS & Android Development using Visual Studio 2017 & XamarinOverview to iOS & Android Development using Visual Studio 2017 & Xamarin
Overview to iOS & Android Development using Visual Studio 2017 & Xamarin
 
Mobile Development Simplified with Xamarin
Mobile Development Simplified with XamarinMobile Development Simplified with Xamarin
Mobile Development Simplified with Xamarin
 
Xamarin Dev Day
Xamarin Dev DayXamarin Dev Day
Xamarin Dev Day
 
DevOps on Microsoft Platform
DevOps on Microsoft PlatformDevOps on Microsoft Platform
DevOps on Microsoft Platform
 
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...
 
Xamarin Dev Days 2016 introduction to xamarin
Xamarin Dev Days 2016   introduction to xamarinXamarin Dev Days 2016   introduction to xamarin
Xamarin Dev Days 2016 introduction to xamarin
 
Introduction to xamarin
Introduction to xamarinIntroduction to xamarin
Introduction to xamarin
 
Introduction to xamarin.forms
Introduction to xamarin.formsIntroduction to xamarin.forms
Introduction to xamarin.forms
 

Recently uploaded

Cyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdfCyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdf
Cyanic lab
 
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdfEnhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
Jay Das
 
First Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User EndpointsFirst Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User Endpoints
Globus
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
Paco van Beckhoven
 
Into the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdfInto the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdf
Ortus Solutions, Corp
 
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Globus
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
Adele Miller
 
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume MontevideoVitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke
 
SOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBrokerSOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar
 
Corporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMSCorporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMS
Tendenci - The Open Source AMS (Association Management Software)
 
GlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote sessionGlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote session
Globus
 
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.ILBeyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Natan Silnitsky
 
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
informapgpstrackings
 
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamOpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
takuyayamamoto1800
 
2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx
Georgi Kodinov
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
Max Andersen
 
Understanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSageUnderstanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSage
Globus
 
top nidhi software solution freedownload
top nidhi software solution freedownloadtop nidhi software solution freedownload
top nidhi software solution freedownload
vrstrong314
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
Philip Schwarz
 
How Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptxHow Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptx
wottaspaceseo
 

Recently uploaded (20)

Cyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdfCyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdf
 
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdfEnhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
 
First Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User EndpointsFirst Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User Endpoints
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
 
Into the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdfInto the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdf
 
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
 
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume MontevideoVitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume Montevideo
 
SOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBrokerSOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBroker
 
Corporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMSCorporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMS
 
GlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote sessionGlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote session
 
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.ILBeyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
 
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
 
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamOpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
 
2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
 
Understanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSageUnderstanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSage
 
top nidhi software solution freedownload
top nidhi software solution freedownloadtop nidhi software solution freedownload
top nidhi software solution freedownload
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
 
How Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptxHow Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptx
 

Powerful Backends with Microsoft Azure

  • 2.
  • 3.
  • 4. RESTAPI Offline sync Facebook Twitter Microsoft Google Azure Active Directory Azure Mobile Apps WindowsAndroid Chrome iOS OSX In-AppKindle Backend code SQL MongoTables O365 API Apps Offline Sync
  • 6. Xamarin Platform: native apps across platforms
  • 7. Shared C# codebase • 100% native API access • High performance iOS C# UI Windows C# UIAndroid C# UI Shared C# Mobile C# Server Linux/Mono CoreCLRAzure Shared C# Client/Server
  • 8.
  • 9.
  • 10. Traditional Xamarin Approach With Xamarin.Forms: More code-sharing, all native iOS C# UI Windows C# UIAndroid C# UI Shared C# Backend Shared UI Code Shared C# Backend
  • 11. ✓ 40+ Pages, layouts, and controls (Build from code behind or XAML) ✓ Two-way data binding ✓ Navigation ✓ Animation API ✓ Dependency Service ✓ Messaging Center Shared C# Backend Shared UI Code
  • 12. <?xml version="1.0" encoding="UTF-8"?> <TabbedPage xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" x:Class="MyApp.MainPage"> <TabbedPage.Children> <ContentPage Title="Profile" Icon="Profile.png"> <StackLayout Spacing="20" Padding="20" VerticalOptions="Center"> <Entry Placeholder="Username" Text="{Binding Username}"/> <Entry Placeholder="Password" Text="{Binding Password}" IsPassword="true"/> <Button Text="Login" TextColor="White" BackgroundColor="#77D065" Command="{Binding LoginCommand}"/> </StackLayout> </ContentPage> <ContentPage Title="Settings" Icon="Settings.png"> <!-- Settings --> </ContentPage> </TabbedPage.Children>
  • 13. Windows Xamarin.Forms StackPanel StackLayout TextBox Entry ListBox ListView CheckBox Switch ProgressBar ActivityIndicator Grid Grid Label Label Button Button Image Image Date/TimePicker Date/TimePicker
  • 14. Windows Xamarin.Forms DataContext BindingContext {Binding Property} {Binding Property} ItemsSource ItemsSource ItemTemplate ItemTemplate DataTemplate DataTemplate
  • 16.
  • 17.
  • 18.
  • 19.
  • 20. Create a MobileService MobileService = new MobileServiceClient( "https://myapp.azurewebsites.net);
  • 21. Create Tables IMobileServiceSyncTable<Todo> table; public async Task Init() { const string path = "syncstore.db"; var db = new MobileServiceSQLiteStore(path); db.DefineTable<Todo>(); } var handler = new MobileServiceSyncHandler(); await MobileService.SyncContext.InitializeAsync(db, h); table = MobileService.GetSyncTable<Todo>();
  • 22. Get and Modify Data public async Task<IEnumerable<Store>> GetStoresAsync() { await table.PullAsync("allStores", table.CreateQuery()); return await table.ToEnumerableAsync(); } public async Task<Store> AddStoreAsync (Store store) { await table.InsertAsync (store); await table.PullAsync("allStores", table.CreateQuery()); await MobileService.SyncContext.PushAsync(); return store; }
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 33. Free 30 Day Trial - xamarin.com/university Unrivaled Mobile Development Training Live unlimited mobile development training from mobile experts, in your time-zone, on your schedule, and as often as you'd like.
  • 35.
  • 36. Thank You! Questions? Pierce Boggan Software Engineer, Evangelism Team, Xamarin @pierceboggan @bostonmobilede v github.com/pierceboggan

Editor's Notes

  1. Gavin was not able to make it – he has the flu, so had to step in at last minute. I’m Pierce Boggan – I work as a software engineer on the Evangelism Team at Xamarin, I’ve been doing mobile development in C# for nearly 4 years, and building backends with Azure for about a year and a half I also run this group Boston Mobile Dev Twitter / My Twitter Need people to speak! UWP Lightning Lectures Great way to get involved
  2. LOTS of different options Xamarin Podcast, we break down these further Talk about experience with various vendors. Parse ??? All depends what you care about, but would be lying if I said I didn’t have a favorite… It’s Azure
  3. Extremely powerful You can do almost anything your backend would ever need to do with Azure. Data storage, authentication/authorization, push notifications, custom APIs, blob storage, etc. Flexible Need something lightweight? Azure is there. Need something robust and powerful? Azure is there. C# clients I’m a frontend developer, I care a lot about how easy this makes MY job (selfish) Many C# clients are written by Java developers, etc. Easy to use C# client Abstracts away much of pain of using a RESTful API C# Features Async / Await / TPL Uses C# idioms Properties, Fluent API Seems obvious, but not always true (first class citizen)
  4. Demo #1 https://tryappservice.azure.com/
  5. With Xamarin it just isn’t your front end in C# it is your full backend server as well. With Azure or even on Linux running Mono or the CoreCLR your app is fully C# end to end!
  6. What if you don’t need a whole website apparatus? You just want something simple Parse used to be the way to go if you wanted something super simple
  7. Initialize local data store. Define local tables. Configure conflict resolution handler. Get the sync table
  8. Push CUD changes locally to server. Pull data down from table on server to app. Pass query ID used for incremental sync, so that you only get those records modified since last sync. If you opt-out of incremental sync, all records will be retrieved each time you sync the table.
  9. What if we want more powerful functionality? OData / Entity Framework / Web API Pro / Con Pro As much customization as you want, it's just Web API Control exactly what happens with data Custom authentication flows outside regular providers Con Entity Framework backend (prone to lots of issues) Still breaking changes to API, but starting to decrease Have to think like a backend developer, not front end Interesting, I came into world as a mobile dev (unlike manY) Hard for me to think like a backend dev Features Put money where my mouth is Using this for Xamarin Evolve mobile app
  10. What if a GetAll should only return favorites for that user.
  11. SO Hard! Azure makes it easy Huge value in having this integrated with data... you can just say fire a push IF
  12. Get started today with free 30 day trial of Xamarin at xamarin.com
  13. Azure Documentation Blog Twitter Xamarin Documentation Blog Twitter