如何在大型asp.net mvc项目中管理路由

时间:2012-08-07 11:40:38

标签: asp.net-mvc asp.net-mvc-routing

在大型(100多个控制器和不断增长的)MVC项目中管理网址路由的策略是什么?区域有所帮助,但它们的用处似乎有限,因为它们无法嵌套。随着项目的发展,我注意到了一些重点:

  1. SEO友好路线(每条seo路线需要特殊定义)
  2. 旧版路由的重定向(需要301个旧网址到更新的等效网站)
  3. 测试路线(有什么比手动测试更好,比硒更轻?)
  4. 此外,随着路线数量的增加,性能不会降低吗?定义路由的方式表明性能至少为O(n*k),其中n是已定义路由的数量,k是网址的长度。

1 个答案:

答案 0 :(得分:2)

要考虑的几个问题可能会让您更轻松:

  • 控制器之间是否有共享功能?
  • 有没有办法为控制器创建通用模式,并使用控制器引发的一些事件来提供通用功能(即以一致的模式从数据库中提取数据)?
  • 每个控制器之间的根本区别是什么?

这些问题的原因是我看到了几个潜在的解决方案:

  • 假设您在IIS 7或更高版本上运行,那么您可以将您的功能分解为每个区域的多个MVC项目。对于IIS 7及更高版本(对于部署而言),这变得更加容易。
  • 假设呈现数据的一致模式,通用控制器或路由可以使这更容易,允许您折叠控制器。
  • 基本控制器允许共享功能,同时呈现每个控制器所需的专业化。

总而言之,我建议尝试根据目的将代码库分解为多个MVC项目,以帮助建立在您的项目持续增长时似乎正在逐渐消失的理智感。