.NET Core实战:手把手教你掌握380个精彩案例

admin 2023年1月22日12:45:41评论45 views字数 7338阅读24分27秒阅读模式

微信公众号:计算机与网络安全


.NET Core实战

手把手教你掌握380个精彩案例

(全文略)


本书通过380个独立且简单的实例全面介绍了.NETCore的核心开发技术。全书分为三篇:第一篇基础知识(第1~7章),内容包括开发环境与应用程序项目管理、C#语言基础、面向对象编程、数学运算与字符串处理、泛型与集合、LINQ与动态类型;第二篇技术进阶(第8~13章),内容包括文件与I/O、序列化、异步与并行、网络编程、反射与Composition、加密算法;第三篇ASP.NET Core(第14~17章),内容包括应用启动、依赖注入与中间件、MVC与WebAPI、应用配置与数据库访问。

本书适合作为普通高校.NET Core技术相关课程的教学用书,也可以作为相关培训机构的培训教材,还可作为从事.NET Core技术开发的IT从业者的参考用书。

目录

第一篇 基础知识

第1章 搭建开发与测试环境

1.1 在Windows上安装开发环境

实例1 安装VisualStudio

实例2 修复VisualStudio

1.2 在Linux操作系统中配置测试环境

实例3 启用Windows上的Linux子系统

实例4 设置root密码

实例5 在Linux系统中安装.NETCoreSDK

实例6 在Linux系统中安装.NETCore运行时

第2章 应用程序项目管理

2.1 .NETCore命令行工具的使用

实例7 使用命令行工具创建.NETCore项目

实例8 定义新项目的名称与存放位置

实例9 编译应用程序项目

实例10 编译项目的Release版本

实例11 创建解决方案文件

实例12 枚举或删除解决方案中的项目

实例13 运行应用程序

2.2 VisualStudio开发环境

实例14 使用VisualStudio创建项目

实例15 在VisualStudio中运行项目

实例16 显示代码行号

实例17 在C#Interactive窗口中做代码实验

实例18 在解决方案中添加和移除项目

实例19 添加NuGet包引用

实例20 清除NuGet包缓存

实例21 保存窗口布局

实例22 给代码打书签

2.3 代码注释

实例23 单行注释

实例24 多行注释

实例25 文档注释

2.4 发布.NETCore应用项目

实例26 在VisualStudio中发布.NETCore应用

实例27 使用VisualStudio发布可独立运行的项目

实例28 使用dotnet命令行工具发布"自包含"项目

第3章 C#语言基础

3.1 命名空间

实例29 使用namespace关键字

实例30 嵌套命名空间

实例31 引入命名空间

实例32 在命名空间内部引入其他命名空间

实例33 使用全局命名空间

实例34 为引入的命名空间设置别名

实例35 使用usingstatic指令

3.2 变量与常量

实例36 一次性声明多个变量

实例37 让编译器自动推断变量的类型

实例38 使用常量

实例39 获取变量的内存地址

实例40 输出变量的名称

实例41 为变量分配默认值

3.3 程序入口点

实例42 获取命令行参数

实例43 处理多个入口点

3.4 流程控制

实例44 奇数还是偶数

实例45 使用for循环输出文本

实例46 生成由字符组成的图案

实例47 死循环的处理方法

实例48 退出循环的方法

实例49 输出20以内能被3整除的正整数

实例50 做一道选择题

实例51 switch语句的类型匹配

实例52 在case语句中使用when子句

实例53 代码跳转

第4章 面对象编程

4.1 类与结构

实例54 声明公共类

实例55 为结构定义构造函数

实例56 构造函数的相互调用

实例57 静态构造函数

实例58 验证属性值的有效性

实例59 初始化只读字段

实例60 重载方法

实例61 类实例传递给方法后为什么没有被更改

实例62 输出参数

实例63 可变个数的方法参数

实例64 使用按引用传递的返回值

实例65 按参数名称来传值

实例66 可选参数

实例67 在声明时初始化属性

4.2 委托与事件

实例68 委托实例如何绑定方法

实例69 绑定多个方法

实例70 匿名方法

实例71 封装事件

实例72 框架提供的委托类型

实例73 将方法作为参数进行传递

实例74 使用Lambda表达式动态产生数据

4.3 继承与多态

实例75 调用基类的构造函数

实例76 重写基类的成员

实例77 替换基类的成员

实例78 实现多个接口

实例79 实现接口的结构

实例80 隐藏构造函数

实例81 到底调用了谁

实例82 析构函数

实例83 实现IDisposable接口

