Fra idé til virkelig med Azure Mobile Services



Relaterede dokumenter
Mobile apps. App Academy. Velkommen! Vi starter kl. 17:00. Eksempler og links kan findes på

EasyIQ ConnectAnywhere Release note

EasyIQ ConnectAnywhere Release note

MSI pakke til distribution af AutoPilot komponenter.

TimePlan version Installationsvejledning

Sådan logger du ind... 2 Hvilke mapper kan du tilgå... 3 Visning af eksempel af en fil... 5 Sådan deler du en fil... 7 Se hvad du deler med andre...

Velkommen VI BYGGER DANMARK MED IT

Installation og Drift. Aplanner for Windows Systemer Version 8.15

NN Markedsdata. Til. Microsoft Dynamics CRM 2011 Installations guide

Opsætning af MobilePBX med Kalenderdatabase

Understøttelse af LSS til NemID i organisationen

Hosted CRM Outlook client connector setup guide. Date: Version: 1. Author: anb. Target Level: Customer. Target Audience: End User

Opsætning af Outlook til Hosted Exchange 2007

Pronestor Room & Catering

Installation. Aesiras Internet hjemmeside og webshop. Aesiras -integreret Regnskab, Handel og Internet

Installation og Drift. Aplanner for Windows Systemer Version

Hosted CRM Outlook client connector setup guide. Date: Version: 1. Author: anb. Target Level: Customer. Target Audience: End User

Databaseadgang fra Java

OS2faktor. AD FS Connector Vejledning. Version: Date: Author: BSG

Filr: Næste generation af Fildeling. Flemming Steensgaard

FairSSL Fair priser fair support

Dan Rolsted PIT. Side 1

Dropbox - IOS. Filer i Dropbox mappen kan deles med andre eller tilgås fra nettet.

EasyIQ Opdatering > 5.4.0

Opsætning af Outlook til Hosted Exchange 2003

Innovative Business Software A/S

Morten Rønborg PERSONLIGHED UDDANNELSE TEKNOLOGIER ERFARING. IT-Konsulent. Desktop Engineer

Generelt gælder det at SQL serveren skal understøtte SQL Authentication (Mixed mode) da SIMS Serveren kommunikerer gennem en SQL bruger.

Navision Stat (NS 9.3)

FairSSL Fair priser fair support

FairSSL Fair priser fair support

Nexus IP Quickguide. Til alle Nexus VP og F modeller

CONTENTS 1. KOM GODT IGANG JEG HAR WINDOWS 7 OG ØNSKER AT UDVIKLE APPS TIL WINDOWS PHONE Opret en DreamSpark konto

APPLIKATIONSARKITEKTUR ERP INFRASTRUKTUR. EG Copyright

Vejledning. Opsætning af Trio Web Vers 2.0 feb. 2010

MetaService. Installations og burger guide.

Hurtig Start Guide 1

Installation af Elektronisk APV på flere PC er

Fold mulighederne ud med Microsoft Dynamics AX. Stærkere forretning med apps og mobile løsninger

Succes med intranet til Office 365. Den 13. august 2014 Webtop A/S s. 1

1 Domæne Design valg User Klassediagran 5

Version Dato Beskrivelse /11/2012 Initial version /03/2013 Tilføjet eksempel med Template Agent, generelt udvidet dokumentet.

UniLock System 10. Manual Import fra Outlook-kalender (Microsoft Exchange) Projekt PCS125 Version 2.0 Revision

SIMS integration med Microsoft Active Directory, er implementeret, via en mellemdatabase.

Vejledning til Teknisk opsætning

Tech College Aalborg. ASP.NET Hjemmeside. Projekt Smart Zenior Home - Guide til ASP.NET hjemmeside med Visual Studio

Navision Stat 9.1. Installationsvejledning til NS CIS Invoker. Overblik. Side 1 af 8. ØSY/TJO/CPS Dato

Contents. John Have Jensen Mercantec 2011

VDI Manual v. 5 Indhold

Nexus IP Quickguide. Til alle Nexus VP og F modeller

Affaldsdatasystem Vejledning supplement i system-til-system integration for.net brugere

Installationsvejledning til NemFaktura. IT-Service

