本书提供源码!(在书中第3页前言部分)
基本信息
- 作者:
- 出版社:
- ISBN:9787302465041
- 出版日期:2017 年4月
- 开本:16开
- 页码:476
- 版次:1-1
- 所属分类:
内容简介
ASP.NET MVC 是微软官方提供的以MVC模式为基础的ASP.NET Web应用程序框架。MVC 将一个Web应用分解为Model、View和Controller,有助于管理复杂的应用程序,并简化了分组开发,使得复杂项目更易维护。
本书共分为12章,以符合初学者思维的方式系统地介绍ASP.NET MVC的应用技巧,并结合实际项目详细地介绍如何基于ASP.NET MVC构建企业项目。通过本书的学习,读者可以全面掌握ASP.NET MVC的开发,并从代码中获取软件开发与架构设计的经验与灵感。
本书具有很大的参考价值,既适合ASP.NET MVC开发初学者阅读,也适合有一定基础的ASP.NET MVC开发人员进行技术强化和经验积累,同时还适合作为高等院校和培训学校相关专业的教学参考书。
作译者
邹琼俊,湖南人,.NET高级工程师,CSDN学院讲师,专注于.NET Web开发,对.NET Web开发有较深研究。
目录
第1章 MVC开发前奏 1
1.1 开发环境搭建 1
1.1.1 操作系统和开发工具 1
1.1.2 开发环境配置 3
1.1.3 VS常用快捷键 7
1.1.4 VS技巧 8
1.2 常用辅助开发工具介绍 10
1.2.1 Firebug 10
1.2.2 HttpRequester 12
1.3 知识储备 13
1.3.1 必备知识介绍 13
1.3.2 树立软件开发信心 13
1.4 C#语法新特性 14
1.4.1 C# 2.0 新特性 14
1.4.2 C# 3.0/C# 3.5 新特性 16
1.4.3 C# 4.0新特性 26
1.4.4 C#5.0新特性 28
第2章 Entity Framework 29
2.1 Entity Framework简介 29
2.1.1 与ADO.NET的关系 29
2.1.2 什么是O/R Mapping 29
2.1.3 ORM in EF 30
2.1.4 EF的优缺点 30
2.2 Database First 开发方式 31
2.2.1 创建Dtabase First Demo 31
2.2.2 EF原理 34
2.3 Entity Framework增删改查 37
2.3.1 附加数据库 37
2.3.2 新建项目 39
2.3.3 新增 39
2.3.4 简单查询和延时加载 40
2.3.5 根据条件排序和查询 42
2.3.6 分页查询 43
2.3.7 修改 43
2.3.8 删除 45
2.3.9 批处理 46
2.4 EF查询相关 48
2.4.1 IQueryable与IEnumberable接口的区别 48
2.4.2 LINQ To EF 48
2.4.3 关于EF对象的创建问题 50
2.4.4 关于上下文的使用注意事项 51
2.4.5 EF 跨数据库支持 51
2.5 Model First 开发方式 51
2.5.1 创建Model First Demo 52
2.5.2 经验分享 60
2.6 Code First 开发方式 60
2.6.1 创建Code First Demo 61
2.6.2 关于EF实例的创建问题 68
第3章 初识MVC 69
3.1 MVC简介与三层架构 70
3.1.1 MVC简介 70
3.1.2 三层架构 71
3.2 ASP.NET的两种开发方式 72
3.2.1 ASP.NET开发现状 72
3.2.2 WebForms的开发方式 73
3.2.3 ASP.NET MVC的开发方式 74
3.3 一个ASP.NET MVC程序 75
3.3.1 创建项目 75
3.3.2 项目框架结构说明 77
3.3.3 路由——映射URL到Action 79
3.3.4 返回string的MVC方法 81
3.3.5 简单了解Razor视图 81
3.3.6 ASP.NET MVC组件之间的关系 82
3.4 MVC的约定 82
3.4.1 控制器的约定大于配置 83
3.4.2 视图的相关约定 83
第4章 MVC进阶 84
4.1 View详解 84
4.1.1 View和Action之间数据传递的方式 84
4.1.2 TempData、ViewData和ViewBag的区别 85
4.2 Razor视图引擎 88
4.2.1 什么是 Razor 88
4.2.2 Razor 语法 89
4.2.3 Razor 布局——整体视图模板 92
4.2.4 Razor 布局——ViewStart 93
4.2.5 Razor 布局——部分视图 93
4.2.6 视图引擎 95
4.2.7 MVC视图的“秘密” 96
4.3 Controller 98
4.3.1 Action方法参数与返回值 98
4.3.2 Action指定使用视图 100
4.3.3 View和Controller之间的关系 102
4.4 Model和验证 104
4.4.1 Net MVC请求处理流程 104
4.4.2 MVC模型验证 104
4.5 HtmlHelper 111
4.5.1 HtmlHelper的Action、表单标签 112
4.5.2 HtmlHelper的弱类型与强类型方法 113
4.5.3 HtmlHelper的RenderPartial 116
4.5.4 HtmlHelper的RenderAction 116
4.5.5 HtmlHelper扩展方法 117
4.6 ASP.NET MVC分页 118
4.6.1 HtmlHelper 118
4.6.2 局部视图 124
4.6.3 MvcPager 127
4.6.4 第三方UI组件 131
第5章 MVC核心透析 132
5.1 MVC Routing 132
5.1.1 Routing——URL 133
5.1.2 Routing的作用 134
5.1.3 Routing包含字面值的URL 134
5.1.4 Routing测试 135
5.2 异步Ajax 137
5.2.1 传统Ajax实现方式 137
5.2.2 Unobtrusive Ajax使用方式 140
5.2.3 AjaxHelper 141
5.2.4 请求Json数据 144
5.3 MVC Areas 146
5.3.1 Area使用入门 146
5.3.2 Area注册类放到单独程序集 148
5.3.3 Area注册控制器放到单独程序集 150
5.4 MVC Filter 151
5.4.1 Action 152
5.4.2 Result 153
5.4.3 AuthorizeAttribute 157
5.4.4 Exception 158
5.5 MVC整体运行流程 159
5.5.1 进入管道 159
5.5.2 路由注册 162
5.5.3 创建MvcHandler对象 164
5.5.4 执行MvcHandler ProcessRequest方法 166
5.5.5 调用控制器里面的Action方法 169
5.5.6 根据Action方法返回的ActionResult加载View 172
第6章 网站性能和安全优化 175
6.1 缓存 175
6.2 压缩合并css和js 178
6.3 删除无用的视图引擎 179
6.4 使用防伪造令牌来避免CSRF攻击 181
6.5 隐藏ASP.NET MVC版本 182
6.6 Nginx服务器集群 182
6.6.1 Nginx是什么 182
6.6.2 Nginx的应用现状和特点 184
6.6.3 Nginx的事件处理机制 184
6.6.4 Nginx不为人知的特点 186
6.6.5 Nginx的内部模型 186
6.6.6 Nginx如何处理请求 188
6.6.7 Nginx典型的应用场景 188
6.6.8 Nginx的应用 189
6.6.9 Nginx常见配置说明 190
6.6.10 集群案例 195
6.7 常用的Web安全技术手段 197
第7章 NHibernate 199
7.1 NHibernate简介 199
7.1.1 什么是NHibernate 199
7.1.2 NHibernate的架构 199
7.1.3 NHibernate与其Entity Framework框架比较 200
7.2 一个NHibernate应用程序 201
7.2.1 搭建项目基本框架 201
7.2.2 编写映射文件 206
7.2.3 添加数据访问层类 209
7.2.4 添加业务逻辑层类 210
7.2.5 添加控制器和视图 211
7.3 增删改查询 212
7.4 使用代码映射 213
7.4.1 NHibernate入职Demo 214
7.4.2 NHibernate代码映射高级功能 217
7.5 监听NHibernate生成的SQL 224
7.5.1 使用show_sql 224
7.5.2 使用NHibernateProfile 225
第8章 IoC 、Log4Net和Quartz.Net 228
8.1 Unity 228
8.1.1 获取Unity 228
8.1.2 Unity简介 229
8.1.3 Unity API 229
8.1.4 使用Unity 229
8.2 Spring.Net 234
8.2.1 Web.config中的属性注入 234
8.2.2 在单独的配置文件中构造函数注入 238
8.3 Log4Net 240
8.3.1 配置Log4Net环境 240
8.3.2 Log4Net相关概念 244
8.4 Quartz.Net 244
8.4.1 Quartz.Net概述 244
8.4.2 参考资料 244
8.4.3 Quartz.Net使用示例 245
第9章 分布式技术 256
9.1 WebService 256
9.1.1 创建一个WebService并调用 256
9.1.2 调用天气预报服务 259
9.2 WCF 262
9.2.1 什么是WCF 262
9.2.2 理解面向服务 263
9.2.3 WCF体系架构简介 263
9.2.4 WCF的基础概念介绍 264
9.2.5 创建一个WCF程序 269
9.2.6 WCF和WebService的区别 276
9.3 Web API 276
9.3.1 创建WebAPI 277
9.3.2 调用WebAPI 278
9.3.3 WebAPI授权 282
9.3.4 WebAPI的调试 285
9.4 Memcached 285
9.4.1 Memcached简介 285
9.4.2 Memcached 基本原理 287
9.4.3 Memcached服务端的安装 288
9.4.4 C#操作Memcached 290
9.5 Redis 292
9.5.1 Redis简介 292
9.5.2 Redis与Memcached的比较 292
9.5.3 Redis环境部署 293
9.5.4 Redis常用数据类型 296
9.5.5 给Redis设置密码 302
9.5.6 Redis主从复制 303
9.6 MongoDB 306
9.6.1 MongoDB简介 306
9.6.2 下载安装和配置 307
9.6.3 使用mongo.exe 执行数据库增删改查操作 311
9.6.4 更多命令 313
9.6.5 MongoDB语法与现有关系型数据库SQL语法比较 315
9.6.6 可视化的客户端管理工具MongoVUE 315
9.6.7 通过C#的samus驱动进行操作 317
9.6.8 索引 320
第10章 站内搜索 323
10.1 SEO 323
10.1.1 SEO简介 323
10.1.2 开发时要考虑SEO 324
10.1.3 关于搜索 326
10.2 Lucene.Net简介和分词 328
10.2.1 Lucene.Net简介 328
10.2.2 分词 329
10.2.3 盘古分词算法的使用 332
10.3 简单的搜索引擎代码 334
10.4 搜索的一个版本 340
10.5 搜索的优化版 349
10.5.1 热词统计 349
10.5.2 热门搜索 354
10.5.3 标题和内容都支持搜索并高亮展示 357
10.5.4 与查询、或查询、分页 358
第11章 财务对账系统 366
11.1 需求 366
11.2 前台UI框架搭建 367
11.3 菜单特效 374
11.4 面板折叠和展开 376
11.5 tab多页签支持 379
11.6 Controller和View的交互 381
11.7 增改查匹配 389
11.8 统计报表 407
11.9 服务器端排序 425
11.10 从ASP.NET MVC中导出Excel文件 428
11.10.1 异步导出 429
11.10.2 实时导出 431
11.11 数据同步 432
第12章 通用角色权限管理系统 434
12.1 需求分析 434
12.2 技术选型 434
12.3 数据库设计 435
12.4 架构搭建 439
12.4.1 新建解决方案和项目 439
12.4.2 通用层搭建 441
12.4.3 数据访问层搭建 442
12.4.4 业务逻辑层 459
12.4.5 UI层 465
12.5 功能实现 466
12.5.1 用户登录 466
12.5.2 采用分布式的方式记录异常日志 472
12.5.3 授权 474
12.5.4 增删改查 475
12.6 运行项目 475
深入解析ASP.NET Core Web API:打造高效、安全的现代化应用程序 本书专为渴望精通ASP.NET Core Web API开发的开发者量身打造,旨在帮助您构建高性能、可扩展且安全可靠的Web API服务。您将踏上一段全面的技术探索之旅,从基础概念的扎实掌握,到高级模式的灵活运用,最终能够自信地设计、开发、部署和维护复杂的企业级API。 第一部分:ASP.NET Core Web API 基础入门 在这一部分,我们将为您打下坚实的基础,让您快速理解ASP.NET Core Web API的核心架构和关键组件。 ASP.NET Core 概览与Web API的定位: 我们将首先介绍ASP.NET Core的整体生态系统,以及Web API在其中扮演的重要角色。您将了解ASP.NET Core的跨平台特性、高性能优势,以及它如何成为现代Web应用程序开发的理想选择。 项目创建与基本结构: 手把手指导您创建一个新的ASP.NET Core Web API项目,并深入剖析项目的目录结构、核心配置文件(如`Program.cs`, `Startup.cs`或`appsettings.json`),以及它们在应用程序启动和配置中的作用。 路由(Routing)机制详解: 理解ASP.NET Core Web API的路由系统是构建可访问API的关键。我们将详细讲解属性路由(Attribute Routing)和约定路由(Convention Routing)的用法,包括如何定义URL模板、参数绑定,以及如何处理HTTP动词(GET, POST, PUT, DELETE等)。您将学会如何设计清晰、易于理解且富有表现力的API路由。 控制器(Controllers)与动作方法(Action Methods): 控制器是API请求处理的中心。您将学习如何创建控制器类,如何编写各种类型的动作方法来响应不同的HTTP请求,以及如何通过模型绑定(Model Binding)将请求数据映射到方法的参数。 数据传输对象(DTOs)与模型: 数据在API之间传输时,DTOs扮演着至关重要的角色。我们将指导您如何创建和使用DTOs来封装和解耦业务逻辑层与表现层的数据。同时,也会讲解如何利用模型验证(Model Validation)来确保传入数据的有效性。 HTTP响应与状态码: 正确地返回HTTP响应及其状态码是API设计的基本要求。您将学习如何返回不同类型的数据(如JSON, XML),如何使用`IActionResult`接口来灵活控制响应内容,并深入理解常见的HTTP状态码(如200 OK, 201 Created, 400 Bad Request, 404 Not Found, 500 Internal Server Error)的含义和适用场景。 第二部分:深入API设计与开发实践 本部分将带领您进入更高级的API设计和开发领域,掌握构建健壮、可维护API的实用技巧。 RESTful API 设计原则: 我们将详细阐述RESTful架构风格的核心原则,包括资源导向、无状态性、客户端-服务器分离等。通过实际案例,您将学会如何设计遵循RESTful规范的API,使其更具可发现性和互操作性。 数据访问层(DAL)与 ORM 集成: 强大的数据访问能力是Web API的基石。您将学习如何设计和实现数据访问层,并深入了解如何集成Entity Framework Core(EF Core)或其他ORM工具,高效地与数据库进行交互,实现数据的增删改查操作。 依赖注入(Dependency Injection - DI)与服务生命周期: ASP.NET Core内置了强大的依赖注入容器。我们将深入讲解DI的概念、优势,以及如何在Web API中使用它来管理对象创建和生命周期。这对于构建可测试、可维护的代码至关重要。 异步编程(Async/Await)的最佳实践: 在高并发场景下,异步编程是提升API性能的关键。您将掌握`async`和`await`关键字的使用,理解异步操作如何避免阻塞,以及如何在API开发中编写高效的异步代码。 API 版本控制(API Versioning): 随着API的迭代更新,版本控制变得不可或缺。我们将探讨不同的API版本控制策略(URL路径、HTTP头、查询字符串),并指导您如何实现版本控制,以支持向后兼容性并逐步引入新功能。 输入输出格式化(Input/Output Formatting): 了解并掌握如何处理不同的数据格式是API交互的关键。您将学习如何使用内置的格式化器(如JSON, XML)以及如何自定义格式化器来满足特定的数据交换需求。 中间件(Middleware)的工作原理与应用: 中间件是ASP.NET Core请求处理管道中的重要组成部分。您将深入理解中间件的工作机制,并学会如何利用它来实现日志记录、身份验证、错误处理等横切关注点。 第三部分:API 安全性与部署 安全是Web API不可忽视的重中之重。本部分将聚焦于API的安全加固和部署策略。 身份验证(Authentication)与授权(Authorization): 您将学习ASP.NET Core提供的多种身份验证机制,包括Cookie认证、JWT(JSON Web Tokens)认证、OAuth 2.0等。同时,也会深入讲解授权的概念,如何基于角色(Role-Based Authorization)和策略(Policy-Based Authorization)来限制用户访问API资源。 HTTPS/SSL 的重要性与配置: 了解HTTPS在保护数据传输过程中的关键作用,并学习如何在ASP.NET Core Web API中进行配置和启用。 API 速率限制(Rate Limiting): 为了防止滥用和保护服务器资源,速率限制是必不可少的安全措施。我们将探讨实现API速率限制的策略和工具。 跨域资源共享(CORS - Cross-Origin Resource Sharing): 在分布式环境中,理解并正确配置CORS对于允许不同源的客户端访问API至关重要。 错误处理与异常管理: 健壮的错误处理机制能够提升API的用户体验和稳定性。您将学习如何集中捕获和处理异常,并向客户端返回有意义的错误信息。 日志记录(Logging): 合理的日志记录有助于监控API运行状况、排查问题。我们将介绍ASP.NET Core的日志框架,并指导您如何进行有效的日志记录。 API 文档生成: 良好的API文档是API可用性的重要保障。您将学习如何使用Swagger/OpenAPI等工具自动生成交互式API文档,方便开发者使用和集成。 部署策略: 从开发到生产环境的部署是一个关键环节。您将了解将ASP.NET Core Web API部署到IIS、Docker、Azure App Service等不同环境的常见方法和最佳实践。 第四部分:高级主题与性能优化 本部分将进一步拓展您的视野,深入探讨一些更高级的主题,帮助您构建更加卓越的API。 缓存(Caching)策略: 缓存是提升API性能的有效手段。我们将讨论分布式缓存(如Redis)和内存缓存的应用,以及如何选择合适的缓存策略。 性能剖析与优化: 学习如何利用性能分析工具来识别API中的瓶颈,并采取相应的优化措施,例如数据库查询优化、代码重构等。 消息队列集成(Message Queues): 在解耦服务、实现异步通信方面,消息队列(如RabbitMQ, Kafka)发挥着重要作用。您将了解如何将消息队列集成到ASP.NET Core Web API中。 微服务架构中的 Web API: 对于构建微服务架构的应用程序,Web API是核心组件。我们将探讨在微服务场景下Web API的设计和交互模式。 单元测试与集成测试: 编写可测试的代码是保证API质量的基础。您将学习如何为API编写单元测试和集成测试,确保代码的正确性和稳定性。 GraphQL 与 Web API 的比较: 了解GraphQL作为一种新的API查询语言,以及它与传统RESTful API的异同,为您的API设计提供更多选择。 通过本书的学习,您将不仅掌握ASP.NET Core Web API的开发技能,更能培养出色的API设计理念和工程实践能力,能够自信地应对各种复杂的Web API开发挑战,为构建现代化、高性能、安全可靠的应用程序奠定坚实基础。