| page_type | langues | produits | description | urlfragment | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
échantillon |
|
| Utilisation de l'API de suivi de changement pour synchroniser les données entre les applications et le cloud | azure-sql-db-dotnet-rest-API |
Si vous développez une application qui doit être en mesure de travailler déconnectée du cloud, vous aurez sûrement besoin, à un moment donné, de mettre en œuvre la possibilité de télécharger les dernières données du cloud pour actualiser les données locales à l'application. Faire cela pourrait être délicat, car vous auriez besoin de comprendre quels sont les changements qui se sont produits sur le cloud depuis la dernière fois que l'application s'est synchronisée, afin que vous ne puissiez envoyer les différences que.
Avec Azure SQL, vous pouvez profiter du suivi des changements pour détecter les lignes modifiées par rapport à la dernière fois que l'application est synchronisée et générer une charge utile qui ne contient que ces modifications. Quelque chose comme ça:
{
"Metadata" : {
"Sync" : {
"Version" : 6 ,
"Type" : " Diff "
}
},
"Data" : [
{
"$operation" : " U " ,
"Id" : 10 ,
"RecordedOn" : " 2019-10-27T17:54:48-08:00 " ,
"Type" : " Run " ,
"Steps" : 3450 ,
"Distance" : 4981
},
{
"$operation" : " I " ,
"Id" : 11 ,
"RecordedOn" : " 2019-10-26T18:24:32-08:00 " ,
"Type" : " Run " ,
"Steps" : 4866 ,
"Distance" : 4562
}
]
}Eh bien, plus précisément, non seulement vous pouvez détecter les modifications, mais vous pouvez également générer le JSON directement à partir d'Azure SQL, afin que vous puissiez profiter de l'intégration incroyable qu'Azure SQL fournit sur toutes ses fonctionnalités et créer un code magnifiquement simple.
Plus de détails techniques sont disponibles ici: Sync Mobile Apps avec Azure à l'aide de l'API de suivi de changement
J'ai également préparé une vidéo à montrer en 10 minutes à quel point votre vie peut être plus simple en utilisant l'API de suivi du changement.
] (https://www.youtube.com/watch?v=c1bmnruu6wc)
Assurez-vous d'avoir une base de données Azure SQL DB à utiliser. Si vous n'avez pas de compte Azure, vous pouvez en créer un gratuitement qui inclura également un niveau de base de données Azure SQL gratuit:
https://azure.microsoft.com/en-us/free/free-account-faq/
Pour créer une nouvelle base de données, suivez les instructions ici:
Créer une base de données Azure SQL
Ou, si vous êtes déjà à l'aise avec Azure CLI, vous pouvez simplement exécuter (en utilisant Bash, via WSL, un environnement Linux ou un shell cloud Azure)
az group create -n < my-resource-group > -l WestUS2
az sql server create -g < my-resource-group > -n < my-server-name > -u < my-user > -p < my-password >
az sql db create -g < my-resource-group > --server < my-server-name > -n CTSample --service-objective HS_Gen5_2Une fois la base de données créée, vous pouvez vous connecter à l'aide d'Azure Data Studio. Si vous avez besoin d'aide pour configurer votre première connexion à Azure SQL avec Azure Data Studio, cette vidéo rapide vous aidera:
Comment se connecter à la base de données Azure SQL d'Azure Data Studio
Une fois la base de données créée, vous devez activer le suivi du changement et ajouter une procédure stockée qui sera appelée à partir de .NET. Le code SQL est disponible ici:
./SQL/01-change-tracking-setup.sql./SQL/02-stored-procedure.sqlVeuillez exécuter le script dans la base de données créée en séquence.
Si vous avez besoin d'aide pour exécuter le script SQL, vous pouvez trouver un QuickStart ici: QuickStart: Utilisez Azure Data Studio pour connecter et interroger la base de données Azure SQL
Assurez-vous que le SDK .NET Core 3.0 installé sur votre machine. Clone ce dépôt dans un répertoire sur notre ordinateur, puis configurez la chaîne de connexion dans appsettings.json .
Si vous ne souhaitez pas enregistrer la chaîne de connexion dans le fichier appsettings.json pour des raisons de sécurité, vous pouvez simplement le définir à l'aide d'une variable d'environnement:
Linux:
export ConnectionStrings__DefaultConnection= " <your-connection-string> "Windows:
$ Env: ConnectionStrings__DefaultConnection = " <your-connection-string> "Votre chaîne de connexion est quelque chose comme:
SERVER=<your-server-name>.database.windows.net;DATABASE=<your-database-name>;UID=DotNetWebApp;PWD=a987REALLY#$%TRONGpa44w0rd!
Remplacez simplement <your-server-name> et <your-database-name> par les valeurs correctes pour votre environnement.
Pour exécuter et tester l'API de repos localement, il suffit de courir
dotnet run.NET démarrera le serveur HTTP et quand tout sera opérationnel, vous verrez quelque chose comme
Now listening on: https://localhost:5001
À l'aide d'un client REST (comme Visual Studio, Insomnia, Curl ou PowerShell Invoke-RestMethod)), vous pouvez maintenant appeler votre API, par exemple:
curl -s -k -H " fromVersion: 0 " --url https://localhost:5001/trainingsession/syncEt vous obtiendrez quelque chose comme ce qui suit:
{
"Metadata" : {
"Sync" : {
"Version" : 6 ,
"Type" : " Full " ,
"ReasonCode" : 0
}
},
"Data" : [
{
"Id" : 9 ,
"RecordedOn" : " 2019-10-28T17:27:23-08:00 " ,
"Type" : " Run " ,
"Steps" : 3784 ,
"Distance" : 5123
},
{
"Id" : 10 ,
"RecordedOn" : " 2019-10-27T17:54:48-08:00 " ,
"Type" : " Run " ,
"Steps" : 0 ,
"Distance" : 4981
}
]
} Le débogage du code Visual Studio est entièrement pris en charge. Si vous avez un .env , il sera utilisé pour obtenir la chaîne de connexion: cela signifie qu'au minimum, le fichier .env doit être comme le suivant:
ConnectionStrings__DefaultConnection="<the-connection-string>"
Le fichier .env est également utilisé pour lire les valeurs nécessaires pour déployer la solution à Azure, comme décrit dans la section suivante.
Maintenant que votre solution API REST est prête, il est temps de le déployer sur Azure afin que n'importe qui puisse en profiter. Un article détaillé sur la façon dont vous pouvez cela est ici:
La seule chose que vous avez fait en plus de ce qui explique dans les articles ci-dessus est d'ajouter la chaîne de connexion à la configuration de l'application Web Azure. En utilisant AZ CLI, par exemple:
AppName= " azure-sql-db-dotnet-rest-api "
ResourceGroup= " my-resource-group "
az webapp config connection-string set
-g $ResourceGroup
-n $AppName
--settings DefaultConnection= $ConnectionStrings__DefaultConnection
--connection-string-type=SQLAzure Assurez-vous simplement que vous définissez correctement $AppName et $ResourceGroup pour correspondre à votre environnement et également que la variable $ConnectionStrings__DefaultConnection comme indiqué, comme mentionné dans la section "Exécuter un exemple localement".
Un exemple de script complet qui déploie l'API REST est disponible ici: azure-deploy.sh . Le Script Need et .env Fichier à exécuter. S'il n'y a pas, il en créera un vide pour vous. Assurez-vous de le remplir avec les bonnes valeurs pour votre environnement, et vous serez prêt à partir.
Le fichier .env ressemble à ce qui suit:
ResourceGroup="<resource-group-name>"
AppName="<app-name>"
Location="WestUS2"
ConnectionStrings__DefaultConnection="<the-connection-string>"
Si vous êtes nouveau sur .NET et que vous souhaitez en savoir plus, il y a beaucoup de tutoriels disponibles sur la plate-forme Microsoft Learn. Vous pouvez commencer à partir d'ici, par exemple:
Si vous souhaitez également en savoir plus sur le code Visual Studio, voici une autre ressource:
Utilisation de .NET Core dans Visual Studio Code
Ce projet accueille les contributions et les suggestions. La plupart des contributions vous obligent à accepter un accord de licence de contributeur (CLA) déclarant que vous avez le droit de faire et en fait, accordez-nous les droits d'utilisation de votre contribution. Pour plus de détails, visitez https://cla.opensource.microsoft.com.
Lorsque vous soumettez une demande de traction, un bot CLA déterminera automatiquement si vous devez fournir un CLA et décorer le RP de manière appropriée (par exemple, vérification d'état, commentaire). Suivez simplement les instructions fournies par le bot. Vous n'aurez besoin de le faire qu'une seule fois sur tous les dépositions en utilisant notre CLA.
Ce projet a adopté le code de conduite open source Microsoft. Pour plus d'informations, consultez le code de conduite FAQ ou contactez [email protected] avec toute question ou commentaire supplémentaire.