所以我有一个我在工作的应用程序,我们有几百个客户端正在运行。我们正在为一个品牌打开新的ASP.NET MVC 3应用程序,我正在研究这个应用程序的路线。
我最近发布了一个我为动态路由提出的解决方案,它在Sql Express DB中的一些条目上工作正常。 Essentiall它为我在此DB中的每个条目创建路由。
所以,我的问题是......如果我要在企业应用程序上实现这一点,那么在我的应用程序中添加数百条(如果不是数千条)路由会产生任何负面影响吗?
答案 0 :(得分:3)
关于动态路线表,您似乎 recommendation follow already :
使用命名路由。命名路由是 路由的可选功能。名字 仅适用于URL生成 - 他们 永远不会用于匹配传入 网址。当您指定名称时 生成一个我们只会尝试的URL 匹配那条路线。 这意味着 即使您指定的指定路线 是路线表中的第100条路线 我们会直接跳到它并尝试 匹配。强>
除了客户/路线的数量,您还应该考虑每天的估计请求数量(您应该担心更多,恕我直言),并考虑您的Web服务器的可扩展性(工作线程,硬件, ......)因此。
答案 1 :(得分:2)
如果您的客户在您的应用程序中使用自己的域,请在路由中使用自定义IRouteConstraint来检查请求域并仅过滤此路由。 Tt的解决方案还可以保护路由免受冲突。
因此,最好的方法是两个任务 - 路由请求和构建链接 - 使用缓存路由。
此解决方案可能需要更多内存,但在大多数情况下,您在页面上设置了有限的网址。
答案 2 :(得分:1)
你的问题有点不清楚。 “动态路由”是指您根据请求解析路由的DB层,还是查询数据库以创建路由表的源文件?
在第一种情况下,表现应该是不变的。 (根据您拥有的用户数量检查数据库的开销不会改变。)因此,您应该立即看到性能影响。
在第二种情况下,如果要检查的项目很多,我希望路由代码会更慢 - 但是很容易测试。
答案 3 :(得分:0)
一旦你开始超过一定的路线阈值,就会出现性能上升。我没有任何硬性基准,但我现在重新设计了一些表现不佳的网站。
您可以越多地使用相同的路线为许多不同的网址添加参数越好。
从观察开始,当你开始接近1k路线时,它就会开始真正触底。