代码改变世界

走到尽头的技术-MVC

2012-02-24 16:48  jinze  阅读(600)  评论(0编辑  收藏  举报
MVC技术是一种WebApplication设计技术,相比于传统Web应用程序,MVC可以使程序结构更加清晰,他采用 Model,View,Controller 来管理和架构我们的Web资源,将不同的请求(request)导向不同的Controller(Strutes 中,这个控制器被称作 Action),不同的View(JSP,ASP,ASP.NET )页面负责将服务器控制器(Action)处理的结果显示出来。Modena则是一个简单·基本的javabean类。
      MVC的核心优势,在于将请求和视图分开,使得后台开发人员可以专心致志的完善业务实现,前端工程师则尽其所能为用户提供更良好的用户体验。这种设计模式,相对于之前用JSP+Javabean来处理业务和呈现,技术上几乎是一次飞跃,突然之间,好像大家都爱上MVC了,不光是Java程序员,甚至微软也不甘落后,很快推出了ASP.NET 版本的MVC实现,突然之间MVC的春天来了。
但是,IT科技的发展是如此之迅速,今天,回过头来重新审视MVC,至少有如下理由证明MVC已经开始落后于时代了。
      异步提交,正在逐渐取代同步提交,在MVC技术发展的黄金时期。,也就是2008年左右,另外一种可以实现更好用户体验,的 技术逐渐出现在我们的视野中,就是大名鼎鼎的Ajax(比较著名的例子是GMail),Ajax技术并不是单一一种技术,而是javascript技术(负责动态网页)、DOM技术(负责呈现数据)、XMLHttpRequest技术(负责从服务器端得到数据)、CSS(负责位页面数据指定样式)的综合运用,通过这种技术,前端表现成为开发人员可以发挥更大影响的地方,之前,在MVC时代和之前的JSP+Javabean时代,开发人员一般是不直接参与到页面的设计中来的,他们一般会使用页面设计人员提供的模板,或者,将完成好的Web应用直接提交给页面设计人员来优化,这样做,看似是完美的劳动分工,实际上,却是将开发人员和用户体验分离开来,相对于专业的页面设计人员,更了解需求的开发人员实际上更了解用户在页面上想要、需要看到东西。在MVC架构中应用Ajax技术,是可以的,但是这种实现单纯只是技术上可行,但是,意义却不大,原因有两点:
      1,采用了Ajax架构之后,需要呈现数据的页面已经不像之前的那么多了因为一个页面已经可以呈现更多的数据了,而且是以一种更加友好的方式来呈现,,实际上,我们可能只需要一个index.html 或许连 index.jsp 或者index.aspx 都不需要。
      2,采用了Ajax之后,已经不需要多少Action来处理数据了,这并不是说数据不需要后端处理和得到,而是说,异步刷新的页面无法得到用Action处理的数据,MVC中,页面数据大部分是通过request来传递的,javascript是没有办法直接得到request中的数据。
      Ajax技术产生的影响,不止是将MVC,一种才诞生几年,而且如日中天的技术推到尽头,而且,使得很多于此相关的技术都变得边缘化了,比如,于JSP相关的若干技术 ,诸如 jslt技术,也就是jsp页面标签技术
皮之不存,毛将焉附,JSP技术都变得如此边缘,基于JSP技术的相关技术,就风光不再了。
      虽然以JSP为核心的同步刷新技术,已经无法提供更出色的用户体验,但是这些技术,在用户体验要求不是很高的地方,比如,各种各样的MIS(各种各样的OA等等)系统中,依然非常有价值,并且将继续保持旺盛的生命力,毕竟,使用异步刷新技术,对开发人员的要求比较高,因为开发人员不仅需要java或者C# ,还需要CSS,Javascript方面的知识,而且,代码量也远高于使用同步刷新完成的页面,同时,在同步刷新及MVC方面,已经有了非常丰富的API,比如Struct2 和Spring MVC。但是,新技术已经来了,就让我们放开怀抱去拥抱这项技术吧。
   
用电子邮件联系Andy