| Page_type | idiomas | produtos | descrição | Urlfragment | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
amostra |
|
| Usando a API de rastreamento de alteração para sincronizar dados entre aplicativos e a nuvem | Azure-SQL-DB-DOTNET-REST-API |
Se você estiver desenvolvendo um aplicativo que deve ser capaz de trabalhar desconectado da nuvem, certamente precisará, em algum momento, implementar a capacidade de baixar os dados mais recentes da nuvem para atualizar os dados locais ao aplicativo. Fazer isso com eficiência pode ser complicado, pois você precisaria entender quais são as mudanças que aconteceram na nuvem desde a última vez que o aplicativo sincronizou com ele, para que você possa enviar apenas as diferenças.
Com o Azure SQL, você pode aproveitar o rastreamento de alterações para detectar quais linhas foram alteradas desde a última vez que o aplicativo sincronizou e gerar uma carga útil que contém apenas essas alterações. Algo assim:
{
"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
}
]
}Bem, mais precisamente, não apenas você pode detectar as alterações, mas também pode gerar o JSON diretamente do Azure SQL, para que você possa aproveitar a incrível integração que o Azure SQL fornece em todos os seus recursos e criar um código lindamente simples.
Mais detalhes técnicos estão disponíveis aqui: Sync Mobile Apps com Azure usando API de rastreamento de alteração
Também preparei um vídeo para mostrar em 10 minutos o quanto mais simples pode ser sua vida usando a API de rastreamento de alterações.
] (https://www.youtube.com/watch?v=c1bmnruu6wc)
Verifique se você tem um banco de dados do Azure SQL DB para usar. Se você não tiver uma conta do Azure, você pode criar uma de graça que também incluirá uma camada gratuita do Azure Sql DB:
https://azure.microsoft.com/en-us/free/free-account-faq/
Para criar um novo banco de dados, siga as instruções aqui:
Crie o banco de dados do Azure SQL
Ou, se você já está confortável com o Azure CLI, você pode apenas executar (usando o Bash, via WSL, um ambiente Linux ou Azure Cloud Shell)
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_2Depois que o banco de dados for criado, você pode se conectar a ele usando o Azure Data Studio. Se você precisar de ajuda para configurar sua primeira conexão com o Azure SQL com o Azure Data Studio, este vídeo rápido o ajudará:
Como conectar -se ao banco de dados do Azure SQL do Azure Data Studio
Depois que o banco de dados for criado, você precisa ativar o rastreamento de alterações e adicionar um procedimento armazenado que será chamado do .NET. O código SQL está disponível aqui:
./SQL/01-change-tracking-setup.sql./SQL/02-stored-procedure.sqlExecute o script no banco de dados criado na sequência.
Se você precisar de ajuda para executar o script SQL, poderá encontrar um início rápido aqui: Quickstart: Use o Azure Data Studio para conectar e consultar o banco de dados SQL do Azure
Certifique -se de ter o .NET Core 3.0 SDK instalado em sua máquina. Clone este repositório em um diretório em nosso computador e configure a sequência de conexão em appsettings.json .
Se você não deseja salvar a string de conexão no arquivo appsettings.json por motivos de segurança, basta defini -la usando uma variável de ambiente:
Linux:
export ConnectionStrings__DefaultConnection= " <your-connection-string> "Windows:
$ Env: ConnectionStrings__DefaultConnection = " <your-connection-string> "Sua string de conexão é algo como:
SERVER=<your-server-name>.database.windows.net;DATABASE=<your-database-name>;UID=DotNetWebApp;PWD=a987REALLY#$%TRONGpa44w0rd!
Basta substituir <your-server-name> e <your-database-name> pelos valores corretos para o seu ambiente.
Para executar e testar a API REST localmente, basta correr
dotnet run.NET Iniciará o servidor HTTP e quando tudo estiver em funcionamento, você verá algo como
Now listening on: https://localhost:5001
Usando um cliente REST (como Visual Studio, Insônia, Curl ou PowerShell's Invoke-Restmethod)), agora você pode chamar sua API, por exemplo:
curl -s -k -H " fromVersion: 0 " --url https://localhost:5001/trainingsession/syncE você terá algo como o seguinte:
{
"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
}
]
} A depuração do código do Visual Studio é totalmente suportada. Se você tiver um .env , ele será usado para obter a sequência de conexão: isso significa que, no mínimo, o arquivo .env precisa ser como o seguinte:
ConnectionStrings__DefaultConnection="<the-connection-string>"
O arquivo .env também é usado para ler os valores necessários para implantar a solução para o Azure, conforme descrito na próxima seção.
Agora que sua solução de API REST está pronta, é hora de implantá -la no Azure, para que qualquer um possa tirar proveito disso. Um artigo detalhado sobre como você pode aqui:
A única coisa que você faz, além do que explicou nos artigos acima, é adicionar a string de conexão à configuração do aplicativo da Web do Azure. Usando a AZ CLI, por exemplo:
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 Apenas certifique -se de definir corretamente $AppName e $ResourceGroup para corresponder ao seu ambiente e também que a variável $ConnectionStrings__DefaultConnection , conforme também foi definido, conforme mencionado na seção "Executar amostra localmente".
Um exemplo de um script completo que implanta a API REST está disponível aqui: azure-deploy.sh . A necessidade do script e o arquivo .env para executar. Se não houver nenhum, ele criará um vazio para você. Certifique -se de preenchê -lo com os valores corretos para o seu ambiente e estará pronto.
O arquivo .env parece o seguinte:
ResourceGroup="<resource-group-name>"
AppName="<app-name>"
Location="WestUS2"
ConnectionStrings__DefaultConnection="<the-connection-string>"
Se você é novo no .NET e deseja aprender mais, há muitos tutoriais disponíveis na plataforma da Microsoft Learn. Você pode começar a partir daqui, por exemplo:
Se você também deseja aprender mais sobre o código do Visual Studio, aqui está outro recurso:
Usando o .NET Core no Código do Visual Studio
Este projeto recebe contribuições e sugestões. A maioria das contribuições exige que você concorde com um Contrato de Licença de Colaborador (CLA) declarando que você tem o direito e, na verdade, concede -nos os direitos de usar sua contribuição. Para detalhes, visite https://cla.opensource.microsoft.com.
Quando você envia uma solicitação de tração, um BOT do CLA determina automaticamente se você precisa fornecer um CLA e decorar o PR adequadamente (por exemplo, verificação de status, comentar). Simplesmente siga as instruções fornecidas pelo bot. Você só precisará fazer isso uma vez em todos os repositórios usando nosso CLA.
Este projeto adotou o Código de Conduta Open Microsoft. Para obter mais informações, consulte o Código de Conduta Perguntas frequentes ou entre em contato com [email protected] com quaisquer perguntas ou comentários adicionais.