我想知道我应该如何构建我的项目。
我们有一些项目(重新)用于其他项目。
我的意思是,我们的数据项目和模型项目用于一对多的其他项目。
我真正要知道的是如何构建这种类型的项目,命名它的最佳方式是什么?
在标准的3层应用程序中,应该像:
还有其他想法吗?
在我工作的每家公司中,他们都有不同的组织方式,是否有一个比另一个好?你使用哪一个,你更喜欢哪一个?为什么?
THX!
答案 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技术。
答案 3 :(得分:0)
软件架构取决于要构建的软件类型。如果您想进行内核编程,则与应用程序开发相比,其他原则也适用。当您打算进行物理模拟,天气预报软件,软件IDE或编译器时,还有另一个原则适用。
我假设你想做应用程序开发。那么,您很可能希望围绕您要反映的域设计您的软件。但即使这样,也有很多选择。
为了更深入地了解这一重要主题,我强烈建议您从Domain Driven Design
和Eric Evans
Applying Domain-Driven Design and Patterns
阅读Jimmmy Nilsson
。
答案 4 :(得分:0)
我目前正在开发具有3层架构的前端Web应用程序:
它具有分层架构,应用层中的层为:
这只是一个示例项目结构,最终结果取决于应用程序的类型。您可以在my answer到this question上阅读有关软件包的部门和命名策略的更多信息。
您可以根据需要添加/交换/删除图层。例如,在SOA中,您可以在应用层或服务层之上层叠Web服务层,以便ESB(企业服务总线)可以连接到您的应用程序或服务。如果其中任何一项不可能或似乎非常困难,那么您就没有最佳的架构和设计。
在考虑项目结构并允许上述方案时,您需要的模块和组件的一些重要属性是:
您可以通过设计低耦合和高内聚来实现这一目标。通过按功能/抽象级别对模块进行分组来选择分层体系结构是一个良好的开端。在每个层内,通过功能进一步分组也有帮助。让每个更具体的层仅依赖于更一般的层的接口也会减少耦合。