Controllo delle versioni client e server in App per dispositivi mobili e Servizi mobiliClient and server versioning in Mobile Apps and Mobile Services

La versione più recente di Servizi mobili di Azure è la funzionalità App per dispositivi mobili del Servizio app di Azure.The latest version of Azure Mobile Services is the Mobile Apps feature of Azure App Service.

Gli SDK del client e del server di App per dispositivi mobili in origine si basano su quelle in Servizi mobili, ma non sono compatibili tra loro.The Mobile Apps client and server SDKs are originally based on those in Mobile Services, but they are not compatible with each other. È infatti necessario usare un SDK del client di App per dispositivi mobili con un SDK del server di App per dispositivi mobili e lo stesso vale per Servizi mobili.That is, you must use a Mobile Apps client SDK with a Mobile Apps server SDK and similarly for Mobile Services. Questo contratto viene applicato tramite un valore di intestazione speciale utilizzato dagli SDK del client e del server, ZUMO-API-VERSION.This contract is enforced through a special header value used by the client and server SDKs, ZUMO-API-VERSION.

Nota: ogni volta che in questo documento si fa riferimento a un back-end di Servizi mobili , esso non deve necessariamente essere ospitato su Servizi mobili.Note: whenever this document refers to a Mobile Services backend, it does not necessarily need to be hosted on Mobile Services. È ora possibile eseguire la migrazione di un servizio mobile per l'esecuzione nel servizio app senza apportare modifiche al codice, ma il servizio continuerà a usare le versioni SDK di Servizi mobili.It is now possible to migrate a mobile service to run on App Service without any code changes, but the service would still be using Mobile Services SDK versions.

Per ulteriori informazioni sulla migrazione al servizio app senza apportare modifiche al codice, vedere l'articolo Eseguire la migrazione di un servizio mobile al servizio app di Azure.To learn more about migrating to App Service without any code changes, see the article [Migrate a Mobile Service to Azure App Service].

Specifica di intestazioneHeader specification

La chiave ZUMO-API-VERSION può essere specificata nell'intestazione HTTP o nella stringa di query.The key ZUMO-API-VERSION may be specified in either the HTTP header or the query string. Il valore è una stringa di versione nel formato x.y.z.The value is a version string in the form x.y.z.

Ad esempio: For example:

GET https://service.azurewebsites.net/tables/TodoItemGET https://service.azurewebsites.net/tables/TodoItem

HEADERS: ZUMO-API-VERSION: 2.0.0HEADERS: ZUMO-API-VERSION: 2.0.0

POST https://service.azurewebsites.net/tables/TodoItem?ZUMO-API-VERSION=2.0.0POST https://service.azurewebsites.net/tables/TodoItem?ZUMO-API-VERSION=2.0.0

Esclusione del controllo della versioneOpting out of version checking

È possibile rifiutare esplicitamente il controllo della versione impostando un valore true per l'impostazione dell'app MS_SkipVersionCheck.You can opt out of version checking by setting a value of true for the app setting MS_SkipVersionCheck. Specificarlo nel file web.config o nella sezione Impostazioni applicazione del portale di Azure.Specify this either in your web.config or in the Application Settings section of the Azure portal.

Nota

Esistono una serie di modifiche di comportamento tra Servizi mobili e App per dispositivi mobili, in particolare per quanto riguarda la sincronizzazione offline, l’autenticazione e le notifiche push.There are a number of behavior changes between Mobile Services and Mobile Apps, particularly in the areas of offline sync, authentication, and push notifications. È consigliabile rifiutare esplicitamente solo il controllo della versione dopo aver completato un test per assicurarsi che queste modifiche del comportamento non interferiscano con le funzionalità dell'applicazione.You should only opt out of version checking after complete testing to ensure that these behavioral changes do not break your app's functionality.

Riepilogo della compatibilità per tutte le versioniSummary of compatibility for all versions

Il grafico seguente illustra la compatibilità tra tutti i tipi di client e server.The chart below shows the compatibility between all client and server types. Un back-end viene classificato come Servizi mobili o App per dispositivi mobili in base all'SDK del server usato.A backend is classified as either Mobile Services or Mobile Apps based on the server SDK that it uses.

Servizi mobiliMobile Services Node.js or .NET App per dispositivi mobiliMobile Apps Node.js or .NET
Client di Servizi mobili[Mobile Services clients] OKOk Errore*Error*
Client di App per dispositivi mobili[Mobile Apps clients] Errore*Error* OKOk

