除了微软自家的Windows平台, .NET Core针对Mac OS以及各种Linux Distribution(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)层面也具有相同的选择。我们先来体验一下用于创建初始 .NET Core项目标脚手架下令行在Mac OS上的应用,为此我们按照下图所示的方式实行“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下令就可以启动这个程序。程序启动之后使用浏览器访问地址“http://localhost:5000/hello/foobar”,我们会得到如下图所示的输出结果。 [ASP.NET Core 3框架揭秘] 跨平台开发体验: Windows [上篇] [ASP.NET Core 3框架揭秘] 跨平台开发体验: Windows [中篇] [ASP.NET Core 3框架揭秘] 跨平台开发体验: Windows [下篇] [ASP.NET Core 3框架揭秘] 跨平台开发体验: Mac OS [ASP.NET Core 3框架揭秘] 跨平台开发体验: Linux [ASP.NET Core 3框架揭秘] 跨平台开发体验: Docker
来源:https://www.cnblogs.com/artech/p/inside-asp-net-core-01-04.html |