Asp.net mvc ASP.NET MVC项目中的库的正确位置是什么?

Asp.net mvc ASP.NET MVC项目中的库的正确位置是什么?,asp.net-mvc,routing,Asp.net Mvc,Routing,如果我创建一个自定义路由类,它在ASP.NET MVC项目中的位置的典型约定是什么 (请注意,这些库不是特定于域的库,因为它们是ASP.NET MVC接口的实现,用于连接生命周期。)对我来说,这些类的最佳位置是一种独立的基础设施项目。这些基础设施项目包含通用帮助程序库。Web了解基础设施,但不了解基础设施。甚至微软也有这样的命名约定。自定义路由类的名称空间可以是*.Web.Infrastructure.Routing我预先准备好将它们保存在一个单独的项目中,其中包含各种类型的文件夹。 例如,对于

如果我创建一个自定义路由类,它在ASP.NET MVC项目中的位置的典型约定是什么


(请注意,这些库不是特定于域的库,因为它们是ASP.NET MVC接口的实现,用于连接生命周期。)

对我来说,这些类的最佳位置是一种独立的
基础设施项目。这些基础设施项目包含通用帮助程序库。Web了解基础设施,但不了解基础设施。甚至微软也有这样的命名约定。自定义路由类的名称空间可以是
*.Web.Infrastructure.Routing

我预先准备好将它们保存在一个单独的项目中,其中包含各种类型的文件夹。 例如,对于MVC项目,我通常会:

 MyCompany.MyApp.Web.MVC
然后是帮手

MyCompany.MyApp.Web.MVC.Helpers
          AttributeHelpers
          RoutingHelpers
          HtmlHelpers

我通常将库保存在单独的项目中,并在MVC项目中引用它们。如果你只是想在项目中创建一个文件夹,那也可以,但是如果你这样做的话,会使重用变得更加困难。我想问题是,我正在创建的库是特定于我的项目的,所以在另一个dll中定位它们是没有意义的?我不这么认为。这只是组织事情的另一种方式。我用单独的测试项目将我的库分开。@Omega-如果像我一样,您不想在项目中看到
基础设施
,请使用
框架
;它是同义词()