FleeDa (DBK Fleetmap Database) Installationsvejledning til installation af VPN og FleeDa klient på egen PC (Juli 2017)

FLIS PORTAL GENNEMGANG OG STIKPRØVER (SEPTEMBER 2015)

DPR lokal persondatabase. Checkliste for CPR migrering

Dette dokument omfatter teknisk specifikation og installationsvejledning for VAX Transfer som benyttes til overførsel af dokumenter til/fra VAX 360.

Internet Information Services (IIS)

FarmOnline Explorer App

Opgraderingsvejledning: Fra LDV til LDV 2.4.0

Smartair 6.0. Installations guide

Installationsguide IBM Tivoli Storage Manager for Databases Data Protection for Microsoft SQL Server

Introduktion OBS: Forberedelse

OPRETTELSE AF SQL NODE

OS2faktor. Windows Credential Providers. Version: Date: Author: BSG

Network Requirements - checklist SALTO proaccess space software SPACE ProAccess 3.0

Visility HSB vejledning

NT PDC Udarbejdet af Kenneth Dalbjerg

HELLO INSTALLATIONS GUIDE - DANSK RACKPEOPLE

Contents. ESXi installation og basisk konfiguration

Tredjepart webservices

QUICK MANUAL BRUGERNAVN: ADMIN PASSWORD: APP: SMARTEYES PRO PORT: SecVision - Quick Manual v1.0

Denne installationsvejledning beskriver hvordan man installerer EFI webservices til kommunikation mellem Navision Stat og Skat.

Digital skriftlig aflevering med Lectio Censormodul Stedprøver installationsvejledning

Servicebrev BørneIntra version 2.10

LUDUS WEB. Installations- og konfigurations-vejledning. Den 7. april J.nr.: 4004 V

Agenda. Exchange 2010 Client Access Server arkitektur. Outlook Web App (OWA) Office Outlook Outlook Mobile (EAS) Outlook Voice Access (OVA)

DAXIF# - Delegate Automated Xrm Installation Framework. Delegate A/S

3OMSTILLING. Brugermanual til 3SoftPhone

Nexus IP Quickguide. Til alle Nexus VW og FW modeller

Sikre apps på ios og Android. Mads Jensen & Søren

OPC Access 3.0 opdatering via Stored Procedure

GeoGIS2020. Installation. Udkast. Revision: 1 Udarbejdet af: BrS Dato: Kontrolleret af: Status: Løbende Reference: Godkendt af:

Installationsguide IBM Tivoli Storage Manager for Mail Data Protection for Microsoft Exchange Server

SIMS Active Directory Service 2.5 Quick Guide

BOULEVARDEN 19E 7100 VEJLE LERSØ PARKALLE KØBENHAVN Ø TLF Unik Web Platform Installationsvejledning

US AARH GOOGLE ANALYTICS OPSÆTNING JANUAR 2016 AARHUS UNIVERSITET

PID2000 Archive Service

Intro Denne vejledning beskriver proceduren for at opdatere en kørende UMS version til seneste version.

JSP, Tomcat. Tutorial lavet af Jákup W. Hansen TSU semester 10.october 2007

10. Rapporter i BBR... 2

Installation af web-konfigurationsprogrammer

Who s to blame? Jeppe Rørbæk. Jeppe.rorbaek@teknologisk.dk Konsulent og underviser på Teknologisk Institut MCP, MCAD, MCSD, MCT

Sikkerhed i trådløst netværk

APPS People leverer, implementerer og supporterer Google Apps kommunikationsløsninger

Nyheder i Remote Support Platform 3,1

UPLOAD. Af Database og Website til Skolens Server

A Profile for Safety Critical Java

En open source løsning til bibliotekernes publikumspc ere

Transkript:

Fra idé til virkelig med Azure Mobile Services Niels Ladegaard Beck Holion nlb@holion.dk @nielslbeck Windows Developers in Denmark

Azure App Service Mobile App Introduktion til Azure Mobile Services Platform tiltænkt app-udviklere der ikke gider bøvle med backendhalløj Overbygning til WebAPI Push Login Facebook, Twitter, LinkedIn, Google, Microsoft Account og Active Directory Storage SQL, Table Storage og MongoDB Offline data Scheduler Ikke direkte understøttet for Mobile Apps SDK til mange klientplatforme Windows Store, Windows Phone, ios, Android, Xamarin, HTML, PhoneGap, Sencha, Appcelerator

