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

副标题:无

作   者:周家安

分类号:

ISBN:9787302526506

微信扫一扫,移动浏览光盘

简介


本书通过380个独立且简单的实例全面介绍了.NET Core的核心开发技术。全书分为三篇: *篇基础知识(第1~7章),内容包括开发环境与应用程序项目管理、C#语言基础、面向对象编程、数学运算与字符串处理、泛型与集合、LINQ与动态类型; 第二篇技术进阶(第8~13章),内容包括文件与I/O、序列化、异步与并行、网络编程、反射与Composition、加密算法; 第三篇ASP.NET Core(第14~17章),内容包括应用启动、依赖注入与中间件、MVC与Web API、应用配置与数据库访问。为了便于读者学习,本书提供了所有实例的配套源代码,在开发环境中运行,能直观地看到每个实例的运行效果。本书适合作为普通高校.NET Core技术相关课程的教学用书,也可以作为相关培训机构的培训教材,还可作为从事.NET Core技术开发的IT从业者的参考用书。

目录


目录

丛书序(沈向洋)1

前言3


*篇基 础 知 识

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

1.1在Windows上安装开发环境

实例1安装Visual Studio

实例2修复Visual Studio

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

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

实例4设置root密码

实例5在Linux系统中安装.NET Core SDK

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

第2章应用程序项目管理

2.1.NET Core命令行工具的使用

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

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

实例9编译应用程序项目

实例10编译项目的Release版本

实例11创建解决方案文件

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

实例13运行应用程序

2.2Visual Studio开发环境

实例14使用Visual Studio创建项目

实例15在Visual Studio中运行项目

实例16显示代码行号

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

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

实例19添加NuGet包引用

实例20清除NuGet包缓存

实例21保存窗口布局

实例22给代码打书签

2.3代码注释

实例23单行注释

实例24多行注释

实例25文档注释

2.4发布.NET Core应用项目

实例26在Visual Studio中发布.NET Core应用

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

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

第3章C#语言基础

3.1命名空间

实例29使用namespace关键字

实例30嵌套命名空间

实例31引入命名空间

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

实例33使用全局命名空间

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

实例35使用using static指令

3.2变量与常量

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

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

实例38使用常量

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

实例40输出变量的名称

实例41为变量分配默认值

3.3程序入口点

实例42获取命令行参数

实例43处理多个入口点

3.4流程控制

实例44奇数还是偶数

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

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

实例47死循环的处理方法

实例48退出循环的方法

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

实例50做一道选择题

实例51switch语句的类型匹配

实例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是“大”还是“小”

实例102typeof运算符的作用

实例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实例

实例154Parse与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类创建数组实例

实例170SetValue方法与GetValue方法

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

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

实例173反转数组

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

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

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

实例177复制数组中的元素

6.3集合

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

实例179初始化ListT集合

实例180实现IEnumerator接口

实例181IEnumerable接口与foreach循环

实例182IEnumerableT与foreach循环

实例183IEnumerable接口与yield return语句

实例184无重复元素的集合

实例185双向链表

实例186自定义相等比较

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

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

实例189定义索引器

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

实例191使用泛型的栈队列

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

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

实例194“先进先出”队列

实例195自定义ToReadOnlyDictionary方法

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

实例197ArrayList的使用

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

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

实例200跨线程访问BlockingCollection集合

6.4元组

实例201Tuple类的使用

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

实例203C#语法中的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.2LINQ语法

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

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

实例223select子句返回的内容

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

实例225“内联”查询

实例226处理查询中的异常

实例227DefaultIfEmpty方法的作用

实例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通过Position属性更改流的当前位置

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.2XML序列化

实例271XmlSerializer与XML序列化

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

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

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

实例275自定义XML命名空间

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

9.3数据协定

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

实例278自定义协定的名称

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

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

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

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

实例283保留实例引用

第10章异步与并行

10.1线程

实例284Sleep方法的妙用

实例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.1Socket通信

实例301简单的TCP通信程序

实例302TcpListener与TcpClient

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

11.2HTTP编程

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

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

第12章反射与Composition

12.1反射技术

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

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

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

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

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

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

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

12.2Composition

实例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.NET Core

第14章应用启动

14.1Web主机配置

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

实例327配置Web服务器的URL

实例328使用Kestrel服务器组件

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

14.2Startup

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

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

实例332无Startup启动应用程序

14.3启动环境

实例333使用非预定义环境

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

第15章依赖注入与中间件

15.1服务

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

实例336编写服务类型

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

15.2依赖注入

实例338实现SHA1计算服务

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

实例340临时访问服务

15.3中间件

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

实例342定义中间件类

实例343带参数的中间件

实例344IMiddleware接口的用途

实例345让HTTP管道“短路”

实例346中间件的分支映射

第16章MVC与Web API

16.1Razor Web页面应用

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

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

实例349Razor Page应用的路由映射

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

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

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

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

实例353局部的URL路由

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

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

实例356自定义的控制器类

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

实例358重命名Action方法

实例359使用布局页

实例360_ViewStart视图与_ViewImports视图

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

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

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

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

实例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个精彩案例
    • 名称
    • 类型
    • 大小

    光盘服务联系方式: 020-38250260    客服QQ:4006604884

    意见反馈

    14:15

    关闭

    云图客服:

    尊敬的用户,您好!您有任何提议或者建议都可以在此提出来,我们会谦虚地接受任何意见。

    或者您是想咨询:

    用户发送的提问,这种方式就需要有位在线客服来回答用户的问题,这种 就属于对话式的,问题是这种提问是否需要用户登录才能提问

    Video Player
    ×
    Audio Player
    ×
    pdf Player
    ×
    Current View

    看过该图书的还喜欢

    some pictures

    解忧杂货店

    东野圭吾 (作者), 李盈春 (译者)

    loading icon