如何在多个.NET应用程序之间共享DAL和BLL?

时间:2008-11-03 19:38:20

标签: .net wcf web-services entity-framework architecture

我需要创建几个共享Microsoft SQL Server数据库的应用程序。这些包括ASP.NET Web应用程序,WPF桌面应用程序,以及可能偶尔的奇怪的控制台应用程序。

我想使用ADO.NET实体框架进行数据访问,为我的业务逻辑扩展其对象,并将这些对象绑定到我的UI中的控件。

如何在不重复自己的情况下在每个应用程序中执行此操作?如果数据库模式或我的业务逻辑发生了变化,那么我想要一种简单(或自动)方式来更新我的所有应用程序。

我应该如何构建这个系统?


更新:我已经提出了后续问题......

5 个答案:

答案 0 :(得分:9)

为此,我建议创建一个包含多个项目的Visual Studio解决方案。您的DAL将包含在其自己的项目中,然后对于需要使用该功能的其他项目,将项目引用创建回DAL项目。

希望这有帮助!

答案 1 :(得分:3)

adamalex的想法很合理。根据您的设置,另一个受欢迎的方法是将公共项目分开,编译,然后让您的其他项目引用此编译的dll。如果他们引用此dll的最新版本或其特定版本,则由您决定。也许你不希望有些项目不得不一直跟上。

答案 2 :(得分:2)

也许您可以使用webservices集中数据库访问/逻辑......

linkSOA / WebServices / Remoting

的答案中可以看出

答案 3 :(得分:2)

我建议你看一下CSLA.Net。它允许您构建易于支持多个接口的业务对象(asp.net,wpf,silverlight等)。我不知道你在建设什么,但CSLA对此非常支持。

我有一个可以帮助您使用CSLA的电源插板。

CSLA Slide Deck

答案 4 :(得分:1)

我建议创建一个包含多个项目的新Visual Studio解决方案。对于DAL / BLL分离,我建议使用类库。实现这种抽象允许您通过其他项目(例如WCF Web服务)将其包装起来,并将其公开地展示给.NET系统 - 但可能是其他系统。

创建这些类库项目后,您可以在其他项目中添加对它们的引用并使用它们。这将有助于明确分离关注点。