JavaScript backend /.NET backend what to choose? In the beginning there was......node.js JavaScript backenden Super let at komme i gang med Alt kan styres via portalen: scripts, scheduleres, database, konfiguration, skalering, logs osv. Ingen lokal debugging.net backenden Lokal debugging Knap så let at komme i gang med Masser af små forhindringer, som kræver at man følger tutorials / læser dokumentationen / selv finder på en løsning / ser denne præsentation ;-)

Deployment JavaScript backenden Git credentials opsættes via portalen, URL findes på konfigurationssiden Ofte fristes man til at benytte online editoren Ctrl+s klar til test FULDSTÆNDIG broken commit history.net backenden Samtlige videoer, tutorials osv: publish direkte fra VS Git URL findes på konfigurationssiden Tip: Brugernavn/kodeord findes i publish profile (username/userpwd), der kan downloades fra portalen

Lokal debugging IIS Express og LocalDB fungerer fint til formålet Debugging via WP-emulatoren (eller et device) kræver adgang via netværket Tilføjelse til %userprofile%\my Documents\IISExpress\config\applicationhost.config: <binding protocol="http" bindinginformation="*:8080:*" /> http.sys-magi via kommandoprompten (som administrator): netsh http add urlacl url=http://*:8080/ user=everyone Åben port 8080 i din firewall eller tillad IIS Express Kræver administratorrettigheder at starte IIS Express med en port åben mod netværket!

Lokal debugging og login Server side / client side authentication Server side LoginAsync kræver HTTPS UA kræver validt certifikat Client side I november Kun AD-authentication understøttet at.net backenden Facebook og Microsoft Account authentication understøttet af JS backenden I dag de rykker hurtigt!.net: Facebook, Google, Microsoft Account og AD understøttet Node: Facebook, Google og Microsoft Account understøttet Custom authentication Nedarv fra LoginProvider, overskriv relevante metoder og kald CreateLoginResult på denne

