开发速度 - 编译 mvc Web 应用程序"on the fly"



最近迁移到 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));

现在一切都很好。

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

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

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

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

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

相关内容

最新更新