作为一个开发者,我们不希望技术很快的更新,这是因为我们还没有完全掌握原来技术的基础上,又要掌握新的技术,作为天天忙忙碌碌的程序员,我们不希望还要额外的时间来学习,尤其是当我们的年龄,逐渐的变大的时候,但是有时候跟上时代的步伐也会给我们带来很多的好处,我今天要说的主题就是让我们从MVC 2 升级到

MVC3 吧,因为他带给我们太多的是惊喜,而不是学习的苦恼。

可能有的园友要嗤之以鼻了,每个技术的更新都会带来新的学习点,我们总是要不断的学习来跟上他们,我们会很累的?的确,作为一名程序员,我们每天总是睡得很晚,起的很早,很多人喜欢叫我们夜猫子,因为只有在夜深人静的时候,我们才能投入精神来学习而不被打扰。但是就算我们不想每天这么累,我建议每个MVC人员,从MVC 2 升级到MVC 3 吧,因为他能改善我们很多的工作时间,增加工作效率,甚至会减少很多bug。你不信,那么我们就一起来分析一下,究竟是升级MVC 3带来的好处多,还是浪费我们学习的时间多吧。

asp.net MVC 2发布已经过去了很长时间了,我们也是从它开始来真正的开发我们的网站应用程序的,那么我们想一下,MVC 2 带给我们的有哪些不便之处呢?我来

列举几个比较重要的缺点吧。

  1. 如果你想在MVC 2中控制每个Action 的执行是否会出现异常,你会怎么做呢?你可能的做法就是定义一个可以处理异常的Attribute,然后分别应用到每个Action或者是Controller上,来捕获出现的异常信息?或者还有一种方法就是定义一个基类,让所有的Controller都继承自这个基类,而我们在基类中捕获异常。据我个人所知,大多数人采用的也就是这两种处理异常的方式,但是我们来考虑一下它的缺点。第一个处理异常的方式很明显就是啰嗦,第二个呢,使我们在Web  form时代通用的方式,肯定不错。但是我们从另一个方面来想一下,如果说我们除了要捕获异常信息之外,还要添加验证,那么应该怎么做呢?
    C#是单继承的,这个问题留给园友们来思考?在MVC 3中这个方式得到了解决,就是全局Attribute
  2. 在MVC 2中,如果你想添加一个后台管理系统,你会怎么办呢?其实这个有一个很好的解决办法,就是另外添加一个MVC 应用程序,用来作为后台管理系统?其实这真的是很好的处理方式,虽然我个人没有采用MVC 2开发过任何的系统,但是我还是非常欣赏这种折中的处理方式。但是这同样带来了另外一个问题,所有的资源文件得不到重用,甚至是css文件?你不得不重新建立各个目录来进行存放,还有一个非常直接但是非常重要的问题摆在了面前?htmlhelper类可以在后台管理系统中访问到前台页面吗?我们可以在同一个IIS目录下访问这两个不同的应用程序吗?我想是不能的,首先htmlHelper类中的方法是无法应用到前台页面的,还有在同一个地址中是不可能访问到这两个不同的应用程序的。这会带来非常严重的问题,毕竟在后台无法访问到前面页面就是客户无法接受的问题?我们又能如何处理呢?MVC 3中对应的就是Area
  3. Razor视图也是一个我们不得不提的重要因素,我们都知道MVC 2遵循的是web form时代的<%%>方式,这令我们在前台构造复杂的逻辑分离时是十分痛苦的?如果说你想在前台显示一个列表,那么foreach是我们都会采用的方式,我们知道在foreach中我们会使用到多少个<%%>,这会令我们的程序非常难懂,并且非常容易出错。而Razor视图就是利用@符号作为处理方式,简洁的方式绝对是我们想象不到的好用,只要你用了它,相信你会爱上他。
  4. MVC 3 使用到了Nuget,这是一个非常好的扩展插件,可以自动更新我们程序的引用到它的各个地方,甚至包括web.config配置文件。
  5. 在MVC 3中母板页没有了.master,所有文件的后缀名都是.cshtml,这当然会使我们收益,毕竟只要我们愿意,可以指定任何文件作为母板页,哪怕只是为了单纯的嵌套使用。
  6. MVC 3增强了htmlHelper类,让我们的开发更加的流畅。
  7. 依赖注入一直是我比较喜欢研究的一门技术,当然我现在还没有完全的入门依赖注入,但是我深刻的感受到MVC 3对依赖注入的完美支持,只要你愿意,任何IOC框架都可以应用到MVC 3程序中,从而实现更好的替换功能。

