2013-01-11 37 views
2

在ASP.NET MVC,您可以在您的项目文件中设置下面的键设置为true启用的意见汇编:在ASP.NET MVC良好实践中编译视图?

<MvcBuildViews>true</MvcBuildViews> 

然后,每当您编译解决方案,您的意见将被编译为好,这是伟大的因为它允许你在编译时而不是运行时发现错误。这在重构时特别有用,因为可能会错过重命名的属性,或在视图中更改命名空间。

我只能看到好处,那么为什么这个选项不仅默认设置,但在Visual Studio 2010中的用户界面不可用的,并且经常需要到你的配置做一些修改,这里提到: http://odetocode.com/blogs/scott/archive/2011/02/16/notes-on-building-razor-views.aspx

编译ASP.NET MVC视图有没有合理的缺点?

+0

重构的更好的解决方案:获得ReSharper,它可以非常快速地为自己付钱。此外,不要将“开发环境”与“部署环境”混淆。 – 2013-01-11 18:01:25

+0

ReSharper是一款出色的工具,但并不能保证没有错误的意见。另外,您能否详细说明混淆“开发环境”和“部署环境”? –

+0

“更好的解决方案*重构* ..”;在任何情况下,发现这些问题都是开发/测试的一部分,在这种情况下,快速周转是非常有益的(尽管集成测试应该强调视图编译过程,即使比“构建”更长一个周期)。但是,这与实际的部署配置是分开的问题:也就是说,这个问题至少有两种不同的上下文。 – 2013-01-11 19:55:33

回答

2

我不会说这是“良好的做法”,也不是“不好的做法”。它只是您工具箱中的另一个工具。

默认情况下未启用它的原因是因为虽然小项目正常,但它很快变得非常缓慢,需要几分钟才能完成大中型项目。

此外,它只捕获特定类型的错误。所以不要依赖于它的一切。

1

假设这与Web表单项目中的预编译页面相似。是的,这样做会有很多好处,因为它会使应用程序执行得更好,因为当用户访问视图时不需要编译视图。

虽然这可以使更小的变化更难;我遇到了必须对代码进行小改动的场景。如果您必须重新部署,它可能会回收应用程序并强制用户失去工作。老实说,我使用这种功能的大多数都是使用网页表单,但这个过程应该是类似的。

它也使得部署有点困难,但我并不真的把它算作一个con,因为部署很少。

+0

是的,关于部署后查看更改的好点。我从来没有这样做过,所以我完全失去了雷达。我认为设置MvcBuildViews只会在您构建解决方案时编译它们,但不会以任何方式影响部署 - 我必须对其进行验证。 –