▪
▪
▪
▪
▪
▪
▪
Agenda
▪
▪
▪
▪
▪
▪
Why Extend Enterprise Apps to Mobile Users?
▪
▪
▪
▪
▪
▪
▪
▪
Mobile Solution Design Planning
Exposing Mobile Friendly Web APIs
WCF vs. ASP.NET Web API
WCF ASP.NET Web API
Multiple transport protocols (HTTP, TCP, UDP, and
custom transports)
HTTP only. First-class programming model for
HTTP
Multiple encodings (Text, MTOM, and Binary) of
the same message
Wide variety of media types including XML, JSON
etc.
WS-* standards like Reliable Messaging,
Transactions, Message Security
Basic protocol and formats such as HTTP,
WebSockets, SSL, JQuery, JSON, and XML
Request-Reply, One Way, and Duplex message
exchange patterns
HTTP is request/response but additional patterns
can be supported through SignalR and
WebSockets
WCF SOAP services can be described in WSDL,
generate client proxies
Many ways to describe: Auto-generated HTML
help page describing snippets to structured
metadata for OData integrated APIs
Ships with the .NET framework
Ships with .NET framework, open-source,
available out-of-band
▪
▪
▪
▪
▪
Exposing Mobile-friendly Web APIs
Demo:
ASP.NET Web API Design Samples
▪
▪
▪
▪
▪
▪
▪
▪
▪
▪
▪
▪ https://www.microsoft.com/en-us/cloud-platform/hybrid-cloud
Mixing On-Premises and Cloud Assets
Migration Tools & Services
Assess Migrate
https://channel9.msdn.com/Events/Build/2017/B8044
Designing a Cross-Platform Mobile
Project
▪
▪
▪
Building the Mobile Client Apps
Xamarin’s Unique Approach
Shared C# codebase • 100% native API access • High performance
Included in Visual Studio (free) • Open Source
iOS C# UI Windows C# UIAndroid C# UI
Shared C# Logic
Xamarin + Xamarin.Forms
With Xamarin.Forms:
more code-sharing, native controls
“Classic” Xamarin approach
Shared UI Code
▪
▪
▪
Reusing Code for Xamarin.Forms Projects
Sample Architecture: Finaeos 1to1Core
▪ Sometimes you don’t have a choice
Reusing Existing Web-based Login
▪ It works, but is there a better way?
Reusing Existing Web-based Login
▪
▪
▪
▪
Authentication & Authorization
Our vision
Identify 30K
potentially
compromised
users per day
Every day the identity ML
system processes
10TB of data
Deflect 1.5M
attacks per day in the
consumer space
Reaches the audience you want
Has great fundamentals
Works great with your solution
An ideal identity system…
▪
▪
▪
▪
▪
▪
▪
▪
▪
▪
Production-ready MSAL previews
Demo:
Microsoft Authentication Library (MSAL)
Azure Active Directory B2C
Reach any user, on any platform
Scale to 100s of millions of user accounts
Run on the same secure, highly available
infrastructure that powers O365 authentications
Select from a set of built-in, self-service identity
experiences
Customize each pixel. It’s your brand, your HTML
and CSS
Microsoft Graph
Single API that proxies multiple Microsoft services
Allows for easy traversal of objects and relationships
Eliminates the need to discovery endpoints
Only one OAuth access token needed
For both personal and work and school accounts
Exposing User data, Group data and Organizational data
HTTPS://GRAPH.MICROSOFT.COM
▪
▪
▪
▪
▪
▪ https://blog.xamarin.com/getting-started-azure-mobile-apps-easy-tables/
Data Synchronization & Offline Access
Create a Mobile Service
MobileService = new MobileServiceClient(
"https://myapp.azurewebsites.net");
Create Tables
IMobileServiceSyncTable<Store> table;
public async Task Init()
{
const string path = "syncstore.db";
var db = new MobileServiceSQLiteStore(path);
db.DefineTable<Store>();
}
var handler = new MobileServiceSyncHandler();
await MobileService.SyncContext.InitializeAsync(db, h);
table = MobileService.GetSyncTable<Store>();
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;
}
▪
▪
▪
▪
▪
▪
From Mobilize to Modernize
▪
▪
▪
▪
▪
▪
Summary
Build 2017: Related Sessions to Watch
Session Code Session Title & Link
B8025 Cross-device and cross-platform experiences with Project Rome and Microsoft Graph
B8015 Microsoft Graph: Build better apps with the API to your organization
B8084
The keys to the cloud: Use Microsoft identities to sign in and access API from your mobile and
web apps
T6068 Securely sign-in your customers with Azure Active Directory B2C
P4031 Azure Active Directory v2 endpoint and MSAL: What's new
B8099 What's new in Xamarin.Forms
B8072 Visual Studio Mobile Center: Ship mobile apps faster
B8044 How to migrate your databases to the cloud and future-proof your applications
P4008 Get to the cloud faster with Azure SQLDB Managed Instance and Database Migration Service
P4182 Migrating your Oracle databases to cloud made easy
▪
▪ http://aka.ms/cceh
▪
▪ http://aka.ms/urbanrefuge
▪
▪ https://microsoft.github.io/techcasestudies/mobile%20application%20developme
nt%20with%20xamarin/mobile%20devops/2017/01/20/ChoiceCustomerCare.html
▪
▪ https://microsoft.github.io/techcasestudies/mobile%20application%20
development%20with%20xamarin/2016/12/27/HMS.html
Xamarin Case Studies
▪
▪ https://microsoft.github.io/techcasestudies/mobile%20application%20developme
nt%20with%20xamarin/2017/01/27/ChefsForSeniors.html
▪
▪ https://microsoft.github.io/techcasestudies/mobile%20application%20developme
nt%20with%20xamarin/2017/02/09/opportunityspace.html
▪
▪ https://microsoft.github.io/techcasestudies/mobile%20application%20developme
nt%20with%20xamarin/2016/12/29/Shelfie.html
▪
▪ https://microsoft.github.io/techcasestudies/mobile%20application%20
development%20with%20xamarin/2017/04/19/liquidgreetings.html
Xamarin Case Studies
▪
▪ https://blog.xamarin.com/the-xamarin-show-getting-started-with-mvvm/
▪
▪ https://blogs.msdn.microsoft.com/appserviceteam/2016/06/22/app-service-auth-
and-azure-ad-b2c/
▪
▪ https://blogs.msdn.microsoft.com/webdev/2017/02/20/lets-try-wcf-self-hosted-
services-in-a-container/
More Reference Articles
▪
▪ https://azure.microsoft.com/en-us/services/app-service/
▪
▪ https://azure.microsoft.com/develop/identity/
▪
▪ https://azure.microsoft.com/en-us/services/active-directory-b2c/
▪
▪ https://github.com/AzureAD/microsoft-authentication-library-for-dotnet
Azure Reference Links
▪
▪ github.com/ActiveNick/MyWeather
▪ github.com/ActiveNick/Xamarin-Layouts
▪ github.com/jamesmontemagno/MyWeather.Forms
▪ github.com/xamarin/xamarin-forms-samples
▪ github.com/xamarin/mini-hacks
▪ github.com/xamarin
▪
▪ https://github.com/jamesmontemagno
▪
▪ http://motzcod.es
Xamarin Demos & Videos
▪
▪
▪
▪ https://aka.ms/xamebook
▪ https://aka.ms/xamebook/epub
▪
https://aka.ms/xamebook/mobi
Free Xamarin.Forms eBook
▪
▪ http://docs.xamarin.com
▪
▪ http://evolve.Xamarin.com
▪
▪ http://xamarin.com/university
▪
▪ http://blog.xamarin.com
▪
▪ http://motzcod.es
▪
▪ http://channel9.msdn.com/Shows/XamarinShow
▪
▪ http://www.xamarinpodcast.com
Xamarin Resources
▪ https://www.xamarin.com/forms
▪
▪ https://github.com/FormsCommunityToolkit/FormsCommunityToolkit
▪
▪ http://www.goxuni.com/
▪ https://www.devexpress.com/Products/Xamarin/
▪ https://www.infragistics.com/products/xamarin
▪ https://www.syncfusion.com/products/xamarin
▪ http://www.telerik.com/xamarin-ui
Xamarin.Forms Resources
Online Microsoft training delivered by experts to
help technologists continually learn
Hundreds of courses for developers, IT Pros,
students, entrepreneurs and enthusiasts
11 different languages
More than 3M students registered
Build your own Learning Plan
All free!
http://www.microsoftvirtualacademy.com
Thank You!
Slides are posted in the conference repository. Demos are on GitHub.
Slideshare: www.slideshare.net/ActiveNick
Blog: www.AgeofMobility.com
Twitter: @ActiveNick
Mobile Apps: www.bigbaldapps.com
LinkedIn: www.linkedin.com/in/activenick
GitHub: github.com/ActiveNick
Email: nick.landry@microsoft.com

Mobilizing your Existing Enterprise Applications