`
dawuafang
  • 浏览: 1104988 次
文章分类
社区版块
存档分类
最新评论

ASP.NET MVC案例教程(基于ASP.NET MVC beta)——第七篇:闲话ASP.NET MVC

 
阅读更多

ASP.NET MVC案例教程(基于ASP.NET MVC beta)——第七篇:闲话ASP.NET MVC

2008-11-05 17:04 by T2噬菌体,29625阅读,121评论,收藏,编辑

摘要
本文作为《ASP.NET MVC案例教程》的完结篇,仅从个人角度,发表一些对ASP.NET MVC框架的看法。并且在最后会附上本系列文章的Demo下载。

前言
写这篇文章的目的,是想总结一些东西,以帮助朋友们更好的使用这个框架。但是,我又不像把官方列举的哪些优势、功能翻译过来列举在这里。所以,我想干脆我就纯从个人观点上对这个框架评论一下吧。说的不好的,不对的还请批评指正。^_^

ASP.NET MVC——螺旋进步的产物
对于微软为什么要推出ASP.NET MVC,我们是无从得知的,也许是因为JavaEE平台上有Struts,也许是因为MVC太流行,也许微软是想使得自己的Web App平台更完善,总之我们只能猜测。但是如果回顾一下微软的Web App平台进化过程,还是很有意思的。

ASP——微软最早为Web开发做出的贡献可能就是ASP了,这个动态语言把动态网页开发的难度空前降低了。但是,在很多人兴奋的用ASP写着一个又一个动态网页时,它的缺点渐渐暴露:语言过于简单,没有面向对象支持、没有好的IDE支持、动态脚本和静态HTML杂糅在一起,使得修改及维护极为困难。
Web Form——说实话,即使是用现在的眼光看,微软推出的Web Form编程模型确实是很有创意,也很实用。微软开创性地将桌面应用的开发模式引入Web应用开发:拖控件、写事件处理、运行...一切都那么美好,而且前段静态代码和后端程序完全隔离在两个文件里,并且用户可以使用.NET平台上任意一种语言进行后端编程。对程序员来说,使用C#进行编程比使用ASP实在是舒服太多了。所以,Web Form模型可以说成为.NET Web App开发的代名词,所有基于.NET平台的Web开发人员都熟悉并接受了这种模型。
ASP.NET MVC——就在Web Form大行其道时,微软推出了ASP.NET MVC。严格说,ASP.NET MVC和Web Form是不具有可比性的,Web Form是一个完整的新型模型,从顶层到底层是一整套的东西,而ASP.NET MVC只是给Web Form穿了件MVC样子的外套,它应该是基于Web Form的一种编程方式模型扩展。但是,从开发人员看,ASP.NET MVC的推出确实大大改变了我们的开发方式,很多Web Form下的方式不被提倡了(你仍可以用,因为ASP.NET MVC也是基于Web Form的),例如,曾饱受赞扬的服务器端控件再度被抛弃,转而再次使用客户端控件,事件驱动模型被抛弃,转而使用了类似传统的Url跳转处理模型。而且在数据验证等方式上与Web Form下提倡的方式有了很大变化。

如此看来,真像是一个轮回,似乎ASP.NET MVC又把我们带回到了ASP时代:服务器端模型不让用、事件驱动机制不让用、类似Desktop App的开发方式不让用...我们似乎从Web Form回到了传统的ASP时代。但是,真的是这样吗?当然不是!
只要稍微用一下,就知道虽然ASP.NET MVC提倡我们废除Web Form下的很多东西和习惯,但是绝不是让我们“回归原始”,如果非要说是一个轮回,那也应该说是一个螺旋式的轮回,是上升式的轮回。
记得主义哲学中有个很经典的命题:对于新事物来说,道路是曲折的,前途是光明的。也许,Web App模型的发展就印证了这个观点吧。也许,服务器端控件、事件驱动模型这些东西一开始就是不适合Web App的,微软走了很多弯路,现在找到了正确的方向。抛弃的痛苦的,我们要抛弃曾经认为多么习惯并且倾注了大量心血的东西,但是,事物被否定后,剩下的的一个蜕变出的新事物,是一个更优秀的东西。
例如,我们抛弃了用了多年的务器端控件、事件驱动模型……但是我们得到了低耦合的、关注被分离的、符合MVC模型的新的Web模型。要敢于否定,才能获得新生。微软是,我们也是。

ASP.NET MVC带来的变化
下面,我们看看ASP.NET MVC到底让我们否定什么?又能得到什么。
1.服务器端表单控件。
由于ASP.NET MVC的特质,服务器端的表单控件不再被提倡使用,例如我们的文本框,不再使用asp:TextBox,而是使用传统的input,或直接让Html.TextBox生成。总之,很多服务器端控件被我们废止了。甚至GridView这样曾给我们带来无限快感的老朋友,也不再被提倡使用。但是,并不是说不能用任何服务器端控件,例如,为了实现母版,我们的ContentPlaceHolder还是必须要使用的。
2.事件驱动模型。
既然服务器端表单控件已经不提倡使用了,事件驱动模型自然也不被提倡,两者本来就是相辅相成的。在ASP.NET MVC中,当某个按钮被点击,你不要再习惯性想到应该在相应的aspx.cs中有个时间处理方法,你应该想到的是该有某个Controller中有个Action来处理这个事件。实际上,在ASP.NET MVC中,提倡不要在aspx.cs中写任何逻辑代码。甚至应该当他们不存在。
3.数据绑定
对于列表式表格数据,你一定习惯了GridView的数据绑定,可是,从你使用ASP.NET MVC开始,这不在被提倡了。你应该自己处理数据的显示。当然,我们也可以期待未来的ASP.NET MVC正式版中会有一个强大的Helper来帮我们做数据显示。

ASP.NET MVC的收益
你一定想知道,我们为使用ASP.NET付出了如此惨烈的代价,那么我们能得到什么?从我个人认为,你至少得到了以下东西:
1.清晰的、关注被分离的代码。
2.更容易的测试及维护。
3.更符合MVC的表示层。
4.你可以向Java程序员自豪的说:我现在也用MVC模式了,而且不用写任何XML!

总结
好了,到这里,这个系列就结束了。
在这个系列开篇里,我曾经说,我做这个系列的唯一目的只是让还徘徊在ASP.NET MVC门外的朋友快速入门,快速上手,快速学会使用这个框架做应用,所以,这个系列一直是在“实用”的指导思想下写的。它不够全面,没有涉及到ASP.NET MVC的方方面面。但是,我相信现在你已经有能力去自己学习那些“方方面面”了。当然,它也不够深入,没有讲解底层的原理。但是,现在的你一定也可以随着实践经验的基类,慢慢去研究它的原理了。
总之,只要你能通过这个系列的文章,学会使用ASP.NET MVC的基本方法,并已经开始试着做Demo了。那么,我的目的也就达到了。
最后,附上本系列文章的Demo:MVCDemo.rar

学习ASP.NET MVC的资料推荐
1.微软官方ASP.NET MVC QuickStart文档。http://quickstarts.asp.net/previews/mvc/
2.ScottGu的博客。http://weblogs.asp.net/scottgu/
3.lulu的ASP.NET MVC入门系列。http://www.cnblogs.com/QLeelulu/archive/2008/10/05/1303997.html

分享到:
评论

相关推荐

    Asp.Net MVC案例教程

    Asp.Net MVC案例教程 Asp.Net MVC案例教程 Asp.Net MVC案例教程 Asp.Net MVC案例教程 Asp.Net MVC案例教程 Asp.Net MVC案例教程

    ASP.net MVC3 中文教程

    ASP.net MVC3 中文教程ASP.net MVC3 中文教程ASP.net MVC3 中文教程ASP.net MVC3 中文教程

    ASP.NET MVC项目实例

    ASP.NET MVC作为微软官方的.NET平台下MVC解决方案,自诞生起就吸引了众多.NET平台开发人员的眼球。ASP.NET MVC从一开始的设计思路就与Struts不同,它的映射是利用路由配置而非xml,从而大大降低了开发复杂度,并且比...

    ASP.NET MVC 案例教程

    ASP.NET MVC 案例教程 ASP.NET MVC 案例教程 ASP.NET MVC 案例教程

    ASP.NET MVC案例教程

    本系列文章作为一个ASP.NET MVC的入门教程,将不会长篇大论介绍其中的概念及理论。而是通过案例实践来学习ASP.NET MVC。在这系列文章中我将逐步完成一个“公告发布系统”。我的写作策略是:先动手做,遇到需要解释...

    ASP.NET MVC企业实战源代码Chapter12.rar

    本书共分为12章,以符合初学者思维的方式系统地介绍ASP.NET MVC的应用技巧,并结合实际项目详细地介绍如何基于ASP.NET MVC构建企业项目。通过本书的学习,读者可以全面掌握ASP.NET MVC的开发,并从代码中获取软件...

    基于ASP.NET MVC项目实例

    基于ASP.NET MVC框架的学习项目,包含MVC的框架的设计思路,通俗易懂学习MVC框架,需要VS2010及以上版本打开,初学者可以快速理解MVC的构思以及开发。

    ASP.NET MVC4 教程(完整版).pdf

    ASP.NET MVC 4 is a framework for building scalable, standards-based web applications using well-established design patterns and the power of ASP.NET and the .NET Framework. It installs side-by-side ...

    [ASP.NET MVC] ASP.NET MVC 4 实战 (英文版)

    ASP.NET MVC 4 in Action is a hands-on guide that shows you how to apply ASP.NET MVC effectively. After a high-speed ramp up, this thoroughly revised new edition explores each key topic with a self-...

    asp.net MVC4 CMS

    asp.net MVC4 CMS 完整的源代码,学习和提高asp.net mvc4可以参考一下。

    【免费】ASP.NET MVC5 高级编程[附源码].rar

    本书的作者加洛韦不是Microsoft的ASP.NET MVC专家,就是ASP.NET MVC领域的智者,所以作为一本实用的教程,不但强化开发人员对概念的认识,也帮助开发人员创建自己的应用程序。 主要内容 解释了ASP.NET MVC框架与...

    ASP.NET MVC 4高级编程(第4版)清晰完整PDF版

    MVC专家“梦之队”对ASP.NET MVC 4的全新诠释 由Microsoft专家和极受敬重的软件开发社区负责人撰写的《ASP.NET MVC 4高级编程(第4版)》将带您学习最前沿的Web框架:ASP.NET MVC 4。本书开篇简要介绍ASP.NET MVC框架...

    asp.net MVC2 教程

    最新的MVC2教程。。网上最稀少的 asp.net MVC2 教程.机会难得。

    ASP.NET MVC 4高级编程 第4版PDF.rar

    ASP.NET MVC 是微软官方提出的一种Web开发框架,通过M是模型(model)-V视图(view)-C控制器(controller)l来设计创建Web应用程序。...在实际的大型ASP.NET MVC案例网站NuGet Gallery中演示所有知识点;

    基于ASP.NET MVC的三层架构博客网站系统源码

    资源名:基于ASP.NET MVC的三层架构博客网站系统源码 资源类型:程序源代码 源码说明: 使用ASP.NET写的三层架构博客系统 带SEO优化 完整代码 适合学习使用 适合人群:新手及有一定经验的开发人员

    Pro ASP.NET MVC 5 Platform(Apress,Adam.Freeman,2014)

    The power of ASP.NET MVC 5 stems from the underlying ASP.NET platform. To make your ASP.NET MVC applications the best they can be, you need to fully understand the platform features and know how they ...

    ASP.NET MVC 5入门指南(中文PDF+源码)

    ASP.NET MVC 5 - 创建连接字符串并使用SQL Server LocalDB 7. ASP.NET MVC 5 - 从控制器访问数据模型 8. ASP.NET MVC 5 - 验证编辑方法和编辑视图 9. ASP.NET MVC 5 - 给电影表和模型添加新字段 10. ASP.NET MVC 5 ...

    [ASP.NET MVC] ASP.NET MVC with Entity Framework and CSS (英文版)

    [Apress] ASP.NET MVC with Entity Framework and CSS (英文版) [Apress] ASP.NET MVC with Entity Framework and CSS (E-Book) ☆ 图书概要:☆ This book will teach readers how to build and deploy a fully ...

    AngularJS开发ASP.NET MVC

    AngularJS 开发 ASP.NET MVC.

    Pro ASP.NET MVC 5 (精通ASP.NET MVC5框架) 中文+英文+配套源代码

    Pro ASP.NET MVC 5 (精通ASP.NET MVC5框架) 中文+英文+配套源代码

Global site tag (gtag.js) - Google Analytics