Java开发手册 Markdown 自动化部署 json regex split playframework seo Notify.js nginx视频教程 jq延时 python转16进制 java多行注释 安卓程序源代码 mysql或者条件 python集合 python中的for循环 python循环语句 python支持中文 python位操作 linux配置python环境 javascanner java编译环境 java怎么连接数据库 java语言介绍 java数组 javalist转数组 摩斯电码翻译器 一件换肤 ae脚本管理器 msn格式 16进制编辑器 今日头条邀请码 如何用ai设计字体 deepcopy js绑定事件的方法 ps镂空字体怎么做 强制换行快捷键 resample 凯立德地图下载
当前位置: 首页 > 学习教程  > 编程语言

终于开始了,微软的野心将通过全场景开发平台net 5体现得淋漓尽致!

2020/8/31 14:17:32 文章标签:

现在都在谈论全场景开发,也就是用一套开发工具,可以开发包括但不限于桌面、移动、IOT、游戏、Web等平台的应用。这样对于开发人员是非常爽的。本文将介绍微软推出的开发平台:.net 5,这个开发平台将完美地满足我们的各种开发需求。.net 5也是.net家族的下一代产品。

我们只需要使用.net 5,就可以为Windows、Linux、macOS、iOS、Android、tvOS、watchOS、Web等平台开发应用,是不是很酷呢?本文会介绍一下.net 5的一些新特性。并亲手开发我们的第一个基于.net 5的程序。

从.NET Core项目开始以来,微软已经向该平台添加了大约五万个.NET Framework API。 .NET Core 3.0为了缩小与.NET Framework 4.8的功能差距,添加了Windows Forms,WPF、Entity Framework6等功能。.NET5在此基础上,利用.NET Core和Mono的优势创建了一个单一平台,你可以将其用于所有的现存的.net代码,一个完整的与.net framework平齐的跨平台开发平台终于诞生了。

微软计划在2020年11月发布.NET 5的正式版,目前已经发布了.NET 5的预览版。

1. .NET 5 = 下一代.NET Core

.NET 5是.NET Core的下一步计划。 该项目旨在通过一些下面的一些方式来改进.NET:

(1)拥有单一的.NET运行时和框架,该框架可在任何地方使用,并具有统一的运行时,开发者在任何地方都可以使用他们的开发经验;

(2)通过充分利用.NET Core,.NET Framework,Xamarin和Mono来扩展.NET的功能;

(3)用单个代码库构建该产品,开发人员(Microsoft和社区)可以一起工作并一起扩展,从而改善了所有方案;

这个新的项目和方向改变了.NET的游戏规则。 使用.NET 5,无论您要构建哪种类型的应用,代码和项目文件的外观看起来都是一样的。 你将可以使每个应用程序访问相同的运行时,API和语言特性。 这包括几乎每天都致力于corefx的新性能改进。

当然,目前.net core拥有的仍然继续存在并完善,例如:

(1)在GitHub上的开源和面向社区;

(2)跨平台支持;

(3)支持利用特定于平台的功能,例如Windows上的Windows Forms和WPF以及从Xamarin到每个本地平台的本地绑定;

(4)高性能;

(5)并排安装(多个.net core版本共存);

(6)多种开发工具(Visual Studio、Visual Studio for Mac和Visual Studio Code);

下面是.net 5的一些新特性:

(1)在运行时体验上有更多选择(见下面的内容);

(2)Java互操作性将在所有平台上可用;

(3)在多个操作系统上将支持Objective-C和Swift的互操作;

(4)CoreFX将得到扩展,以支持.NET的静态编译(ahead-of-time – AOT),占用更小的空间以及对更多操作系统的支持;

计划2020-11发布.net 5.0的正式版,以后打算每年11月发布一个主要的版本,下图是.net的发布计划表。也就是说,明年的11月份,我们将迎来.net 6.0 LTS。其中LTS是长期支持版。

可能有的同学会注意到,为什么没有.NET 4呢?这里直接跳过了第4版,是因为它会使熟悉.NET Framework的用户感到困惑,.NET Framework已经使用4.x系列已有很长时间了,此外,微软想清楚地传达.NET 5是.NET平台的未来。

除此之外,微软还借此机会简化了命名。 微软认为,如果只推出一个.NET,就不需要像“core”这样的澄清术语。 简称是一种简化,也表明.NET 5具有统一的功能和行为。 如果愿意,可以继续使用“ .NET Core”。这就意味着以后微软官方正式的名字不再有core,而是.NET 6、.NET 7等。

