构建项目的最佳方法是什么?

时间:2009-02-21 15:14:55

标签: architecture projects n-tier-architecture layered

我想知道我应该如何构建我的项目。

我们有一些项目(重新)用于其他项目。

我的意思是,我们的数据项目和模型项目用于一对多的其他项目。

我真正要知道的是如何构建这种类型的项目,命名它的最佳方式是什么?

在标准的3层应用程序中,应该像:

  1. DAL,DataAccessLayer,Data ...
  2. Model,BusinessObject,BOL ......
  3. 用户界面,视图,...
  4. 还有其他想法吗?

    在我工作的每家公司中,他们都有不同的组织方式,是否有一个比另一个好?你使用哪一个,你更喜欢哪一个?为什么?

    THX!

5 个答案:

答案 0 :(得分:2)

这就是我的工作,除了我有几个图书馆项目,我试图把所有可重用的代码。然后我的模型和DAL位于这些库的顶部,只是向它们添加项目细节

答案 1 :(得分:1)

对于数据层,我通常使用:

Company.ProjectName.Data (即AdventureWorks.OrderManager.Data)

对于业务层,我更喜欢像“ObjectModel”这样的东西(我使用过“Business”或“BusinessLogic”,但这是数据在对象/类中汇集在一起​​的区域,所以为什么不这样命名呢?)。

Company.ProjectName.ObjectModel (即AdventureWorks.OrderManager.ObjectModel)

对于UI,我喜欢普通的“UI”或“演示”......

Company.ProjectName.Presentation (即AdventureWorks.OrderManager.Presentation)

答案 2 :(得分:1)

大多数情况下,我使用的是Microsoft Patterns& amp;实践Application Architecture for .NET: Designing Applications and Services。 Document描述了实现它的体系结构和.NET技术。

alt text

答案 3 :(得分:0)

软件架构取决于要构建的软件类型。如果您想进行内核编程,则与应用程序开发相比,其他原则也适用。当您打算进行物理模拟,天气预报软件,软件IDE或编译器时,还有另一个原则适用。

我假设你想做应用程序开发。那么,您很可能希望围绕您要反映的域设计您的软件。但即使这样,也有很多选择。

为了更深入地了解这一重要主题,我强烈建议您从Domain Driven DesignEric Evans Applying Domain-Driven Design and Patterns阅读Jimmmy Nilsson

答案 4 :(得分:0)

我目前正在开发具有3层架构的前端Web应用程序:

  • 客户端层(浏览器)
  • 应用程序层(Java EE应用程序服务器,应用程序将在其中存在)
  • 后端层(大型机和旧版应用,各种数据库)

它具有分层架构,应用层中的层为:

  • 表示层:生成将在客户端层中使用的UI
  • 应用层:相当于用例,包含应用逻辑
  • 服务层:将域后逻辑和数据从后端层映射到Java模型
  • 集成层:与后端层通信,包含JMS,电子邮件,...和DAO以及其他内容的网关

这只是一个示例项目结构,最终结果取决于应用程序的类型。您可以在my answerthis question上阅读有关软件包的部门和命名策略的更多信息。

您可以根据需要添加/交换/删除图层。例如,在SOA中,您可以在应用层或服务层之上层叠Web服务层,以便ESB(企业服务总线)可以连接到您的应用程序或服务。如果其中任何一项不可能或似乎非常困难,那么您就没有最佳的架构和设计。

在考虑项目结构并允许上述方案时,您需要的模块和组件的一些重要属性是:

  • 可测
  • 复用性
  • 可维护性

您可以通过设计低耦合和高内聚来实现这一目标。通过按功能/抽象级别对模块进行分组来选择分层体系结构是一个良好的开端。在每个层内,通过功能进一步分组也有帮助。让每个更具体的层仅依赖于更一般的层的接口也会减少耦合。