共享MVC应用程序功能

时间:2010-05-24 08:02:53

标签: c# asp.net-mvc

我已经在ASP.NET MVC中构建和应用程序,它开始是一种学习该技术的方法。但是,应用程序(以及我对MVC的了解)已经取得了进展,我想使用我在其他应用程序中创建的部分功能。例如,我有2个网站都希望使用相同的新闻控制(CRUD)模型和控制器方法,但有自己独特的视图。我想我的问题是: 这违反了MVC的原则吗? 2.实现这一目标的最佳方法是什么? 3.是否有一种“最佳实践”方式来重用我现有的功能?

提前感谢您的任何答案。

4 个答案:

答案 0 :(得分:1)

根据您的具体要求,我建议您查看Rob Ashton's上的multi-tenancy in ASP.Net MVC系列,以及MVC Contrib的便携式区域部分。

答案 1 :(得分:0)

您可以设置一个Visual Studio解决方案,在该解决方案中,您将拥有一个包含模型,控制器和数据访问的公共类库项目,以及两个仅包含两个站点的视图和CSS的Web应用程序,这两个站点都引用相同的控制器和模型。 / p>

答案 2 :(得分:0)

希望您的大多数逻辑已经分离出来,但您也可以将控制器拉出到单独的程序集中,我相信:

http://dotnetslackers.com/articles/aspnet/storing-asp-net-mvc-controllers-views-in-separate-assemblies.aspx

答案 3 :(得分:0)

重用是MVC概念的核心部分。在生产MVC站点中,为模型提供单独的程序集(或程序集)是很常见的。为控制器做同样的事情(但仍然完成)有点不太常见。 S#harp架构项目(例如)对所有内容使用单独的程序集,只在Web程序集中留下视图,内容和global.asax。这一切都很好。

你可以考虑的另一件事是使用区域,就像迷你MVC应用程序,你可以在你的'主'应用程序中引用。这是一个很好的方式来打包你描述的可重复使用的部分。