我们有一个ASP.net MVC解决方案。目前它有超过50个独立项目,并且正在迅速增长。这导致我们编译时间慢,Visual Studio滞后,并且从源代码控制中拉下来需要几分钟的时间。大规模MVC解决方案融入个人解决方案
这些项目按部门划分为MVC区域(例如HR,Payroll,Admin等),并据此进行路由(例如/ HR/Recruitment,/ Payroll/Payslips)。
这是我们目前的结构:
- Core web (authentication, menus, helpers, scripts, etc).
- Core libraries (mostly for Core web, database connections, types, etc).
- Areas
- HR
- Recruitment
\ Web
\ Libraries
- Insurance
\ Web
\ Libraries
- Payroll
- Payslips
\ Web
\ Libraries
- [Etc.]
愿我们的区域分割成完全不同的解决方案。所以当你在人力资源部门工作时,你只需要打开人力资源部门的项目。
我们遇到的问题是Core web。目前这些区域正在使用MVC的模板(共享布局)来绘制菜单,并且我们使用核心部分中包含的过滤器来检查身份验证。
我们可以把核心部分为.dll文件,并在区域引用它,但MVC将不会呈现从一个区域的核心网的Razor视图(同时确实存在扩展,它们不正式支持)。另外,我们在核心Web中有一堆脚本,我们必须找出一种重新分配的方式(所以我们不会在每个解决方案中使用不兼容的JQuery版本)。
有没有人有这方面的经验?利用MVC领域,直到解决方案超过他们,然后不得不重构?您如何将核心服务融入现在独立的MVC解决方案中而不会出现大规模的代码重复?
您可以使用VirtualPathProvider呈现嵌入库中的视图。请参阅http://stackoverflow.com/questions/7746253/using-custom-virtualpathprovider-to-load-embedded-resource-partial-views – Amy