Microsoft Ignite 2016 5/25/ :22 PM

Slides:



Advertisements
Similar presentations
Attie Naude 14 May 2013 Windows Azure Mobile Services.
Advertisements

Microsoft Ignite /16/2017 4:11 PM
WEB APPS LOGIC APPS MOBILE APPS App Service API APPS Fabrikam Kable 1. Customer books appointment 2. Customer valet assigns a technician.
DiscoverFollow Node.js Express ASP.NET Web API SQL Table Storage Blob Storage WNS APNS GCM Mongo DB Notification Hubs Source Control Facebook.
Cross Platform Mobile Backend with Mobile Services James
Building Android Apps with Mobile Services Speaker Name Speaker Title Speaker Company Twitter:
Website s Azure Websites is an enterprise class cloud solution for developing, testing and running web apps. Azure Websites allows you to focus on what.
I am familiar with Mobile Services Node.js Express ASP.NET Web API SQL Table Storage Blob Storage WNS APNS GCM Mongo DB Notification Hubs Source.
Lewis Benge Bring your code to Windows MOB336.
Kevin Francis Azure Media Services Architecture Deep Dive CLD31 2.
Building and Diagnosing Applications using Visual Studio and Azure SDK Paul Yuknewicz Principal PM Manager.
Today’s Applications Web API Browser Native app Web API Web API
DreamFactory for Microsoft Azure Is an Open Source REST API Platform That Enables Mobilization of Data in Minutes across Frameworks and Storage Methods.
A deep dive into Azure AD B2C
Azure.
Building Azure Mobile Apps
Mobile Application Solution
3 Ways to Integrate Business Systems to Partners
Making of the Ignite Bot
What's New in System Center Configuration Manager, Current Branch and Intune INF324a Steven Hosking.
Introduction to ASP.NET Core
Application area Events Conferences Exhibitions
The Zen of Package Management
Power BI for the Enterprise
Conversation As a Platform - Part 1
Mobile App Trends: lifecycle, functions, and cognitive
Building Business Application with Office 365 and Other Line Business Systems
Power BI Architecture, Best Practices, and Performance Tuning
6/9/2018 3:45 PM © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS.
Developing Hybrid Apps on Microsoft Azure Stack
Microsoft Ignite /19/2018 2:35 AM
Need for Speed: Why Applications With No Database and No Services are Fast ARC334 Nick Randolph – Built to Roam.
Building a Continuous Delivery Pipeline for ASP.NET Core Apps
Jenkins and Azure OPEN322 Michael Friedrich.
The power of common identity across any cloud
Logo here Module 3 Microsoft Azure Web App. Logo here Module Overview Introduction to App Service Overview of Web Apps Hosting Web Applications in Azure.
Microsoft Ignite /22/2018 3:27 PM BRK2121
Power BI Security Best Practices
Extensible Platform Microsoft Dynamics 365
Mobile Application Solution
Azure.
Hybrid Apps: Azure Mobile Engagement and the App Economy
Darren Neimke and Jonathan Ruckert
Running on the Powerful Microsoft Azure Platform,
PaaS - Development Stefan Geiger Gerry
Designed for Big Data Visual Analytics, Zoomdata Allows Business Users to Quickly Connect, Stream, and Visualize Data in the Microsoft Azure Platform MICROSOFT.
Build vNext in VSO and TFS 2015
Built on the Powerful Microsoft Azure Platform, iSwarm Helps Businesses Analyze Social Media Conversations, then Connect with Individuals MICROSOFT AZURE.
Microsoft Connect /19/2018 5:08 AM
Microsoft Virtual Academy
Appcelerator Arrow: Build APIs in Minutes. Connect to Any Data Source
12/7/2018 © 2014 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks and/or trademarks.
Modern cloud PaaS for mobile apps, web sites, API's and business logic apps
Microsoft Ignite /2/2019 1:15 AM Power Up Your Cross Platform Mobile Code with Platform Specific Features using Xamarin Alec Tucker MOB331 © 2015.
TechEd /15/2019 8:08 PM © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks.
Deep Dive into Azure API Apps and Logic Apps
Developing for Windows Azure
Building device & cloud apps
Consumer Mobile Apps that Scale
UI test automation of MVC apps with Microsoft Edge WebDriver
Azure Active Directory
Microsoft Ignite NZ October 2016 SKYCITY, Auckland.
Windows Azure Hybrid Architectures and Patterns
Empower your users with Azure Active Directory Premium
Securing ASP.NET in an Azure Environment
Sessions about to start – Get your rig on!
Building Windows Store Apps with Windows Azure Mobile Services
11/11/2019 1:15 PM © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN.
Microsoft Virtual Academy
Presentation transcript:

