ASP.NET MVC 5 框架揭秘
  • 推荐0
  • 收藏3
  • 浏览813

ASP.NET MVC 5 框架揭秘

蒋金楠 (作者) 

  • 书  号:978-7-121-23781-2
  • 出版日期:2014-08-11
  • 页  数:656
  • 开  本:16(185*235)
  • 出版状态:上市销售
  • 维护人:张春雨
本书以一个模拟ASP.NET MVC内部运行机制的“迷你版MVC框架”作为开篇,其目的在于将ASP.NET MVC真实架构的“全景”勾勒出来。接下来本书以请求消息在ASP.NET MVC框架内部的流向为主线将相关的知识点串连起来,力求将”黑盒式”的消息处理管道清晰透明地展示在读者面前。相信精读本书的读者一定能够将ASP.NET MVC从接收请求到响应回复的整个流程了然于胸,对包括路由、Controller的激活、Model元数据的解析、Action方法的选择与执行、参数的绑定与验证、过滤器的执行以及View的呈现等相关的机制具有深刻的理解。本书以实例演示的方式介绍了很多与ASP.NET MVC相关的最佳实践,同时还提供了一系列实用性的扩展,相信它们一定能够解决你在真实开发过程中遇到的很多问题。本书最后一章提供的案例不仅仅用于演示实践中的ASP.NET MVC,很多的架构设计方面的东西也包含其中。除此之外,本书在很多章节还从设计的角度对ASP.NET MVC的架构进行了深入分析,所以从某种意义上讲本书可以当成一本架构设计的书来读。


基于ASP.NET MVC 5(最新版本);讲述ASP.NET MVC框架最为本质的东西;提供实用的最佳实践;本书上一版销量和口碑均较为出众。
前言
ASP.NET MVC是一个建立在ASP.NET平台上基于MVC模式的Web开发框架,它提供了一种与Web Form完全不同的开发方式。ASP.NET Web Form借鉴了Windows Form基于控件和事件注册的编程模式,使Web应用的开发变得简单而快捷,但是它却使开发人员与Web的本质渐行渐远。ASP.NET MVC是一种回归,它使开发人员可以真正地面向Web进行编程,我们面对的不再是拖拉到Web页面的控件,而是整个HTTP请求和响应的流程。
这不是一本传统意义上的入门书籍
在《ASP .NET MVC 4框架揭秘》出版之后,读者通过多种渠道将他们对本书的看法、建议和意见反馈给笔者。有一些读者觉得本书对他们来说太“深”了,因为他们希望买到的是一本单纯的入门书籍,所以我不得不再次强调——“这不是一本传统意义上的入门书籍”。如果你之前根本没有接触过ASP.NET MVC,并且希望有一本书能够让你在一两个星期内掌握ASP.NET MVC 的基本编程模式,那么笔者觉得选择本书并不是明智的。
笔者个人认为掌握ASP.NET MVC具有3个层次。了解基本的编程模式,掌握Controller和View的定义方式,知道路由如何注册及验证规则如何定义,此为第一层次。第二层次要求我们对ASP.NET MVC框架本身从请求接收到响应回复的整个流程有一个清晰的认识,这包括请求如何被路由、目标Controller如何被激活、Model元数据如何被解析、Action方法如何被执行、View如何呈现等。ASP.NET MVC本身是一个极具可扩展的开发框架,合理利用其扩展性可以解决很多开发中的实际问题,而掌握ASP.NET MVC的最高层次就是凭着对框架本身的运行机制的了解准确地找到相应的扩展点,并创建相应的扩展来解决我们遇到的问题。
本书不是一本ASP.NET MVC入门书籍,而是一本让处于第一层次的读者快速进入第二和第三层次的书。如果你具有进入更高层次的需求,并且有充裕的时间来阅读,笔者坚信你一定能够通过此书获得其他同类书籍难以提供的东西。
不少人觉得本书过于“深入”,但笔者个人宁愿说本书“走得更远”。虽然本书比其他同类书籍更加近距离地触摸到了ASP.NET MVC 框架的内核,但就其内容本身来说,笔者认为本书并没有什么“深不可测”的东西。尽管本书不是一本纯粹意义上的入门书籍,但是笔者绝不会根据读者个人的技术水平将其排除在本书的读者范围之外。如果读者具有基本的.NET方面的知识储备,并且从事过简单的Web开发,阅读本书不会有太大的障碍。
这是一本讲述ASP.NET MVC框架本质的书
很多.NET开发人员都在抱怨微软开发技术过快的更新频率让他们无所适从,其实他们看到的只是单纯的版本升级而已,一些本质的东西一直是“稳定”的。微软推出.NET战略已经十多年了,CLR却只有4个版本而已。最新版本的ASP.NET虽然表面上已经看不到太多最初的影子,但是整个请求处理的管道一直未曾改变。对于一项开发技术,只要我们了解了它最根本性的一些东西,不但不应该惧怕其高频率的版本更替,而应该热烈拥抱它。本书力求将关于ASP.NET MVC框架最根本的东西带给大家,而不是罗列一些简单的编程技巧。