Login i Windows Phone XAML baseret app Login og intet sker Husk følgende (godt gemte) code snippet: protected override void OnActivated(IActivatedEventArgs args) { #if WINDOWS_PHONE_APP if (args.kind == ActivationKind.WebAuthenticationBrokerContinuation) MobileService.LoginComplete(args as WebAuthenticationBrokerContinuationEventArgs); #endif } base.onactivated(args);

Dataadgang (1/2) Udgangspunktet for dataadgang: Entity Framework Code First Tip: Brug migrations Slå migrations til via PowerShell (f.eks. NuGet Package Manager Console) Enable-Migrations Herved oprettes bl.a. Migrations/Configuration.cs I WebApiConfig udskiftes Database.SetInitializer(new MobileServiceInitializer()); med var migrator = new DbMigrator(new Configuration()); migrator.update(); Efter hver ændring til modellen Add-Migration Opdater databasen (gøres automatisk når backenden tilgås) Update-Database

Dataadgang (2/2) Din DbContext.OnModelCreating bør sætte skemaet til noget statisk modelbuilder.hasdefaultschema("mitskema"); Modelklasser bør nedarve fra EntityData Tilføjer Id, CreatedAt, UpdatedAt, Version og Deleted

Opret kald på backenden Ønskes direkte adgang til data nedarves fra TableController<TData> Api-kald implementeres ved at nedarve fra ApiController Scheduled jobs skal nedarve fra ScheduledJob Dekorer klasse eller metode med AuthorizeLevel attributten Alle kan kalde: [AuthorizeLevel(AuthorizationLevel.Anonymous)] Dine apps kan kalde: [AuthorizeLevel(AuthorizationLevel.Application)] Autentificerede brugere kan kalde: [AuthorizeLevel(AuthorizationLevel.User)] Kun admins kan kalde: [AuthorizeLevel(AuthorizationLevel.Admin)]

Kald af backenden fra browseren Controllers der nedarver fra ApiController kan kaldes på http://localhost:{port}/api/{navn} TableController<TData> kan kaldes på http://localhost:{port}/tables/{navn} ScheduledJob kan kaldes på http://localhost:{port}/jobs/{navn} Servicen tilgås uden brugernavn/kodeord lokalt også selvom AuthorizeLevel attributten er sat til andet end AuthorizationLevel.Anonymous Ved adgang til servicen i skyen, kan master key en benyttes som password Ønskes samme opførsel lokalt som i skyen indsættes følgende i WebApiConfig config.setishosted(true);

MVVM - Model View ViewModel Hurtigt i gang: MVVM Light Toolkit Design time view bør altid fungere Tip: Tilføj følgende i ViewModelLocator.cs og undlad at registrere dependencies, hvis ViewModelBase.IsInDesignModeStatic er true static T ViewModel<T>() where T : class { if (SimpleIoc.Default.IsRegistered<T>()) return ServiceLocator.Current.GetInstance<T>(); } return Activator.CreateInstance<T>(); public MainViewModel Main { get { return ViewModel<MainViewModel>(); } } Tilføj en constructor uden argumenter i MainViewModel og opret en anden constructor, der tager klassens dependencies. Angiv denne til at være [PreferredConstructor].

Kald af backenden fra app Tilføj WindowsAzure.MobileServices via NuGet MobileServiceClient instantieres med URL til backenden og application key en Controllers der nedarver fra ApiController kan kaldes med InvokeApiAsync TableController<TData> kan tilgås via GetTable<TData> Data kan sorteres og filtreres Paging foregår automatisk ScheduledJob kan ikke kaldes direkte

Konflikthåndtering Vi forsøger at indsætte et element med en ID der allerede eksisterer MobileServiceConflictException Vi forsøger at ændre et element der er ændret af en anden MobileServicePreconditionFailedException Løsning Ønskes serverens version ignorer Ønskes egen version - sæt det lokale versionsnummer lig serverens og prøv igen

Hvad er en app uden mulighed for brug offline? SyncContext på MobileServiceClient skal initialiseres før brug Tilføj WindowsAzure.MobileServices.SQLiteStore via NuGet Tip: Portable Class Library for SQLite hentes automatisk via NuGet men selve databasemotoren skal downloades separat Downloades fra https://sqlitepcl.codeplex.com/documentation VSIX indeholdende databasemotoren skal hentes og installeres for både Windows Runtime og Windows Phone Runtime

Opsætning af offline muligheder SyncContext kan nu initialiseres var store = new MobileServiceSQLiteStore("sync.db"); store.definetable<tdata>(); await mobileserviceclient.synccontext.initializeasync(store); I stedet for at kalde GetTable<TData> kaldes nu GetSyncTable<TData> IMobileServiceSyncTable<TData> har nogle ekstra muligheder i forhold til IMobileServiceTable<TData> PullAsync trækker data ned i den lokale database PurgeAsync fjerner data fra den lokale database PushAsync findes direkte på din SyncContext

Opdatering af ændrede data PullAsync henter alle forespurgte data ned hver gang! Ønskes kun ændrede data hentet, kan queryid angives Tip: Hold øje med netværksforbindelsen

Konflikthåndtering offline data Implementer IMobileServiceSyncHandler indeholdende ExecuteTableOperationAsync og OnPushCompleteAsync Håndter samme exceptions som tidligere: MobileServiceConflictException og MobileServicePreconditionFailedException Giv implementationen med til SyncContext.InitializeAsync

Opgradering til App Service Mobile App Pt. en manuel proces JavaScript-backends kan endnu ikke opgraderes! Scheduled jobs er ikke understøttet (brug f.eks. Web Jobs i stedet) 1. Opret en Mobile App Connection strings og notification hub kan genbruges 2. Migrer bruger id er 3. Opdater klienter Opdater NuGets Peg på ny backend Opdater til nyt push notification API 4. Slet den gamle Mobile Service

Opsummering Introduktion til Azure Mobile Services Deployment Lokal debugging Custom authentication Entity Framework - migrations Udstilling af API-kald og tabeller Sikring af kald Kald fra browser og app Konflikthåndtering Offline-opsætning Konflikthåndtering Opgradering til App Service Mobile App

?