前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >[ASP.NET Core 3框架揭秘] 跨平台开发体验: Mac OS

[ASP.NET Core 3框架揭秘] 跨平台开发体验: Mac OS

作者头像
蒋金楠
发布2019-10-14 16:40:11
1.3K0
发布2019-10-14 16:40:11
举报
文章被收录于专栏:大内老A大内老A

除了微软自家的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”命令在当前目录下创建了一个控制台应用程序。

1-14
1-14

上图右侧所示的是执行脚手架命令行创建的控制台应用的项目结构,可以看出它与我们在Windows上执行相同命令创建的应用具有相同的文件结构。不仅如此,生成的文件内容也完全一致,如下所示的是项目文件helloworld.csproj和程序文件Program.cs的内容。

helloworld.csproj:

代码语言:javascript
复制
<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>netcoreapp3.0</TargetFramework>
  </PropertyGroup>
</Project>

Program.cs:

代码语言:javascript
复制
using System;    
namespace helloworld
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Hello World!");
        }
    }
}

在无需对原文件做任何改动的情况下,我们可以直接执行dotnet命令行来启动该控制台程序。如下面的代码片段所示,在将当前目录切换到控制台应用所在项目根目录之后,我们直接执行dotnet run命令启动了我们创建的程序,随后我们看到了作为程序入口的Main方法输出到控制台上的“Hello World!”文本。

1-15
1-15

三、ASP.NET Core MVC应用

在《跨平台开发体验: Windows[下篇]》中,我们演示了如何将一个通过脚手架命令行创建的控制台应用一步步改造成ASP.NET Core MVC应用,既然.NET Core提供真正的跨平台支持,那么我们按照相同方式改造的ASP.NET Core MVC应用同样可以在Mac OS上运行。接下来我们就来验证一下。我们首先直接编辑项目文件helloworld.csproj将SDK改成“Microsoft.NET.Sdk.Web”,并将表示输出类型的属性节点(<OutputType>Exe</OutputType>)移除。

代码语言:javascript
复制
<Project Sdk="Microsoft.NET.Sdk.Web">
  <PropertyGroup>
    <TargetFramework>netcoreapp3.0</TargetFramework>
  </PropertyGroup>
</Project>

我们选择相应的IDE或者纯文本编辑器对Program.cs进行如下的修改,那么我们的应用就变成了一个简单的ASP.NET Core MVC应用。经过前面的介绍,相信读者朋友们已经理解了每一行代码的含义,所以在这里我们就不再赘言说明了。

代码语言:javascript
复制
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”,我们会得到如下图所示的输出结果。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-10-12 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、安装开发环境
  • 二、利用命令行创建.NET Core程序
  • 三、ASP.NET Core MVC应用
相关产品与服务
命令行工具
腾讯云命令行工具 TCCLI 是管理腾讯云资源的统一工具。使用腾讯云命令行工具,您可以快速调用腾讯云 API 来管理您的腾讯云资源。此外,您还可以基于腾讯云的命令行工具来做自动化和脚本处理,以更多样的方式进行组合和重用。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档