开发速度 - 快速编译mvc Web应用程序""

时间:2013-10-13 09:00:36

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

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

经过十多年的专业编程,我已经养成了一定的习惯。 我一直在使用asp.net网站项目,webforms,它允许我更改代码隐藏,ctrl + s,alt-tab到浏览器,点击f5,并查看结果。 有时候,但并非总是如此,它会回收应用程序,破坏我的会话,并发送回登录页面。

开展一个边做边学的mvc 4项目我对编译周期感到非常沮丧 - 我想这主要是因为它不是我习惯的。

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

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));

现在一切都很好。

与使用网站项目开发相比,代码更改,等待编译,刷新浏览器,登录,测试功能(和重复)的步骤似乎比以前花费更长的时间。 有没有办法加速这些类型的反复试验? 或者我只是错了?

1 个答案:

答案 0 :(得分:2)

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

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

只有在最后,您才会运行完整的项目以查看最终输出。

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