- ISBN:9787302635963
- 装帧:平装-胶订
- 册数:暂无
- 重量:暂无
- 开本:其他
- 页数:328
- 出版时间:2023-09-01
- 条形码:9787302635963 ; 978-7-302-63596-3
本书特色
本书由ABP框架的创始人编写,从基本概念到真实案例,带领读者全面深入理解ABP框架和现代Web应用程序开发技术。通过学习本书,读者将能够独立创建一个完整的、易于开发、维护和测试的Web解决方案。
内容简介
本书全面介绍ABP框架,包括如何使用ABP框架及其提供的基础设施逐步构建可维护的模块化应用程序解决方案,是一本使用ABP框架构建现代Web应用程序的实用指南。本书既有关于战略设计的内容,又涉及具体的战术实现。不仅包含用于入门和理解原理的简单应用程序示例,还包括一个复杂的可媲美真实项目的案例,这些示例的源代码都是开源的。 全书包括5部分共17章。第1部分(第1~4章)简要介绍ABP框架; 第2部分(第5~8章)重点探讨ABP框架提供的基础设施; 第3部分(第9~11章)详细讨论如何使用ABP框架实现领域驱动设计; 第4部分(第12~14章)讲述ABP框架为开发用户界面和API提供的基础设施; 第5部分(第15~17章)讨论模块化系统、多租户和自动化测试。 本书可作为想要学习软件架构和**实践、使用微软技术和ABP框架构建可维护的Web解决方案的开发人员的参考书,也可作为高等院校计算机、软件工程等相关专业本科生的教学参考书。
目录
第1章现代软件开发和ABP框架
1.1开发企业级Web应用程序面临的挑战 1.1.1选择架构 1.1.2DRY原则 1.1.3构建基础UI 1.1.4实现常见的业务需求 1.2ABP框架提供的功能 1.2.1ABP框架的架构 1.2.2启动模板 1.2.3ABP框架的基础设施 1.2.4社区 1.3小结
第2章开始使用ABP框架 2.1准备工作 2.1.1IDE/编辑器 2.1.2.Net 6 SDK 2.1.3数据库管理系统 2.2安装ABP CLI 2.3创建一个新的解决方案 2.3.1下载基于启动模板的
解决方案 2.3.2使用ABP CLI 2.4运行解决方案 2.4.1连接字符串 2.4.2创建数据库 2.4.3运行Web应用程序 2.5ABP框架提供的一些
预构建模块 2.5.1账户模块 2.5.2身份模块 2.5.3租户管理模块 2.6小结
第3章 应用程序开发步骤
3.1准备工作 3.2创建解决方案 3.3定义领域对象 3.3.1Category 3.3.2ProductStockState 3.3.3Product 3.3.4常量 3.4EF Core和数据库映射 3.4.1向DbContext类中添加实体 3.4.2实体到数据库表的映射 3.4.3AddMigration命令 3.4.4设置种子数据 3.4.5迁移数据库 3.5产品信息列表 3.5.1ProductDto类 3.5.2IProductAppService接口 3.5.3ProductAppService类 3.5.4对象到对象的映射 3.5.5测试ProductAppService类 3.5.6自动API控制器和Swagger 3.5.7动态JavaScript代理 3.5.8创建产品页面 3.5.9添加一个新菜单项 3.5.10向页面添加产品数据表格 3.6创建产品 3.6.1应用服务契约 3.6.2应用服务实现 3.6.3UI 3.7编辑产品 3.7.1应用服务契约 3.7.2应用服务实现 3.7.3UI 3.8删除产品 3.9小结
第4章 示例解决方案——EventHub
4.1准备工作 4.2EventHub简介 4.3架构 4.3.1认证流程 4.3.2解决方案预览 4.3.3项目依赖 4.4运行解决方案 4.4.1克隆GitHub仓库 4.4.2运行基础设施 4.4.3打开解决方案 4.4.4创建数据库 4.4.5运行应用程序 4.4.6使用Tye运行解决方案 4.5小结
第2部分
ABP框架基础
第5章 ASP.NET Core和ABP框架的基础设施
5.1准备工作 5.2模块化 5.2.1Startup类 5.2.2定义模块类 5.2.3模块依赖和启动模块 5.2.4模块的生命周期 5.3依赖注入系统 5.3.1服务的生命周期 5.3.2约定优先的服务注册方式 5.3.3与依赖注入相关的接口 5.3.4[Dependency]特性 5.3.5[ExposeServices]特性 5.4应用程序配置 5.4.1设置配置值 5.4.2读取配置值 5.5选项模式 5.5.1定义选项类 5.5.2配置选项 5.5.3使用选项值 5.5.4通过配置系统设置选项值 5.5.5ABP框架和ASP.NET Core
的选项 5.6日志 5.7小结
第6章 数据访问基础设施
6.1准备工作 6.2定义实体 6.2.1AggregateRoot类 6.2.2Entity类 6.2.3具有复合主键的实体 6.2.4Guid类型的主键 6.3使用仓储 6.3.1通用仓储 6.3.2自定义仓储 6.4集成EF Core 6.4.1配置DBMS 6.4.2定义DbContext类 6.4.3向DI注册DbContext类 6.4.4配置实体映射 6.4.5实现自定义仓储 6.4.6加载关联数据 6.5集成MongoDB 6.5.1定义DbContext类 6.5.2配置实体映射 6.5.3向DI注册DbContext类 6.5.4实现自定义仓储 6.6深入UoW系统 6.6.1配置UoW系统 6.6.2手动控制UoW系统 6.7小结
第7章 横切关注点
7.1准备工作 7.2授权和权限系统 7.2.1简单授权 7.2.2使用权限系统 7.2.3基于策略的授权 7.2.4在非控制器代码中使用授权 7.3验证用户的输入 7.3.1使用数据注解特性 7.3.2使用IValidatableObject接口
自定义验证规则 7.3.3验证异常 7.3.4禁用验证 7.3.5在其他类中使用验证 7.3.6集成FluentValidation 7.4异常处理 7.4.1用户友好的异常 7.4.2业务异常 7.4.3控制异常日志 7.4.4控制HTTP状态码 7.5小结
第8章 ABP框架提供的功能和服务
8.1准备工作 8.2获取当前用户 8.3数据过滤系统 8.3.1软删除数据过滤器 8.3.2多租户数据过滤器 8.3.3禁用一个数据过滤器 8.3.4自定义数据过滤器 8.4审计日志系统 8.4.1审计日志对象 8.4.2审计日志范围 8.4.3审计日志系统的配置选项 8.4.4精确控制审计日志的禁用
和启用 8.5缓存系统 8.5.1IDistributedCacheT接口 8.5.2缓存系统的配置选项 8.5.3错误处理 8.5.4在多租户应用程序中
使用缓存 8.5.5使用Redis作为分布式缓存
提供程序 8.5.6作废失效的缓存 8.6UI本地化 8.6.1配置支持的语言 8.6.2确定当前语言 8.6.3定义本地化资源 8.6.4使用本地化JSON文件 8.6.5获得本地化文本 8.6.6配置本地化资源 8.6.7在特定服务中使用本地化 8.6.8在客户端中使用本地化 8.7小结
第3部分
领域驱动设计
第9章 DDD概述
9.1准备工作 9.2DDD简介 9.2.1DDD的概念 9.2.2DDD分层 9.2.3实现DDD的构件 9.3基于DDD的.NET解决方案
的结构 9.3.1创建一个简单的基于DDD的
.NET解决方案 9.3.2向ABP框架的启动模板
项目结构演变 9.3.3分离宿主项目和UI项目 9.4多应用程序解决方案 9.5基于DDD的应用程序的
执行流程 9.6通用原则 9.6.1数据库提供程序独立原则 9.6.2展示层技术无关原则 9.7小结
第10章 领域层
10.1准备工作 10.2示例领域简介 10.3聚合和实体 10.3.1聚合的概念 10.3.2通过ID引用其他聚合 10.3.3小聚合 10.3.4实体的主键 10.3.5实体的构造函数 10.3.6使用领域服务创建聚合 10.3.7业务逻辑和约束 10.3.8在实体方法中使用外部服务 10.4领域服务 10.5仓储 10.6规约 10.6.1无参数的规约 10.6.2有参数的规约 10.6.3组合规约 10.7领域事件 10.7.1本地事件总线 10.7.2分布式事件总线 10.8小结
第11章 应用层
11.1准备工作 11.2实现应用服务 11.3设计DTO 11.3.1设计DTO类 11.3.2验证输入DTO 11.3.3对象到对象的映射 11.3.4DTO设计的*佳实践 11.4各层职责 11.4.1用户授权 11.4.2控制事务 11.4.3验证用户输入 11.4.4获取当前用户信息 11.5小结
第4部分
用户界面和API开发
第12章 使用MVC/Razor Pages
12.1准备工作 12.2主题系统 12.2.1基础库 12.2.2布局 12.3打包和压缩系统 12.3.1安装NPM包 12.3.2使用标准包 12.3.3导入脚本和样式文件 12.3.4页面打包 12.3.5全局打包配置 12.3.6创建命名打包 12.3.7控制打包和压缩系统的行为 12.4菜单 12.5Bootstrap标签助手 12.6表单和表单验证 12.6.1呈现表单元素 12.6.2验证用户输入 12.6.3本地化表单 12.6.4实现AJAX表单 12.7模态框 12.7.1基础模态框 12.7.2模态框中的表单 12.7.3模态框中使用JavaScript 12.8JavaScript API 12.8.1获得当前用户信息 12.8.2检查用户权限 12.8.3检查租户功能 12.8.4本地化字符串 12.8.5展示消息框 12.8.6展示通知 12.9调用HTTP API 12.9.1abp.ajax API 12.9.2动态客户端代理 12.9.3静态客户端代理 12.10小结
第13章 使用Blazor WebAssembly构建UI
13.1准备工作 13.2什么是Blazor 13.3ABP框架的Blazor UI入门 13.4用户身份验证 13.5主题系统 13.6菜单 13.7使用ABP框架提供的
基础服务 13.7.1用户授权 13.7.2本地化用户界面 13.7.3访问当前用户的信息 13.8使用ABP框架提供的UI服务 13.8.1展示消息框 13.8.2展示通知消息框 13.8.3展示警告框 13.9调用HTTP API 13.10全局脚本和样式 13.11小结
第14章 构建HTTP API和实时服务
14.1准备工作 14.2构建HTTP API 14.2.1创建HTTP API项目 14.2.2创建ASP.NET Core控制器 14.2.3ABP框架的自动API
控制器系统 14.3访问HTTP API 14.3.1使用ABP框架的动态
客户端代理 14.3.2使用ABP框架的静态(生成的)
客户端代理 14.4在ABP框架中使用SignalR 14.4.1使用ABP框架的SignalR
集成包 14.4.2配置SignalR客户端 14.5小结
第5部分
其他
第15章 模块化系统
15.1准备工作 15.2模块化简介 15.2.1类库和NuGet包 15.2.2应用程序模块 15.3构建Payment模块 15.3.1新建应用程序模块 15.3.2重构Payment模块解决
方案 15.3.3支付流程 15.3.4定义配置选项 15.4把Payment模块安装到
EventHub中 15.4.1设置项目依赖 15.4.2数据库集成 15.5小结
第16章 多租户
16.1准备工作 16.2多租户简介 16.2.1什么是SaaS 16.2.2什么是多租户 16.2.3数据库架构 16.3ABP框架为多租户提供的
基础设施 16.3.1启用和禁用多租户 16.3.2解析当前租户 16.3.3使用当前租户的信息 16.3.4切换租户 16.3.5禁用数据隔离 16.3.6为领域实体启用多租户
支持 16.4功能系统 16.4.1定义功能 16.4.2核查功能 16.4.3管理租户的功能 16.5何时使用多租户 16.6小结
第17章 自动化测试
17.1准备工作 17.2ABP框架的测试基础设施 17.2.1测试项目概览 17.2.2测试项目依赖的库 17.2.3运行测试 17.3单元测试 17.3.1测试静态(无状态)类 17.3.2测试无依赖项的类 17.3.3测试包含依赖项的类 17.4集成测试 17.4.1基于ABP框架的集成测试 17.4.2模拟数据库 17.4.3预置测试数据 17.4.4测试仓储 17.4.5测试领域服务 17.4.6测试应用服务 17.5小结
-
有限与无限的游戏:一个哲学家眼中的竞技世界
¥37.4¥68.0 -
全图解零基础word excel ppt 应用教程
¥12.0¥48.0 -
机器学习
¥59.4¥108.0 -
深度学习的数学
¥43.5¥69.0 -
智能硬件项目教程:基于ARDUINO(第2版)
¥37.7¥65.0 -
硅谷之火-人与计算机的未来
¥14.3¥39.8 -
元启发式算法与背包问题研究
¥38.2¥49.0 -
AI虚拟数字人:商业模式+形象创建+视频直播+案例应用
¥62.9¥89.8 -
UNIX环境高级编程(第3版)
¥164.9¥229.0 -
剪映AI
¥52.8¥88.0 -
深度学习高手笔记 卷2:经典应用
¥90.9¥129.8 -
纹样之美:中国传统经典纹样速查手册
¥77.4¥109.0 -
UG NX 12.0数控编程
¥24.8¥45.0 -
MATLAB计算机视觉与深度学习实战(第2版)
¥90.9¥128.0 -
界面交互设计理论研究
¥30.8¥56.0 -
UN NX 12.0多轴数控编程案例教程
¥25.8¥38.0 -
微机组装与系统维护技术教程(第二版)
¥37.8¥43.0 -
明解C语言:实践篇
¥62.9¥89.8 -
Linux服务器架设实战(Linux典藏大系)
¥84.5¥119.0 -
PREMIERE PRO 2023全面精通:视频剪辑+颜色调整+转场特效+字幕制作+案例实战
¥69.3¥99.0