当前位置:网站首页 / .NET CORE / 正文

ay的C#8.0和net5高级编程笔记1-C#与.NET入门

时间:2021年04月13日 | 作者 : aaronyang | 分类 : .NET CORE | 浏览: 905次 | 评论 0

我是杨洋 ayjs.net站长,最近主学core,欢迎监督

core是基础,比如asp.net core, wpf core

所以想通过学习一本书,来巩固下


虽然.NET6快出,.NET5已经出了,但是先学基础版本

vs2019 只能在win7 sp1以上运行

vscode 全平台 2019年8月1.38版本

现在2021-04-13 用的

image.png

vs2019只能在win10创建uwp项目

vs for mac必须有xcode,xamarin可编写苹果程序,但你需要macos和xcode才能编译

core3 支持win7sp1以上,win10 1607以上 winserver2012 R2 SP1以上 Nano Server1803以上

macOS HighSierra 10.13意义上

RHEL6+ RHEL CentOS Oracle Linux7+ Ubuntu16.04+ Fedora 29+ openSUSE 15+


我只有windows电脑,以window的vscode讲解,其他系统自己百度,当然书也有讲解

快捷键

F1或者Ctrl+Shift+P 

image.png

F12 前往定义的地方

Alt+← 和 →  是选项卡导航的

Ctrl+`(反引号) 是打开终端

Ctrl+Shift+` 新的终端

Ctrl+/注释

Shift+Alt+A 块状注释

image.png

具体

image.png

window版快捷键清单:https://code.visualstudio.com/shortcuts/keyboard-shortcuts-windows.pdf

mac:https://code.visualstudio.com/shortcuts/keyboard-shortcuts-macos.pdf

linux:https://code.visualstudio.com/shortcuts/keyboard-shortcuts-linux.pdf


安装vscode后,https://code.visualstudio.com/

image.png

后面的拓展

C# for visual studio code 语法高亮,感知,定义,引用等

C# XML Documentation Comments 为C#生成XML文档注释

C# Extensions 添加C#类,接口,构造函数添加字段和属性,属性生成构造函数

Rest Client 发送HTTP请求并vscode查看

ILSpy .NET Decompiler 反编译MSIL程序集,支持.NET框架 Core Standard

SharpPad 检查代码的结果,类似LinqPad RoslynPad

 



.NET Framework(NF)  和 .NET Core(NC) 和 Xamarin(XA) 和 .NETStardard(NS)

每块都很大

NF 包括 (公共语言运行时)CLR 代码执行 和 (基类库)BCL 丰富应用程序类库,只能windows运行

.NF 4.5.2官方组件 10亿台计算机上了,编写的程序共享CLR以及存储在GAC(程序集缓存)中的库


第三方开发了MONO项目的 .NET Framework的实现,跨平台,但是远远落后微软的NF

但是MONO作为Xamarin和Unity等跨平台游戏开发平台的基础

微软2016年收购Xamarin,开发环境集成在vs2019,只能创建移动应用的Xmarin Studio改名 vs2019 for mac.


为了跨平台,重构.net framework,并删除不认为核心的部分,命名.NET Core,竟然重构,就把NF的CLR改名 CoreCLR,BCL改名CoreFX

.NET Core运行速度快,可以与应用程序并行部署,NF的程序需要用户安装NF环境


Core跳过了4版本,避免与NF4.x混淆

.NET 5已经在2020年11月发布,以后微软每年在11月发布主要版本,类似苹果每年9月第二周发布IOS主要版本一样

https://dotnet.microsoft.com/download/dotnet/5.0

预计.NET6 2021年11月

了解下 .NET Core第一个版本 RC1是2015年11月开始的

前面的几个版本主要跳过,常用的 3.0 2019年9月  3.1(LTS长期支持)是2019年11月


Xamarin可以开发安卓,iOS和macOS


wpf和winform已经从macos和linux的NC移除

NC3新特性 使用 windows desktop pack中运行旧的windows窗体和wpf应用程序,这就是为什么它比macOS和Linux的sdk更大的原因。

UWP基于自定义版本的NC上构建,不是NC的一部分,UWP不能跨平台只能Win10平台