实例84 显式实现接口

实例85 阻止类被继承

实例86 嵌套类

实例87 匿名类型

4.4 枚举

实例88 声明枚举类型

实例89 指定枚举的基础类型

实例90 常量的标志位运算

实例91 自动产生的常量值

实例92 获取枚举中常量的名称

实例93 检查枚举实例中是否包含某个标志位

4.5 特性

实例94 自定义特性类

实例95 向特性类的构造函数传递参数

实例96 在同一对象上应用多个特性实例

实例97 在运行阶段检索特性实例

实例98 方法的返回值如何应用特性

4.6 运算符

实例99 计算一个整数的阶乘

实例100 按位平移

实例101 是“大”还是“小”

实例102 typeof运算符的作用

实例103 使用“+”运算符将两个对象的属性值相加

实例104 对null进行判断

4.7 类型转换

实例105 强制转

实例106 将int数值隐式转换为double数值

实例107 输出整数的二进制表示形式

实例108 将字节数组转换为字符串

实例109 重写ToString方法

实例110 将整数转换为十六进制字符串

实例111 自定义隐式转换

4.8 可以为null的值类型

实例112 访问可以为null的值类型

实例113 为NullableT实例分配默认值

第5章 数学运算与字符串处理

5.1 简单数学计算

实例114 求一组整数中的优选值和最小值

实例115 计算平均值

实例116 计算一个数值的绝对值

实例117 计算一个矩形序列的周长总和

实例118 求某个角度的正弦值

实例119 求某个数值的立方

实例120 计算矩形的对角线长度

实例121 处理超大整数

5.2 日期/时间换算

实例122 今天是星期几

实例123 获取指定日期的农历日期

实例124 一天内总共有多少秒

实例125 日期的加/减运算

实例126 从日期字符串中产生DateTime实例

5.3 常用的字符串处理

实例127 使用Concat方法拼接字符串

实例128 使用“+”运算符拼接字符串

实例129 字符串的包含关系

实例130 字母的大小写转换

实例131 使用分隔符连接字符串

实例132 查找以“ay”结尾的单词

实例133 依据指定的分隔符来拆分字符串

实例134 替换字符串

实例135 反转字符串

实例136 插入与删除字符

实例137 填充剩余“空白”

实例138 判断字符是否为数字

实例139 截取字符串

实例140 使用StringBuilder组装字符串

实例141 字符串查找

实例142 比较字符串时忽略大小写

实例143“@”符号在字符串中的用途

实例144 处理字符串中出现的双引号

5.4 格式控制符

实例145 输出百分比

实例146 输出当前语言中的货币格式

实例147 输出多个币种格式

实例148 数字的两种常用格式

实例149 使用字符串内插

实例150 长日期与短日期

实例151 自定义日期和时间格式

实例152 自定义小数位数

5.5 从字符串到其他类型的转换

实例153 从二进制字符串产生int实例

实例154 Parse与TryParse方法

实例155 对字符串进行UTF-8编码

实例156 字符串的HTML编码

实例157 字符串隐式转换为自定义类

第6章 泛型与集合

6.1 泛型

实例158 使用泛型参数

实例159 实现泛型接口

实例160 泛型参数只能使用值类型

实例161 泛型方法

实例162 将泛型参数为枚举类型

实例163 泛型参数的输入与输出

实例164 在委托类型中使用泛型

实例165 将抽象类作为类型约束

6.2 数组

实例166 四种方式初始化数组实例

实例167 创建二维数组

实例168 使用简化语法初始化多维数组

实例169 使用Array类创建数组实例

实例170 SetValue方法与GetValue方法

实例171 获取某个维度的元素个数

实例172 动态调整数组的大小

实例173 反转数组

实例174 查找符合条件的元素

实例175 查找符合条件的元素的索引

实例176 确定数组中元素的存在性

实例177 复制数组中的元素

6.3 集合

实例178 将数字进行降序排列

实例179 初始化ListT集合

实例180 实现IEnumerator接口

实例181 IEnumerable接口与foreach循环

实例182 IEnumerableT与foreach循环

实例183 IEnumerable接口与yieldreturn语句

实例184 无重复元素的集合

实例185 双向链表

实例186 自定义相等比较

实例187 清空集合中的所有元素

实例188 判断字典集合中是否存在某个键

实例189 定义索引器

实例190 带多个参数的索引器

实例191 使用泛型的栈队列

实例192 自动排序的字典集合

实例193 自定义SortedDictionary集合的排序规则

实例194“优选先出”队列