说了这些MVC 2中 相对MVC 3所不具有的缺点,相信你也可以更加感受到MVC 3真的值得我们去学习,虽然说现在MVC 4已经出来了,但是我还是建议你学习一下MVC 3,因为越级的学习会给我们以后的深入带来很大的困扰。虽然说我介绍的很大概,但是我想同是作为程序员的你,一定可以理解我说的是什么意思。尤其是MVC 3 所带来的全局Attribute以及Area两种技术的更新就可以让我们有足够的勇气去面对升级带来的任何麻烦。相信我吧,升级一下自己,带来的可能是更大的收获。

最后,展示一下MVC 3的razor语法,相信你会深深的爱上它。

 1 @{
 2     Layout = "~/views/shared/_layout.cshtml";  3 }  4 @using MvcWeb.Extensions  5 <!DOCTYPE html>  6 <html>  7 <head>  8 <title>Index</title>  9 <script src="http://www.cnblogs.com/Scripts/jquery-1.5.1.js" type="text/javascript"></script> 10 <script type="text/javascript" src="@Url.Content("http://www.cnblogs.com/Scripts/jquery-1.5.1-vsdoc.js")"></script> 11 <script type="text/javascript" src="@Url.Content("http://www.cnblogs.com/scripts/jquery.validate.js")"></script> 12 </head> 13 <body> 14 <div> 15 <form id="form" action="" method="post"> 16 <input type="text" id="user.Name" name="user.Name" /> 17 @{ this.Jquery().Validations().Required("user.Name", "用户名是必填的 亲");} 18 <select name="user.Gender"> 19 <option value="">Please select...</option> 20 <option value="1">Male</option> 21 <option value="2">Femle</option> 22 </select> 23 @{ this.Jquery().Validations().Required("user.Gender", null);} 24 <input type="text" name="user.Email" /> 25 @{this.Jquery().Validations().Element("user.Email").Required("邮箱是必填的").Email("请填写正确的邮箱格式");} 26 <input type="submit" value="提交" /> 27 </form> 28  @{ 29  @:fdjkfdjkf 30 // hjkhkjhkj@:fdfdfdf 31 <text> 32  dsdsd 33  dsdsd 34  dsdsd 35 </text> 36 37  } 38 </div> 39 <script type="text/javascript"> 40 @Html.Raw(this.Jquery().Validations().ToScripts("#form")) 41 </script> 42 </body> 43 </html>

razor语法一定会带给你很多的惊喜

转载于:https://www.cnblogs.com/lijiasnong/p/4740047.html

