理论知识
.Net
前言
- 请详细看官方文档
一、 .NET是开发平台
1..NET是 .NET Framework、.NET Core、Xamarin/Mono的统称。
- .NET Framework:近20年历史,.NET简称的最早拥有者,用于开发Windows程序。
- Xamarin/Mono主要做移动开发:Xamarin、Unity。Mono也能做Web等跨平台开发,但主要专注移动端。
- .NET Core:免费、跨平台、开源。跨平台:程序可以运行在Windows、Linux、Mac等操作系统下。
2、.NET Framework缺点
1、系统级别的安装,互相影响
2、无法独立部署
3、ASP.NET 和IIS深度耦合
4、ASP.NET资源消耗大
5、非云原生
.NET Framework历史包袱:
1、带着手铐脚镣长大的ASP.NET MVC
2、ASP.NET底层不支持很好的单元测试
3、.NET Core的优点
1)支持独立部署,不互相影响;
2)彻底模块化;
3)没有历史包袱,运行效率高
4)不依赖于IIS
5)跨平台
6)符合现代开发理念:依赖注入、单元测试等
4、.NET Standard类库
1.NET Standard只是规范,一个.NET Standard类库可以被支持其版本的.NET Framework、.NET Core,Xamarin等引用。而.NET Core库、.NET Framework类库则不可以。
2.如果编写一个公用的类库,尽量选择.NET Standard,并且尽量用低版本。
5、.NET 开发工具
1) .NET CLI: 命令行
2) Visual Studio: Windows-Only (推荐)
3) Visual Studio for Mac
4) Jetbrains Rider:(挺好用的,不骗人)
5) VS Code (Visual Studio Code): 跨平台
6、常用的dotnet 命令行
dotnet --version //查看版本
dotnet new console//当前文件夹下创建控制台项目
dotnet run //构建并运行
7、其他
1.从.NET 5开始,微软开始淡化其他叫法,统一为.NET,后续默认.NET就是指的.NET Core。
2.文档中英文切换。也许可以手动改 zh-cn/en-us
3.自学就要养成把相关文档“翻一翻”的意识。
包管理
Linux:apt、yum
Javascript:npm
Java:Maven、Gradle
Python:pip
.net:NuGet
二、学习参考
1、NuGet
2、异步编程:async、await
3、lambda与LINQ
4、依赖注入 DI
5、配置系统Configuration
6、日志Logging
代码如下(示例):
1. NuGet
Install-Package XXX。-Version//指定版本。
Uninstall-Package XXX//卸载
Update-Package XXX//更新到最新版
2. 异步编程
使用 Async 和 Await 的异步编程
异步方法”:用async关键字修饰的方法
1 .异步方法的返回值一般是Task,T是真正的返回值类型,Task。惯例:异步方法名字以Async结尾。
2. 即使方法没有返回值,也最好把返回值声明为非泛型的Task。
3.调用泛型方法时,一般在方法前加上await关,这样拿到的返回值就是泛型指定的T类型;
4.异步方法的“传染性”:一个方法中如果有await调用,则这个方法也必须修饰为async
static async Task Main(string[] args)
{
string fileName = "d:/1.txt";
File.Delete(fileName);
File.WriteAllTextAsync(fileName, "hello async");
string s = await File.ReadAllTextAsync(fileName);
Console.WriteLine(s);
}
如果想在异步方法中暂停一段时间,不要用Thread.Sleep(),因为它会阻塞调用线程,而要用await Task.Delay()。举例:下载一个网址,3秒后下载另一个。
3. lambda与LINQ
3. 依赖注入
生活中的“控制反转”:自己发电和用电网的电。
依赖注入(Dependency Injection,DI)是控制反转(Inversion of Control,IOC)思想的实现方式。
依赖注入简化模块的组装过程,降低模块之间的耦合度
总结
有待更新