asp.net 从2001到2007年,应该说都是很伟大的 web 企业应用交互软件开发工具。但是所有 web 服务器端交互应用开发工具都有所谓的“无状态”的毛病,并不适合强用户操作体验的应用。你在asp.net 页面“回发”时发现无法直接地找到原来的 Model 对象了,这就是它的特性,它就是一遍遍刷新、重建的机制,虽然 asp.net 尽量做得跟 winform 似地好用,但是终于还是放弃了这个复杂的框架。如今我们在桌面应用、手机平板、网站开发中都用 web 前端开发技术作为主要的 UI 开发技术,效率提高至少十倍,能保证用户体验。你可以从这个例子就看到,最起码地,前端技术直接把 Model 作为 json 传给后台服务就可以了,而 asp.net 却要回发页面、重建所有控件、手动用各个控件的属性值重建你的 Model 对象......然后还要再来刷新前端页面。
asp.net 其实无法高效率地保持 Model(ViewModel),因为它是“一遍遍刷新页面”的机制的,它不是桌面应用、也不是前端应用,它是纯粹的 web 服务器端页面应用,所以是最慢速、最累赘、最复杂的东西。假设 Model(ViewModel)就在前端,例如 http://knockoutjs.com/examples/cartEditor.html 所示的那样直接在浏览器客户端维系对象,那么复杂页面的用户使用体验也可以非常爽,比桌面应用还好,谁还用 asp.net 来做企业应用开发呢?