紧跟时代步伐,让我们拥抱MVC 3相关推荐

  1. 紧跟时代步伐,朗强HDMI分布式矩阵可以通过手机来控制

    近年来,随着AV与IT不断的深入融合,分布式技术成为信号处理行业的一大热点.朗强科技作为音视频信号行业领导者,一直以来不断加大研发力度,不断推出引领市场潮流的产品.现隆重推出一款集大屏拼接.显示控制功 ...

  2. 朗强:紧跟时代步伐!HDMI分布式矩阵可以通过手机来控制!

    近年来,随着AV与IT不断的深入融合,分布式技术成为信号处理行业的一大热点.朗强科技作为音视频信号行业领导者,一直以来不断加大研发力度,不断推出引领市场潮流的产品.现隆重推出一款集大屏拼接.显示控制功 ...

  3. 海天酱油紧跟互联网步伐,线上线下融合发展

    在我国,传承百年的中华老字号企业,在现代化的管理运营中正在发挥越来越大的市场价值.调味品行业中,海天味业是其中的典型代表.凯度消费者指数在6月发布了2019年亚洲品牌足迹最新报告,海天味业以5.2亿消 ...

  4. 跟上时代步伐的慢直播神器MZB01发布

    跟上时代步伐的慢直播神器MZB01发布 随着直播行业的兴起,慢直播逐渐成为一种人们喜爱的看点,比如直播平台上经常可以看到的景区直播,实时交通状况等等.这些都是采用了直接拉去监控摄像机的画面,然后推到直 ...

  5. 数商云:SCM系统助力医疗器械企业紧跟时代变局 搭建供应链管理平台

    医疗器械产业是生物工程.电子信息和医学影像等高新技术领域复合交叉的知识密集型.资金密集型产业.作为关系到人类生命健康的战略性新兴产业,在庞大而稳定的市场需求下,全球医疗器械产业长期以来一直保持着良好的 ...

  6. “互联网+”的时代,易佳互联也随着时代步伐前进着

    一谈到互联网,我想大家的心里都不陌生,咱们总理工作报告中提出,制定"互联网+"行动计划,推动移动互联网.云计算.大数据.物联网等与现代制造业结合,促进电子商务.工业互联网和互联网金 ...

  7. 农村电商APP软件开发 电商新农村紧跟时代脚步

    互联网技术的深入发展让电子商务走向了高潮,不过在一些交通闭塞的乡村地区,电商发展还处于初期阶段.大量农产品从生产到流通渠道的变革,让互联网+农产品成为新型农业发展的重要手段,不仅增加了农业产值提高了农 ...

  8. 告别“古典时代”,AI开始拥抱接地气的商业模式

    1956年8月,以香农为代表的一群科学家在达特茅斯学院,围绕着"用机器来模仿人类学习以及其他方面的智能"这个主题,创造出人工智能(Artificial Intelligence)这 ...

  9. 与时代并肩的数字创新者

    简介:与时代并肩的数字创新者 数字创新的时代,每个行业都涌现出一批"数字创新者".他们在这个时代里站出来,创造了新观念.新赛道.新价值,他们彼此并肩,更与时代并肩. 这个五月,阿里 ...

最新文章

  1. R语言构建xgboost模型:交叉验证(cross validation)训练xgboost模型,配置自定义的损失函数评估函数并使用交叉验证训练xgboost模型
  2. 简单的群体测试方案C++代码(Group testing against Covid-19)
  3. Macos 12 打不开微信解决方案
  4. 【BZOJ 4007】[JLOI2015]战争调度 DP+搜索+状压
  5. Linux添加磁盘和挂载
  6. 关于TCP/IP协议
  7. UDP socket 编程示例
  8. 哪个软件测试上传速度最准,哪个软件测网速准确,360怎么测网速
  9. java对大陆身份证号码验证
  10. JAVA——算法训练 调和数列问题
  11. linux 培训感谢信,应用文(考试)应用文(考).doc
  12. 【Unity】 HTFramework框架(十四)Audio音频管理器
  13. dedecms安全漏洞之/include/common.inc.php漏洞解决办法
  14. 上海市提取公积金攻略
  15. LISP excel 冻结拆分_[转载]Visual LISP与Excel电子表格
  16. stm32f105vct6例程_STM32F105VCT6
  17. RBAC数据库的E-R模型
  18. C语言——十进制转化为二进制
  19. 运行moveit报错
  20. Java编码规范十大军规

热门文章

  1. eureka服务续约机制
  2. 请谈一下Spring MVC的工作原理是怎样的?
  3. 【软考-软件设计师】计算机存储器的分类
  4. Java transient关键字使用详解
  5. 类变量与实例变量辨析
  6. 【学亮IT手记】jQuery DOM删除操作
  7. Struts2框架执行流程
  8. Qt状态机框架介绍(二)
  9. 【小米校招笔试】一个数组是由有序数组经过n次循环移动后所得,请你用最快速度查找某个元素位置
  10. sqlplus几个存储过程执行变量值窜掉了_基于大数据的冷连轧过程控制优化技术研究...