我们正在使用MS SQL Server创建一个WinForms .NET4应用程序,我们正在两种情况之间做出决定:
1)WinForms应用程序直接连接到MS SQL Server。
2)使用3层架构并在其间插入Web服务。
问题:
1)将SQL连接公开打开到“世界”是一个好习惯吗?
2)你会推荐哪种情况。应用程序是面向数据的,非常简单,不计划任何其他客户端,只有WinForms。
提前致谢。
詹姆斯
答案 0 :(得分:1)
绝对选择具有Web服务层的选项。这允许你:
答案 1 :(得分:1)
当你说“非常简单并且没有计划任何其他客户”时,我会毫不犹豫地使用它,随着人们意识到他们可以做什么以及他们还有什么其他可以包括。您需要将其改为“它最初将成为一个简单的小应用程序”。
此时Web服务对您来说可能过度,但如果您遵循一个不错的n层架构,那么以后添加它们非常简单,只需要很少的重构。
至于向世界公开SQL - 这不是一个好习惯。您可以很好地保护它,并确保应用程序(或用户拥有自己的登录名)使用的登录具有最小权限 - 足以运行存储过程或在他们需要访问的表上执行CRUD语句。但是,如果你在安全性暴露于世界时弄乱了安全性,那么请亲吻你的SQL Server及其数据再见。这本身就是一个复杂的主题,所以当你拥有它们时,最好发布个别问题。