我想安装一个桌面应用程序(在许多站点上 - 大约 10-20 个)应该直接访问 SQL Server,没有服务,也没有服务器 DAL。
该应用程序将安装在大约 10 台机器上的本地网络上,其中一台是服务器。当我将安装程序时,我将设置连接字符串,应用程序将直接与 SQL 服务器对话。
这是一个坏主意吗?
如果是,那有多糟糕?
我想安装一个桌面应用程序(在许多站点上 - 大约 10-20 个)应该直接访问 SQL Server,没有服务,也没有服务器 DAL。
该应用程序将安装在大约 10 台机器上的本地网络上,其中一台是服务器。当我将安装程序时,我将设置连接字符串,应用程序将直接与 SQL 服务器对话。
这是一个坏主意吗?
如果是,那有多糟糕?
这不一定是个坏主意。如果您不需要扩展,那么这是一种有效的方法。
您所描述的通常称为 2 层客户端-服务器架构。
您可能应该加密配置文件中的连接字符串(但这只会停止窥探,而不是打算恢复您的密码的人)。另一种选择是通过受信任的连接使用 Windows 身份验证,但您确实失去了连接池的能力,但这不应该是 10 - 50 个客户端的问题(球场)。
当然不是。
根据我最近看到的一项调查,您所描述的是经典的客户端服务器架构,大约 50% 的应用程序仍然以这种方式构建。
鲍勃。
我已经构建了很多这样的应用程序。我建议您在应用程序本身中构建一个 DAL,这样如果您需要分离数据访问层和表示层,您可以轻松地做到这一点(此外还有其他好处,例如代码标准化、更改内容的单一位置等)。
只要您始终如一并遵循最佳实践,我认为它没有问题。
如果它在您的本地网络上,那就去吧。如果是通过互联网,我会创建一个网络服务。
另请注意,有大量现成的 DAL(NHibernate、实体框架),因此您无需自行开发,而且在客户端服务器架构中也能正常工作。