这本书与《ASP .NET MVC 4框架揭秘》有何不同
本书针对最新版本的ASP.NET MVC ,所以ASP.NET MVC 5提供的新特性和对ASP.NET MVC 4现有特性的改变自然体现在本书之中。通过微软“官方”渠道发布的信息我们知道,“特性路由”和“认证过滤器”是ASP.NET MVC 5提供的两个新特性,我们在本书中会通过单独的章节(第13章“特性路由”)来对特性路由作详细讲解,针对认证过滤器的介绍则放到新增加的一章(第12章“过滤器”)中。
除了这些通过官方渠道了解到的改变之外,其实微软在ASP.NET MVC 5框架内部作了很多的改进,这些东西只有当我们深入去分析其源码时才有可能发现。这些“不为人知”的内容也包含在本书之中,如果你手中正好有一本《ASP.NET MVC 4框架揭秘》,在阅读的时候对照一下就知道了。
本书除了反映ASP.NET MVC 5本身的改变之外,还对前版一些遗漏掉的知识点进行了补充。为了让读者更好地理解本书的内容并尽可能地迎合大多数人的思维方式,我们在写作过程中对整本书的结构作了调整,同时对一些表达方式作了相应的改变。
和大部分ASP.NET MVC的书籍一样,《ASP.NET MVC 4框架揭秘》利用一个单独的章节来介绍Web API,这种做法实际上给很多读者造成了一种误解,让他们觉得ASP.NET Web API仅仅是ASP.NET MVC的附属产品。实际上两者不但在运行上使用不同的消息处理管道,并且这两个管道在设计上也是截然不同的,所以本书中找不到任何关于ASP.NET Web API的内容。如果你希望深入系统地学习ASP.NET Web API,可以考虑本书的姊妹篇《ASP.NET Web API 2框架揭秘》。
这是一本实用的书吗?
可能有人觉得这本剖析ASP.NET MVC框架运行原理的书没有什么“实际”的意义,因为我们每天的日常工作就是编程,知道了ASP.NET MVC从请求接收到响应回复之间整个处理流程并不会对我们的工作造成实质性的改变,这是一种极端错误的想法。学习一种软件开发技术就像是练一门功夫,不仅要苦练攻敌招式,还得研习内功心法。编程模式是攻敌招式,框架背后的设计原理是内功心法,没有内功心法支撑的招式只能是花拳绣腿,而具有极高内功修为的高手却能“无招胜有招”。

除此之外,由于我们编写的程序最终是在ASP.NET MVC框架上运行的,程序的高效性决定了它是否能够最大限度地“迎合”框架的运行机制,所以了解ASP.NET MVC框架的运行原理有利于我们写出高质量的程序。

很多读者都问笔者为何有那么多时间和精力去深入学习多个不同的开发框架(比如WCF、ASP.NET MVC和ASP.NET Web API等),其实这和从事的工作有关。多年以来,笔者在公司所作的工作就是设计、开发和维护一套内部的开发框架,这个框架的根本目的在于让我们可以采用一种类似于流水线的项目开发方式,不仅可以提高开发效率,还能提高项目本身的质量并降低对最终开发人员的技能要求,实现的途径就是让最终的开发人员只关心具体业务功能的实现,所有非业务功能都由框架本身来完成。