Microsoft Ignite 2016 5/25/2018 11:22 PM Developing Cross Platform Mobile Line of Business Applications with Azure CLD335a Lewis Benge © 2016 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Enterprise Mobile Architecture Edge Perimeter (On-Premises and Cloud) Security & Policies Identity Management Application Management Data Consistency Monitoring Analytics API Gateway (REST, JMS, HTTP, Sockets, XML, SOAP) Service Mediation Message Routing Logging / Auditing Event Handling Services Orchestration Enterprise Systems

Azure Active Directory Azure Mobile Services Offline Sync Data connections Backend code .NET Node.js SQL Mongo Tables O365 API Apps Web App Mobile SDKs User Authentication REST API Windows iOS Android HTML 5/JS Xamarin PhoneGap Sencha Facebook Twitter Microsoft Google Azure Active Directory Offline sync Push Notifications Windows Android Chrome iOS OSX In-App Kindle

Hosting Benefits Courtesy of Azure Web Apps (aka Azure Websites) Richer monitoring and alerting Traffic manager Custom CNAMEs VNET and VPN Backup and restore More VM size and instance options In production A/B testing Auto load-balance Share capacity across Web and Mobile Staging slots Validate changes in your staging environment before publishing to production More devops features Support for BitBucket and Visual Studio Online; seamless integration with GitHub Web Jobs

Demo: A quick tour of Azure Mobile Apps

Identity

Active Directory Authentication Library (ADAL) Available on multiple platforms .NET, Windows Store, Windows Phone 8.1, iOS, Android, Node.JS, Java Open source Consistent primitives, native programming models Sophisticated features Works across Windows Server and Azure Active Directory Cache and automatic refresh Multi user support NOT a protocol library

ADAL v3 and Xamarin A PCL containing all the main primitives Build 2015 5/25/2018 11:22 PM ADAL v3 and Xamarin A PCL containing all the main primitives Platform specific assemblies handling presentation, token storage Dynamic dependency injection ADAL .NET v3 Nuget C# iOS Project C# Android Project C# Windows Project PCL Android PCL iOS PCL iOS .NET Desktop Android PCL Project Windows Store Windows Phone 8.1 Store PCL © 2015 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

ADAL – Main Token Acquisition Pattern Abstracts away most protocol considerations Handles tokens persistence & refresh automatically AuthenticationContext ctx= new AuthenticationContext("https://login.windows.net/contoso.onmicrosoft.com"); AuthenticationResult rez = await ctx.AcquireTokenAsync( "https://outlook.office365.com/", "5fc4a5a2-78d5-4d94-b890-a6e6b3341081");

ADAL .NET Current supported version: V3.x Desktop Default cache in-memory Extra flows for public clients only: Windows integrated authentication Direct use of username & password Windows Store & WinRT Persistent per-app cache Windows Runtime Components Works with C#, WinJS, C++ Full Xamarin Support

Demo: Authenticating against Azure AD

Data & Sync

The best mobile apps handle network interruptions gracefully. 5/25/2018 11:22 PM The best mobile apps handle network interruptions gracefully. © 2014 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

5/25/2018 11:22 PM Adding offline sync to an app is usually hard. With App Service, it’s easy. © 2014 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Why use mobile data sync? Improve app responsiveness by caching server data locally on the device. Make apps resilient against intermittent network connectivity. Allow end-users to create and modify data even when there is no network access. Detect and handle conflicts when the same record is modified by more than one client.

