我需要创建几个共享Microsoft SQL Server数据库的应用程序。这些包括ASP.NET Web应用程序,WPF桌面应用程序,以及可能偶尔的奇怪的控制台应用程序。
我想使用ADO.NET实体框架进行数据访问,为我的业务逻辑扩展其对象,并将这些对象绑定到我的UI中的控件。
如何在不重复自己的情况下在每个应用程序中执行此操作?如果数据库模式或我的业务逻辑发生了变化,那么我想要一种简单(或自动)方式来更新我的所有应用程序。
我应该如何构建这个系统?
更新:我已经提出了后续问题......
答案 0 :(得分:9)
为此,我建议创建一个包含多个项目的Visual Studio解决方案。您的DAL将包含在其自己的项目中,然后对于需要使用该功能的其他项目,将项目引用创建回DAL项目。
希望这有帮助!
答案 1 :(得分:3)
adamalex的想法很合理。根据您的设置,另一个受欢迎的方法是将公共项目分开,编译,然后让您的其他项目引用此编译的dll。如果他们引用此dll的最新版本或其特定版本,则由您决定。也许你不希望有些项目不得不一直跟上。
答案 2 :(得分:2)
也许您可以使用webservices集中数据库访问/逻辑......
从link(SOA / WebServices / Remoting)
的答案中可以看出答案 3 :(得分:2)
我建议你看一下CSLA.Net。它允许您构建易于支持多个接口的业务对象(asp.net,wpf,silverlight等)。我不知道你在建设什么,但CSLA对此非常支持。
我有一个可以帮助您使用CSLA的电源插板。
答案 4 :(得分:1)
我建议创建一个包含多个项目的新Visual Studio解决方案。对于DAL / BLL分离,我建议使用类库。实现这种抽象允许您通过其他项目(例如WCF Web服务)将其包装起来,并将其公开地展示给.NET系统 - 但可能是其他系统。
创建这些类库项目后,您可以在其他项目中添加对它们的引用并使用它们。这将有助于明确分离关注点。