0

最近转向 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));

目前一切都很好。

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

4

1 回答 1

2

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

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

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

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

于 2013-10-13T09:08:52.767 回答