ADO.NET数据提供程序是否应嵌入应用程序内?

时间:2018-09-24 18:52:28

标签: ado ado.net-entity-data-model ado.net-connection

我的Windows应用程序可以通过单独安装的ADO.NET数据提供程序连接到不同的RDBMS。这是一种建议的方法,其中在运行时通过machine.config发现了特定的提供程序。

但是,要求我的客户进行其他设置不是最好的方法。我最近看到许多Java应用程序将大多数JDBC驱动程序嵌入其中。并且最新版本的Npgsql(用于Postgres)默认不再将驱动程序安装在machine.config中。

在分发应用程序时,嵌入式ADO.NET数据提供程序与常规ADO.NET数据提供程序各有什么优缺点?

这是我的列表(我会尝试根据您的反馈进行更新),其中包含将提供程序作为早期绑定引用嵌入应用程序中的优缺点:

优点:

  • 客户端不再需要单独安装驱动程序。
  • 不需要在客户端可能没有足够特权的machine.config中安装它。
  • 更适合开发人员,因为他们可能对某些驱动程序使用特定的扩展功能以及特定的ADO.NET类。

缺点:

  • 更大的分发包。
  • 如果某些驱动程序内部绑定到未安装在客户端计算机上的RDBMS,则某些驱动程序可能会制动整个应用程序。
  • 每个RDBMS强制客户端仅使用一种版本和一种数据提供程序。
  • 即使对于免费的数据提供商,也可能有许可证问题。
  • 32位数据提供程序可能不适用于x64应用程序,而x64提供程序可能不适用于x32应用程序。

0 个答案:

没有答案