自从ASP.NET进入场景以来,从未有过一种简单易用的方法来创建一个可以在ASP.NET站点中轻松部署的库(视图+代码)。
因此,如果我们采用以下方案:
就控制器或代码隐藏而言,这很容易处理。后者只是编译到类库中,前者也是类库的一部分,并且可以通过Web应用程序中的约定轻松检测到。现在对于视图,无论是ascx,aspx还是cshtml,它都变成了一个不同的故事。据我所知,这些是选项:
嵌入式视图,通过VirtualPathProvider提供。您保留运行时编译,但是您无法在网站内更改视图,尽管可以将其设置为挂钩到可用视图位置的后备链。
已编译的视图。这基本上归结为代码隐藏方案。我认为同样的评论与嵌入式视图相同。
NuGet包,它复制了视图文件。似乎最可行,但也会产生不必要的构建开销。
我的主要问题是,没有一个适合所有人的方案来促进开发和生产部署:
我很好奇其他开发者如何处理这个问题,以及是否有人找到了处理所有这些问题的方法?
编辑:请注意,我知道许多CMS确实以某种方式促进了它,但到目前为止,我还没有遇到解决上述问题的那个。
答案 0 :(得分:1)
您可以查看Orchard CMS。它是作为模块化框架开发的,可以完美地解决您的问题。它具有为您自己实现ASP.NET MVC框架的最佳实践。
"它支持动态编译仅作为源代码部署的模块的能力。这比部署二进制文件更灵活,并且可以实现一些有趣的场景,例如"到位"代码定制,无需使用Visual Studio。"