2011-07-27 77 views
3

我一直在ASP.NET MVC工作一段时间,并热爱它。但我现在正在打墙。ASP.NET MVC多个Intranet项目

我正在一个新的内部网站上工作,在那里我将不得不承担很多项目,从几页到全面的应用程序。我一直在使用区域来区分这些项目。迄今为止都很好。

现在,解决方案太大了,我需要编译包含所有区域(多个项目)的整个项目的每个简单更改。一旦我编译并上传DLL,我总是害怕进行更改。

有无论如何,我可以容纳多个项目共享相同的布局,但编译每个项目到单独的DLL?

在此先感谢

编辑

谢谢你们,我也跟着Portable Areas as an ASP.NET MVC Project,他似乎一步所解释的事情在步骤更容易上手。

回答

2

您是否考虑过在MVCContrib中使用Portable Areas功能? - 读了一篇关于它here

而且读Eilon在另一个问题Multiproject areas in ASP.Net MVC 3


响应如果便携式领域的解决方案不会为你工作,那么它可能是时间的重构/重组你的单个网站项目分成不同的网站项目。因为它是一个内联网站点,您可能需要设置一些子域以允许您在一个域下运行单独的网站。

例如,

www.yourdomain.com

admin.yourdomain.com

calendar.yourdomain.com

这种方式可以分离的功能和更新的不同区域内联网而不影响其他人。您当然可能需要根据您的站点查看跨子域的单一登录。

我通常会将所有常见功能提取到可能被所有Web项目使用的核心项目(类库)中,并保持每个Web项目尽可能轻量级。然后,您可以为不同的Web项目或Web项目组创建单独的解决方案。

还可以考虑查看持续集成/构建服务器,以便您可以轻松检查您在一个项目中所做的更改是否正在影响可能不在当前解决方案中的其他项目。

+1

作为一种替代方案,在一个项目中,我们实际上将其模块化为每个业务功能都完全独立于其自己的模块中。控制器,视图,数据访问等。这使得任何特定功能的部署都如同在bin文件夹中放置程序集一样简单。所以,“便携式领域”概念中的某些东西肯定是值得考虑的事情。 – GalacticCowboy

+0

(它是在MVC 1.0中编写的,在区域或便携式区域出现之前很久......) – GalacticCowboy

+0

@GalaticCowboy您是否使用过像MEF或其他IoC框架一样的扫描模块来拾取模块......或者您是否自己推出? – brodie