ASP.NET N-Layered / DDD架构和Window服务软件架构之间有区别吗?

时间:2011-11-17 15:24:22

标签: c# architecture windows-services domain-driven-design n-layer

我正在阅读很多架构(N-Layered和DDD),但大多数文章都是关于网站架构并主要开发Windows服务。
架构可以以相同的方式使用吗?

3 个答案:

答案 0 :(得分:3)

软件架构中“层”的主要目标是分离关注点;您的程序逻辑应该与数据持久性和用户界面分开。

Windows服务没有用户界面,但您仍然可以通过逻辑上分离您的功能来获得效率,可支持性并减少未来更改的影响。例如:

  • Windows服务层:负责启动服务,处理已定义的事件和异常 - 类似于Web应用程序中的UI层,但显然没有UI
  • 业务层:执行处理和封装逻辑的类
  • 持久层:将数据和状态的持久性抽象为数据库,xml,注册表,等等

因此,您可以应用您阅读的大多数Web架构概念,并且大多数工具也可以用于Windows服务。

答案 1 :(得分:1)

是的,当然,除了Windows服务可能没有太多的UI层,如果有的话。只是一个轻量级的runnner方法左右。

答案 2 :(得分:0)

尽管服务不同,因为它们没有UI元素,但是有一些方法可以使用适用于(N层,DDD)的原则,即开发原则。

因此,例如服务共享模式和契约,而不是类,即它们是在接口上设计的,因此Windows服务可以是基于REST的服务以及WCF服务,但是它也可以再次调用下面的存储库。