【问题标题】:Development speed - Compiling mvc web application "on the fly"开发速度 - “即时”编译 mvc Web 应用程序
【发布时间】:2013-10-13 09:00:36
【问题描述】:

最近迁移到 mvc 4 我想知道是否有办法在开发过程中加快那些“更改逗号并更新浏览器以查看它是否有效”类型的情况。

从事专业编程已有 10 多年,现在我已经养成了某些习惯。 一方面,我主要使用 asp.net 网站项目、webforms,它允许我更改代码隐藏、ctrl+s、alt-tab 到浏览器,按 f5,然后查看结果。 有时,但并非总是如此,它会回收应用程序、销毁我的会话并返回登录页面。

在边做边学的 mvc 4 项目中工作,我对编译周期感到有点沮丧 - 我想主要是因为这不是我习惯的。

例如,假设我们正在编写一个动作来处理文件移动和复制。

string rootpath = HostingEnvironment.MapPath("~/uploads");
string targetpath = HostingEnvironment.MapPath(Path.Combine(rootpath, TargetDir.Substring(TargetDir.LastIndexOf("/"))));

这编译得很好,但是在测试时它会抛出一个异常,因为“rootpath”已经是绝对的并且不能再次映射。 将代码更改为

string rootpath = HostingEnvironment.MapPath("~/uploads");
string targetpath = Path.Combine(rootpath, TargetDir.Substring(TargetDir.LastIndexOf("/")));

也可以很好地编译并且可能确实有效。但是,您有一个“我在写什么”的时刻并将其更改为

string rootpath = HostingEnvironment.MapPath("~/uploads");
string targetpath = Path.Combine(rootpath, Path.GetDirectoryName(TargetDir));

现在一切都很好。

相比于使用网站项目进行开发,代码更改、等待编译、刷新浏览器、登录、测试功能(和重复)的步骤似乎比以前花费了更长的时间。 有什么方法可以加速这些类型的试错情况? 还是我只是做错了?

【问题讨论】:

  • 网站项目特别奇怪。我建议永远不要使用它们。
  • 嗯,谢谢@John Saunders...但是该评论在任何方面有建设性吗?
  • 它有望使您不再使用它们,使您免于极大的痛苦,并延长您的寿命。
  • 哈哈。谢谢你照顾我。感谢您对我的健康的关注。

标签: asp.net-mvc asp.net-mvc-4 visual-studio-2012 compilation


【解决方案1】:

我建议采用完全不同的方法。使用单元测试。

MVC 的巨大优势在于基本上所有代码都可以进行单元测试(控制器、模型等)。 这样,在每次更改时,您只需运行一个或一组单元测试(键盘快捷键如 Ctrl+R、Ctrl+L 或类似的关键字是您获得最大速度的最佳朋友 :-))。

只有在最后你会运行完整的项目才能看到最终的输出。

当然,除了加快开发/调试时间之外,您还将受益于一整套测试,这些测试在开发(更好地设计代码)和回归测试期间非常有用。

【讨论】:

  • 我同意,除了补充一点,正确编写的 Web 表单代码也可以对所有重要部分进行单元测试。
  • 我设法为该项目设置了单元测试。我可以看到这是如何产生的,并且可以加快调试速度。不过,Server.MapPath 有点麻烦。 vfstech.com/?p=149 帮了我。
猜你喜欢
  • 1970-01-01
  • 2012-12-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-10-12
  • 2011-07-24
相关资源
最近更新 更多