自从 ASP.NET 进入现场以来,就再也没有一种开箱即用的干净方式来创建可以在 ASP.NET 站点中轻松部署的库(视图 + 代码)。
因此,如果我们采用您有解决方案的场景:
- 一个 ASP.NET 站点
- 一个类库
就控制器或代码隐藏而言,这很容易处理。后者只是编译到类库中,前者也是类库的一部分,可以很容易地在 Web 应用程序中按照约定检测到。现在对于视图,无论是 ascx、aspx 还是 cshtml,它都变成了另一回事。据我所知,这些是选项:
嵌入式视图,通过 VirtualPathProvider 提供服务。您保留运行时编译,但不能从网站内更改视图,尽管您可以将其设置为挂钩到可用视图位置的后备链。
编译视图。这基本上归结为代码隐藏场景。我认为与嵌入式视图相同的评论。
复制视图文件的NuGet 包。似乎是最可行的,但也会带来不必要的构建开销。
我的主要问题是没有一种万能的方案来促进开发和生产部署,即:
- 让您的项目保持整洁:带有模型、控制器和视图的单独项目
- 适合您的开发周期:只需编辑视图并尝试
- 启用轻松部署:一旦开发,将其应用到其他项目
我很好奇其他开发人员如何处理这个问题,是否有人找到了处理所有这些问题的方法?
编辑:请注意,我知道很多 CMS 确实以某种方式为其提供了便利,但到目前为止,我还没有遇到解决上述问题的那个。