批量上传,套装书可能不全,下单前咨询在线客服!有特殊要求,下单前请咨询客服!
¥ 81.21 4.8折 ¥ 169 全新
库存4件
作者敖瑞
出版社清华大学出版社
ISBN9787302621980
出版时间2023-03
装帧平装
开本16开
定价169元
货号29546824
上书时间2024-11-04
.NET作为新近崛起的开发框架,它继承了前辈.NET Framework的大量优点,并针对新时代的需求进行了大量改进。拥抱开源跨平台的.NET得到大量优秀开发者的喜爱和支持,发展势头迅猛。历经6代更新,目前的.NET也日趋稳定,基础框架的大量知识在可预见的将来不会发生大幅变动,学习曲线会逐步平稳。对于将来的新版本,用户基本可以只用补充了解新内容而不必担心已有知识被颠覆或废弃。
ASP.NET Core是一个专为Web开发而准备的基础框架,作为其基础的.NET框架势必是不能无视的,更何况ASP.NET Core中使用的大量功能其实是.NET的通用功能,只不过因其在ASP.NET Core中非常有用而被默认集成。为了避免读者把这些默认集成的功能误以为是ASP.NET Core的专用功能,笔者在书中的文字段落和示例代码中给予了明确的提示,这也是为本书取名的一大考虑。虽然本书以ASP.NET Core为例进行深入解析,但其中的大量知识其实通用于整个.NET,故书名取为“.NET入门”而不是“ASP.NET Core入门”。以ASP.NET Core为例进行深入解析则是因为现在是大Web时代,ASP.NET Core有通用性和代表性,能覆盖广的场景。
笔者自大学时期接触软件开发以来,读到的入门学习的书多为项目实例与知识讲解交织在一起的一类书。笔者在阅读时颇为苦恼,每次想要专门查阅某个细节时总是很难快速定位,又或者知识点被分散到多个位置,要来回翻看。因此在本书的编写中笔者采用了分离基础知识和综合练习的形式,并在综合练习中展示相关知识点的引用。希望广大读者由此能得到更好的阅读体验。
在现代Web技术中,渐进式Web应用和Web Assembly无疑是耀眼的新星,甚至取代了大量曾经的本地桌面应用。Blazor作为这两项技术的融合和工程化的代表却没有在中文书籍中获得应有的篇幅予以介绍,因此本书将Blazor作为和MVC、Razor Pages等页面渲染框架同等重要的技术来介绍,并在第四篇实战演练中作为一个关键组成部分予以应用。
现代Web应用的复杂性日趋提升,普通的Web API在面对这种复杂性时颇为艰难。为此新一代数据访问技术GraphQL进入广大开发者的视野。但较为可惜的是,这项技术似乎被许多人误解并认为难以应用到项目中。这固然有GraphQL本身的复杂性导致的部分原因,但是开发者的错误认知导致的误解是更为主要的原因。为了让.NET开发者能直接体会到GraphQL的广泛适用性,本书选择了在Blazor应用中使用该技术提供数据支持。
随着物联网的发展,应用软件需要更紧密地和底层硬件结合,这导致了软件开发语言选择的困难。想要顺利接入硬件势必要使用能访问硬件的底层语言,例如C语言,但是底层语言在开发上层应用时却非常麻烦,本就复杂的业务和底层语言的各种细节搅在一起实在是对人的一种折磨。这时为上层应用和底层硬件分别选用不同的语言和框架似乎是不错的选择,但偏偏高级语言和底层语言的交互又成了个大麻烦。此时C#和.NET便成为了广大开发者的得力助手。.NET从一开始就非常重视和本机代码交互的功能,但是无论如何,互操作代码的编写还是有无法避免的内在复杂性,为此笔者专门在书中介绍了一些简化互操作开发的方法和模块。
对于希望入门.NET 6以及有其他的C系语言的使用经验的读者,本书系统地梳理了C#的发展历程,并以此为线索介绍C#的各种功能和语言特性,还与常用的C系语言进行对比,方便读者根据需要选用合适的方法实现功能、互相移植其他语言和C#的代码。对于中高级开发者,本书介绍了一些优秀的第三方模块,希望能为开发者提供一些参考。本书对除第四篇“实战演练”之外的其他内容进行了归类整理,并根据内容之间的依赖关系调整了先后顺序,由此可以衍生出三种阅读方式:对于初学者,推荐按顺序阅读,这样可以由浅入深地逐步学习,并确保不会在阅读时遇到和主要内容无关的未知知识点;对于中高级开发者,可以直接阅读实战演练篇并跟着练习,然后在练习中有针对性地阅读不熟悉的知识点;对于二次阅读的读者,本书则可以当作速查手册使用,本书的内容归类和目录都针对速查进行了专门的设计和编排。
本书配套的PPT和源代码需要使用微信扫描下面的二维码获取,可按扫描后的页面提示填写你的邮箱,把下载链接转发到邮箱中下载。如果发现问题或有疑问,请用电子邮件联系booksaga@126.com,邮件主题为“C#与.NET 6开发从入门到实践”。
PPT 源代码
本书是笔者编写的本书,它倾注了笔者的大量心血和多年经验积累的心得体会,但是由于笔者的文字功底、时间和篇幅等问题,不可避免地会出现疏漏。欢迎广大读者提出建议,笔者愿积极与读者交流,希望本书能发挥出更大的价值,不负笔者付出的努力和时间。
编者
2023年1月
本书以ASP.NET Core项目为例,系统地介绍了.NET6的各个重要知识点。书中内容融合了作者多年实践的丰富经验,讲解深入浅出,全面且细致。 本书共分为四篇25章。篇(第1~3章)是.NET 6基础篇,主要介绍.NET平台、C#语言和Visual Studio开发环境的常用功能和特性。第二篇(第4~10章)是Entity Framework Core篇,主要介绍Entity Framework Core的各种功能和使用方法,包括快速入门、实体模型、实体模型的关系、管理实体模型和数据库架构、管理数据、查询数据、Entity Framework Core共享功能等内容。第三篇(第11~24章)是ASP.NET Core篇,主要介绍ASP.NET Core框架的基础知识、身份认证、授权、MVC、Razor Pages、Blazor、Razor类库、Web API、远程过程调用、实时通信、应用安全、高级功能等内容。第四篇(第25章)是实战演练篇,用一个功能完整的电子商城项目来串联前面三篇介绍的大部分功能,帮助读者跨越从基础知识的学习到实际应用的门槛。 本书以.NET 6的入门学习者和有其他C系语言的使用经验并有意了解ASP.NET Core的人为主要目标读者,同时适合被中高级开发者当作功能模块速查和学习高级功能的手册,还可以作为高等院校相关专业的教学用书和培训学校的教材。
敖瑞,网络工程专业,中级软件设计师,从业5年,资深软件工程师,主要从事系统开发,精通C# .NET开发,同时熟悉JavaScript和Web前端开发。在国内开发者论坛分享学习思考心得,参与开源社区项目的完善。
篇 .NET 6基础
第1章 构建.NET 6开发环境 3
1.1 .NET、.NET Core、.NET Standard与.NET Framework 3
1.2 ASP.NET Core与ASP.NET 4
1.3 其他.NET应用模型 4
1.4 Visual Studio简介 4
1.5 安装Visual Studio 5
1.6 小结 7
第2章 Visual Studio的解决方案和项目 8
2.1 解决方案和项目简介 8
2.2 创建解决方案和项目 8
2.2.1 创建方法 8
2.2.2 操作演示和说明 9
2.3 引用其他项目和第三方程序包 12
2.3.1 引用其他项目 12
2.3.2 引用第三方程序包 13
2.3.3 卸载程序包和项目引用 16
2.4 .NET主要项目类型 16
2.5 解决方案和项目文件解析 16
2.5.1 解决方案文件 16
2.5.2 项目文件 17
2.6 小结 18
第3章 C#发展史 19
3.1 简介 19
3.2 C# 1.0 19
3.2.1 类、结构体和联合体 20
3.2.2 接口 22
3.2.3 属性 23
3.2.4 委托 26
3.2.5 事件 28
3.2.6 运算符和表达式 29
3.2.7 语句 31
3.2.8 命名空间 31
3.2.9 特性 32
3.2.10 unsafe上下文 33
3.3 C# 2.0 35
3.3.1 泛型 35
3.3.2 协变和逆变 38
3.3.3 委托的方法组转换 39
3.3.4 分部类型 39
3.3.5 匿名方法 40
3.3.6 可为null的结构体 40
3.3.7 枚举器 41
3.3.8 静态类 41
3.3.9 独立的属性访问器保护级别 43
3.3.10 委托类型推断 43
3.4 C# 3.0 44
3.4.1 自动实现属性 44
3.4.2 分部方法 44
3.4.3 对象初始化器 45
3.4.4 隐式类型的本地变量 45
3.4.5 匿名类型 46
3.4.6 Lambda表达式 46
3.4.7 表达式树 47
3.4.8 扩展方法 47
3.4.9 LINQ(Language-Integrated Query) 48
3.5 C# 4.0 50
3.5.1 动态绑定 50
3.5.2 可选参数和命名参数 50
3.5.3 嵌入的互操作类型 51
3.5.4 泛型的协变和逆变 51
3.6 C# 5.0 52
3.6.1 调用方信息特性 52
3.6.2 异步成员 52
3.7 C# 6.0 53
3.7.1 静态导入 53
3.7.2 异常筛选器 54
3.7.3 表达式体成员 54
3.7.4 自动属性初始化表达式 55
3.7.5 索引初始化器 55
3.7.6 null引用传播运算符 55
3.7.7 字符串内插 56
3.7.8 nameof运算符 57
3.7.9 catch和finally块中的await 57
3.7.10 Roslyn 57
3.8 C# 7.0 60
3.8.1 out变量 60
3.8.2 元组、解构和弃元 60
3.8.3 模式匹配 61
3.8.4 本地函数 62
3.8.5 表达式体成员增强 63
3.8.6 二进制文本和数字分隔符 63
3.8.7 throw表达式 63
3.8.8 ref局部变量和返回值 63
3.9 C# 7.1 64
3.9.1 异步主函数 64
3.9.2 default表达式 64
3.9.3 元组元素名称推断 65
3.9.4 泛型类型参数的模式匹配 65
3.10 C# 7.2 65
3.10.1 非尾随命名参数 65
3.10.2 数值文本的前导下画线 66
3.10.3 private protected访问修饰符 66
3.10.4 针对参数的in修饰符 66
3.10.5 针对方法返回值的ref readonly修饰符 67
3.10.6 readonly struct结构体 67
3.10.7 ref struct结构体 68
3.10.8 条件ref表达式 68
3.11 C# 7.3 68
3.11.1 非托管类型和泛型约束增强 68
3.11.2 无须固定即可访问固定的字段 69
3.11.3 可以重新分配ref局部变量 69
3.11.4 可以使用stackalloc数组上的初始值设定项 69
3.11.5 更多类型支持fixed语句 70
3.11.6 元组支持“==”和“!=”操作符 70
3.11.7 支持为自动实现属性的后台字段添加特性 70
3.11.8 增强包含in修饰符的方法重载的选择策略 70
3.11.9 扩展out变量的适用范围 71
3.11.10 改进方法重载的选择策略 71
3.12 C# 8.0 71
3.12.1 默认接口方法 71
3.12.2 模式匹配增强 72
3.12.3 结构体的readonly成员 75
3.12.4 using声明 75
3.12.5 静态本地函数 76
3.12.6 可释放的ref struct 76
3.12.7 可为null的引用类型 76
3.12.8 异步可释放 77
3.12.9 异步枚举器 78
3.12.10 索引和范围 79
3.12.11 null合并赋值 80
3.12.12 非托管泛型结构体 80
3.12.13 嵌套表达式中的stackalloc 80
3.12.14 内插字符串和逐字字符串 80
3.13 C# 9.0 81
3.13.1 init属性访问器 81
3.13.2 记录 81
3.13.3 程序 83
3.13.4 模式匹配增强 84
3.14 本机大小的整数 85
3.14.1 函数指针 85
3.14.2 禁止本地初始化特性 86
3.14.3 静态匿名函数 87
3.14.4 类型推导的new表达式 87
3.14.5 类型推导的条件表达式 88
3.14.6 协变返回类型 88
3.14.7 foreach循环支持GetEnumerator扩展方法 88
3.14.8 参数弃元 89
3.14.9 本地函数支持特性 89
3.14.10 模块初始化器 90
3.14.11 分部方法增强 90
3.14.12 源生成器 91
3.15 C# 10.0 91
3.15.1 结构体记录 91
3.15.2 结构体允许自定义公共无参构造函数 91
3.15.3 强化的with表达式 92
3.15.4 记录允许密封ToString方法 92
3.15.5 全局using 92
3.15.6 文件范围的命名空间 93
3.15.7 常量内插字符串 93
3.15.8 内插字符串处理程序 93
3.15.9 Lambda表达式增强 93
3.15.10 CallerArgumentExpression诊断特性 94
3.15.11 解构支持混合使用已有变量和内联声明变量 94
3.15.12 增强的属性模式 94
3.15.13 方法上的自定义异步状态机特性 95
3.16 小结 95
第二篇 Entity Framework Core
第4章 快速入门 99
4.1 简介 99
4.2 创建项目和安装EF Core 99
4.3 创建数据模型 99
4.4 创建数据上下文 100
4.5 创建数据库 100
4.6 简单使用 101
4.7 小结 102
第5章 实体模型 103
5.1 实体类型和实体模型配置 103
5.1.1 基本实体类型 104
5.1.2 基础实体模型配置 105
5.1.3 排序规则 108
5.1.4 值生成和计算属性 109
5.1.5 影子属性 112
5.1.6 幕后字段 112
5.1.7 模型字段 113
5.1.8 键 114
5.1.9 索引 117
5.1.10 并发标记与行版本 118
5.1.11 值转换器 119
5.1.12 值比较器和属性快照 121
5.1.13 数据种子 123
5.1.14 构造函数 124
5.1.15 继承 127
5.1.16 无键实体类型 129
5.1.17 实体的多重映射 130
5.1.18 索引器属性、共享类型实体和属性包 131
5.2 全局查询过滤器 132
5.3 自定义实体模型注解 132
5.4 自定义数据库函数和映射 133
5.4.1 标量值函数映射 133
5.4.2 表值函数映射 134
5.4.3 存储过程映射 135
5.5 在一个上下文类型中使用多个模型 136
5.6 小结 137
第6章 实体模型的关系 138
6.1 概念和术语简介 138
6.2 实体模型的关系与影子属性 138
6.3 一对一关系 139
6.3.1 实体类型和关系配置 140
6.3.2 表共享(表拆分) 141
6.3.3 从属实体类型 142
6.4 一对多关系 143
6.4.1 实体类型和关系配置 143
6.4.2 自关联与树形实体类型 145
6.4.3 从属实体类型的集合 145
6.5 多对多关系 146
6.5.1 显式映射 146
6.5.2 隐式映射 148
6.6 模型关系的级联删除 149
6.7 小结 151
第7章 管理实体模型和数据库架构 152
7.1 迁移 152
7.1.1 安装迁移工具 153
7.1.2 管理迁移 154
7.1.3 应用迁移 155
7.1.4 自定义迁移操作 156
7.1.5 使用独立的迁移项目 162
7.1.6 为模型提供多个迁移 163
7.1.7 自定义迁移历史记录 164
7.2 逆向工程 165
7.3 EF Core Power Tools 165
7.4 小结 165
第8章 管理数据 166
8.1 基础保存 166
8.1.1 添加实体 166
8.1.2 更新实体 167
8.1.3 删除实体 168
8.1.4 订阅保存事件和注册保存拦截器 169
8.2 保存相关实体 170
8.2.1 同时添加多个相关实体 170
8.2.2 为主实体单独添加从实体 171
8.2.3 更改实体的关系 172
8.2.4 删除关系 173
8.3 并发冲突 174
8.4 事务 175
8.4.1 &n
C#与.NET6开发从入门到实践
全新嘉兴
¥ 81.00
C#与.NET 6开发从入门到实践(
全新北京
¥ 112.69
C#与.NET 6开发从入门到实践
全新成都
¥ 82.71
C#与.NET 6开发从入门到实践
全新济宁
¥ 75.21
C#与.NET 6开发从入门到实践(
全新北京
¥ 112.69
C#与.NET 6开发从入门到实践
全新北京
¥ 106.80
C#与.NET 6开发从入门到实践
全新北京
¥ 79.43
C#与.NET 6 开发从入门到实践
全新保定
¥ 118.30
C#与.NET 6开发从入门到实践
九五品北京
¥ 69.28
C#与.NET6开发从入门到实践
全新保定
¥ 74.36
— 没有更多了 —
以下为对购买帮助不大的评价