# 一、我爱 MVC 4！

“这是你最后的机会。在这之后，就没有回头路了。你服用蓝色药丸——故事结束，你在床上醒来，相信任何你想相信的事情。你吃红色药丸——你呆在仙境里，我给你看兔子洞有多深。”*中的
语素*

我写网站很多年了。回到 1997 年，我用 Cold Fusion 1.0 为当地一家印刷公司写了我的第一个电子商务网站，当时我觉得那个产品很棒。我跳槽去了一家公司，这家公司在臭名昭著的网络泡沫期间开发了很多网站，几年后破产了。在那段时间里，我们做了很多经典的 ASP 开发，我发现在那个模型中有很多值得喜欢的地方。我们根据需要在 ASP 和冷融合之间来回切换。在网站和电子商务 1.0 的早期，我们学到了很多关于如何简化网站的知识。随着人们使用 9600 波特调制解调器访问网站，它必须尽可能小且高效，100 KB 是我们的页面大小上限。

2002 年，微软发布了 ASP.NET，开发人员不得不学习一个全新的系统，这个系统与我们刚刚掌握的 ASP 非常不同。这种新模式看起来很像 Windows 窗体编程模式，一旦我们克服了学习曲线，生活就会暂时好起来。我们了解了视图状态和会话管理的弊端，以及所有可能让您出错和页面膨胀的东西。但是随着连接变得更快，我们的页面开始增加一点额外的重量，这真的没有太多困扰我们。

关于 ASP.NET 网络表单，一直困扰我的一件事是它生成的 HTML 你仔细看过吗？试图追踪这段代码是一场噩梦。创建 JavaScript 时，字段名和标识总是一个问题。你总是要问自己，“我必须在这个字段前面加一个‘CTL 100 _’吗？”但是我们忍受了它，因为这就是 ASP.NET 的工作方式，它比另一种方式更好。

当 MVC 的最初版本出现时，我对它们并不太感兴趣。直到我看了 MVC 3 和新的 Razor 语法，我才开始感兴趣。随着我对它的研究越来越多，我对 MVC 项目给 ASP.NET 带来的新的编程模型有了更多的了解。有一种风格和简单性让我想起了经典 ASP 的美好旧时光，但它具有现代应用程序的所有新功能和丰富性。

伴随着 MVC 3 而来的是实体框架和代码优先，这些特别的想法确实引起了我的共鸣。我的编程哲学倾向于我所说的“DDD”——数据库驱动的开发。当我接近一个项目时，我倾向于从数据库、模型和实体的角度考虑问题。在我开始进行半粗糙屏幕设计的同时，我脑子里通常有一个很好的想法，那就是如何为应用程序存储数据。MVC 允许我遵循我通常的开发路径，并向许多其他可能性开放了我的开发。我恋爱了。

我意识到 MVC 不是最终的开发工具，也不是每个人都会喜欢它。但是作为一个在以微软为中心的商店从事网络开发多年的人，我不得不说这是我们很久以来最好的一次。