2. 微软的野心与运行时们

微软一直想统一各个平台的开发框架,现在终于通过.net 5得以实现。这样微软就可以为未来的新平台以近乎零成本移植程序了。而这一切都是从一个跨平台运行时Mono开始的!

Mono是.NET的原始跨平台实现。它最初是.NET Framework的开源替代方案,并随着iOS和Android设备的流行而转变为可以开发Android和iOS App。这样Mono就作为了Xamarin的运行时 成为了Xamarin的一部分。

CoreCLR是用于.NET Core的运行时。它的主要目标是支持云应用,包括微软最大的服务,现在也用于Windows桌面,物联网和机器学习应用程序。

综上所述,.NET Core和Mono运行时有很多相似之处(毕竟它们都是.NET运行时),但也具有宝贵的独特功能。使选择所需的运行时体验变得有意义。现在微软正在互相替代CoreCLR和Mono。以便让它像构建开关一样简单,可以在不同的运行时选项之间进行选择。

下面的内容描述了微软计划为.NET 5设计的主要特性。它们提供了清晰的视图,说明了微软计划如何分别以及一起发展两个运行时。

3. 高吞吐量与高生产率

从一开始,.NET就依靠即时编译器(JIT)将中间语言(IL)代码转换为优化的机器代码。从那时起,我们就建立了行业领先的基于JIT的托管运行时,该运行时具有很高的吞吐量,并且还为开发人员提供了使编程变得快速简便的体验。

JIT非常适合长期运行的云和客户端方案。他们能够生成针对特定机器配置(包括特定CPU指令)的代码。 JIT还可以在运行时重新生成方法,该技术用于快速JIT,同时如果可以成为一种经常使用的方法,还可以选择生成代码的高度优化版本。

开发者工具是JIT的另一个很好的例子,例如dotnet watch工具对代码编辑并继续运行。工具通常需要在一个进程中多次编译和加载代码,而无需重新启动,因此需要非常快速地执行。使用.NET Core或.NET Framework的开发人员主要依靠JIT。因此,这种体验应该看起来很熟悉。

大多数.NET 5工作负载默认使用基于JIT的CoreCLR运行时。 iOS和客户端Blazor(Web程序集)是两个值得注意的例外,因为它们都需要提前(AOT)本机编译。

4. 快速启动,占用更少的空间以及和使用更少的内存

Mono Project已将大部分精力集中在移动和游戏机上。该项目的关键功能和成果是基于业界领先的LLVM编译器项目的.NET AOT编译器。 Mono AOT编译器使.NET代码可以内置到可以在计算机上运行的本地可执行文件中,这与C ++代码非常相似。 AOT编译的应用程序可以在较小的地方高效运行,并在需要时交换吞吐量以进行启动。

Blazor项目已经在使用Mono AOT。这将是过渡到.NET 5的首批项目之一。微软会将其用作证明该计划的方案之一。

AOT解决方案有如下两种:

(1)需要100%AOT编译的解决方案;

(2)其中大多数代码都是AOT编译的,但是可以使用JIT或解释器并将其用于对AOT不友好的代码模式(如泛型);

Mono AOT支持两种情况。通常,出于安全原因,Apple对于iOS和某些游戏机要求使用第1类AOT。第2个是首选,因为它提供了AOT的优点而没有任何缺点。

.NET Native是我们用于Windows UWP应用程序的AOT编译器,并且是上面列出的第一类AOT的示例。通过该特定实现,限制了你可以使用的.NET API和功能。

iOS,Web程序集和某些游戏机仍需要AOT编译。对于需要快速启动和/或占用低空间的类似设备的应用程序,AOT编译将称为成为一种选择。

5. 开发第一个基于.NET 5的应用程序(包含断点调试功能)

到现在为止,我们已经了解了.NET 5的基本功能和目标,以及新特性。是时候开始操练一下了。开发.net应用的IDE有如下3个:

(1)Visual Studio(Windows)

(2)Visual Studio for mac(macOS)

(3)Visual Studio Code(跨平台)

如果使用前两个IDE,需要安装2019及以上版本,而且这两套IDE比较大,安装需要更长的时间。如果只是学习C#和.NET 5的API,推荐使用Visual Studio Code,这款IDE更轻量,而且使用起来并不比Visual Studio逊色。

在正式开发之前,先要安装.NET 5,读者可以到下面的页面下载.net 5的最新版(注意自己用的OS平台)。

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

