词条 | ASP.NET MVC 2程序开发 |
释义 | 基本信息作者:黄保翕(Will保哥) 陈酉玫 李杨 出版社:电子工业出版社 ISBN:9787121127885 出版日期:2011 年3月 开本:16开 页码:331 版次:1-1 内容简介《asp net mvc 2开发实战》以循序渐进的方式揭开asp net mvc的神秘面纱,帮助开发人员将现有的asp net web forms项目转移到asp net mvc架构,引导读者建立正确的开发观念,并搭配visual studio 2010开发工具,带领读者体验asp net mvc的强大魅力。 《asp net mvc 2开发实战》主要分成3篇。基础观念篇介绍了开发人员在学习asp net mvc之前需要了解的技术和观念,以及mvc架构的基础知识。技术讲解篇针对asp net mvc 2的各项开发技术进行解析,以帮助开发人员解决实际问题。开发实践篇通过一套完整的留言板系统案例详述asp net mvc 2的开发技巧与流程,以及asp net mvc的安装部署和单元测试方法。 《asp net mvc 2开发实战》适合对mvc架构感兴趣的asp net开发人员阅读。 作译者黄保翕(Will保哥)微软最有价值专家(MVP);擅长各种Web解决方案、大中型网站架构、数据库系统、网站内容管理系统的设计;也是网络知名的技术专家,博客“The Will Will Web”目前已经累积近千篇文章,提供Web相关技术的实用解决方案。 目录《asp net mvc 2开发实战》 第1篇 基础观念篇 第1章 在学习asp net mvc之前 2 1 1 何谓mvc 3 1 1 1 何谓model 3 1 1 2 何谓view 4 1 1 3 何谓controller 5 1 2 mvc架构初探 6 1 2 1 关联性 6 1 2 2 独立性 7 1 3 为什么要使用asp net mvc 8 1 3 1 分解关注点与可维护性 8 1 3 2 开放性与社区支持 9 1 3 3 开发工具与开发效率 10 1 3 4 易于测试的架构 10 1 3 5 易于分工的架构 11 总结 11 第2章 建立正确的开发观念 12 2 1 分解关注点 13 2 2 以习惯取代配置 13 2 3 对开发asp net mvc项目的建议 14 2 4 asp net mvc中常见的问题 18 总结 25 第3章 新手上路初体验 26 3 1 认识visual studio 2010 27 3 1 1 解决方案资源管理器窗口 27 3 1 2 服务器资源管理器窗口 27 3 1 3 工具箱窗口 27 3 1 4 输出窗口 28 3 1 5 错误列表窗口 28 3 1 6 扩充管理器 29 3 1 7 代码段管理器 29 3 2 创建第1个asp net mvc项目 30 3 2 1 用asp net mvc 2项目模板创建项目 30 3 2 2 创建数据模型 38 3 2 3 创建控制器和动作 41 3 2 4 创建视图 42 3 2 5 在视图中创建窗口 44 3 2 6 通过action接收窗口数据 46 3 2 7 实现留言显示功能 49 3 3 学习mvc时的注意事项 53 3 3 1 了解不同的项目类型 53 3 3 2 初学者常犯的错误 53 3 3 3 小心使用request对象和response对象 54 3 3 4 不要在视图中编写过多的程序逻辑 54 3 4 改良asp net mvc项目 55 3 4 1 使用视图数据模型 55 3 4 2 使用窗口验证功能 58 3 4 3 避免用户重复发送信息 65 总结 68 第2篇 技术讲解篇 第4章 网址路由与asp net mvc的生命周期 70 4 1 网址路由 71 4 1 1 比对通过浏览器传来的http请求 71 4 1 2 将适当的网址返回浏览器 71 4 1 3 默认网址路由 71 4 2 http请求的url如何对应网址路由 73 4 2 1 网址路由范例 73 4 2 2 为网址路由加上限制条件 75 4 3 网址路由如何在asp net mvc中生成网址 76 4 4 asp net mvc的执行生命周期 81 4 4 1 网址路由比对 81 4 4 2 执行controller和action 83 4 4 3 执行view并返回结果 86 总结 87 第5章 用model创建数据模型 88 5 1 model的任务 89 5 2 创建基础数据模型 89 5 2 1 用linq to sql自动创建数据模型 90 5 2 2 用entity framework自动创建数据模型 93 5 2 3 手动创建数据模型 98 5 3 扩充基础数据模型 99 5 3 1 定义model的metadata 100 5 3 2 自定义metadata验证属性 104 5 4 实现库模式 104 总结 106 第6章 剖析controller的相关技术 107 6 1 controller的责任 108 6 2 controller的类与方法 108 6 3 controller的执行过程 109 6 4 动作名称选取器 111 6 5 动作方法选取器 112 6 5 1 nonaction属性 113 6 5 2 httpget属性、httppost属性、httpdelete属性和httpput属性 113 6 6 actionresult类 114 6 6 1 viewresult类 115 6 6 2 partialviewresult类 117 6 6 3 emptyresult类 117 6 6 4 contentresult类 118 6 6 5 fileresult类 119 6 6 6 强制下载文件时需注意中文文件名的问题 122 6 6 7 javascriptresult类 124 6 6 8 jsonresult类 124 6 6 9 redirectresult类 126 6 6 10 redirecttoroute类 126 6 7 viewdata与tempdata概述 128 6 7 1 viewdata 128 6 7 2 tempdata 129 6 8 模型绑定 131 6 8 1 简单模型绑定 131 6 8 2 使用formcollection类获取窗口数据 132 6 8 3 复杂模型绑定 132 6 8 4 多个复杂模型的绑定 134 6 8 5 判断模型绑定的结果 136 6 8 6 使用bind属性限制可被更新的model属性 138 6 9 动作过滤器 141 6 9 1 授权过滤器属性 142 6 9 2 动作过滤器属性 145 6 9 3 结果过滤器属性 147 6 9 4 异常过滤器属性 149 6 9 5 自定义动作过滤器属性 150 总结 152 第7章 view的相关技术 153 7 1 view的责任 154 7 2 不要用asp的观念来编写asp net mvc程序 154 7 3 view如何从action中获取数据 154 7 3 1 如何正确分配view 155 7 3 2 使用弱类型模型获取数据 156 7 3 3 使用强类型模型获取数据 157 7 4 html辅助方法 158 7 4 1 如何使用html辅助方法 158 7 4 2 html辅助方法的应用实例 160 7 4 3 强类型辅助方法 165 7 4 4 dynamic data对asp net mvc的支持 166 7 4 5 url辅助方法 167 7 4 6 ajax辅助方法 169 7 4 7 自定义html辅助方法 170 7 4 8 tagbuilder类详解 173 7 5 masterpage模板 176 7 6 部分视图 178 7 6 1 什么是部分视图 178 7 6 2 如何创建一个部分视图 179 7 6 3 如何调用部分视图 180 7 6 4 部分视图的高级应用 181 7 6 5 用renderaction() 方法加载部分视图 184 总结 185 第8章 area的相关技术 186 8 1 何时需要使用area切割网站 187 8 2 如何在现有项目中新建area 188 8 3 如何设定area的网址路由 189 8 4 默认路由与area路由的优先级 190 8 5 就算使用area,controller的名称还是有冲突的 190 8 6 如何指定默认网站与area网站的连接 191 总结 192 第3篇 开发实践篇 第9章 mvcguestbook高级实战 194 9 1 分析需求与创建网站雏形 195 9 1 1 规划数据库结构 195 9 1 2 创建基础数据模型 196 9 1 3 规划网站功能 196 9 1 4 设计controller与action 197 9 1 5 创建基础页面 200 9 2 实现会员机制 201 9 2 1 会员注册机制 201 9 2 2 会员登录/注销功能 212 9 3 实现留言机制 219 9 3 1 编写留言列表 219 9 3 2 新建留言列表页面 221 9 3 3 为留言列表添加分页功能 222 9 3 4 编写会员留言功能 225 9 3 5 编写会员留言视图 228 9 3 6 编写版主回复功能 228 9 3 7 创建版主回复视图 230 9 3 8 编写删除留言功能 231 9 4 实现动作记录机制 232 9 4 1 编写actionlogattribute动作过滤器属性 232 9 4 2 将属性应用到action 233 9 5 强化model的结构 233 9 6 使用控制反转容器 248 9 6 1 asp net mvc与autofac的集成 250 9 6 2 asp net mvc与autofac集成的原理 252 9 6 3 让autofac自动解析接口和对应的类 252 9 6 4 修正controller的构造符 255 总结 256 第10章 asp net mvc开发技巧 257 10 1 asp net mvc的多语系支持 258 10 2 在http响应标题中隐藏asp net mvc的版本 261 10 3 一起编译visual studio和view 262 10 4 mvchtmlstring类的开发技巧 265 10 5 在mvc与web forms之间传递数据 267 10 5 1 http get方法(querystring集合)和http post方法 267 10 5 2 session 267 10 6 如何调试asp net mvc源代码 268 10 6 1 使用 net framework源代码逐步调试功能 268 10 6 2 下载asp net mvc源代码并添加项目参考 273 10 7 使用visual studio程序模板进行快速开发 279 10 7 1 如何使用程序模板快速生成view 279 10 7 2 如何将内置的程序模板添加到项目中 280 10 7 3 如何修改内置的addcontroller程序模板并自动生成程序代码 283 10 7 4 如何新建自定义的addview程序模板并自动生成程序代码 284 10 7 5 深入t4程序生成器 287 总结 287 第11章 安装部署 288 11 1 如何将网站部署到本地iis中 289 11 2 如何部署远程iis 294 11 3 如何用命令提示符手动部署 296 11 4 部署asp net mvc时常见的问题 299 11 4 1 无法加载文件或组件 299 11 4 2 部署到iis 6之后看不到网页 300 11 4 3 部署到iis 6或iis 7之后都无法使用网站 302 11 5 部署asp net 4 0时的注意事项 304 11 5 1 安装时的注意事项 304 11 5 2 安装正确的 net framework包 304 11 5 3 应用程序集区不能跨 net版本设置 305 总结 305 第12章 单元测试 306 12 1 关于软件测试 307 12 1 1 何谓单元测试 307 12 1 2 何谓集成测试 308 12 1 3 如何区别单元测试与集成测试 309 12 1 4 何谓测试驱动开发 309 12 2 创建asp net mvc的单元测试项目 311 12 2 1 单元测试项目的命名规则 311 12 2 2 新建项目时自动创建单元测试项目 311 12 2 3 通过单元测试向导创建单元测试项目 313 12 2 4 在controller类中创建单元测试项目 315 12 3 如何编写asp net mvc单元测试 315 12 3 1 单元测试的3a模板 316 12 3 2 编写controller单元测试 316 12 3 3 在visual studio中执行单元测试程序 319 12 3 4 查看程序代码涵盖范围 320 12 3 5 编写适合进行单元测试的程序代码 323 12 3 6 使用stub假对象完成单元测试 325 12 3 7 使用mock假对象完成单元测试 327 12 3 8 编写routing单元测试 330 总结 332 前言在开始学习ASP NET MVC之前,我想许多读者心中应该都有疑惑,尤其是正宗的ASP NET Web Forms开发者,更可能会对ASP NET MVC技术给予异样的眼光甚至误解。 《ASP NET MVC 2开发实战》分为3篇,以循序渐进的方式揭开ASP NET MVC的神秘面纱,引导读者建立正确的观念,实际体验ASP NET MVC的强大魅力。 建议阅读顺序: 第1篇→第2篇→第3篇:想按部就班学习ASP NET MVC的人。 第1篇→第3篇→第2篇:想先感觉程序,再建立观念的人。 第3篇→第1篇→第2篇:懒得阅读文字,只想看程序代码的人。 第1篇 基础观念篇 第1章 在学习ASP NET MVC之前 本章将介绍ASP NET MVC的基础知识,帮助你了解ASP NET MVC的概况。由于本章内容着重于观念的讲解,如果觉得看不懂,可先跳过,待将读完后续的章节之后再回头阅读,或许更能帮助你建立正确的观念。 第2章 建立正确的开发观念 本章主要说明使用ASP NET MVC进行网站开发时应有的正确观念。强大的工具若没有正确的观念支持,就像是给你一台马力强又省油的手动挡汽车,而你却不知道离合器应该如何使用一样——也许当你尝试了一段时间,觉得车子还是开不快时,就会提前放弃一部好车。本章的最后也整理了一些初学者在学习ASP NET MVC时经常会问的问题,并逐一进行回答。 第3章 新手上路初体验 本章介绍如何利用Visual Studio 2010创建一个ASP NET MVC项目,让读者亲身体验ASP NET MVC实际开发的完整过程。相信在逐步教学的带领之下,能让现有的ASP NET Web Forms开发人员了解其与ASP NET MVC开发的差异,进而快速上手。 第2篇 技术讲解篇 第4章 网址路由与ASP NET MVC生命周期 想要掌握ASP NET MVC,最重要的是要了解网址路由(Routing)与ASP NET MVC生命周期的重要概念。网址路由在ASP NET MVC中有两个用途:一个用途是比对通过浏览器传来的HTTP请求,并将其对应到适当的控制器(Controller)与动作(Action)中进行处理;另一个用途是决定ASP NET MVC应该输出什么样的网址来响应浏览器。虽然跳过本章你仍然可以成功地创建ASP NET MVC网站,但阅读本章能帮助你理解ASP NET MVC执行时的顺序,进而减少犯错的机会。 第5章 用Model创建数据模型 在用ASP NET MVC开发网站的过程中,通常模型(Model)是整个项目中首先要开发的部分,所有需要进行数据访问的地方都仰赖模型提供服务。本章将讲解如何通过Visual Studio 2010自动建立数据模型以及手动建立和查看数据模型,并通过部分类的辅助方法实现基本的字段验证,甚至完成商业逻辑验证,最后通过实现库模式(Repository Pattern),让ASP NET MVC项目更易于进行单元测试与测试驱动开发(Test-Driven Development,TDD)。 第6章 剖析Controller的相关技术 ASP NET MVC的核心就是Controller,它负责处理浏览器传来的所有请求并决定响应的内容。但Controller并不负责决定如何显示内容,而是仅将特定类的内容响应给ASP NET MVC框架。视图(View)才是决定响应内容的重要角色。本章也会应用第2章提及的“分解关注点”、“以习惯取代配置”、“不要重复你自己”等观念,带你迈入ASP NET MVC的殿堂,发现ASP NET MVC的核心之美。 序言笔者目前任职于多奇数位创意有限公司,担任技术总监一职,负责公司技术方向的决策。大约在两年多前,我开始注意到,ASP NET MVC技术在国外渐渐发展起来。起初,我并不觉得它有什么特别的地方,但慢慢看到一些国外对ASP NET MVC的开发观念与设计方法的讨论——好像它真的能够解决当时ASP NET Web Forms开发上的难点,例如内置的控件不好用、控件套版不易、抽象的ASP NET Web Forms事件模型经常让新手搞不清楚状况、过大的ViewState等,而这些都是我们在日常开发工作中会遇到的问题。 直到2009年初,ASP NET MVC 1 0正式版上市,除了还在创建与维护中的ASP NET Web Forms项目不会改动之外,我毅然决然地带领公司的所有开发人员投入ASP NET MVC的怀抱,并宣布未来所有新项目皆以ASP NET MVC技术为主。这是一个重大的决定,也是一个我至今未曾后悔的决定。对我来说,学习一门全新技术的动机很重要。当你因为接触一门新技术而必须要放弃许多以往的开发经验时,如果没有明确的动机并发现转变的价值,是很难下定决心的。因此,要进入一个全新的技术领域,首先要感受技术的价值,然后是进一步研究技术的细节。 本书的写作历时一年多的时间,在这段时间里,ASP NET MVC的版本也从ASP NET MVC 1 0升级到了ASP NET MVC 2 0。由于ASP NET MVC的观念与架构十分优秀、严谨,因此,技术升级的过程非常顺利,而且开发观念也不需要重新建立。对开发人员来说,即使升级至ASP NET MVC 2 0,在学习上也没什么负担。即便是未来的ASP NET MVC 3 0,微软的ASP NET MVC开发团队也能保证它会与ASP NET MVC 1 0兼容,早期编写的程序完全可以顺利转移。新版本的ASP NET MVC只会继续在同一套架构上增强功能,并强化对Visual Studio 2010的支持。因此,笔者认为,ASP NET MVC在未来非常具有可发展性。 笔者曾经想过,我们公司会不会是台湾地区唯一一个只使用ASP NET MVC技术开发网站项目的公司呢?不过,这并不是重点,重点是我们现在创建的网站不但更加安全、开发速度更快、项目生成和完成的时间更短,最重要的是,网站变得易于维护,质量也更高了,这都要归功于ASP NET MVC的技术架构。因为ASP NET MVC非常强调“分解关注点”的观念,而且从开发架构上来看,也很容易让开发人员做到“分解关注点”,这个优势是ASP NET Web Forms完全无法匹敌的。 本书集结了笔者在学习与开发ASP NET MVC时的经验与心得,希望能带给所有 NET开发人员一个全新且优秀的选择。让我们一起拥抱ASP NET MVC的世界吧! 能够顺利出版这本书,我要感谢很多人。首先,最感谢的是我的ASP NET MVC开发团队,在公司里,他们写的Code比我写的字还多出很多很多,本书涉及的很多开发技巧与学习心得都来自于他们。除此之外,Demo、Thomsen、Danny、Bibby协助我撰写了部分章节,星寂、Jerry帮我完成了许多范例程序。我还要感谢帮我校稿与验证范例程序的朋友们,如果没有他们的协助,这本书恐怕很难完成。 同时,也非常感谢悦知文化的编辑Vicky,在我写作的过程中提供了许多的协助并给予我包容,因为我从来就没有按照“写作说明”写作文章,即便要出书,也还是觉得写博客的心情与角度比较符合我的风格。 这是我写的第一本书,如果读者对书中的内容或观念有任何不理解的地方,欢迎到我的博客、Facebook粉丝专页或噗浪(Plurk)上与我交流、互动。 黄保翕(Will保哥) |
随便看 |
百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。