C# 在构建N层应用程序时,我应该如何组织名称和空间?
因此,当我开始尝试在n层架构中构建我的网站时,我担心性能 一位回答这个问题的人告诉我,如果你应用了一个好的架构,你最终会有更好的性能。它与编译DLL之类的东西有关,但现在我不知道如何命名我的命名空间 就像我有我的数据访问层的主名称空间一样,假设我有这个名称空间作为我的数据层 但现在我在应用程序中有不止一个实体需要这个层提供服务,每个实体都有自己的较小实体C# 在构建N层应用程序时,我应该如何组织名称和空间?,c#,asp.net,architecture,namespaces,n-tier-architecture,C#,Asp.net,Architecture,Namespaces,N Tier Architecture,因此,当我开始尝试在n层架构中构建我的网站时,我担心性能 一位回答这个问题的人告诉我,如果你应用了一个好的架构,你最终会有更好的性能。它与编译DLL之类的东西有关,但现在我不知道如何命名我的命名空间 就像我有我的数据访问层的主名称空间一样,假设我有这个名称空间作为我的数据层 但现在我在应用程序中有不止一个实体需要这个层提供服务,每个实体都有自己的较小实体 那么,我应该在一个名称空间(DAL)下包含所有数据代码,还是应该每个实体都有自己的名称空间(如DAL.E1和DAL.E2),或者每个主实体或子
那么,我应该在一个名称空间(DAL)下包含所有数据代码,还是应该每个实体都有自己的名称空间(如DAL.E1和DAL.E2),或者每个主实体或子实体都应该有自己的名称空间(如DAL.E1.c1、DAL.E2、DAL.E3.c1、DAL.E3.c2)。。最后一个问题是否应该包括任何类?哼哼。。。这更像是一个组织问题 我通常更喜欢通过系统上的功能在一个名称空间(类、结构等)中组织项,然后,如果需要,通过分组对象类型来组织项 例如:
- App.Domain//域实体
- App.Domain.Authentication//与身份验证相关的域实体
- App.Domain.Repository//存储库实现
- App.Domain.Repository.Mapping//映射(例如,存储库的NHibernate HBM)
- 应用服务//系统的公开功能
- App.Controllers//视图的控制器
- App.Controllers.Flex//专用于flex的控制器
性能始终是一个需要考虑的问题,但不是本质的问题,至少在非实时应用程序上是如此。维护性和可实现性是我认为最重要的问题。
这确实是一个主观问题,每个组织都会有一个完全不同或非常相似的模式。没有最好的答案,但有好的和坏的方法。行业中的一种常见模式是基于功能来命名库。例如,在我们的一种产品中,我们有:- 产品名称
- ProductName.Activation
- ProductName.Activation.Service
- ProductName.Core
- ProductName.Data
- ProductName.Data.Customers
- ProductName.Data.Engine
- ProductName.Instrumentation
- ProductName.Security
- ProductName.ShellUI
- ProductName.ShellUI.Windows
- ProductName.Win32
总而言之,祝你好运,因为随着项目规模的扩大,组织和结构会不断发生变化,但如果你能保持一切整洁、有序、发现和理解良好,那么你的项目将很容易管理。因此,在域实体中,我应该有App.Domain.Enitiy1,App.Domain.Enitiy2还是应该在一个名称空间下列出所有域实体?请尝试根据实体的关系和功能对它们进行分组。由于它们之间的依赖性越来越强,所以可能会有一个很大的变化,即在一起或共享同一个基本名称空间。但您可以在域中拥有类似的内容:EntityBase。然后在身份验证:用户,继承自EntityBase的角色中,我理解这是主观的,取决于每个项目,但是如果初学者需要问一些主观的问题,那么他们可以有一些好的指导方针来帮助他们决定使用哪种设计模式。毕竟,谢谢=)我只是担心是否有好的/坏的实践会以+ve/-ve两种方式影响我的应用程序。但现在我想不会了,所以我将有一个基于这里答案的组织,并添加一点我对我的应用程序组织的感觉。这是非常古老的,但仍然是一个受欢迎的下载。它涵盖了我写的一些命名准则。它还包括命名约定和其他一般约定,目的是为编写高质量的