[ASP.NET Core 3框架揭秘] 跨平台开发体验: Mac OS
除了微軟自家的Windows平臺(tái), .NET Core針對(duì)Mac OS以及各種Linux Distribution(RHEL、Ubuntu、Debian、Fedora、CentOS和SUSE等)都提供了很好的支持。我們先來體驗(yàn)一下使用Mac來開發(fā).NET Core應(yīng)用,在這之前我們照例先得在Mac OS上構(gòu)建我們的開發(fā)環(huán)境。
一、安裝開發(fā)環(huán)境
和Windows一樣,如果我們希望在Mac上進(jìn)行.NET Core應(yīng)用的開發(fā),我們只需要安裝 .NET Core SDK和相應(yīng)的IDE就可以了。 .NET Core SDK可以直接從微軟官方站點(diǎn)下載,安裝之后我們將擁有.NET Core針對(duì)Mac OS的運(yùn)行時(shí)和相應(yīng)工具,其中包含在前面頻繁使用的命令行工具?dotnet。順便說一下,雖然老版本的Mac OS(比如10.12 Sierra)可以安裝.NET Core 3.0 SDK,但是只有在10.13 High Sierra或者更高版本的Mac OS才能編譯和運(yùn)行.NET Core 3.0應(yīng)用程序。
對(duì)于Mac OS X的.NET Core應(yīng)用的開發(fā)人員來說,他們?cè)贗DE上同樣具有廣泛的選擇。首先,Visual Studio目前已經(jīng)推出了Mac版本,雖然和Windows版本在功能和穩(wěn)定性上還有一定的差距,但是對(duì)于習(xí)慣了Visual Studio的Mac用戶來說算是最好的選擇。除此之外,我們可以選擇免費(fèi)的Visual Studio Code,如果不太喜歡這種風(fēng)格的IDE,還可以選擇JetBrains的Rider。
二、利用命令行創(chuàng)建.NET Core程序
對(duì)于Windows和Mac用戶來說,針對(duì)他們的開發(fā)體驗(yàn)基本上是一致的,因?yàn)?NET Core SDK提供的命令行(主要是dotnet這個(gè)命令行工具)在各個(gè)平臺(tái)具有一致性的定義,在IDE(Visual Studio和Visual Studio Code)層面也具有相同的選擇。我們先來體驗(yàn)一下用于創(chuàng)建初始 .NET Core項(xiàng)目的腳手架命令行在Mac OS上的應(yīng)用,為此我們按照下圖所示的方式執(zhí)行“dotnet new console”命令在當(dāng)前目錄下創(chuàng)建了一個(gè)控制臺(tái)應(yīng)用程序。
上圖右側(cè)所示的是執(zhí)行腳手架命令行創(chuàng)建的控制臺(tái)應(yīng)用的項(xiàng)目結(jié)構(gòu),可以看出它與我們?cè)赪indows上執(zhí)行相同命令創(chuàng)建的應(yīng)用具有相同的文件結(jié)構(gòu)。不僅如此,生成的文件內(nèi)容也完全一致,如下所示的是項(xiàng)目文件helloworld.csproj和程序文件Program.cs的內(nèi)容。
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!");
}
}
}
在無需對(duì)原文件做任何改動(dòng)的情況下,我們可以直接執(zhí)行dotnet命令行來啟動(dòng)該控制臺(tái)程序。如下面的代碼片段所示,在將當(dāng)前目錄切換到控制臺(tái)應(yīng)用所在項(xiàng)目根目錄之后,我們直接執(zhí)行dotnet run命令啟動(dòng)了我們創(chuàng)建的程序,隨后我們看到了作為程序入口的Main方法輸出到控制臺(tái)上的“Hello World!”文本。
三、ASP.NET Core MVC應(yīng)用
在《跨平臺(tái)開發(fā)體驗(yàn): Windows[下篇]》中,我們演示了如何將一個(gè)通過腳手架命令行創(chuàng)建的控制臺(tái)應(yīng)用一步步改造成ASP.NET Core MVC應(yīng)用,既然.NET Core提供真正的跨平臺(tái)支持,那么我們按照相同方式改造的ASP.NET Core MVC應(yīng)用同樣可以在Mac OS上運(yùn)行。接下來我們就來驗(yàn)證一下。我們首先直接編輯項(xiàng)目文件helloworld.csproj將SDK改成“Microsoft.NET.Sdk.Web”,并將表示輸出類型的屬性節(jié)點(diǎn)(<OutputType>Exe</OutputType>)移除。
<Project Sdk="Microsoft.NET.Sdk.Web"><PropertyGroup>
<TargetFramework>netcoreapp3.0</TargetFramework>
</PropertyGroup>
</Project>
我們選擇相應(yīng)的IDE或者純文本編輯器對(duì)Program.cs進(jìn)行如下的修改,那么我們的應(yīng)用就變成了一個(gè)簡(jiǎn)單的ASP.NET Core MVC應(yīng)用。經(jīng)過前面的介紹,相信讀者朋友們已經(jīng)理解了每一行代碼的含義,所以在這里我們就不再贅言說明了。
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!";
}
到目前為止,所有的編程工作都已經(jīng)結(jié)束,我們只需要按照我們熟悉的方式執(zhí)行dotnet run命令就可以啟動(dòng)這個(gè)程序。程序啟動(dòng)之后利用瀏覽器訪問地址“http://localhost:5000/hello/foobar”,我們會(huì)得到如下圖所示的輸出結(jié)果。
總結(jié)
以上是生活随笔為你收集整理的[ASP.NET Core 3框架揭秘] 跨平台开发体验: Mac OS的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Bumblebee微服务网关之并发限制
- 下一篇: 使用RabbitMQ实现接口补偿