ASP.NET MVC模块化开发

时间:2012-11-07 12:08:23

标签: asp.net asp.net-mvc

自从ASP.NET进入场景以来,从未有过一种简单易用的方法来创建一个可以在ASP.NET站点中轻松部署的库(视图+代码)。

因此,如果我们采用以下方案:

  • 一个ASP.NET站点
  • 一个类库

就控制器或代码隐藏而言,这很容易处理。后者只是编译到类库中,前者也是类库的一部分,并且可以通过Web应用程序中的约定轻松检测到。现在对于视图,无论是ascx,aspx还是cshtml,它都变成了一个不同的故事。据我所知,这些是选项:

  1. 嵌入式视图,通过VirtualPathProvider提供。您保留运行时编译,但是您无法在网站内更改视图,尽管可以将其设置为挂钩到可用视图位置的后备链。

  2. 已编译的视图。这基本上归结为代码隐藏方案。我认为同样的评论与嵌入式视图相同。

  3. NuGet包,它复制了视图文件。似乎最可行,但也会产生不必要的构建开销。

  4. 我的主要问题是,没有一个适合所有人的方案来促进开发和生产部署:

    • 让您的项目保持整洁:将项目与模型,控制器和视图分开
    • 适合您的开发周期:只需编辑视图并尝试
    • 启用轻松部署:一旦开发,将其应用于其他项目

    我很好奇其他开发者如何处理这个问题,以及是否有人找到了处理所有这些问题的方法?

    编辑:请注意,我知道许多CMS确实以某种方式促进了它,但到目前为止,我还没有遇到解决上述问题的那个。

1 个答案:

答案 0 :(得分:1)

您可以查看Orchard CMS。它是作为模块化框架开发的,可以完美地解决您的问题。它具有为您自己实现ASP.NET MVC框架的最佳实践。

"它支持动态编译仅作为源代码部署的模块的能力。这比部署二进制文件更灵活,并且可以实现一些有趣的场景,例如"到位"代码定制,无需使用Visual Studio。"