.NET backend Heterogeneous data Hybrid Connections Offline sync Xamarin AAD Authentication Visual Studio API Management Notification Hubs Sencha Extend line-of-business to mobile Bring turn-key login experience with corporate credentials to mobile developers Enable.

Download Report

Transcript .NET backend Heterogeneous data Hybrid Connections Offline sync Xamarin AAD Authentication Visual Studio API Management Notification Hubs Sencha Extend line-of-business to mobile Bring turn-key login experience with corporate credentials to mobile developers Enable.

.NET backend
Heterogeneous data
Hybrid Connections
Offline sync
Xamarin
AAD Authentication
Visual Studio
API Management
Notification Hubs
Sencha
Extend line-of-business to mobile
Bring turn-key login experience with
corporate credentials to mobile
developers
Enable applications built around
organizational structures
Make AAD users a first-class concept in
Mobile Services, with push-to-user and
per-user data
1)
1
2)
2
3
3)
1)
1
2)
2
3
3)
Backend for Your Employee or Consumer app in seconds
Your Backend Logic via .NET Web API
Turn-key Mobile Backend Capabilities
Local debugging
Flexible data model
Client SDKs
iOS, Android, Windows, WinPhone, Xamarin, PhoneGap, Sencha
Integration With Your On-Premise Enterprise Systems, O365
We Manage, Run, and Monitor your backend for you
Website
XDRIVE\site\wwwroot
git
Mobile Services
compatible WebAPI
controllers
Commit hook:
Build project
source
Web.config
load
C:\...\MobileServices
Mobile Services
runtime
WebDeploy
Web.config
website root
Mobile Services
compatible WebAPI
controllers
App settings
injected here
User database:
EF code-first migrations
or custom migrations
SQL Database
TableController
BYOD
DTO
DataManager
DTO
Device
Table Storage
Mobile Service
MongoDB
TableController
Existing
Tables
DTO
DataManager
DTO
Device
Model
Azure SQL db/BYOD
Mobile Service
AutoMapper
System
Properties
Table
SQL Database
Conflict resolution
TableController
(with optimistic
concurrency)
SQLite
Explicit Push/Pull
BYOD
Table Storage
Device
Mobile Service
MongoDB
1.var localTable = client.GetSyncTable<TodoItem>();
2.var remoteTable = client.GetTable<TodoItem>();
3.await localTable.PullAsync();
4.
5.var firstItem = (awaitlocalTable.Take(1).ToEnumerableAsync()).FirstOrDefault();
6.var firstItemCopy = newTodoItem
7.{
8.
Id = firstItem.Id,
9.
Version = firstItem.Version,
10.
Text = firstItem.Text,
11.
Complete = firstItem.Complete
12.};
13.
14.firstItemCopy.Text = "Modified";
15.await remoteTable.UpdateAsync(firstItemCopy);
16.AddToDebug("Updated the item on the server");
17.
18.firstItem.Text = "Modified locally";
19.await localTable.UpdateAsync(firstItem);
20.AddToDebug("Updated the same item in the local table");
21.
22.AddToDebug("Number of pending operations: {0}", client.SyncContext.PendingOperations);
23.await client.SyncContext.PushAsync();
Hybrid
Connections
Manager
Connection string
points to
My-Database: 1433
Hybrid Connection
Port: 1433
My-Database
Build & Host
Publish & Manage
Mobile Services
Web Sites
API Management
DEVELOPERS
DEVELOPER
PORTAL
PROXY
APPS
WINDOWS
AZURE API
ADMIN
PORTAL
PUBLISHER /
ADMIN
MCROSOFT AZURE
API MANAGEMENT
BACKEND
API Management Features
ADAPT
Formats, protocols, URIs, aggregation
EXPOSE
Discovery, packaging, subscriptions, docs
PROTECT
Authorization, quotas, rate limits, request validation
UNDERSTAND
Usage, health, latency, activity, trends
MANAGE
Lifecycle, versioning, monitoring
Kindle (ADM) support
Tag Expressions
Visual Studio integration
Mobile Services integration
New push-based pricing
Bulk registration mgmt. APIs
Xamarin
Breaking news
News/Media
Reservation changes, Deals,
Back-office
Travel/Hospitality/Airlines
SMS replacement, Deals,
Back-office
Banking/Insurance
Orders, Product UX,
Back-office
Discrete manufacturing/Auto
Prescriptions, Appointments,
LOB (maintenance)
Healthcare
Offers, Orders, Back-office
Retail
Registration at app launch
1.
2.
Sending Notification
Platform
Notification
Service
1.
2.
Maintenance
1.
App back-end
Platform dependency
•
•
Routing
•
•
•
Scale
•
•
X-plat: from any back-end to any mobile platform
Backend can be on-prem or in the cloud, .NET/Node/Java/PHP/Node/anything.
Support Windows Phone/Windows/iOS/Android and Kindle Fire.
No need to store device information in the app back-end
Notification Hub maintains the registry of devices and the associations to users/interest groups
Routing and interest groups
Target individual users and large interest groups using tags
Personalization and localization
Keep your back-end free of presentation concerns like localization and user preferences using templates
Broadcast at scale, multicast, unicast
Push notifications to millions of devices (across platforms) with a single call
Telemetry
Rich telemetry available through portal or APIs
One-time set up
1.
Register
iOS app
Windows app
1.
2.
Send Notification
MPNS
APNs WNS GCM
App back-end
1.
2.
ADM
Notification Hub
await
var toast = @“<notification payload>";
hub.SendWindowsNativeNotificationAsync(toast);
[hub registerNativeWithDeviceToken:deviceToken
tags:nil
completion:^(NSError* error) { … }];
hubService.wns.sendToastText01(null,
{
text1: 'Hello from Node!'
},
function (error)
{
…
}
);
hub.register(regid);
Tags as interest groups
1.
2.
3.
App back-end
Tag:”Beatles”
You can use tags also for
Notification Hub
Tag:”Wailers”
Tag:”Beatles”
await
new string[] {"myTag", "myOtherTag"}
[hub registerNativeWithDeviceToken:deviceToken tags:@[@"myTag", @"myOtherTag"] completion:
^(NSError* error) {
…
}];
hub.register(regid, "myTag“, "myOtherTag");
Social “All my group except me”
group:id && !user:id
Events Touchdown event is send to everybody following either team
Followteam:A || Followteam:B || followplayer:1 || followplayer:2 …
Hours Send notifications at specific times. E.g. Tag with timezone, @12pm in Seattle send:
timezone:PST && follows:thaifood
Versions & platforms Send a reminder to update to your first Android app version:
version:1.0 && platform:Android
3+
10s
100s
<2
3+
150+



Powered by Notification Hubs
No more Channels table
1 Unit of Notification Hubs included for free
Node.js and .NET
MobileService.Push.RegisterNativeAsync(channel);
push.wns.sendToastText04(
null,
{ text1: ‘Hello!’ },
{ success: function()
{ console.log("Sent push"); }
});
•
•
Identify your device
1.
2.
Register
createId()
upsert({id}, channel, tags)
App back-end
1.
a)
b)
2.
3.
Notes
1.
2.
{id}
Notification Hub
Use a tag to identify user
1.
2.
Back-end updates tags
1.
2.
Note
1.
2.
getByTag(userid)
update(tags)
App back-end
Notification Hub
await App.MobileService.GetPush().RegisterNativeAsync(channel.Uri);
public class AddAADUser : INotificationHandler
{
public void Register(ApiServices services, HttpRequestContext context, NotificationRegistration registration)
{
registration.Tags.Add("aaduser:" + context.Principal.Identity.Name);
}
}
services.Push.SendAsync(msg, "aaduserid:" + context.Principal.Identity.Name);
Deliver content directly from BE
Push to sync
(no sensitive info)
1.
2.
Notes
Notification Hub
App back-end
Updates app state
Push to sync
1.
Example: music app
1.
2.
3.
4.
Platform-dependent
Notification Hub
App back-end
Add new song
Telemetry
Security
•
•
•
Scale
Current
Free
Basic
Standard
Free
$20/unit/mo
$199/unit/mo
500/namespace
Unlimited
Unlimited
Pushes
100K/unit/mo
500K/unit/mo
5 M/unit/mo
Scaling
N/A
9 units
Unlimited
Price (/mo)
Active Devices
Private Preview
[email protected]
Breakout Sessions
5/12 1:15-2:30 DEV-B307 Announcing Hybrid Connections: Building Amazing Hybrid
Web Sites and Mobile Apps in Minutes
5/12 4:45-6:00 DEV-B317 Mobile Line-of-Business Applications in Microsoft Azure
5/13 3:15-4:30 DEV-B330 What’s New in Mobile Services and Notification Hubs
5/14 1:30-2:45 DEV-B345 High-Volume, Low-Latency Mobile Push Notifications
5/14 3:15-4:30 DEV-B351 Introduction to API Management on Microsoft Azure
5/15 8:30-9:45 DEV-B382 Microsoft Azure API Management Master Class
5/15 1:00-2:15 DEV-B343 Building Microsoft Azure Mobile Services w/ Visual Studio
Find Me Later At.. . . Server, Cloud & Tools Expo Booth
Mobile Dev Center
azure.microsoft.com/mobile
Notification Hubs Dev Center
azure.microsoft.com/documentation/services/notification-hubs/
Channel 9 Videos
channel9.msdn.com/Series/Windows-Azure-Mobile-Services
Azure Fridays
channel9.msdn.com/Shows/Azure-Friday
Having a friend
buy your coffee?
Yea, it’s kind of like that.
3 Steps to New Gear! With Application Insights
MSDN Subscribers get up to $150/mo in Azure credits.
Stop by the Developer Platform and Tools booth
and visit the MSDN Subscriptions station to
activate your benefits and receive a gift!
1.
http://aka.ms/msdn_teched
http://visualstudio.com
2.
http://aka.ms/aivsix
3.
Microsoft Engineering
Stories
http://www.visualstudio.com
Visual Studio
Industry Partner
Program
Visual Studio | Integrate