区域与类库:它们的用途有多么不同?

时间:2010-09-08 13:17:07

标签: asp.net-mvc

为了使projet易于管理,我们将其分解为子项目(例如,C#中的类库)。现在,在ASP.NET MVC 2中,我们确实有区域。我想知道Area是否具有或可以提供与类库相同的目的?看起来两者都是为了使项目易于管理......

Personaly,我要写更大的东西。我不知道要走哪条路:地区与班级图书馆......两者兼而有之?

感谢您的帮助

2 个答案:

答案 0 :(得分:1)

在最基本的层面上,您将比较C#如何编译成特定的框架功能。

区域只是建立在路由/查找/搜索自定义中,因此您可以将应用程序分成不同的文件夹。您可以为MVC应用程序提供VirtualPathProvider,并使用类库中嵌入的视图来分割您的应用程序,但这不是组织事物的标准方法。

答案 1 :(得分:1)

使项目可管理实际上不是区域或类库的重点,尽管它们在使用时确实具有这种效果。

通常,类库的目的更多的是创建一个独立的代码库,它们都有一些相互关联的目的。关键在于,一个使用良好的类库代表了作为单个单元进行维护,开发和分发的代码集合。最重要的是分发,因为类库可以在许多应用程序中分发和使用。如果从不分发,维护或独立开发这些库,将代码拆分为类库通常是浪费时间。如果它们只是为了组织和分组代码而不依赖于其他库中的其他代码,那么从长远来看,您可能会使代码不易管理;单独的命名空间和文件夹可以用于保持代码分组,组织和可管理。

MVC领域有点不同。他们的目的是将大型Web应用程序划分为半独立的段,这些段都托管在一个项目中(因此是同一类库的一部分; MVC应用程序只是一种奇特的类库)。所以区域的整个目的往往是责任。领域的最大优势在于它们可以将大型应用程序拆分为由不同开发人员团队维护和开发的部分;或者与应用程序的其他部分具有广泛不同的基础结构要求的部分。

因此,就可管理性而言,如果您的MVC应用程序很大并且具有不同的功能部分,那么区域是个好主意。除了代码可管理性之外还有其他好处,类库只能被证明是合理的。