Novidades do .NET Core 3.0: um novo provider ADO.NET para SQL Server

Renato Groffe
3 min readOct 20, 2019

--

Em Maio deste ano (2019) a Microsoft anunciou um novo provider ADO.NET para SQL Server e Azure SQL: trata-se do package Microsoft.Data.SqlClient. Dentre as motivações para isso estavam a necessidade de suportar recursos como Always Encrypted (disponível desde o SQL Server 2016) e Data Classification (a partir da versão 2019).

E o que acontecerá com o provider System.Data.SqlClient? A Microsoft manterá o suporte e seguirá efetuando correções neste package sempre que necessário, porém novas funcionalidades e capacidades passarão a ser implementadas apenas em Microsoft.Data.SqlClient.

Maiores informações sobre estas mudanças podem ser encontradas no seguinte post:

Introducing the new Microsoft.Data.SqlClient | .NET Blog

E aproveito este espaço para um convite.

Dia 22/10/2019 (terça) a partir das 21:30 — horário de Brasília — teremos mais uma live no Canal .NET. Desta vez será abordado o uso da biblioteca Polly, solução esta que possibilita um melhor tratamento de falhas em projetos .NET e contribui assim para a obtenção de aplicações mais estáveis.

Para efetuar a sua inscrição acesse a página do evento no Meetup. A transmissão acontecerá via YouTube, em um link a ser divulgado em breve.

E quanto ao .NET Core 3.0? Aplicações que dependam de Dapper ou ADO.NET puro podem já se beneficiar do uso do package Microsoft.Data.SqlClient. No caso do Entity Framework Core 3.0 este novo provider já é empregado por default no acesso a bases de dados do SQL Server e Azure SQL.

No exemplo a seguir podemos observar o uso deste provider (Microsoft.Data.SqlClient) na implementação da classe CotacoesController. O uso de tipos como SqlConnection (linha 15) e SqlCommand (linha 18) em nada difere daquele a que estávamos habituados ao empregar o provider System.Data.SqlClient em nossas aplicações:

Para tornar possível o uso de Microsoft.Data.SqlClient neste projeto foi necessário incluir no mesmo o package correspondente. É o que demonstra o conteúdo do arquivo APICotacoes.csproj na próxima listagem:

Os fontes deste projeto foram disponibilizados no GitHub:

https://github.com/renatogroffe/ASPNETCore3.0_SQLServer-JSON_NewProvider

Vale destacar ainda que o provider Microsoft.Data.SqlClient é também compatível com o .NET Standard 2.0 e 2.1:

Na listagem a seguir temos um exemplo de uso do provider Microsoft.Data.SqlClient com Dapper, em nada diferindo de aplicações mais antigas que empregaram System.Data.SqlClient:

Os fontes deste segundo projeto estão no GitHub:

https://github.com/renatogroffe/ASPNETCore3.0_SQLServer-JSON_Dapper

E por fim temos ainda a questão de uso do Entity Framework Core 3.0. Conforme podemos observar na próxima imagem ao adicionar este ORM em um projeto o provider Microsoft.Data.SqlClient já constará como uma de suas dependências:

Um exemplo de utilização do Entity Framework Core 3.0 (incluindo a funcionalidade conhecida como Table Splitting) pode ser encontrado no seguinte link:

--

--

Renato Groffe
Renato Groffe

Written by Renato Groffe

Microsoft Most Valuable Professional (MVP), Multi-Plataform Technical Audience Contributor (MTAC), Software Engineer, Technical Writer and Speaker

No responses yet