具有多个Web前端和单个数据库后端是否适合MVC设计模式?

时间:2009-10-29 15:11:41

标签: asp.net-mvc

目前我们有3个网站,它们都在同一个数据库后端运行,它们几乎共享100%的业务逻辑。

每次更新3个网站的代码以适应一个小小的变化变得很痛苦。使用ASP.Net MVC会为我们工作吗?

我在想的是业务逻辑和数据库在所有3中几乎完全相同,因此将其提取到模型和控制中。然后每个Web前端(看起来不同)都有不同的视图。那么我们就可以拥有一个项目,我们可以将模型和控件的所有代码共享。还有3种不同的观点。

我们如何部署这样的东西?共享模型和控件的单个代码库,并使用3个不同的视图具有3个单独的URL。或者有更好的方法吗?

3 个答案:

答案 0 :(得分:3)

您可以使用ASP.NET MVC将其关闭,但您也可以插入服务层并使用标准的ASP.NET Web服务来公开它。然后你的每个“视图”仍然可以在它自己的小世界中,只需使用Web服务来获取和保存数据。

ASP.NET MVC最终可能是一个更好的解决方案,但这肯定是另一种选择。

您需要考虑的一件事是,您是否希望将这3个网站保留在单独的域中。我不确定ASP.NET如何处理在不同域上保持不同的视图。

答案 1 :(得分:1)

听起来您确实需要实现n(瘦)Web应用程序使用的服务层(封装公共业务逻辑和数据)。所以请考虑SOA

答案 2 :(得分:0)

这对我来说似乎很合理。在模型和控件方面,您可以考虑使用基类中的共享功能处理当前模型/控件之间的任何微小差异,并使用继承来处理异常。

如果您的网络前端仅在外观和感觉方面不同,那么您可能需要考虑使用相同的代码库,而只是使用CSS交换不同的主题。