除了微软自己的windows平台,.net core还为mac os和各种linux发行版(如rhel、ubuntu、debian、fedora、centos和suse等)提供了出色的支持。我们现在来体验一下在mac上开发.net core应用,但在开始之前,我们需要在mac os上构建开发环境。
一、安装开发环境 与在Windows上一样,如果我们希望在Mac上开发.NET Core应用,我们只需要安装.NET Core SDK和相应的IDE即可。.NET Core SDK可以从微软的官方网站直接下载,安装后我们将获得.NET Core针对Mac OS的运行时和相关工具,包括之前经常使用的命令行工具dotnet。顺便提一下,虽然旧版本的Mac OS(例如10.12 Sierra)可以安装.NET Core 3.0 SDK,但只有在10.13 High Sierra或更高版本的Mac OS上才能编译和运行.NET Core 3.0应用程序。
对于Mac OS X的.NET Core开发者来说,他们在选择IDE时同样拥有广泛的选择。首先,Visual Studio已经推出了Mac版本,尽管在功能和稳定性上与Windows版本仍有一定差距,但对于习惯使用Visual Studio的Mac用户来说,这是最佳选择。此外,我们还可以选择免费的Visual Studio Code,或者如果不喜欢这种风格的IDE,还可以选择JetBrains的Rider。
二、使用命令行创建.NET Core程序 对于Windows和Mac用户来说,他们的开发体验基本一致,因为.NET Core SDK提供的命令行工具(主要是dotnet命令)在各个平台上定义一致,IDE(如Visual Studio和Visual Studio Code)层面也提供了相同的选择。我们先来体验一下在Mac OS上使用脚手架命令行创建初始.NET Core项目的过程。为此,我们按照下图所示的方式执行“dotnet new console”命令,在当前目录下创建了一个控制台应用程序。
上图右侧展示了执行脚手架命令行后创建的控制台应用的项目结构,可以看出它与我们在Windows上执行相同命令创建的应用具有相同的文件结构。不仅如此,生成的文件内容也完全一致,如下所示的是项目文件helloworld.csproj和程序文件Program.cs的内容。
helloworld.csproj:
<project sdk="Microsoft.NET.Sdk"> <propertygroup> <outputtype>Exe</outputtype> <targetframework>netcoreapp3.0</targetframework> </propertygroup> </project>
Program.cs:
using System; namespace helloworld { class Program { static void Main(string[] args) { Console.WriteLine("Hello World!"); } } }
在无需对原始文件进行任何修改的情况下,我们可以直接使用dotnet命令行来启动该控制台程序。如下面的代码片段所示,在将当前目录切换到控制台应用所在的项目根目录后,我们直接执行dotnet run命令启动了我们创建的程序,随后我们看到了作为程序入口的Main方法输出到控制台上的“Hello World!”文本。
三、ASP.NET Core MVC应用
在《跨平台开发体验: Windows[下篇]》中,我们展示了如何将一个通过脚手架命令行创建的控制台应用逐步改造成ASP.NET Core MVC应用。由于.NET Core提供了真正的跨平台支持,我们按照相同的方式改造的ASP.NET Core MVC应用同样可以在Mac OS上运行。接下来我们来验证一下。我们首先直接编辑项目文件helloworld.csproj,将SDK改为“Microsoft.NET.Sdk.Web”,并移除表示输出类型的属性节点(Exe)。
<project sdk="Microsoft.NET.Sdk.Web"> <propertygroup> <targetframework>netcoreapp3.0</targetframework> </propertygroup> </project>
我们选择相应的IDE或纯文本编辑器对Program.cs进行如下修改,这样我们的应用就变成了一个简单的ASP.NET Core MVC应用。经过前面的介绍,相信读者朋友们已经理解了每一行代码的含义,所以在这里我们就不再赘述了。
using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; namespace helloworld { class Program { static void Main() { Host.CreateDefaultBuilder() .ConfigureWebHostDefaults(webHostBuilder => webHostBuilder .ConfigureServices(servicecs => servicecs .AddRouting() .AddControllersWithViews()) .Configure(app => app .UseRouting() .UseEndpoints(endpoints => endpoints.MapControllers()))) .Build() .Run(); } } } public class HelloController { [HttpGet("/hello")] public string SayHello() => "Hello World!"; }
到目前为止,所有的编程工作都已经完成,我们只需要按照我们熟悉的方式执行dotnet run命令就可以启动这个程序。程序启动后,使用浏览器访问地址“https://www.php.cn/link/27a34f041b383b2b229aea2a38b36c16。
以上就是[ASP.NET Core 3框架揭秘] 跨平台开发体验: Mac OS的详细内容,更多请关注其它相关文章!
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。