实例195 自定义ToReadOnlyDictionary方法

实例196 初始化字典集合的方法

实例197 ArrayList的使用

实例198 使用SpanT提升处理字符串的性能

实例199 多个Task同时操作ConcurrentBag集合

实例200 跨线程访问BlockingCollection集合

6.4 元组

实例201 Tuple类的使用

实例202 推荐使用的元组——ValueTuple

实例203 C#语法中的ValueTuple

实例204 重命名元组的字段

实例205 将元组解构为变量

实例206 解构自定义类型

实例207 将元组作为返回值

第7章 LINQ与动态类型

7.1 常见的扩展方法

实例208 求优选值与最小值

实例209 求工序列表中的加工周期

实例210 计算字符串的总长度

实例211 合并两个序列

实例212 有多少个矩形的面积超过100cm2

实例213 按员工年龄进行降序排列

实例214 去掉重复的元素

实例215 筛选出两个序列中的差异元素

实例216 处理First方法抛出的异常

实例217 当序列中有且仅有一个元素时

实例218 筛选出手机号以135或136开头的联系人信息

实例219 将对象转换为字典集合

实例220 将原始序列进行分组

7.2 LINQ语法

实例221 筛选能被5整除的整数

实例222 求序列中元素的平方根并按降序排列

实例223 select子句返回的内容

实例224 按员工所属部门分组

实例225“内联”查询

实例226 处理查询中的异常

实例227 DefaultIfEmpty方法的作用

实例228 使用LINQ将序列转换为XML文档

实例229 将分组后的序列重新排序

实例230 将字典集合转换为字符串序列

实例231 修改XML元素的内容

实例232 使用并行LINQ

实例233 将XML转换为元组

实例234 生成带命名空间的XML文档

实例235 添加命名空间前缀

7.3 动态类型

实例236 通过ExpandoObject类创建动态实例

实例237 以字典形式访问ExpandoObject

实例238 自定义的动态类型

实例239 在自定义动态类型中直接定义成员

实例240 模拟委托实例的调用

第二篇 技术进阶

第8章 文件与I/O

8.1 目录与文件

实例241 创建目录与文件

实例242 修改文件的创建时间

实例243 使用FileInfo类来创建文件

实例244 判断目录是否已经存在

实例245 向文件追加文本

实例246 覆写文件内容

实例247 使用FileInfo类删除文件

实例248 以行的形式写入文本

实例249 重命名目录

实例250 通过ReadAllLines方法读取文件中的所有行

实例251 依据文件的大小排序

实例252 枚举磁盘驱动器

8.2 流

实例253 向内存流写入内容

实例254 将内存流中的内容转换为字节数组

实例255 从内存流中读取内容

实例256 使用StreamWriter类将文本写入文件

实例257 使用StreamReader类读取文本文件

实例258 调用Seek方法重新设置流的当前位置

实例259 通过 ition属性更改流的当前位置

8.3 压缩与解压缩

实例260 使用DeflateStream类压缩文件

实例261 创建Zip压缩文档

实例262 使用GZipStream类压缩文件

8.4 内存映射文件

实例263 读写内存映射文件

实例264 将内存映射文件写入磁盘文件

8.5 命名管道

实例265 实现本地进程之间的通信

实例266 单向管道通信

第9章 序列化

9.1 简单序列化方案

实例267 二进制序列化

实例268 使用DataContractSerializer类进行序列化

实例269 将类型实例序列化为JSON格式

实例270 在序列化时忽略某些字段

9.2 XML序列化

实例271 XmlSerializer与XML序列化

实例272 自定义封装集合类型成员的XML元素名称

实例273 自定义XML元素的名称

实例274 将类型成员序列化为XML特性

实例275 自定义XML命名空间

实例276 自定义数组类型成员的XML元素

9.3 数据协定

实例277 数据协定的简单定义

实例278 自定义协定的名称

实例279 不同的类型使用相同的数据协定

实例280 将数据协定序列化为JSON格式

实例281 序列化数据协定时忽略某个成员

实例282 改变数据协定成员的序列化顺序

实例283 保留实例引用

第10章 异步与并行

10.1 线程

实例284 Sleep方法的妙用

实例285 创建新线程

实例286 启动新线程并传递参数

实例287 等待线程信号——ManualResetEvent

实例288 等待线程信号——AutoResetEvent

实例289 多个线程同时写一个文件

实例290 使用线程锁

10.2 并行任务

实例291 启动Task的三种方法

实例292 带返回值的Task

实例293 传递状态数据

实例294 串联并行任务

