请输入您要查询的百科知识:

 

词条 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条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。

 

Copyright © 2004-2023 Cnenc.net All Rights Reserved
更新时间:2025/1/31 14:57:27