• 精通ABP框架
21年品牌 40万+商家 超1.5亿件商品

精通ABP框架

批量上传,套装书可能不全,下单前咨询在线客服! 正版书 !!!

62.04 4.8折 128 全新

库存75件

四川成都
认证卖家担保交易快速发货售后保障

作者[土]哈利尔·伊布雷西姆·卡尔坎(Halil ?brahim Kalkan),杨帅

出版社清华大学出版社

ISBN9787302635963

出版时间2023-09

装帧平装

开本16开

定价128元

货号29639484

上书时间2024-10-21

百叶图书

已实名 已认证 进店 收藏店铺

   商品详情   

品相描述:全新
商品描述
前言

ABP框架通过遵循软件开发最佳实践和约定的方式,为构建现代Web应用程序提供了完整的基础设施。ABP框架是一个上层应用框架,拥有丰富的生态,可以帮助开发者实现DRY(Don’t Repeat Yourself)原则,并使其专注于编写业务代码。

本书由ABP框架项目的领导者撰写,能够帮助读者从零开始全面了解ABP框架和现代Web应用程序开发技术。通过逐步讲解基本概念和真实案例,读者将了解现代Web解决方案的需求,以及如何使用ABP框架方便地开发自己的解决方案。本书还将介绍企业级应用程序开发中的一些通用需求和ABP框架提供的基础设施组件。通过本书,读者将掌握构建可维护的模块化Web解决方案的最佳实践。

阅读完本书,读者将能够创建一个完整且易于开发、维护和测试的Web解决方案。

目标读者

本书面向想要学习软件架构和最佳实践、使用微软技术和ABP框架构建可维护的Web解决方案的开发人员。在阅读本书前,读者需要具有C#和ASP.NET Core相关的基础知识。

内容结构

本书分为5部分,共17章,主要内容包括: 

第1章讨论开发业务应用程序面临的常见挑战性问题,并阐述ABP框架如何解决这些挑战性问题。

第2章探讨如何使用ABP框架创建和运行一个新的解决方案。

第3章是本书最长的一章,通过逐步创建一个完整的应用程序,介绍如何使用ABP框架开发应用程序。这一章基本上集合了本书的大部分内容。通过阅读这一章,虽然可能无法理解ABP框架的所有特性,但是可以使用ABP框架的基本组件创建自己的应用程序,从而大致地了解ABP框架的功能。然后可以通过阅读后续章节深入地理解ABP框架的所有技术细节。

第4章介绍EventHub解决方案的结构和架构。这是专门为本书创建的一个大型示例应用程序。建议读者阅读这一章时,在自己的开发环境中运行该解决方案。

第5章探讨一些基本的概念,如依赖注入、模块化、配置和日志。这些概念对理解与使用ABP框架和ASP.NET Core进行应用程序开发是必不可少的。

第6章介绍实体、仓储和工作单元的概念,并探讨如何使用Entity Framework Core和MongoDB。这一章还将介绍查询数据、操作数据及控制数据库事务的不同方法。

第7章重点介绍应用程序中需要关注的3个问题: 授权、验证和异常处理。应用程序中的每个部分基本都需要关注这些问题。这一章将探讨如何使用基于权限的授权系统、验证用户输入及处理异常和异常信息。

第8章介绍一些ABP框架中的常用功能,如获取当前用户的信息、数据过滤和审计日志、数据缓存和本地化。

第9章是DDD部分的第1章。首先阐述DDD的概念,并基于DDD构建了一个.NET解决方案; 然后探讨如何把DDD标准的四层解决方案模型演变为ABP框架中的启动模板解决方案的结构; 此外,还将介绍DDD的构件和原理。

第10章将继续介绍DDD中的领域层。首先介绍EventHub的领域对象,然后探讨如何设计聚合,实现领域服务、仓储和规约,以及使用事件总线发布领域事件。

第11章重点介绍DDD中的应用层。这一章将介绍设计和验证数据传输对象及实现应用服务的最佳实践,还将探讨领域层和应用层的职责。

第12章介绍MVC(Razor Pages)应用程序开发技术,它是一种在服务器端生成HTML的技术。这一章将探讨ABP框架实现的主题系统,以及提供的一些其他功能,如打包、压缩、自定义标签、表单、菜单和模态框; 还将介绍如何在客户端调用服务器端的API,以及如何使用ABP框架提供的JavaScript API展示通知和消息框等。

第13章与第12章类似,介绍如何使用微软的Blazor框架和ABP框架进行UI开发。Blazor是一个很好的框架,使开发者可以在.NET平台上开发运行在浏览器上的应用程序。ABP框架扩展了Blazor框架,提供了访问HTTP API的解决方案,实现了主题系统,并提供了一些常用的服务来简化UI的开发工作。

第14章探讨如何使用ASP.NET Core和ABP框架的自动API控制器系统创建API控制器,并讨论何时需要手动定义控制器。这一章将介绍动态和静态C#代理,它能够自动地从.NET客户端调用服务器端定义的基于ABP框架的HTTP服务; 还将探讨在ABP框架中使用SignalR的方法。

第15章通过一个示例介绍可复用应用模块的开发过程。这一章将为EventHub解决方案创建一个支付模块,并阐述该模块的结构。通过这种方式,读者将了解如何开发可重用模块并把它们安装到应用程序中。

第16章重点介绍ABP框架提供的另外一个架构——多租户,这是一种用于构建软件即服务(SoftwareasaService,SaaS)解决方案的架构模式。这一章将探讨是否要在解决方案中使用多租户,以及如何编写与ABP框架的多租户系统兼容的代码; 还将介绍ABP框架的功能系统,在多租户解决方案中,该系统用于把应用程序功能定义为特性,并把它们分配给租户。

第17章介绍ABP框架提供的测试基础设施,以及如何使用xUnit测试框架为应用程序编写单元测试和集成测试。这一章将介绍一些关于自动化测试的基础知识(如断言、模拟数据和替换服务)及处理异常的方法。

阅读本书所需的基础知识

读者需要具备C#和ASP.NET Core相关的基础知识。

本书的示例程序依赖.NET 6.0、ASP.NET Core 6.0和ABP 5.0,可以运行在Windows、macOS或Linux操作系统上。

下载示例程序的源代码

读者可以从https://github.com/PacktPublishing/MasteringABPFramework下载本书中示例程序的源代码。所有的代码更新都会提交到这个代码仓库中。

下载本书的彩色插图

本书用到的屏幕截图和图表的彩色版本可以通过https://static.packtcdn.com/downloads/9781801079242_ColorImages.pdf下载。

文本样式约定

本书中的文本样式遵循如下约定。

代码段的样式如下: 

 

"ConnectionStrings": {

"Default": "Server=(LocalDb)\\

MSSQLLocalDB;Database=ProductManagement;Trusted_Connection=True"

}

 

 


命令行的输入和输出样式如下: 

 

dotnet tool install -g Volo.Abp.Cli

 

 

使用以下样式展示温馨提示或注意事项: 

温馨提示或注意事项的标题

温馨提示或注意事项的内容。

 

 

 



导语摘要

本书全面介绍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部分概述
第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.3AddMigration命令


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包

   相关推荐   

—  没有更多了  —

以下为对购买帮助不大的评价

此功能需要访问孔网APP才能使用
暂时不用
打开孔网APP