现在使用asp.net做网站会不会很落后啊?
使用MVC框架会不会好一点?
------解决思路----------------------
asp.net mvc基于asp.net,更进一步,微软asp.net 5.0提出one asp.net的概念,即webforms webapi mvc等不同框架的界限被打破,一个asp.net程序可以自由选择它们或者它们的组合。
------解决思路----------------------
现在最好用MVC模式,因为asp.net网站是把前台与后台的程序捆绑在一起,这种技术已经落后了。
------解决思路----------------------
这要看你建哪种类型的网站。
如果你的网页可以“一开始就删除 <form runat='server' />”整个标签,那是一种轻量级无回发的asp.net网站,通常用于一般的信息展示,或者打算支持“单页面、ajax交互模式”的页面开发。
而如果带有这个<form runat="server" />标签,那么通常是用于开发企业级web应用程序。这个时候,你最好使用我在这个帖子
http://bbs.csdn.net/topics/390201513
的回复回复中所写的 VPage 类,以缩短回发时消息尺寸。
asp.net webform 是个很好的设计工具,它使得程序员使用所见即所得的美工工具、使用鼠标拖拉方式来进行 UI 设计,而不是仅仅炫耀什么“手写html代码、手写css代码”。而且如果正确设计程序(比如说如上方式将 __ViewState 留在服务器端处理,而不发送到客户端),那么它的速度绝不比 asp.net mvc、php 程序慢。
asp.net webform 的没落可能有几个原因:
1. 它是企业级web应用程序设计工具,而不是针对简单的展示类网页的,因为它比后者多几十倍的成熟组件支持,并且它有复杂的控件状态管理机制、丰富的事件驱动开发机制。但是这肯定增加了某些只想着学个网页开发知识、然后就到互联网公司去混的前端开发人员的学习门槛。觉得过于复杂。
2. 就是上述 __ViewState 问题一直没有处理好。asp.net 版本升级时,就应该直接地彻底解决这个问题,不再把 __ViewState 放到客户端。因为这种升级并不会让以前的程序遇到什么bug。可是asp.net一直是没有改变,而只是增加了两种需要程序员们去自己开发扩展的方法来“解决”这个问题。可惜大部分程序员对涉及原理性的编程都很懒,而挑剔asp.net起来可是非常积极的。
3. asp.net mvc在宣传时加入了“方便于编写单元测试代码”这种诱人的字眼。可惜我知道,如果针对页面进行自动化测试,显然是asp.net webform更好(完全可以注入每一个页面,让它按照计划自动模拟用户录入、自动回发、然后继续模拟用户录入)。而asp.net mvc宣称的所谓“方便测试”根本不是从界面出发的,不过是纠结于“后端”简单代码的测试。
4. 其实 asp.net mvc 所谓的“更好的职责分离、更容易扩展”是个伪命题,完全是基于其“简单化”的基础之上了。而且分离的结果,是难以理解过度抽象的关系。而 asp.net webform 从表现层控件为核心展开设计,非常完整,耦合适当。(但是那么多控件需要支持自动化UI设计,必然带来有庞大的源代码需要程序员学习)
5. 微软在2006、2007年左右,面对苹果的宣传攻势、面对web新潮流,丧失了自己的方向。它不是把自己的所见即所得的开发平台直接实现在 ajax 之上,反而是去模仿 strust 阵营过气的潮流。微软这种可以集中几千位工程师来研发一个编程平台的大公司尚且如此保守,那么那些只有10几个人的小公司推出的 web 开发平台肯定也只能按照落后的草根文化去搞各种小东西了。