4

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

  1. SEO 友好的路线(每条 seo 路线都需要特殊定义)
  2. 旧路由的重定向(需要 301 个旧 url 到更新的等价物)
  3. 测试路线(有什么比手动测试更好、比硒更轻的东西吗?)

另外,随着路由数量的增加,性能不会下降吗?定义路由的方式表明性能至少为O(n*k),其中n是已定义路由的数量,k是 url 的长度。

4

1 回答 1

2

需要考虑的几个问题可能会使您更容易做到这一点:

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

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

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

总而言之,我建议尝试根据目的将您的代码库分解为多个 MVC 项目,以帮助建立随着项目的不断发展而逐渐消失的理智感。

于 2012-08-07T11:55:04.743 回答