Offline Data Sync

Offline Data Sync

Sync data & related files 5/25/2018 11:22 PM Sync data & related files © 2014 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Mobile file sync architecture Microsoft Ignite 2016 5/25/2018 11:22 PM Mobile file sync architecture Mobile App backend reads from SQL and writes through to CRM Mobile client SDK syncs SQLite db with Azure Mobile backend Note: Client apps do not communicate directly with backend data source © 2016 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Demo: Enabling offline sync Microsoft Ignite 2016 5/25/2018 11:22 PM Demo: Enabling offline sync © 2016 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

5/25/2018 11:22 PM Per-User Data © 2014 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Filtering results on the server 5/25/2018 11:22 PM Filtering results on the server [Authorize] Public class JobController : TableController<JobDTO> { public async Task<IQueryable<JobDTO>> GetAllJobs() { var jobs = this.context.Jobs; var aadObjectId = await this.GetAadObjectId(); if (aadObjectId != null) jobs = jobs.Where(j => j.AgentId == aadObjectId; return jobs; } © 2014 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

5/25/2018 11:22 PM Push-to-sync © 2014 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Microsoft Ignite 2016 5/25/2018 11:22 PM Push-to-sync Client devices sync infrequently or only by manual user action Saves battery Saves data usage Reduces server load Client registers queries with server Server sends a push notification when client needs new data When client receives push notification, it syncs that query. © 2016 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Server side Client query is mapped to a Notification Hub tag Microsoft Ignite 2016 5/25/2018 11:22 PM Server side Client query is mapped to a Notification Hub tag Server sends push notification when query result has changed If data changes infrequently, server can send the push when data changes Else, scheduled job on server checks for changes to registered queries. © 2016 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Intro to Azure Notification Hubs Microsoft Ignite 2016 5/25/2018 11:22 PM Intro to Azure Notification Hubs Client app retrieves handle from Platform Notification Service (PNS), sends to App Service backend Backend service registers with Notification Hub, using tags to represent a query App back-end sends notification to logical user or group of users using Notification Hub tags Notification Hub delivers notifications to matching devices via PNS Notification Hub manages scale Notification Hub maps tags to device handles © 2016 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Managing Scale More clients means more load on data source Design queries so that server can use indexed columns to determine query change Minimize use of client-specific queries Reduces the number of “check changes” queries the server runs Consider sharding the database Consider using a secondary DB for change queries

5/25/2018 11:22 PM Reference Data © 2014 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Read directly for SQLite Store 5/25/2018 11:22 PM Read directly for SQLite Store public async Task InitializeAsync() { localStore = new MobileServiceSQLiteStore(“localdata.db”); localStore.DefineTable<Job>(); await this.MobileService.SyncContext.InitializeAsync(localStore); jobTable = this.MobileService.GetSyncTable<Job>(); } private async Jobject ReadJobs var query = .. await store.ReadAsync(query); © 2014 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Summary: Azure Mobile Apps Lightweight and composable Eliminates burdens of database-to-database sync Works with a variety of server data stores SQL, Azure Tables, Mongo, Dynamics CRM, Salesforce, etc. Multi-platform client SDKs Windows Universal, Xamarin, iOS, Android Supports both “primarily online” and “occasionally connected” scenarios Explicit push and pull leaves control to the developer Flexible, powerful and secure Supports custom local storage layers Detect and handle conflicts on server or client

Continue your Ignite learning path 5/25/2018 11:22 PM Continue your Ignite learning path Visit Channel 9 to access a wide range of Microsoft training and event recordings https://channel9.msdn.com/ Head to the TechNet Eval Centre to download trials of the latest Microsoft products http://Microsoft.com/en-us/evalcenter/ Visit Microsoft Virtual Academy for free online training visit https://www.microsoftvirtualacademy.com © 2014 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Thank you Chat with me in the Speaker Lounge 5/25/2018 11:22 PM Thank you Chat with me in the Speaker Lounge © 2014 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.