Visão Geral
Provedores de Dados (ou conectores) são componentes que permitem aos programas se conectarem à diferentes tipos de bancos de dados (SQL Server, Oracle, PostgreSQL, e etc).
No LATROMI, o acesso aos bancos de dados é feito utilizando provedores desenvolvidos para a plataforma Microsoft .NET Framework. Qualquer conector desenvolvido com .NET Framework 4.5.2 (ou inferior) vai funcionar.
Registrando um Provedor de Dados
Alguns provedores de dados são nativos do .NET Framework e não precisam ser registrados, como por exemplo System.Data.SqlClient, usado para acessar bancos de dados SQL Server.
No LATROMI, além dos provedores nativos, temos também o Npgsql, que é usado para conectar bancos de dados PostgreSQL. Este conector não precisa ser registrado, pois o sistema já faz isso internamente.
Para registrar um novo provedor de dados, existem duas maneiras:
- Registro no GAC + machine.config
- Registro usando o arquivo DbProviderFactories.xml
Após o registro, o Provedor de dados será listado no cadastro de conexões do LATROMI Client:
GAC + machine.config
O Global Assembly Cache (GAC) é um repositório centralizado para o armazenamento de assemblies (DLLs) gerados em .NET. Cada versão do .NET Framework conta com um repositório próprio. Partindo desta premissa, toda vez que um assembly tenha sido adicionado ao GAC, o mesmo estará disponível para uso por qualquer aplicação .NET compatível com a versão da biblioteca adicionada ao repositório.
Machine.config é um arquivo de configuração compartilhado por todos os programas que usam a mesma versão do .NET Framework. Algumas configurações deste arquivo podem ser sobrescrevidas nos arquivos Web.Config e App.Config em cada aplicação.
Uma das sessões deste arquivo, é a DbProviderFactories
, onde são registrados os assemblies onde as fábricas de Provedores de Dados estão implementadas.
Usando a abordagem GAC + machine.config para o registro de um Provedor de Dados, este provedor ficará disponível para uso em todos os programas .NET do computador.
Siga os passos a seguir para registrar o Provedor:
-
Instale o assembly onde a fábrica de Provedores de Dados está implementada no GAC, seguindo as instruções oficiais da Microsoft.
-
Faça o registro do assembly no arquivo machine.config, na sessão
DbProviderFactories
. Por exemplo:<system.data> <DbProviderFactories> <add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=8.0.16.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" /> </DbProviderFactories> </system.data>
Os valores para registro no machine.config você provavelmente vai encontrar no site do desenvolvedor do Provedor de Dados.
E além disso, a maioria dos Provedores de Dados possuem algum tipo de instalador, que faz o registro no GAC e no machine.config automaticamente.
Arquivo DbProviderFactories.xml
A configuração dos Provedores de Dados através do arquivo DbProviderFactories.xml é um recurso do LATROMI, e permite o registro dos Provedores de Dados de uma maneira mais simples.
Diferente do método anterior, onde os Provedores de Dados ficam disponíveis em todos os programas, neste método, eles ficarão disponíveis apenas no LATROMI.
Essa é a estrutura do DbProviderFactories.xml:
<?xml version="1.0" encoding="utf-8"?>
<DbProviderFactoryConfiguration xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<DbProviderFactories>
<add invariant="NOME.INVARIANTE.DO.PROVEDOR" path="CAMINHO_FISICO_DA_DLL" />
</DbProviderFactories>
</DbProviderFactoryConfiguration>
A estrutura é muito semelhante a sessão DbProviderFactories
do arquivo machine.config, mas possui algumas diferenças:
- O preenchimento dos atributos “type” e “name” são opcionais.
- Não possi o atributo “description”.
- Tem um atributo “path” para informar o caminho físico do arquivo.
Este arquivo deve ficar no diretório raiz do LATROMI Web (mesmo diretório onde fica o arquivo config.xml), e sempre que ele for modificado, a aplicação será reiniciada automaticamente, pois os Provedores de Dados são registrados internamente no evento de inicialização do site.
Abaixo a lista completa de atributos do elemento DbProviderFactories → add :
Atributo | Obrigatório | Descrição |
---|---|---|
invariant | Sim | Nome que pode ser usado programaticamente para se referir ao provedor de dados. |
path | Sim | Caminho físico da DLL |
name | Nome legível do provedor de dados. Se não for informado, será utilizado o título do assembly. | |
type | Nome totalmente qualificado da classe que implementa DbProviderFactory
|
Lista de Provedores Conhecidos
Segue abaixo uma lista de Provedores de Dados .NET conhecidos e que podem ser usados no LATROMI.
Invariant | Descrição |
---|---|
System.Data.SqlClient | MS Sql Server (nativo do .NET Framework) |
Npgsql | PostgreSQL (nativo do LATROMI) |
MySql.Data.MySqlClient | MySql |
Oracle.ManagedDataAccess.Client | Oracle |
FirebirdSql.Data.FirebirdClient | Firebird |
System.Data.SQLite | SQLite |