实例295 使用Parallel类执行并行操作

10.3 异步等待语法

实例296 声明异步方法

实例297 在Main方法中使用异步等待

实例298 为每个线程单独分配变量值

实例299 保留异步上下文中的本地变量值

实例300 取消并行任务

第11章 网络编程

11.1 Socket通信

实例301 简单的TCP通信程序

实例302 TcpListener与TcpClient

实例303 使用UdpClient类开发简单的聊天程序

11.2 HTTP编程

实例304 从Web服务器上下载图片

实例305 使用HttpClient类向Web服务器提交数据

第12章 反射与Composition

12.1 反射技术

实例306 获取程序集中的类型列表

实例307 获取指定类型的成员列表

实例308 获取方法的参数信息

实例309 通过反射调用构造函数

实例310 通过反射调用静态方法

实例311 用Activator类创建类型实例

实例312 检测类型上所应用的自定义Attribute

12.2 Composition

实例313 安装NuGet包——System.Composition

实例314 导出类型

实例315 通过协定来约束导出类型

实例316 导入多个类型

实例317 导出元数据

实例318 使用自定义类型来接收导入的元数据

实例319 封装元数据

实例320 用抽象类来充当协定类型

第13章 加密算法

13.1 单向加密

实例321 计算输入字符串的MD5值

实例322 使用SHA1算法校验文件

13.2 双向加密

实例323 使用AES算法加密和解密文本

实例324 不需要初始向量的AES加密

实例325 用RSA算法加密和解密数据

第三篇 ASP.NETCore

第14章 应用启动

14.1 Web主机配置

实例326 使用默认配置创建Web主机

实例327 配置Web服务器的URL

实例328 使用Kestrel服务器组件

实例329 配置Web项目的调试方案

14.2 Startup

实例330 基于方法约定的Startup类

实例331 使用IStartup接口定义Startup类

实例332 无Startup启动应用程序

14.3 启动环境

实例333 使用非预定义环境

实例334 使Startup类匹配启动环境

第15章 依赖注入与中间件

15.1 服务

实例335 枚举应用程序中已添加的服务

实例336 编写服务类型

实例337 理解服务的生命周期

15.2 依赖注入

实例338 实现SHA1计算服务

实例339 Startup.Configure方法的依赖注入

实例340 临时访问服务

15.3 中间件

实例341 以委托形式定义中间件

实例342 定义中间件类

实例343 带参数的中间件

实例344 IMiddleware接口的用途

实例345 让HTTP管道“短路”

实例346 中间件的分支映射

第16章 MVC与WebAPI

16.1 RazorWeb页面应用

实例347 自定义Razor页的根目录

实例348 Razor页面与页面模型关联

实例349 RazorPage应用的路由映射

实例350 通过@page指令设置Razor页面的URL路由

实例351 自定义页面的handler方法

16.2 MVC(模型-框架-视图)

实例352 为全局路由字段分配默认值

实例353 局部的URL路由

实例354 自定义视图文件的查找位置

实例355 根据URL查询参数返回不同的视图

实例356 自定义的控制器类

实例357 阻止控制器中的方法被公开为Action方法

实例358 重命名Action方法

实例359 使用布局页

实例360_ViewStart视图与_ViewImports视图

实例361 向视图传递模型对象

实例362 在控制器中接收服务列表的注入

实例363 使用IFormCollection组件来提取form表单数据

实例364 在WebAPI中直接提取上传的文件

实例365 用部分视图来显示当前日期

实例366 使用视图组件

实例367 在视图中接收依赖注入

16.3 静态文件与目录浏览

实例368 访问静态文件

实例369 开启目录浏览功能

实例370 文件服务

第17章 应用配置与数据库访问

17.1 配置应用程序

实例371 自定义环境变量的命名前缀

实例372 使用JSON文件进行配置

实例373 自定义命令行参数映射

实例374 使用内存中的配置源

17.2 选项类

实例375 选项类的使用方法

实例376 使用JSON文件来配置选项类

17.3 实体框架

实例377 为实体模型设置主键

实例378 迁移实体并生成数据库

实例379 内存数据库

实例380 在应用程序运行期间创建SQLite数据库


附:.NET Core实战:手把手教你掌握380个精彩案例.pdf


- The end -

原文始发于微信公众号(计算机与网络安全):.NET Core实战:手把手教你掌握380个精彩案例

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年1月22日12:45:41
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   .NET Core实战:手把手教你掌握380个精彩案例http://cn-sec.com/archives/1524254.html

发表评论

匿名网友 填写信息