*Può essere controllato specificando MS_SkipVersionCheck.*This can be controlled by specifying MS_SkipVersionCheck.

Client e server di Servizi mobiliMobile Services client and server

Gli SDK del client nella tabella seguente sono compatibili con Servizi mobili.The client SDKs in the table below are compatible with Mobile Services.

Nota: gli SDK del client di Servizi mobili non inviano un valore di intestazione per ZUMO-API-VERSION.Note: the Mobile Services client SDKs do not send a header value for ZUMO-API-VERSION. Se il servizio riceve questo valore di intestazione o di stringa di query, verrà restituito un errore, a meno che non lo si abbia rifiutato in modo esplicito come descritto sopra.If the service receives this header or query string value, an error will be returned, unless you have explicitly opted out as described above.

SDK del client di Servizi mobiliMobile Services client SDKs

Piattaforma clientClient platform VersionVersion Valore dell'intestazione della versioneVersion header value
Client gestito (Windows, Xamarin)Managed client (Windows, Xamarin) 1.3.21.3.2 n/dn/a
iOSiOS 2.2.22.2.2 n/dn/a
AndroidAndroid 2.0.32.0.3 n/dn/a
HTMLHTML 1.2.71.2.7 n/dn/a

SDK del server di Servizi mobiliMobile Services server SDKs

Piattaforma serverServer platform VersionVersion Intestazione della versione accettataAccepted version header
.NET.NET WindowsAzure.MobileServices.Backend.* Versione 1.0.xWindowsAzure.MobileServices.Backend.* Version 1.0.x Nessuna intestazione di versione **No version header **
Node.jsNode.js (Presto disponibile)(coming soon) Nessuna intestazione di versioneNo version header

Comportamento dei back-end di Servizi mobiliBehavior of Mobile Services backends

ZUMO-API-VERSIONZUMO-API-VERSION Valore di MS_SkipVersionCheckValue of MS_SkipVersionCheck RispostaResponse
Non specificatoNot specified QualsiasiAny 200 - OK200 - OK
Qualsiasi valoreAny value True True 200 - OK200 - OK
Qualsiasi valoreAny value False/Non specificatoFalse/Not Specified 400 - Richiesta non valida400 - Bad Request

Client e server di App per dispositivi mobili di AzureAzure Mobile Apps client and server

SDK del client di App per dispositivi mobiliMobile Apps client SDKs

Il controllo della versione è stata introdotta a partire dalle seguenti versioni dell’SDK del client per App per dispositivi mobili di Azure:Version checking was introduced starting with the following versions of the client SDK for Azure Mobile Apps:

Piattaforma clientClient platform VersionVersion Valore dell'intestazione della versioneVersion header value
Client gestito (Windows, Xamarin)Managed client (Windows, Xamarin) 2.0.02.0.0 2.0.02.0.0
iOSiOS 3.0.03.0.0 2.0.02.0.0
AndroidAndroid 3.0.03.0.0 3.0.03.0.0

SDK del server di App per dispositivi mobiliMobile Apps server SDKs

Il controllo della versione è incluso nelle seguenti versioni dell’SDK del server:Version checking is included in following server SDK versions:

Piattaforma serverServer platform SDKSDK Intestazione della versione accettataAccepted version header
.NET.NET Microsoft.Azure.Mobile.ServerMicrosoft.Azure.Mobile.Server 2.0.02.0.0
Node.jsNode.js azure-mobile-apps)azure-mobile-apps) 2.0.02.0.0

Comportamento dei back-end di app per dispositivi mobiliBehavior of Mobile Apps backends

ZUMO-API-VERSIONZUMO-API-VERSION Valore di MS_SkipVersionCheckValue of MS_SkipVersionCheck RispostaResponse
x.y.z o Nullx.y.z or Null True True 200 - OK200 - OK
NullNull False/Non specificatoFalse/Not Specified 400 - Richiesta non valida400 - Bad Request
1.x.y1.x.y False/Non specificatoFalse/Not Specified 400 - Richiesta non valida400 - Bad Request
2.0.0-2.x.y2.0.0-2.x.y False/Non specificatoFalse/Not Specified 200 - OK200 - OK
3.0.0-3.x.y3.0.0-3.x.y False/Non specificatoFalse/Not Specified 400 - Richiesta non valida400 - Bad Request

Fasi successiveNext Steps