我们正在创建与MS SQL Server的一个WinForms .NET4应用程序,我们两个方案之间作出决定:远程数据库的良好做法
1)WinForms应用程序直接连接到MS SQL服务器。
2)使用3层体系结构并在两者之间插入WebServices。
问题:
1)它是一个很好的做法,是对外打开SQL连接到“世界”?
2)你会推荐哪种情况。应用程序是面向数据的,非常简单,没有规划任何其他客户端,只有WinForms。
在此先感谢。
James
我们正在创建与MS SQL Server的一个WinForms .NET4应用程序,我们两个方案之间作出决定:远程数据库的良好做法
1)WinForms应用程序直接连接到MS SQL服务器。
2)使用3层体系结构并在两者之间插入WebServices。
问题:
1)它是一个很好的做法,是对外打开SQL连接到“世界”?
2)你会推荐哪种情况。应用程序是面向数据的,非常简单,没有规划任何其他客户端,只有WinForms。
在此先感谢。
James
肯定会选择具有Web服务层的选项。这允许您:
当你说“很简单,没有规划任何其他客户端”,我会采取与一粒盐,应用不断生长,变身为人们意识到他们可以做什么和别的什么,他们可以包括。您需要将其改为“它最初将成为一个简单的小应用程序”。
在这个时候,WebServices对您来说可能会有些过火,但是如果您遵循一个很好的n层体系结构,他们将很容易在稍后的日期添加,而重构最少。
至于向世界展示SQL - 这不是一个好的做法。您可以很好地保护它,并确保应用程序使用的登录(或者如果用户拥有自己的登录名)具有最小权限 - 只需运行存储过程或在他们需要访问的表上执行CRUD语句。但是,如果在暴露于世界的时候搞砸了安全性,那么亲你的SQL Server及其数据再见。这本身就是一个复杂的主题,所以你最好在有问题时发布个别问题。