Linux 上的.NET Core Hello World

介绍

在本文中,我们将解释如何在 Linux 操作系统(Ubuntu 20.04 LTS)上安装 .NET Core 并能够运行 .NET Core 应用程序,此外还可以运行它们并能够运行例如 ASP.NET Core并且您可以从客户端看到以测试其操作。
 
为什么要在 Linux 上运行 Microsoft 应用程序?答案可能有很多,我们可以说是为了超越长期存在的壁垒,以及他们应该在这两个操作系统环境之间看到的“竞争”,另一个是为了吸引所有 Linux 社区,以便他们可以更多地工作舒适地,很好地支持 C# 应用程序或具有 .NET Core 的所有功能的网页,另一个答案可能是降低开发公司的成本或作为用户程序员的自己,总之,有很多原因导致 .NET Core在基于 Linux 的操作系统上受支持。
 
.NET Core 与 Ubuntu 兼容。本文介绍如何在 Ubuntu 上安装 .NET Core。当某个版本的 Ubuntu 不再受支持时,.NET Core 将不再与该版本兼容。但是,您可以在这些版本上安装 .NET Core 的自定义说明稍多一些。
 

支持的发行版


在下图中,根据来源(https://docs.microsoft.com/en-us/dotnet/core/install/linux-ubuntu),我们有到目前为止支持和不支持的版本的比较表有它。
 
 

 

在本文中,我们将使用 Ubuntu 20.04 LTS (https://ubuntu.com/#download) 和 .NET Core 3.1 稍后我们将使用 .NET Core 5.0
 
我们将需要以下内容:
  • Linux 安装在一些已安装和配置的实例中(https://www.process.st/checklist/ubuntu-server-setup-process/)我把它留到第 14 步,这样你就已经有了一个配置良好的安装。
  • Putty 通过SSH访问 Linux 服务器。
  • 非常渴望学习。
目录
  1. 在 Linux 环境中安装 .NET Core 3.1 SDK 和运行时。
  2. 在 .NET Core 中创建和编译您的第一个应用程序。
  3. 在 ASP.NET Core 中创建应用程序。
  4. 从 Web 浏览器测试我们的 ASP.NET Core 应用程序。

在 Linux 环境中安装 .NET Core 3.1 SDK 和 Runtime

 
安装 Ubuntu 后,转到它一步一步解释谁是他们的第一次的链接,我们必须通过 SSH(安全外壳)访问操作系统,我使用 Putty 作为参考,但他们可以使用那个有最大的亲和力。

现在,我们需要在两台计算机或虚拟机之间进行互连,调用客户端和另一台服务器,在我的情况下,它是同一网络上的两台计算机,以便能够控制我们想要运行的 Linux 环境.NET Core,为此,一旦安装了 Putty,我们会在 Windows 控制台中使用 Ping 命令检查两台计算机是否已很好地连接到网络。
 
 

 

现在我们运行 Putty 并输入安装了我们的 Linux 的远程计算机的 IP 地址。
 
 

 

接下来,我们已经通过 SSH 建立了连接,如果一切都应该出现,它请求访问的 Linux Shell 的窗口,这是之前配置的 Ubuntu 用户的凭据(用户名/密码)
 

 

 
到目前为止,我们已经在 Linux 机器中,现在,因为我们要运行安装,所以尝试切换到在 UNIX 级别上拥有最多权限的 root 用户是很重要的,因此,我们必须执行第一条命令才能从普通用户更改为 root。
 
hughfernandez@neptuno:~$ su -
 
它将询问 root 用户密码,此时我们可以继续安装 .NET Core,但首先,始终建议使用以下命令运行最近的更新。
 
sudo apt-get update # 获取可用更新列表。
sudo apt-get upgrade # 严格更新当前软件包
sudo apt-get dist-upgrade # 安装(新)更新
sudo reboot # 重启
操作系统
 
由于您在安装 .NET 之前重新启动了系统,因此请运行以下命令将 Microsoft 包签名密钥添加到您的受信任密钥列表中,并添加包存储库。
 
wget https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
 

SDK安装


要安装 .NET Core SDK,请运行以下命令:
 

sudo apt-get update; \

sudo apt-get install -y apt-transport-https && \

sudo apt-get update && \

sudo apt-get install -y dotnet-sdk-3.1

 

运行时安装


以下命令安装 ASP.NET Core 运行时,它是 .NET Core 最兼容的运行时。在您的终端中,运行以下命令。
 

sudo apt-get update; \

sudo apt-get install -y apt-transport-https && \

sudo apt-get update && \

sudo apt-get install -y aspnetcore-runtime-3.1

 
作为 ASP.NET Core Runtime 的替代方案,您可以安装不包含 ASP.NET Core 支持的 .NET Core Runtime:将上述命令中的 aspnetcore-runtime-3.1 替换为 dotnet-runtime-3.1。
 
sudo apt-get install -y dotnet-runtime-3.1
 

在 .NET Core 中创建和编译您的第一个应用程序

 
通过这种方式,我们可以已经安装了 .NET Core 3.1 的 SDK 版本和运行时来运行我们的应用程序。如果您想知道可以运行哪些项目包含在此框架中,您可以通过执行以下命令获得完整列表:
 
dotnet new --help
 

 

 
我们将开始我们的“hello world”,首先我们将在 Linux 中创建我们的项目,然后我们以 root 用户身份进入主文件夹,我们将看到我们的 Ubuntu 用户的文件夹,在这个在这种情况下,我的用户是“hughfernandez”,我们将在其中创建文件夹,我们将在其中使用命令执行我们的第一个应用程序。
 
mkdir holamundoConsola
 
我们访问它并看到我们什么都没有,但我们已经在文件夹中。
 

 
我们执行以下命令:
 
dotnet new console
 

 

 
如果我们使用以下命令检查生成的控制台项目文件列表:
 
ls -1l
 

 
如果我们已经想查看特定文件,例如“Program.cs”,我们必须执行以下命令(重要的是要完全按照其显示的方式写入文件,否则 nano 将打开一个新文件)
 

sudo nano Program.cs

 

 
如上图所示,我可以访问名为“Program”的 .cs 文件,并且可以添加“Hello world from Linux!”,要保存更改,我们按 Control + X,它会要求覆盖更改并在 Linux 中再次返回命令环境。
 

 
到目前为止,我们已经可以编译我们的应用程序并使用以下命令运行它
 

dotnet build

 

 

 

dotnet run

 

 
这样我们已经创建了控制台解决方案,我们输入了文件“Program.cs”,我们用我们的hello world修改了代码行,最后是程序的编译和执行,但这次是在Linux环境下。
 

在 ASP.NET Core 中创建应用程序


对于 ASP.NET Core 主题,我们必须像上一个示例一样创建文件夹,在我的例子中,我给它命名为“demoAsp”,我们输入它并执行以下命令来创建一个 ASP.NET Core 项目,
 

dotnet new razor

要么

 

dotnet new mvc

 
 

 

如果他们询问项目名称,命令“dotnet new”默认为他们在执行命令时创建的文件夹的名称
 
 

 

要在 ASP.NET Core 中运行我们的应用程序,您必须首先使用“dotnet build”命令对其进行编译,使其生成文件夹“/bin/Debug/netcoreapp3.1”,然后在上述最后一个文件夹中执行以下命令
 
dotnet demoAsp.dll
 
 

 

只做一个直接测试,如果一切都不是位于项目的根文件夹中,并且通常运行“dotnet run”。
 

从 Web 浏览器测试我们的 ASP.NET Core 应用程序


已经以这种方式并且我们在 ASP.NET Core 中的应用程序正在 .NET Core 的 Kestrel 服务器上运行,但是我们还没有能够从浏览器访问它的出口,这是因为它在 localhost 中运行并且 Linux 假设只能访问它,因此,必须从 Linux 本身执行以下命令
 

dotnet run --urls "http://0.0.0.0:5000"

 

 
在这种情况下,“URLs”参数指定 Kestrel 应该侦听的 IP 地址和端口。默认情况下,Kestrel 只会侦听 localhost 地址,因此我们必须明确指定我们希望它侦听任何 IP 地址以执行此测试。

现在为了测试我们可以从任何客户端访问,我们转到 Windows 计算机并打开任何 Web 浏览器并输入 Linux 机器的 IP 地址和端口 5000 "http://the-ip-of-your-server: 5000"要验证 Web 应用程序是否正常工作,
 

 
如果您需要能够在不执行 URLs 命令的情况下自动从其他计算机远程(外部)访问该网站,您可以直接在项目中对其进行编程,您必须将其链接不同。

为此,您必须访问新创建项目的文件并打开“Program.cs”。在这里,您添加对“UseUrls”方法的调用,如下所示。
public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>  
WebHost.CreateDefaultBuilder(args)  
.UseUrls("http://0.0.0.0:5000")  
.UseStartup<Startup>();  

这会将 ASP.NET Core 网站绑定到所有服务器的 IP 地址,而不仅仅是 localhost,这是它默认执行的操作。
 

结论

 
到目前为止,如果您能够成功执行本文中的所有步骤,那么您已经能够执行以下操作。
  • 配置安装 Linux Ubuntu。
  • 了解如何使用 SSH 协议远程访问 Linux 机器。
  • 了解如何将 SDK 和 .NET Core Runtime 安装到您希望可用的版本中。
  • 知道如何在 Linux 目录中移动。
  • 在 Linux 环境中开始在 .NET Core 中生成项目。
  • 编译并能够在 Linux 上运行 .NET Core 应用程序。
  • 从任何 Web 浏览器在 ASP.NET Core 中运行页面。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值