2015-12-07 215 views
0

我们有一个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解决方案中而不会出现大规模的代码重复?

+0

您可以使用VirtualPathProvider呈现嵌入库中的视图。请参阅http://stackoverflow.com/questions/7746253/using-custom-virtualpathprovider-to-load-embedded-resource-partial-views – Amy

回答