为了完成这个使命,我们针对.NET平台上的开发技术作了很多扩展。为了能够精准地定位采用的扩展点,我们不得不对开发技术本身有一个深刻的认识,所以深入学习.NET平台主流开发技术是笔者的本质工作之一。为了将这些实用的扩展服务于大众,笔者将这些扩展放到了相关的书籍之中。自然不会将我们做的东西直接共享出来(因为这是违法的),所以书中涉及的这些扩展都经过刻意简化,因为笔者希望的不是让读者直接使用这些扩展,而是根据其体现出来的原理来设计你们需要的扩展。
ASP.NET MVC之外的一些东西
在笔者的周围存着这样的一些人,他们以刚毕业一两年的毕业生为主。他们大都工作勤奋、聪明好学,手中经常捧着GoF的《设计模式》,总是希望在将书中的设计模式应用到具体项目之中,或者希望通过项目的实践来印证他们在书本上的设计模式,但是理论和实践之间的距离总让他们感到困惑。
要从真实的项目或者产品中学习“实用”的软件架构设计知识,先得确定目标项目或者产品中采用的架构思想和设计模式是正确的,而我们参与的很多项目其实被“架构”得一塌糊涂。对于像ASP.NET这样的产品,其基础架构能够在很长一段时间内保持不变,本身就证明了应用在上面的架构设计的正确性,它们不正是我们学习架构设计最好的素材吗?本书对ASP.NET MVC框架的运行机制进行了深入剖析,实际上是将ASP.NET MVC的整个设计展示在读者面前,读者也许可以将本书作为一本“架构设计”的书来读。
很多读者向笔者咨询针对一种新的开发技术,如何才能更加有效地掌握其“精髓”。这是一个关于学习方法的问题,笔者个人采用的学习方法不可能适用于所有的人。尽管如此,本书也或多或少地体现了笔者个人采用的学习方法,所以在论述某个知识点的时候,不但会告诉读者“是什么”和“为什么”,还会告诉读者“如何证明是这样”。换句话说,笔者不仅仅将某个论点抛给你,还会为你展现整个论证的过程。
本书的写作特点
和其他同类书籍作者总是从“静态编程”作为切入点不同,笔者以“动态执行”的视角来审视ASP.NET MVC框架。本书以框架本身处理请求的流程为主线,力求将ASP.NET MVC框架从接收请求到回复响应的整个流程完整而清晰地展现在读者面前。在本书的第1章中,我们设计了一个“迷你版”的ASP.NET MVC框架,其目的在于让读者能够对ASP.NET MVC的执行管道有一个整体的认识,至于组成这个管道的每个环节,则通过后续的章节对其架构设计进行详细介绍,对其执行原理进行深入剖析。
本书具有一个与其他中文原创或者翻译书籍截然不同的特点,那就是几乎所有的术语都采用英文,比如Controller、Action和Model在本书中并没有翻译成中文“控制器”、“操作”和“模型”。因为笔者认为很多术语其实很难找到一个语义完全等同的中文词组或短语与之对应,对于习惯了英文作为“开发语言”的读者来说,强行翻译其实是不必要的。
除此之外,这不是一本纯理论的书,而是一本“实证型”的书,在书中提供了一百多个可供单独下载的实例演示。这些实例在本书中具有不同的作用,有的是为了探测和证明对应的论点,有的是为了演示某种实用的编程技巧。
关于作者
蒋金楠(网名Artech),《WCF全面解析(上、下册)》、《ASP.NET MVC 4框架揭秘》、《ASP.NET Web API2框架揭秘》等多部畅销IT图书作者,现就职于一知名软件公司担任高级软件顾问。拥有一个访问量超过200万的个人博客(http://www.cnblogs.com/artech),2012年度51CTO IT博客大赛十佳得主。2007—2013年被连续7次评为微软MVP,同时也是少数几个跨多领域(Solutions Architect、Connected System、Microsoft Integration和ASP.NET/IIS)的MVP之一。
致谢
本书得以出版,需要感谢本书的编辑张春雨和刘舫,你们的专业水准和责任心是为本书提供的质量保证,多次合作产生的默契让我对下次合作充满期待。此外,最需要感谢的是我的老婆徐妍妍,只有我知道你在本书提交给出版社之前所作的校对工作有多么重要。
本书支持
本书针对最新版本的ASP.NET MVC,同时涉及太多底层实现的内容,所以大部分内容是找不到任何现成参考资料的,这些内容大都来自于笔者对源码的分析和试验的证明。这些因素加上作者自身能力的限制,都可能造成一些无法避免的错误或者偏差,如果读者在阅读过程中发现了任何问题,希望能够加以反馈。如果读者遇到任何ASP.NET MVC、ASP.NET Web API或者WCF的问题,欢迎与我通过以下的方式进行交流。
作者博客:http://www.cnblogs.com/artech
作者微博:http://www.weibo.com/artech
电子邮箱:jiangjinnan@gmail.com
微信公众账号:Artech1981
本书每一章节都会提供一系列实例演示,读者可以根据编号(比如S101、S202 等)从下载的源代码压缩包中找到对应的实例。本书的附录部分给出了所有源代码可供下载的所有实例演示的列表和相关描述。
源代码下载地址:https://onedrive.live.com/redir?resid=5760EBEEB92818D2%21109

目录

目录 阅读
第1章 ASP.NET + MVC
第2章 路由
第3章 Controller的激活
第4章 Model元数据的解析
第5章 3个描述对象
第6章 Model的绑定(上篇)
第7章 Model的绑定(下篇)
第8章 Model的验证(上篇)
第9章 Model的验证(下篇)
第10章 Action方法的执行
第11章 View的呈现
第12章 过滤器
第13章 特性路由
第14章 案例实践

读者评论

  • 这本书写得非常棒,特意过来下载示例源码,读了以后受益匪浅。

    未注册游客发表于 2019/5/30 13:33:27

下载资源

电子书版本

  • PDF

相关图书

少博士趣学Python

周安琪 (作者)

本书是一本针对中国青少年的Python入门编程书,内容包括基本的Python语法和编程概念、关于信息世界的故事、算法的简介以及对计算性思维的练习。本书从浅显的示...

¥49.90

Laravel入门与实战:构建主流PHP应用开发框架

Matt Stauffer (作者) 韦玮 (译者)

本书从基础开始详细地讲解了Laravel开发框架。本书对Laravel框架进行了系统的介绍,包括Laravel的背景、Laravel开发环境的搭建、路由与控制器...

¥78.00

Python与量化投资:从基础到实战

王小川 (作者)

本书主要讲解如何利用Python进行量化投资,包括对数据的获取、整理、分析挖掘、信号构建、策略构建、回测、策略分析等。本书也是利用Python进行数据分析的指南...

¥59.00

SAFe 4.0精粹:运用规模化敏捷框架实现精益软件与系统工程

Richard Knaster、 Dean Leffingwell (作者) 李建昊等 (译者)

  本书基于规模化敏捷框架的完整结构,提纲挈领地介绍了其核心内容,同时给出了在企业环境中实施SAFe 的路线图。本书聚焦在提炼SAFe 4.0 版本的精粹,旨在...

¥99.00

PHP7内核剖析

秦朋 (作者)

PHP作为最流行的语言之一,自第一个版本发布至今的二十几年里经历了多次重大改进,PHP7版本最大的特色在于其性能上的突破,比PHP5快了一倍。目前PHP7已经得...

¥89.00

Effective Debugging英文版:调试软件与系统的66个有效方法

Diomidis Spinellis (作者) (希腊)Diomidis Spinellis (季奥米季斯·斯宾奈里斯) (译者)

本书作者着眼于一系列可能会在现代软件系统中出现的问题,特别是分散在地球上的组件和服务之间复杂的相互影响造成的问题。无论您是否正在调试独立运行的错误或灾难性的企业...

¥75.00