.net 5支持的CPU架构非常全,如下图所示。如果用Linux或Windows,可以选择x86架构或ARM架构的机器。

下载完,直接安装即可,这个不用犹豫,因为so easy,这里就不详细介绍安装过程了。本文使用的是macOS版本的.net 5,其他平台的.net 5版本的使用方法类似。

安装完.net 5后,可以在终端输入下面的命令测试一下是否安装成功。

dotnet --version

如果输出如下内容,说明.net 5已经安装成功。

5.0.100-preview.8.20417.9

接下来到下面的页面去下载Visual Studio Code吧。

https://code.visualstudio.com

读者需要根据自己使用的操作系统平台下载特定版本的Visual Studio Code,如下图所示。下载完了,直接安装或运行即可。

Visual Studio Code一开始并不支持.net 5开发,需要安装各种插件。现在打开Visual Studio Code,切换到插件页面(点击左侧第5个按钮),并在插件搜索栏中输入C#,会列出如下图所示的插件。第1个是必须安装的,其他一些包含C#的插件,大家能安装就安装一下吧,多多益善,反正我是大多数都安装了。右侧显示绿色“安装”按钮的是还未安装的插件,没有该按钮的是已经安装的插件,点击插件,会在右侧显示插件的详细信息。

Visual Studio Code的工程是以文件夹形式管理的。第1次打开Visual Studio Code,是如下图这样的。点击“打开文件夹”按钮打开一个文件夹,就相当于打开一个工程了,如果是个空文件夹,那么就是空工程。也可以先建立一个空文件夹,然后再打开该文件夹。

这里新创建一个名为first的文件夹,然后打开该文件夹,如下图所示。当鼠标放到文件夹上时,右侧会显示4个按钮,其中第2个是新建子文件夹。

现在在first下新建一个名为src的子文件夹,并且在该文件夹的右键菜单中点击“在集成终端中打开”,如下图所示。

这时会在右下角打开一个终端,在终端输入dotnet new console命令,会创建一个控制台.net工程,如果输出如下图所示的信息,说明创建.net工程成功了。

这时应该在src目录中生成一堆文件和目录,如果Visual Studio Code左侧工程树没有刷新,重启一下就出来了。在生成的若干文件中有一个Program.cs文件,是.net 应用的入口文件,因为该文件中有一个Main方法。已经有一行输出文本的例子了,如下图所示。

接下来在终端输入dotnet run命令,系统就会编译和运行当前的.net 工程,并输出如下图所示的结果。

不过现在都是通过命令行运行应用,非常不方便。其实Visual Studio Code也有直接通过IDE运行和调试的功能。现在切换到“运行”页面,如下图所示。

然后点击“创建launch.json文件”链接,会弹出如下图的选项列表,选择第1个(.NET Core)。

这时会创建一个如下图所示的launch.json文件。

还需要重新打开一下first工程,然后再次切换到“运行”页面,会看到上方有一个运行按钮,如下图所示。

现在点击“运行”按钮,会在终端输出运行信息,如下图所示。

很明显,程序的输出信息也在里面。

下面我们来编写一个用于计算阶乘的C#程序,代码如下:

using System;

namespace src
{
    class Program
    {    
        static int factorial(int n) {
            if(n == 0) {
                return 1;
            } else {
                return n * factorial(n - 1);
            }
        }
  

        static void Main(string[] args)
        {
            Console.WriteLine("10! = " + factorial(10));
        }
    }
}

运行程序,会输出如下内容:

10! = 3628800

当然,Visual Studio Code同样支持断点调试功能,只需要用鼠标单击需要设置断点的代码行前面,就会显示一个表示断点的红点,现在运行程序,程序就会停到断点的位置,然后可以单步跟踪代码了,如下图所示。

本文是关于.net 5和C# 9的第1篇文章,后续将推出系列文章,详细介绍如何用Visual Studio Code、Visual Studio 2019、.NET 5以及C# 9开发更复杂的应用。

 

蒙娜丽宁 CSDN认证博客专家 公众号:极客起源 达芬奇 UM
更多精彩内容请关注微信公众号:「极客起源」,东北大学计算机专业硕士。UnityMarvel创始人,企业内训讲师、IT畅销书作者,CSDN学院讲师,拥有多年软件开发经验和培训经验。主要著作包括《Python从菜鸟到高手》、《Python爬虫技术:深入理解原理、技术与开发》,培训企业学员数千人。制作在线课程数千小时。

本文链接: http://www.dtmao.cc/news_show_150212.shtml

附件下载

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?