首页 > > > ASP.NET+MVC3.0+高级编程.pdf

ASP.NET+MVC3.0+高级编程.pdf

ASP.NET+MVC3.0+高级编程.pdf

上传者: mengzhongiiii 2013-03-22 评分1 评论0 下载54 收藏10 阅读量449 暂无简介 简介 举报

简介:本文档为《ASP.NET+MVC3.0+高级编程pdf》,可适用于软件工程领域,主题内容包含ASPNETMVC高级编程美JonGallowayPhilHaackBradWilsonKScottAllen著孙远帅译北京JonGalloway,符等。

ASP.NETMVC3高级编程[美]JonGallowayPhilHaackBradWilsonK.ScottAllen著孙远帅译北京JonGalloway,PhilHaack,BradWilson,K.ScottAllenProfessionalASP.NETMVC3EISBN:978-1-118-07658-3Copyright2011byWileyPublishing,Inc.AllRightsReserved.Thistranslationpublishedunderlicense.本书中文简体字版由WileyPublishing,Inc.授权清华大学出版社出版。未经出版者书面许可,不得以任何方式复制或抄袭本书内容。北京市版权局著作权合同登记号图字:01-2011-6436本书封面贴有Wiley公司防伪标签,无标签者不得销售。版权所有,侵权必究。侵权举报电话:010-6278298913701121933图书在版编目(CIP)数据ASP.NETMVC3高级编程/(美)加洛韦(Galloway,J.)等著;孙远帅译.—北京:清华大学出版社,2012.6书名原文:ProfessionalASP.NETMVC3ISBN978-7-302-28675-2Ⅰ.A…Ⅱ.加…孙…Ⅲ.网页制作工具Ⅳ.TP393.092中国版本图书馆CIP数据核字(2012)第077614号责任编辑:王军吴乐装帧设计:牛艳敏责任校对:成凤进责任印制:出版发行:清华大学出版社网址:http://www.tup.com.cn,http://www.wqbook.com地址:北京清华大学学研大厦A座邮编:100084社总机:010-62770175邮购:010-62786544投稿与读者服务:010-62776969,c-service@tup.tsinghua.edu.cn质量反馈:010-62772015,zhiliang@tup.tsinghua.edu.cn印刷者:装订者:经销:全国新华书店开本:185mm260mm印张:24.5字数:596千字版次:2012年6月第1版印次:2012年6月第1次印刷印数:1~3000定价:59.00元——————————————————————————————————————————————产品编号:技术编辑简介EilonLipton在2002年作为一名开发人员加入了Microsoft公司的ASP.NET团队。在ASP.NET团队里,他既做过数据源控件,也做过UpdatePanel控件的本地化工作。现在他是ASP.NETMVC框架的首席开发经理,并频繁地在各种有关ASP.NET主题的全球会议上发表演讲。他从波士顿大学毕业,并获得数学和计算机科学双学位。前言对一名ASP.NET开发人员来说,这是一个伟大的时刻!无论是对于已经拥有ASP.NET多年开发经验的开发人员,还是对于刚刚入门的初学者,现在都是深入学习ASP.NETMVC3的绝佳时机。ASP.NETMVC从一开始就有很多乐趣,再加上现在又添加了很多特性,像新的Razor视图引擎、集成了NuGet包管理系统、深度整合了jQuery并且具有很强大的可扩展性。因此,使用ASP.NETMVC3会给我们带来很多的乐趣!随着ASP.NETMVC新版本的发布,相对于本书的前两版而言,其内容已经变化很多,足以让我们重新编写该书。ASP.NETMVC团队成员BradWilson和著名的ASP.NET专家K.ScottAllen加入了我们的作者队伍。因此,我们已经有足够的能力创造一本崭新的书。加入我们会有一个有趣翔实的ASP.NETMVC3之旅!本书读者对象本书适用于希望向网站中添加更多完整的测试,以及希望能做出一些与众不同的内容的Web开发人员。本书在有些地方假定读者已经熟悉了ASP.NETWebForms,至少已经从外围了解了一些内容。由于许多ASP.NETWebForms开发人员对ASP.NETMVC感兴趣,因此本书有很多地方对这两种技术进行了对比。即便您现在不是ASP.NET开发人员,即便ASP.NETMVC3不是您想要的Web技术,但是您仍然可以发现一些章节是很有趣的,不管是出于学习的目的,还是出于摸清来龙去脉的目的。值得再次强调的是,ASP.NETMVC3并不是ASP.NETWebForms的替代品。很多Web开发人员将大量注意力放在了其他Web架构上(如RubyonRails、Django),它们融入了MVC(Model-View-Controller)应用程序模式;如果您不是这些开发人员中的一员,或者甚至只是出于好奇,那么本书也适合您。MVC支持在应用程序中的组件之间实现“更清晰的关注点分离”(但是需要特别小心)。本书将在后面探讨这些分支,但是如果必须以一句话来概括的话,那就是:ASP.NETMVC3是去掉了障碍的ASP.NET。ASP.NETMVC3是一个修补型的架构,它提供了对HTML和JavaScript的细粒度控制以及对应用程序编程流程的完全控制。在MVC中没有声明性的服务器控件,有些人可能会喜欢这些控件,而有些人则可能ASP.NETMVC3高级编程VIII不喜欢。在不久的将来,MVC团队可能会添加声明性的视图控件,但是这些控件将与ASP.NETWebForms开发人员熟悉的组件大相径庭,这些控件中封装了渲染视图的逻辑以及用于响应用户输入的逻辑等。将所有这些逻辑封装在视图的单个控件中会违反“关注点分离”这一框架的核心。这样就会使抽象的层次崩溃倒塌,就像所有的门和窗户都被敞开允许空气自由流动。我们给您的最后一个比喻是,ASP.NETMVC像是摩托车,而ASP.NETWebForms可能像是小型货车,而且配备有安全气囊以及DVD播放器,这样在驱车去岳父家赴周五晚宴的时候,如果有小孩的话,可以避免他们在车上打闹。有些人喜欢摩托车,有些人则喜欢小型货车。它们都可以带您去想去的地方,但是从技术讲,它们都并不胜于对方。本书组织结构本书共14章,主要介绍了MVC模式以及ASP.NETMVC是如何实现该模式的。其中的第1、2、7章由JonGallowany编写,第3、9、10章由PhilHaack编写,第4、5、6、8章由ScottAllen编写,第11、12、13章由BradWilson编写,第14章则由4位作者共同编写。第1章帮助您开始进行ASP.NETMVC3开发。首先介绍了ASP.NETMVC的概念,然后解释ASP.NETMVC3如何顺应前两个发布版本。最后,在确保正确安装软件之后,帮助您开始创建您的第一个ASP.NETMVC3应用程序。第2章讲解控制器和操作的基础内容。您开始编写一些基本的“helloworld”示例,然后创建从URL中提取信息并在屏幕上显示的应用程序。第3章介绍如何从控制器操作中使用视图模板控制输出的可视化表示。除此之外,还将全面地介绍ASP.NETMVC3中包含的新视图引擎——Razor。第4章继续介绍MVC模式的第三个元素:模型。本章中,您将会学习到如何使用模型在控制器和视图之间传递信息,以及如何在EntityFramework4.1上集成数据库和模型。第5章深入讲解编辑场合,解释ASP.NETMVC处理表单的方式。您将从本章中学习到如何使用HTML辅助方法精简视图。第6章介绍如何使用特性定义模型显示、编辑和验证的规则。第7章讲解如何确保ASP.NETMVC应用程序安全,并指出常见的安全陷阱以及避免这些陷阱的方法。除此之外,您还会学习到如何利用ASP.NETMVC应用程序中的ASP.NET成员资格和授权特性来控制访问权限。第8章介绍ASP.NETMVC应用程序中的Ajax程序,并特别强调jQuery和jQuery插件。本章中,您将会学习到如何使用ASP.NETMVC的Ajax辅助方法,以及如何高效地应用ASP.NETMVC3中包含的jQuery验证系统。第9章深入介绍用来管理如何把URL映射到控制器操作的路由机制。前言IX第10章介绍NuGet包管理系统。通过本章内容,您将学习到如何把NuGet关联到ASP.NETMVC,如何安装NuGet以及如何使用NuGet来安装、更新和创建新包。第11章介绍依赖注入,ASP.NETMVC3的变化包括对依赖注入的支持,以及如何在应用程序中利用依赖注入。第12章教您如何在ASP.NET应用程序中使用测试驱动开发,并提供编写高效测试的一些有益忠告。第13章深入讲解ASP.NETMVC中的扩展点,并展示如何扩展MVC框架来满足您的具体需求。第14章介绍一些高级主题,这些主题在阅读本书前13章之前讲解可能会使您感到吃力。本章涵盖Razor、基架系统、路由机制、模板和控制器的一些复杂应用。使用本书的条件为了使用ASP.NETMVC3,您可能需要安装VisualStudio。可以使用MicrosoftVisualWebDeveloper2010Express或VisualStudio2010的任何付费版本(如VisualStudio2010Professional)。VisualStudio2010中包含了ASP.NETMVC3。下面展示了下载所需软件的网址:VisualStudio或VisualStudioExpress:www.microsoft.com/vstudio或www.microsoft.com/express/。ASP.NETMVC3:www.asp.net/mvc。第1章将深入回顾软件需求,并展示如何在开发环境和服务器上进行设置。源代码整本书中,您会注意到,当建议您安装NuGet包以尝试一些样例代码时,我们会放置如下图标:Install-PackageSomePackageNameNuGet是OutercurveFoundation为.NET和VisualStudio而编写的新包管理器,后来被Microsoft公司整合到了ASP.NETMVC中。我们不用再在Wrox网站上搜索源代码示例的压缩文件了,因为我们可以通过使用NuGet轻松地把这些文件添加到ASP.NETMVC应用程序中。我们认为自此尝试样例将不再痛苦,而变得更容易、更方便。第10章将详细介绍NuGet系统。在某些情况下,书中涵盖了一些您可能想下载的单独代码段。这些代码可以在www.wrox.com或http://www.tup.com.cn/downpage上下载。登录该网站之后,只需要使用ASP.NETMVC3高级编程XSearch框或标题列表中的一个找到书的标题,单击本书详细页面上的DownloadCode链接,即可下载本书涉及的所有源代码。在下载了代码后,只需要用自己喜欢的解压缩软件对它们进行解压缩即可。另外,也可以进入http://www.wrox.com/dynamic/books/download.aspx上的Wrox代码下载页面,查看本书和其他Wrox图书的源代码。勘误表尽管我们已经尽了各种努力来保证文章或代码中不出现错误,但是错误总是难免的,如果您在本书中找到了错误,例如拼写错误或代码错误,请告诉我们,我们将非常感激。通过勘误表,可以让其他读者避免受挫,当然,这还有助于提供更高质量的信息。请给wkservice@vip.163.com发电子邮件,我们就会检查您的信息,如果是正确的,我们将在本书的后续版本中采用。要在网站上找到本书的勘误表,可以登录http://www.wrox.com,通过Search框或书名列表查找本书,然后在本书的详细页面上,单击BookErrata链接。在这个页面上可以查看到Wrox编辑已提交和粘贴的所有勘误项。完整的图书列表还包括每本书的勘误表,网址是www.wrox.com/misc-pages/booklist.shtml。P2P.WROX.COM要与作者和同行讨论,请加入p2p.wrox.com上的P2P论坛。这个论坛是一个基于Web的系统,便于您张贴与Wrox图书相关的消息和相关技术,与其他读者和技术用户交流心得。该论坛提供了订阅功能,当论坛上有新的消息时,它可以给您传送感兴趣的论题。Wrox作者、编辑和其他业界专家和读者都会到这个论坛上探讨问题。在http://p2p.wrox.com上,有许多不同的论坛,它们不仅有助于阅读本书,还有助于开发自己的应用程序。要加入论坛,可以遵循下面的步骤:(1)进入p2p.wrox.com,单击Register链接。(2)阅读使用协议,并单击Agree按钮。(3)填写加入该论坛所需要的信息和自己希望提供的其他信息,单击Submit按钮。(4)您会收到一封电子邮件,其中的信息描述了如何验证账户,完成加入过程。注意:不加入P2P也可以阅读论坛上的消息,但要张贴自己的消息,就必须加入该论坛。前言XI加入论坛后,就可以张贴新消息,响应其他用户张贴的消息。可以随时在Web上阅读消息。如果要让该网站给自己发送特定论坛中的消息,可以单击论坛列表中该论坛名旁边的SubscribetothisForum图标。关于使用WroxP2P的更多信息,可阅读P2PFAQ,了解论坛软件的工作情况以及P2P和Wrox图书的许多常见问题。要阅读FAQ,可以在任意P2P页面上单击FAQ链接。序我很高兴参与了本书前两版的编写工作。当我决定不参与第3版的编写时,我不知道谁能胜任这份工作。谁能够填补我留下的空缺呢?嗯,我知道只有这4位最聪明、最优秀的研究人员可以胜任,他们每一个都远比我知识渊博。PhilHaack是ASP.NETMVC项目经理,他从一开始就参与该项目。因为他有植根于社区和开源的背景,所以我一向认为他不仅是一名优秀的技术人员,而且还是一位亲密的朋友。Phil目前从事于ASP.NET和称作NuGet的新.NET包管理器的研究。现在我和Phil都在Web平台和工具团队,我们俩正努力将Microsoft公司的ASP.NET和开源项目推向一个新的高度。BradWilson不仅是我最爱的怀疑论者,而且也是Microsoft公司ASP.NETMVC团队中一名天才般的工程师。从动态数据到数据注解,再到测试等,没有作为程序员的Brad干不了的。他从事过许多开源项目(如XUnit.NET),并继续推动Microsoft公司内外部人员走向光明。JonGalloway在Microsoft公司的开发指导小组(DeveloperGuidanceGroup)工作,在那里他有机会接触成千上万的不熟悉ASP.NETMVC的开发人员。他负责编写了MVCMusicStore教程,该教程帮助成千上万的开发人员编写了他们的第一个ASP.NETMVC应用程序。Jon也帮助组织mvcConf——ASP.NETMVC开发人员的一系列免费在线会议。他与各种ASP.NET社区的互动使得他拥有很强的洞察力,知道开发人员如何开始、学习和掌握ASP.NETMVC。最后也是相当重要的是,K.ScottAllen增强了团队的力量,不仅仅是因为他明智地决定使用他听起来更加智能的中间名,而且也因为他带来了一个世界级著名教练的经验和智慧。ScottAllen是Pluralsight技术人员中的一员,曾经在财富50强公司从事网站和创业咨询方面的工作。他善良、体贴、值得尊重,重要的是他非常透彻地了解自己。随着ASP.NETWeb开发平台的发展,这些伙计团结在一块儿共同把《ASP.NETMVC3高级编程》一书推到了一个新的高度。该平台目前正在由全球数百万的开发人员使用。一个充满朝气的社区支持该平台的在线版和离线版;线上论坛(www.asp.net)平均每天都有成千上万的问答。ASP.NET和ASP.NETMVC3的应用面很广,像新闻网站、网上零售商店以及我们最喜欢的社交网站。除此之外,或许我们当地的运动队、读书俱乐部或博客使用的也是ASP.NETMVC3高级编程VIASP.NETMVC3。当ASP.NETMVC刚刚被引入时,它打破了很多领域。尽管使用的是旧模式,但是这些模式对于现有的ASP.NET社区来说都是新的;它在生产率和控制、功能和灵活性之间求得了微妙的平衡。今天,对我来说,ASP.NETMVC3代表了选择——语言的选择、框架的选择、开源库的选择、模式的选择。一切都是可插拔的。ASP.NETMVC3是我们对环境绝对控制的缩影——如果喜欢,就使用;如果不喜欢,就改变。我们可以按照自己想要的方式进行单元测试,创建自己想要的组件,使用自己选择的JavaScript框架。ASP.NETMVC3为我们带来了新的Razor视图引擎、一个通过NuGet可扩展的集成基架系统、使用项目模板的HTML5、与依赖注入和全局操作过滤器的强关联,以及强大的JavaScript支持(其中包括非侵入式的JavaScript、jQuery验证和JSON绑定)。ASP.NETMVC团队已经创建了他们惊人框架的第3个版本,并且已经发布了源代码。我建议到www.asp.net/mvc上下载最新的内容,以及最新的示例、视频和教程。我们都希望本书讲解的内容能够是您精通ASP.NETMVC3历程中的下一步。——ScottHanselmanMicrosoftWeb平台和工具团队首席社区架构师致谢感谢我的家人和朋友,他们给了我良好的精神状态。感谢整个ASP.NET团队,自2002年以来,他们给我带来了无穷的工作乐趣,尤其是BradWilson和PhilHaack,他们回答了我成千上万个问题。最后感谢Philippians4:4-9时刻提醒我哪种方式是正确的。——JonGalloway感谢我亲爱的妻子Akumi,是她极大的支持才使得该书得以完成。我也想喊出对我的儿子Cody的感谢,是他给了我一个两岁孩童能够给的明智建议,我想自此他会尴尬10年,因为在我对他的感谢中用了一个与时代不符的词“喊出”。感谢我的女儿Mia,是她的微笑点亮了我们的房间。——PhilHaack作者简介JonGalloway是Microsoft公司社区项目经理,主要从事于ASP.NETMVC项目。他负责编写了MVCMusicStore教程,并帮助组织mvcConf(一个免费的ASP.NETMVC社区在线会议),2010年,他游历世界为WebCamps教授MVC课程。Jon曾经供职于VertigoSoftware,在那里,他主要负责一些Microsoft会议网站、支持HighProfile的Silverlight视频播放器,还有MIX主题演示。在这之前,他曾在很多Web开发公司任职,从朝气蓬勃的创业公司到财富500强企业。他是HerdingCode博客(http://herdingcode.com)的一部分,他的博客地址为http://weblogs.asp.net/jgalloway、Twitter账户名是@jongalloway。PhilHaack是一名高级项目经理,和ASP.NET团队一起从事于ASP.NETMVC项目。在加入Microsoft公司以前,Phil做过代码搜索引擎的产品经理,做过在线游戏公司的开发经理,还做过一个很受欢迎的西班牙语的电视网络的高级架构设计师,除此之外,他还做过其他一些疯狂的职业。作为一个代码“瘾君子”,PhilHaack喜欢设计软件。他不仅喜欢编写软件,而且喜欢撰写关于软件和软件管理的博客,他的博客网址为http://haacked.com/。在业余时间,Phil参加各种开源项目,他是Subtext博客引擎项目的创始人,当然,该项目目前正在使用ASP.NETMVC重写。BradWilson是Microsoft公司的一名高级软件开发工程师,在Web平台和工具(WebPlatformandTools)团队从事于ASP.NETMVC项目。在2005年,他加入了Microsoft公司的模式和实践(PatternsandPractices)团队,同时也在构建CodePlex开源托管站点团队中工作。在加入Microsoft公司之前的20年里,他就已经在各种软件公司做过开发人员、架构师、团队组长和CTO(首席技术官)。他也是xUnit.net开源开发测试框架的作者JamesNewkirk的合作作者。自从2001年,他就积极地编写博客,主要讲解一些ASP.NET主题,他的博客网址是http://bradwilson.typepad.com/。他的Twitter账户名是@bradwilson。K.ScottAllen是OdeToCode有限责任公司的创始人。Scott为世界各地的客户提供定制开发、咨询和指导服务。目录第1章入门.........................................11.1ASP.NETMVC简介.................11.1.1ASP.NETMVC如何适应ASP.NET.................................11.1.2MVC模式简介.......................21.1.3MVC在Web框架中的应用.........................................21.1.4ASP.NETMVC3的发展历程.........................................31.1.5Razor视图引擎.......................51.1.6验证的改善.............................81.1.7强大的JavaScript支持...........91.1.8高级功能.................................91.1.9ASP.NETMVC3特性总结....101.2创建ASP.NETMVC3应用程序..................................101.2.1创建ASP.NETMVC3应用程序的软件要求............111.2.2安装ASP.NETMVC3.........111.2.3创建ASP.NETMVC3应用程序...............................121.2.4NewASP.NETMVC3Project对话框...................................131.3ASP.NETMVC应用程序的结构......................................171.4小结...........................................20第2章控制器...................................212.1控制器的角色...........................212.2控制器简史...............................222.3示例应用程序:MVCMusicStore.....................232.4控制器基础...............................262.4.1简单示例:HomeController...262.4.2创建第一个(非常简单的)控制器....................................292.4.3控制器操作中的参数............312.5小结...........................................33第3章视图.......................................353.1视图的作用...............................363.2指定视图...................................383.3强类型视图...............................393.4视图模型...................................413.5添加视图...................................423.5.1AddView对话框中的选项........................................423.5.2自定义T4视图模板.............453.6Razor视图引擎........................463.6.1Razor的概念.........................463.6.2代码表达式............................483.6.3Html编码..............................503.6.4代码块....................................513.6.5Razor语法示例.....................523.6.6布局........................................543.6.7ViewStart...............................563.7指定分部视图...........................573.8视图引擎...................................583.8.1配置视图引擎........................583.8.2查找视图................................59ASP.NETMVC3高级编程XIV3.8.3视图本身...............................603.8.4其他的视图引擎....................613.9新的视图引擎还是新的ActionResult.............................623.10小结.........................................63第4章模型.......................................654.1为MVCMusicStore建模.......654.2为商店管理器构造基架...........684.2.1基架的概念...........................684.2.2基架和实体框架....................694.2.3执行基架模板........................714.2.4执行基架代码........................754.3编辑专辑...................................784.3.1创建编辑专辑的资源............794.3.2响应编辑时的POST请求....814.4模型绑定...................................834.4.1DefaultModelBinder..............844.4.2模型绑定安全性简介............854.4.3显式模型绑定........................854.5小结...........................................86第5章表单和HTML辅助方法.........895.1表单的使用...............................895.1.1action和method特性...........905.1.2GET方法还是POST方法...905.2HTML辅助方法......................945.2.1自动编码...............................955.2.2辅助方法的使用....................955.2.3HTML辅助方法的工作原理.......................................965.2.4设置专辑编辑表单................975.2.5添加输入元素........................985.2.6辅助方法、模型和视图数据.....................................1025.2.7强类型辅助方法..................1045.2.8辅助方法和模型元数据......1055.2.9模板辅助方法.....................1055.2.10辅助方法和ModelState...1065.3其他输入辅助方法.................1075.3.1Html.Hidden........................1075.3.2Html.Password....................1075.3.3Html.RadioButton...............1075.3.4Html.CheckBox...................1085.4渲染辅助方法.........................1085.4.1Html.ActionLink和Html.RouteLink..................1095.4.2URL辅助方法....................1105.4.3Html.Partial和Html.RenderPartial..............1105.4.4Html.Action和Html.RenderAction.............1115.5小结.........................................113第6章数据注解和验证..................1156.1为验证注解订单.....................1166.1.1验证注解的使用.................1176.1.2自定义错误提示消息及其本地化.............................1216.1.3注解的后台原理.................1226.1.4控制器操作和验证错误.....1236.2自定义验证逻辑.....................1256.2.1自定义注解.........................1256.2.2IValidatableObject..............1286.3显示和编辑注解.....................1296.3.1Display................................1306.3.2ScaffoldColumn..................1306.3.3DisplayFormat.....................1316.3.4ReadOnly............................1316.3.5DataType.............................1326.3.6UIHint.................................1326.3.7HiddenInput........................1326.4小结.........................................132目录XV第7章应用程序的安全性...............1337.1使用Authorize特性登录.......1357.1.1保护控制器操作..................1357.1.2Authorize特性在表单身份验证、AccountController控制器中的用法..................1397.1.3IntranetApplication模板中的WindowsAuthentication....1417.1.4整个控制器的安全性..........1417.2要求角色成员使用Authorize特性........................................1427.3扩展角色和成员.....................1437.4Web应用程序中的安全向量...1437.4.1威胁:跨站脚本..................1447.4.2威胁:跨站请求伪造..........1547.4.3威胁:cookie盗窃..............1587.4.4威胁:重复提交..................1607.4.5威胁:开放重定向..............1627.5适当的错误报告和堆栈跟踪...1707.5.1使用配置转换......................1717.5.2使用Retail部署配置..........1727.5.3使用专门的错误日志系统....1727.6安全回顾和有用资源.............1727.7小结.........................................173第8章AJAX...................................1758.1jQuery......................................1758.1.1jQuery的特性.....................1768.1.2非侵入式JavaScript............1798.1.3jQuery的用法.....................1808.2AJAX辅助方法.....................1838.2.1AJAX的ActionLink方法...1838.2.2HTML5特性......................1858.2.3AJAX表单..........................1868.3客户端验证.............................1888.3.1jQuery验证.........................1898.3.2自定义验证.........................1908.4辅助方法之外.........................1948.4.1jQueryUI............................1948.4.2使用jQueryUI实现自动完成部件.............................1958.4.3JSON和jQuery模板.........1998.5提高AJAX性能.....................2048.5.1使用内容分发网络.............2048.5.2脚本优化.............................2048.6小结.........................................205第9章路由机制.............................2079.1理解URL................................2089.2路由机制概述.........................2099.2.1对比路由和URL重写.......2099.2.2路由的定义.........................2099.2.3命名路由.............................2179.2.4MVC区域...........................2199.2.5Catch-All参数....................2209.2.6段中的多个URL参数.......2219.2.7StopRoutingHandler和IgnoreRoute.........................2229.2.8路由的调试.........................2239.2.9揭秘路由如何生成URL....2249.3揭秘路由如何绑定到操作.....2309.3.1高层次请求的路由管道.....2309.3.2路由数据.............................2309.4自定义路由约束.....................2319.5WebForms和路由机制.........2329.6小结.........................................233第10章NuGet...............................23510.1NuGet概述...........................23510.2NUGET安装.........................23610.3以包的形式添加库...............23810.3.1查找包............................23910.3.2安装包............................24010.3.3更新包............................242ASP.NETMVC3高级编程XVI10.3.4最近使用的包.................24310.4创建包...................................24510.4.1文件夹结构.....................24610.4.2NuSpec文件...................24610.4.3元数据.............................24710.4.4依赖库.............................24810.4.5指定要包含的文件.........24910.4.6工具.................................24910.4.7框架和轮廓定位.............25210.5发布包...................................25310.5.1发布到NuGet.org...........25310.5.2使用NuGet.exe发布包...25610.5.3包浏览器的用法.............25710.5.4托管私有的NuGet供应库.............................25810.6小结.......................................261第11章依赖注入...........................26311.1软件设计模式概述...............26311.1.1设计模式——控制反转模式.................................26411.1.2设计模式——服务定位器.............................26611.1.3设计模式——依赖注入...27011.2依赖解析器的用法...............27211.2.1单一注册服务.................27411.2.2复合注册服务.................27511.2.3创建任意对象.................27811.3小结.......................................280第12章单元测试...........................28112.1单元测试和测试驱动开发的意义...................................28212.1.1单元测试的定义.............28212.1.2测试驱动开发的定义.....28312.2创建单元测试项目...............28612.2.1检查默认单元测试.........28712.2.2只测试自己编写的代码................................29012.3单元测试用于ASP.NETMVC应用程序的技巧和窍门.......29112.3.1控制器测试....................29112.3.2路由测试........................29612.3.3验证测试...

该用户的其他资料

  • 名称/格式
  • 评分
  • 下载次数
  • 资料大小
  • 上传时间

用户评论

0/200
    暂无评论
上传我的资料

相关资料

资料评价:

/ 103
所需积分:1 立即下载
返回
顶部
举报
资料
关闭

温馨提示

感谢您对爱问共享资料的支持,精彩活动将尽快为您呈现,敬请期待!