如何确定最终将与Web应用程序共享代码的.NET客户端应用程序的正确设计模式?

时间:2009-12-29 18:37:21

标签: .net design-patterns architecture

我是设计模式的新手,但去年我一直在努力实施。我从一个新组织开始,所有代码都包含在表单中。自从我来到这里以来,我一直在尝试为我们的.NET 2.0应用程序使用MVC方法。

其他开发人员已经开始看到这种方法的必要性,我们正在达成一个我们希望就我们都将遵循的设计模式达成一致的程度。虽然我一直在努力学习,但我不确定哪种模式最适合实施。以下是我们的一些设计约束:

  1. 存储在同步到Oracle数据库的Access数据库中的本地数据的客户端应用程序(需要支持断开连接的用户)
  2. 明年将向网络提供客户端应用程序功能
  3. .NET 2.0环境将在明年升级到3.5或4.o
  4. 如果您有其他问题,请与我们联系。我感谢您的帮助。

    谢谢!

2 个答案:

答案 0 :(得分:7)

这是服务层用于:

的主要示例

alt text
(Article with more indepth descriptions of the various layers)

您可以坚持使用MVC架构,但现在控制器会调用您的服务层(解决方案中的单独的类库项目),以用于任何业务逻辑方法。它位于域和存储库之上,允许您使用服务层在任何项目之间执行与业务相关的操作。

通过这种方式,您的业务规则不会遍布您的控制器,您的控制器可以完成其工作:检索并组织要传递到视图中的数据。

通过这种方式,您可以让客户端应用程序和Web应用程序都引用相同的服务层项目并在它们之间共享业务逻辑代码。

答案 1 :(得分:6)

我认为这种分层方法最好。我将从使用实体框架或NHibernate的数据访问层(DAL)开始。然后,您可以在其上放置业务逻辑层,然后在其上放置一个服务层。您的Windows和Web应用程序一直可以使用每个图层。我现在正在阅读Dino Esposito的Microsoft .NET: Architecting Applications for the Enterprise,这对这些类型的问题非常有帮助。

这是我正在谈论的图表: