2012-03-31 24 views
3

我通常在我的项目中使用IoC模式,这是大多数情况下基于ASP.net的项目。是否有关于如何在通用3层项目UI + BL +数据访问中构建项目的指导原则。我想知道更多关于应该如何创建文件夹,常量保存在每层(我保留所有的字符串,如查询字符串参数,存储过程参数等文件命名为常量单身)。我应该如何创建与业务层等数据访问层交互的类以及所有这些代码结构问题。.net项目的结构化代码指南

是否有任何指导或一本书呢?

回答

2

微软对此有很多信息。我使用微软.NET:为企业设计应用程序作为我的圣经软件架构

http://www.amazon.com/Microsoft%C2%AE-NET-Architecting-Applications-Pro-Developer/dp/073562609X

看看这个MSDN指导以及

http://msdn.microsoft.com/en-us/library/ff647095.aspx

此外,看一看一些应用程序框架(如Sharp Architecture)的示例

http://sharparchitecture.net/

很多NHibernate的教程证明,可以适用于任何解决方案

http://nhforge.org/blogs/nhibernate/archive/2010/04/25/first-three-nhibernate-quickstart-tutorials-available.aspx

+0

感谢您的书。这很棒!! – Rahul 2012-04-01 18:43:00

0

@robbymurphy有一个伟大的答案软件设计原则。我只会补充说,我将​​大多数常量和接口放在一个单独的项目/程序集中。我称之为我的“核心”程序集,并定义了接口,这些接口允许我将数据从堆栈顶部传递到底部,而不会紧密耦合它们。

这与其说是使用它们的地方,但对于什么purose。我曾经参加过一个研讨班,讲师一遍又一遍地把“高凝聚力,低耦合”打入我们的头脑中。

记住,在现实世界中,属于彼此,在一起的那些东西,但是,对象之间的依赖性降低尽可能。

这是一个凝聚力的问题,以及耦合问题:如果常量是真正的内部的类的,让他们私有静态成员(即和内部状态枚举)。如果它们真的是一个项目的内部组件,为它们创建一个类,并使它们成为内部的(数据层中的数据库特定常量)。否则,把他们放在他们自己项目的公开课上。

+0

嘿保持所有的常量在一个单独的项目中是一个好的设计?它是否影响范围规则,因为您需要公开所有内容,查找时间会更长,因为它在不同的程序集中。 – Rahul 2012-04-01 18:47:11

+0

当然,范围问题是一个问题,但是如果你想跨多个项目共享一个资源(枚举,接口等等),还有什么选择?至于性能,我希望看到/做一些关于这个问题的测试,看看.net如何缓存组件之间的类型等。我非常怀疑,在99%的情况下,绩效将排除这种做法。 – bnieland 2012-04-01 23:01:07

+0

我同意将全局常量全部保存在一个单独的项目中是非常重要的,但是在同一个项目中说一两个类所需的常量。他们理想的位置应该是什么,我应该创建一个名为常量的文件夹,并将所有常量填充到那里? – Rahul 2012-04-03 21:35:17