1

自从 ASP.NET 进入现场以来,就再也没有一种开箱即用的干净方式来创建可以在 ASP.NET 站点中轻松部署的库(视图 + 代码)。

因此,如果我们采用您有解决方案的场景:

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

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

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

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

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

我的主要问题是没有一种万能的方案来促进开发和生产部署,即:

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

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

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

4

1 回答 1

1

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

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

于 2014-05-19T17:01:53.977 回答