如何解决从多个应用程序访问数据库
| 我有一个Windows窗体应用程序(c#)和一个ASP.NET Web应用程序,它们都可以访问Sql Server数据库。我想集中数据库访问。我应该遵循哪些方法?解决此问题的常用方法是什么? 编写DAL和模型库并在两个应用程序中使用它们? 编写包括DAL模型的WCF服务,并在两个应用程序中都使用该服务? 以上都不是? 你能给我个主意吗? 谢谢。解决方法
我认为使用“ 0”方法确实更好(WCF或具有DAL层的WebServices),因为这样一来,您无需使用Windows Forms“ 2”发布DAL“ 1”。然后,对数据模型的所有更改将自动发生在两个UI客户端上。
请记住,这可能会导致自身的问题:
与安全有关,因此您的服务不能通过URL直接访问,从而允许某人运行您的方法。
对维护的关注,因为只需要影响一个接口的数据层更改将更加难以控制,并且需要事先进行更好的计划(通过创建特定于接口的新方法)。
性能降低,因为HTTP访问总是比直接与dll通信更昂贵。
缺少与服务器通信的风险,这是ASP.NET所期望的,但在这些情况下,Windows Forms客户端需要额外的注意才能正常运行。
,我会使用WCF方法。请记住,何时(不是,何时,什么时候)您必须进行与一个应用程序相关的更改,而不必对另一个应用程序进行更改(尚未),则必须在公共层中对此进行说明,因此使用界面可能会使您的生活变得更加美好。容易一点。
,最干净的方法是使用WCF服务包装数据库。
如果一次不写大量数据,则可以使用WCF数据服务。这直接包装了一个Entity Framework模型,您可以用各种方式配置对表和方法的访问。
您想要的是在一个地方可以访问数据库,这样,如果出现问题,您可以将其修复在一个位置。
此外,例如,如果要记录对特定表的所有调用,唯一可以确保完成的方法是将所有对DB的调用集中在这种方式上,而不允许任何人直接访问DB。
包装服务,然后将连接字符串保密。
,选项1似乎更简单,我也会这样做。
带有WCF的选件2将在您的产品中添加其他代码,从而进行维护。同样,这也意味着额外的一层。
,公司程序员喜欢第二种选择(包括DAL的WCF服务)。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。