当前位置: 首页 > article >正文

《ASP.Net Core技术内幕与项目实战》读书笔记1

ch1 .NET Core入门

  • .NET介绍
    这一章主要说的是.Net Core、.Net Framework、.Net Stanard三个之间的关系。通俗来讲就是Core是新出的、能跨平台,Framwork是老版的、不能跨平台,Standard是为了在Framework、Core、Xamarin中统一库的使用而定制的规范,以便于开发出来的库可以在多个平台公用,是一个规范。在新的.NET 5以后,微软将几个平台合并了,就没有Standard这一说了。

  • 项目应该用.NET Core开发吗?
    微软已经宣布不再对.NET Freamwork增加新特性,以后只会修复缺陷。如果想体验.NET的新特性,并且使用跨平台、独立部署、模块化等特性,去考虑.NET Core。对于当前已有的Framework项目,如果运转良好,不需要升级和增加新功能,没必要用.NET Core重写。在我看来,Framework上面的特性基本已经够用,新版的很多特性都有点华而不实的感觉。

ch2 .NET Core新特性

  • 顶级语句
    支持异步, 感觉有点鸡肋,我一般是不会用的
  • 全局using指令
    应用非常多的第三方库时用到,简化重复using书写,创建一个Using.cs文件
global using System;
global using System.Collections.Generic;
global using System.Linq;
global using System.Text;
global using System.Threading.Tasks;
  • using声明
    using释放资源时用到,但是感觉不如用括号版本的直接,需要猜
  • 可为空的引用类型
    搞出一些? !语法,感觉就是蛋疼,我还是选择在项目文件中增加 <Nullable>disable</Nullable>关闭这个特性
  • 记录类型
    public record Preson(string FirstName,string LastName);重写了ToString()和Equals()方法,算是C#的一个新的语法糖
  • 异步编程
    在4.5就有了,用async、await大大简化了异步编程,内部使用状态机实现不同线程的等待切换,值得一学
  • LINQ
    这里主要是对查询语法来进行说明,书中作者说在“编写复杂的查询条件时,用方法语法编写的代码会更清晰”这句话不太赞同,应该是两种语法都有其适合的场景,可以看下面两个例子:在两个List中查询姓名相同的学生,组合为一个完整的学生。
    public record StudentAge(string Name,int Age);
    public record StudentWeight(string Name, int Weight);
    public record Student(string Name,int Age,int Weight);


    public class Test
    {
        public List<Student> QueryByFun(List<StudentAge> arr1, List<StudentWeight> arr2)
        {
            var items = arr1.SelectMany(item1 => arr2.Where(item2 => item1.Name == item2.Name)
                                           .Select(item2 => new Student(item1.Name, item1.Age, item2.Weight)));
            return items.ToList();
        }

        public List<Student> QueryByQuery(List<StudentAge> arr1, List<StudentWeight> arr2)
        {
            var items = from item1 in arr1
                        from item2 in arr2
                        where item1.Name == item2.Name
                        select new Student(item1.Name, item1.Age, item2.Weight);
            return items.ToList();
        }
    }

可以看到,查询语法看起来更简洁直观,这里只是两组数据,如果是三组、四组呢?查询语法的优越性便出现了。


http://www.kler.cn/a/382937.html

相关文章:

  • OpenStack系列第三篇:CentOS7 上部署 OpenStack(Train版)集群教程 Ⅲ Nova Neutron 服务部署
  • Java基础知识(四) -- 面向对象(下)
  • vxe-table 实现跨行按钮同时控制两行的编辑状态
  • “游戏信息化”:游戏后台系统的未来发展
  • Docker【初识Docker】
  • Elasticsearch-索引的批量操作
  • 全平台设置jetbrains mono字体
  • #渗透测试#SRC漏洞挖掘# 操作系统-Linux系统基础02之Openssl、软连接与硬连接、用户账号数据库
  • HiveMetastore 的架构简析
  • Node.js回调函数以及事件循环使用介绍(基础介绍 三)
  • spring-boot(thymeleaf前端框架,简单了解)、( 跨域请求)
  • 玩转「HF/魔搭/魔乐」平台
  • 解决 Ubuntu ‘InRelease is not valid yet’ 报错:内网源 apt update 详细教程
  • 端侧小模型新星,SmolLM2 1.7B击败了Llama 3.2、Qwen 2.5
  • 基础算法练习--滑动窗口(日更中)
  • 青少年编程与数学 02-003 Go语言网络编程 12课题、Go语言Soket编程
  • RabbitMQ 管理平台(控制中心)的介绍
  • SpringBoot健身房管理:提升效率与体验
  • STM32中,在哪些时候需要配置复用推挽/开漏输出?
  • 3种方法轻松从硬盘恢复已删除文件!
  • 零基础学习Java AI Spring AI
  • 舜宇光学科技入职测评:北森商业推理40分钟28题真题解析、网盘资料下载、答题技巧
  • stable diffusion 大模型
  • 腾讯轻量云服务器docker拉取不到镜像的问题:拉取超时
  • 如何不封禁UDP协议同时防止UDP攻击
  • swagger 报错查看