WCF,WF啥的迁移:https://devblogs.microsoft.com/dotnet/supporting-the-community-with-wf-and-wcf-oss-projects/

EF的跨平台API精简了,支持非关系型数据库 Microsoft Azure Cosmos DB,简称EF Core


NF旧应用和NC跨平台和新应用和XA移动应用,都是不同场景,所以微软定义个NS,一套所有.NET平台都可以用的API规范

要使用NS,就必须安装实现了.NET Standard规范的.NET平台

https://docs.microsoft.com/zh-cn/dotnet/standard/net-standard

image.png

C#8.0需要NS2.1,目前C#9.0已经发布了

NS版本链接:https://github.com/dotnet/standard/blob/master/docs/versions.md

如果你的github打开比较慢

在你的hosts文件,管理员打开编辑

添加

140.82.114.4github.com

199.232.69.194github.global.ssl.fastly.net

这两行,保存下,浏览器重新打开下就快了




WinUI是一组控件和样式,可用于构建现代

桌面应用

WinUI 2(当前最新版本)专门针对UWP

WinUI 3(几乎准备发布)针对所有Windows桌面

开发并使其更容易使用这些组件

在任何桌面应用中

这使其成为逐步升级和增强的一项伟大技术

现有的桌面应用程序


WebView2是封装了新版本的期待已久的控件

基于Chromium的Microsoft Edge浏览器

可以在任何.NET桌面环境中使用

比嵌入Google的Chromium版本更易于使用


Electron 应用程序使用Chromium引擎,该引擎已编译为

桌面应用程序,以将Web技术应用于桌面发展

对于已经具备网络技能的人来说,这是一个很好的解决方案

可以将其视为HTML和JavaScript的混合应用程序包装

它托管Node.js和许多扩展程序以提供桌面功能

它还提供了一个很棒的跨平台方案

Electron起源于GitHub,现在GitHub归微软


Photino简介

Photino是一个开源项目,允许开发人员将WEB UI放在桌面应用程序上。 了解如何使用HTML和您最喜欢的JavaScript构建在Windows,Linux和Mac上运行的应用程序

框架和/或Blazor(用于用户界面),以及.NET 5(其余)。

什么是Photino?

如果您熟悉Electron或Electron应用程序(VS代码,

Slack,Azure Data Studio,Azure存储资源管理器,Evernote ...)…

Photino还是一个开放源代码项目,允许开发人员使用

跨本机应用程序的Web UI(HTML,JavaScript,CSS等)

平台,而不是学习特定于平台的UI技术。


Photino.Native是围绕OS的C ++(和Objective C)包装

内置基于Chromium或WebKit的浏览器控件,可打开

桌面上的本地窗口,其中包含浏览器控件。

在Windows上,这意味着WebView2控件用于基于Chromium Edge的本机应用程序的浏览器控件。

在Mac上,这意味着WKWebView是用于本机的WebKit浏览器控件

基于Safari的应用程序。 在Linux上,这意味着WebKitGTK + 2是直接基于WebKit的本机应用程序的浏览器控件。

Photino.Native为每个平台编译,并作为NuGet包分发。


Photino.NET

Photino.NET包装了

本地控制

并使其可用于.NET开发人员。

image.png

HTML, JavaScript, CSS applications

ReactJS

AngularJS

VueJS

GAMES!

Etc.

NET 5 back end

image.png

Photino与Electron

Photino不需要 Node.js作为主机应用程序

Photino体积更小,重量更轻,因为它不需要下载并安装Chromium引擎或Node.js。

如果操作系统上已经安装了.NET 5,则差异很大


Photino使用的内存远少于Electron

特别是在Mac和Linux上,WKWebView和WebKitGTK + 2使用的内存比Chromium少得多

image.png

更多网站:

Tryphotino.io

Github.com/ Tryphotino

Tryphotino.Kavadocs.com



MAUI

多平台应用程序用户界面

Xamarin形式的延续

在Windows,iOS,Android和macOS上运行

但不是Linux(至少在第一个MAUI中,这种方法将许多现有技术结合在一起,包括WinUI和其他技术)

提供对基础本机技术的访问



Blazor Desktop

利用Blazor开发方法来驱动桌面

发展

有关更多信息,请关注.NET Conf!





dotnet CLI  C#编译器(Roslyn) C#源代码->IL中间语言

运行时后,CoreCLR加载IL代码,JIT编译器把IL变成CPU指令执行。

所以微软能够为macOS,linux,Win创建CoreCLR,接下来相同的IL就能到处运行

不管编程语言C#,VB,F#最终.NET应用程序变成IL代码,使用反编译工具打开程序集可以查看IL代码。


.NET Native

C#代码提前(Ahead of Time,AoT) 编译成CPU指令,而不是使用CLR编译为IL代码,以后再实时编译成本地代码。提高执行速度,降低内存占用。

更多:https://github.com/dotnet/corert/blob/master/Documentation/intro-to-corert.md





使用vscode构建控制台应用程序

打开vscode,Ctrl+O或者 Ctrl+K和Ctrl+O

image.png

我在d盘新建aycore文件夹,打开后,新建Code文件夹,然后新建Chapter01文件夹,然后创建HelloCS文件夹

image.png

Ctrl+·(反引号)打开终端

输入  dotnet new console,回车

image.png

回车完

image.png

如果缺少扩展,右下角会提示,你单击yes就行了

image.png


直接F5

image.png

添加断点,单击左侧,行号左侧的区域

image.png

添加变量监视,添加一个a

image.png

单击三角按钮

image.png

结束调试,点击上方条的红色的正方形方块

image.png

默认建立的项目是5.0的

image.png

使用dotnet CLI编译和运行代码

再终端下面输入

dotnet run

image.png

这两种方式,自己选一个

====www.ayjs.net====


exe文件

image.png



微软收购了Github,我们从github存储库下载解决方案代码


Git的用法,ay我个人做了笔记: github 发布东西 小记录

比如我们现在在github搜到了一个项目

https://github.com/caliburn-micro/caliburn.micro

打开网站后,单击复制地址,下面地址是  https://github.com/Caliburn-Micro/Caliburn.Micro.git

image.png

新建一个caliburn文件夹,并且选中后

image.png

打开终端界面

git clone https://github.com/Caliburn-Micro/Caliburn.Micro.git

image.png

image.png

下载完成后

image.png

更多版本控制

https://code.visualstudio.com/Docs/editor/versioncontrol



寻求帮助

https://docs.microsoft.com


终端输入dotnet help new

可以在浏览器上获取帮助


https://docs.microsoft.com/zh-cn/dotnet/core/tools/dotnet-new

也可以命令行 末尾加 -h或者 -help

dotnet new console -h

image.png



F12可以像VS中那样前往定义

image.png

如果出现没有找到定义,Ctrl+Shift+P  选择 OminiSharp:Select Project

image.png


遇到一些问题,可以前往

https://stackoverflow.com/


如果还有问题,你也可以打开谷歌,需要翻墙软件

image.png


开源项目学习:例如 码云,github,codeplex,codeproject

你也可以博客园网站,看看别人博客

加入一些QQ群,微信群,公众号来学习和讨论


订阅官方.NET博客

https://blogs.msdn.microsoft.com/dotnet


其他网站

https://mva.microsoft.com

https://channel9.msdn.com

http://dotnet.github.io


以上是AY结合书的第1章知识内容,做的一些笔记。





推荐您阅读更多有关于“C#8.0core3,”的文章

猜你喜欢

额 本文暂时没人评论 来添加一个吧

发表评论

必填

选填

选填

必填

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

  查看权限

抖音:wpfui 工作wpf,目前主maui

招聘合肥一枚WPF工程师,跟我一个开发组,10-15K,欢迎打扰

目前在合肥市企迈科技就职

AYUI8全源码 Github地址:前往获取

杨洋(AaronYang简称AY,安徽六安人)AY唯一QQ:875556003和AY交流

高中学历,2010年开始web开发,2015年1月17日开始学习WPF

声明:AYUI7个人与商用免费,源码可购买。部分DEMO不免费

不是从我处购买的ayui7源码,我不提供任何技术服务,如果你举报从哪里买的,我可以帮你转正为我的客户,并送demo

查看捐赠

AYUI7.X MVC教程 更新如下:

第一课 第二课 程序加密教程

标签列表