使用.NET Core进行Linux编程3:简介和第2章

目录

背景

我希望实现的目标

介绍

这本书的封面是什么?

这本书是给谁的?

以应用为中心

这本书不是什么

这本书是什么

GitHub上的所有源代码

DotNet Core

MacOS奖金

第2章——进入.NET Core

Linux终端

测试dotnet可执行性

安装.NET Core SDK

我运行Ubuntu 18.04和Debian 10

Ubuntu 18.04或Debian 10

Linux Sudo(超级用户)

安装Sudo

将用户添加到Sudo文件

退出Root

注销/登录

安装.NET Core SDK

.NET Core运行时

一切都已安装

$ Prompt :Linux终端

Dotnet 是可执行的

我们需要一个代码编辑器

Visual Studio Code不是Visual Studio

安装Visual Studio Code(VSC)

运行Visual Studio Code的安装

Visual Studio Code安装完成

创建一个新项目

设置目录

Linux提示符显示什么

主目录

创建目录(mkdir)

主(Home)目录 (~) 确实有帮助

dotnet new

文件夹中的文件夹

Visual Studio Code

安装插件

带数字的小蓝色圆圈

这个程序是如何运行的?

System.Console库

像盒子一样的库

总结


背景

大约一年前,我建造了一台新的台式计算机,并安装了Win10Ubuntu作为双启动计算机。

我很快迷上了UbuntuLinux。我已经有8个月没有在这台机器上启动Win10了。

Win 3.1以来,我一直在Windows系统上运行和开发,因此这很重要。但是,我真的很喜欢Microsoft的开发环境和工作方式。当我最近发现自己可以编写在WindowsLinux上都可以运行的C#代码时,我感到非常兴奋。在Windows上编写代码,然后将其引入并在Linux上构建和运行它而无需做任何更改,这真是太神奇了。不,您仍然无法在Linux上构建Windows Form应用程序,但是看看其他的。在不需要Windows窗体或图形用户界面的情况下,还可以做很多其他事情。这就是为什么我决定写这本书的原因。我只想看看仅使用Visual Studio Code.NET Core SDK可以做什么。

我希望实现的目标

我只是想写一本可访问(任何人都可以编码)的有趣的书,它使我和我的读者对使用.NET CoreLinux平台上可以做的事情有所了解。我希望它甚至可以追溯到KR C-尽管我的肯定不会像那个伟大的小资源那样清晰和直接。最后,我希望我能提供一些有关Linux上的.NETC#的入门知识,以激发读者从开发中获得乐趣。

介绍

这本书的封面是什么?

本书侧重于使用Visual Studio CodeLinux命令行基于DotNet Core 3.x创建和构建项目和应用程序。

所有程序都将用C#编写。当然,基于Web的项目可能包括TypeScriptJavaScriptCSSHTML等。

这本书是给谁的?

本书非常快速地介绍了使用DotNet Core进行Linux编程。如果您是一个勇敢的初学者,则可以使用该书开始使用C#和DotNet Core 3.x库在Linux(我运行Ubuntu)上学习和编写软件。

我将尽我所能介绍资料,即使您是初学者,也可以按照以下步骤开始学习。但是,我可能会在某些话题上讲得很快,而你可能需要其他资源来在某些主题上获得更深入的了解。

本书的主要读者是具有一定开发经验的人。如果您已经进行了至少三到六个月的编码,并且喜欢编程,那么您会在这里做的很好。如果您有更多的经验,我相信您会发现这是对可以使用DotNet Core 3.x和相关技术在Linux上创建的各种事物的不错的介绍。

以应用为中心

我将提供涉及的所有主题的示例代码,但不仅限于示例代码。我们将通过至少三个完整的实用程序(通常是基于控制台的——文本用户界面TUI),以及一些适当的Web应用程序进行工作。

我不会关注用户界面问题。本书更多是关于代码的,而很少涉及用户界面(UI)。但是,我喜欢创建尽可能易于使用的应用程序,以便在适当和适用的地方,我将讨论如何创建良好的用户体验(UX),尽管图形UI可能并不总是如此。并且,当它是图形UI时,它可能是基于WebUI

这本书不是什么

再次,这本书是关于使用dotnet命令行和Visual Studio Code学习在Linux环境中编程的。它是关于学习编码的,仅略微强调如何创建用户界面。如果您正在寻找创建WinForm应用程序的Linux版本,这并不是。

这本书是什么

但是,如果您有兴趣学习dotnet CoreC#,编写实用程序并了解有关Linux基础的更多信息,那么这里就是您的理想选择。

我真的认为这本书是一个业余爱好者在学习通过Linux运行的DotNet Core编程。它应该很有趣...但是我是一个极客。:)

GitHub上的所有源代码

我将在GitHub存储库(repo)中提供所有代码,并且所有代码都是开源的,可免费用于您自己的项目中。

DotNet Core

dotnet命令行(基于控制台)应用程序非常出色,并且非常易于使用。如果您是Linux用户,则可能还是习惯于使用命令行。本书将重点介绍使用dotnet控制台应用程序来做我们能做的所有事情。这包括创建项目,从源文件编译和构建,添加库以及其他所有内容。

那应该使您对本书的工作方式和学习内容有所了解。现在,让我们开始安装dotnet coreVisual Studio Code并编写我们的第一个控制台应用程序。

MacOS奖金

我也在MacMini上测试了这些程序。您可以安装Visual Studio Code.NET Core SDK.NET Core运行时,并在终端窗口中运行所有内容,即使Mac默认情况下运行zshshell)也是如此。

无论您运行的是Mac还是Linux,本书中遵循的命令都是相同的。仅供参考——安装Visual Studio Code.NET SDK等时可能会有一些差异,但是这些差异足够容易,您可以找出它们。

2章——进入.NET Core

  • Linux终端(命令行)
  • 安装.Net Core 3 SDK和运行时
  • 安装Visual Studio Code
  • 构建并运行我们的第一个控制台(终端)程序

Linux终端

我们要做的第一件事是打开一个终端,检查是否安装了dotnet

如果在Linux机器上找不到终端,并且正在运行Gnome桌面(例如我在Ubuntu上),则可以单击活动菜单(有点像Win10开始按钮),然后键入:terminal

最后,只需单击终端图标,它将为您打开。

测试dotnet可执行性

出现命令提示符后,键入以下内容,然后按<ENTER>

dotnet --version

如果您在尚未安装dotnet sdk的系统上,那么您会得到类似我的截图内容,找不到该命令。

安装.NET Core SDK

让我们安装dotnet

打开您喜欢的Web浏览器(我的FireFox),然后转到:https://dotnet.microsoft.com/download

您会看到类似以下内容:

继续并单击[Install .NET Core]按钮。

这将带您进入一个很长的页面,其中列出了可以在其上安装.NET Core的所有各种Linux发行版(在本书中,我可能会更改对dotnet core的引用方式)。

我运行Ubuntu 18.04Debian 10

我实际上正在将Ubuntu 18.04 Desktop作为主机运行。但是,您可能会注意到我遵循的是Debian安装。那是因为我在一个VirtualBox实例中运行Debian(带有Gnome桌面),所以我可以指导您完成所有新的安装工作。经过测试后,我确定在Ubuntu 18.04Debian 10上安装的命令完全相同,因此它们是可互换的。这是因为Ubuntu基于Debian

Ubuntu 18.04Debian 10

这是开始在Ubuntu 18.04上安装所需的第一步:

复制以下内容,将其粘贴到终端中,然后按<ENTER>,它将开始运行。

wget https://packages.microsoft.com/config/ubuntu/18.04/packages-microsoft-prod.deb 
-O packages-microsoft-prod.deb

完成后,复制下一行并将其粘贴到终端窗口中,然后按<ENTER>

sudo dpkg -i packages-microsoft-prod.deb

您可以看到第一个命令已运行,现在终端正在等待我按下<ENTER>以启动第二个命令:

我实际上在运行dpkg命令时忘记添加sudo,然后出现错误。但是,这里是我在sudo下再次运行它时发生的事情。

键入密码后,我看到以下内容:

它提到了sudoers文件,该文件包含一个允许提升为超级用户状态的用户名。

Linux Sudo(超级用户)

这很重要,因为这本书也是关于学习Linux的,而且您一定会遇到这些问题。

让我们看看如何解决此问题。

键入su root并按<ENTER> 

系统将提示您输入root密码。我希望你还记得。:)

我输入的是我的,现在您可以看到我以root用户身份登录,因为在下一个图像中,提示符具有显示已登录用户的root@debian前缀。

我们需要给我的用户帐户,raddevsudo权限。对于您的情况,您需要赋予用户名sudo权限。

安装Sudo

为此,您可能需要像我一样安装sudo

输入以下内容,然后按<ENTER>

apt-get install sudo -y

将用户添加到Sudo文件

现在,您可以将用户添加到sudo文件。

输入以下内容,然后再次按<ENTER>

sudo adduser raddev sudo

退出Root

现在,让我们从root用户退出。为此,请键入:

exit

然后按<ENTER>

您将重新使用您的用户帐户。现在,让我们尝试再次安装dotnet core sdk

注销/登录

我的,没用工作。我再次尝试,发现您需要注销并重新登录(或重新启动),然后您的帐户才能拥有sudo权限,因此请继续注销并重新登录。那对我有用。

登录后,继续并再次打开终端,然后再次运行以下命令:

sudo dpkg -i packages-microsoft-prod.db

我的安装是成功的。

安装.NET Core SDK

.NET Core SDK是具有所有.NET Core功能的一组库,这些功能使您可以在.NET Core中编写程序。这是Microsoft创建的一组库,这些库包装了操作系统调用以创建文件,从用户获取输入,向用户显示输出以及数千种其他内容。SDK代表软件开发套件。

这是用于构建在.NET Core之上运行的自定义程序的工具包。

当您学习如何使用.NET Core SDK编写程序时,您将学习如何在.NET Core中进行编程。

现在,我们使用以下长的多行命令安装主要的dotnet 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

将其复制并粘贴到您的终端中,按<ENTER>,它将开始安装。

完成后,您将看到类似以下的内容:

.NET Core运行时

现在,我们需要安装DotNet Core运行时。.NET Core Runtime是实际将运行您编写的代码的应用程序。您将编写代码来调用.NET Core SDK中的函数,然后将代码构建为可执行文件并在.NET Runtime中运行该代码。

这是我们将在终端窗口中运行的命令:

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

结果如下:

一切都已安装

这就是dotnet Core sdk和运行时所需的一切。让我们检查一下,看看有什么。

$ Prompt Linux终端

现在,我将仅向您显示$提示,然后输入您要输入的命令。

这样,我就不用再说了,输入<ENTER>

它看起来像:

$命令的命令选项

$ ls -al

每当您看到该命令时,请按照显示的命令运行。当然,要在终端中提交任何命令,您必须按<ENTER>

Dotnet 是可执行的

现在已经安装了.NET Core,我们可以运行dotnet命令。

如果我们将--version传递给dotnet命令,它将使我们知道安装了哪个版本。

转到终端并输入:

$ dotnet --version 

注意:请记住,这些命令区分大小写,因此您需要完全按此处显示的方式键入它们。

我们将在许多方面使用dotnet,因此我们将在其中看到更多信息。我们将使用它来创建我们的项目,构建代码,运行我们的应用程序等等。但是,现在,我们需要一个代码编辑器。

我们需要一个代码编辑器

我们正在开发第一个应用程序。但是,我们需要一个使编写代码更容易的编辑器。当然,本书中使用的编辑器是免费提供的Visual Studio Code

Visual Studio Code不是Visual Studio

请记住,Visual Studio Code是轻量级的编辑器(与Visual Studio相比)。

Visual Studio实际上不会在Linux上运行。有Mac版本的Visual Studio,但没有Linux版本。但这很好,因为Visual Studio Code是出色的编辑器,并且非常接近完整的IDE(集成开发环境)。

Visual Studio Code并没有Visual Studio拥有的所有项目模板和所有工具,但是我相信,一旦运行它,您会感到惊讶。

我们最终将学习如何添加调试器插件,使我们可以逐步完成代码。

安装Visual Studio CodeVSC

要了解有关VSC的更多信息,只需将您喜欢的浏览器指向:https://code.visualstudio.com

但是,有一种比从站点下载Debian软件包更好的安装Visual Studio Code的方法。我将引导您完成在Linux上安装Visual Studio Code的最流畅、最佳方法。

是的,这是更多终端安装。运行以下命令:

$ sudo apt update

接下来,运行此命令:

$ sudo apt install software-properties-common apt-transport-https curl

它将确认您要安装软件包。键入y,然后按<回车>

现在,我们使用curl导入获取Microsoft应用程序所需的Microsoft GPG密钥(安全密钥)。

必须将Visual Studio Code存储库添加到我们的系统中,以便可以安装它。

注意:以下命令很长,以至于可以换行到下一行,但是该行中没有回车符。

$ sudo add-apt-repository "deb [arch=amd64] 
https://packages.microsoft.com/repos/vscode stable main"

没有输出,它仅安装存储库并返回到提示。

运行以下命令:

$ sudo apt update

您可以看到新的Microsoft存储库列表已被读入。

运行Visual Studio Code的安装

现在,我们终于可以安装Visual Studio Code

$ sudo apt install code

Visual Studio Code安装完成

Visual Studio Code已正式安装。

让我们开始吧。

单击活动,然后在搜索栏中键入Visual。您将看到Visual Studio Code图标。

单击该图标,Visual Studio Code将启动。

若要学习如何使用Visual Studio CodeVSC),我们需要创建一个项目,以便我们可以开始研究Visual Studio Code的许多功能。

创建一个新项目

让我们切换回终端窗口,并使用dotnet命令行工具创建一个项目。

设置目录

让我们花一点时间讨论如何设置目录以组织开发工作。

在主目录中,创建一个名为dev的目录。

在该目录下,我将拥有以我正在使用的各种技术类型命名的目录,例如webdevdotnetC ++等。

在本例中,我们将从主目录创建一个名为dev的目录,然后在该目录下创建一个dotnet目录。

Linux提示符显示什么

这是我在该目录中时的提示内容:

raddev@raddev-1:~/dev/dotnet$

这意味着用户raddev登录到名称为raddev-1的计算机上。

在冒号(:)之后,您可以看到当前路径,即~/dev/dotnet,最后有提示$。您键入的任何内容都会在$提示后出现。

主目录

请记住,~代表您的主目录。这意味着如果您给出命令:

$ cd ~

然后,您将被移到主目录。

但是,该目录的完整路径是/home/username,其中username是您的用户名。

打印工作目录(pwd

如果您想查看所在目录的完整路径,可以发出以下pwd命令:

$ pwd

 

正如你所看到的,我做了更改目录(cd)到home ~然后我做了一个PWD,现在我在目录/home/raddev中。

现在,您将更好地了解Linux文件系统中的位置。

我在目录下创建了一个dev目录。在dev目录下,我创建了一个dotnet目录。我将使用以下命令从home中移回目录:

$cd dev/dotnet

创建目录(mkdir

您可以复制/粘贴下面的命令并立即运行它,然后您将拥有与我相同的目录结构。

$ mkdir -p ~/dev/dotnet

这将在您的home目录下创建dev目录,并在dev目录下创建dotnet目录。

-p参数创建可能不存在的任何父目录(dev)。

(Home)目录 (~) 确实有帮助

~代表您的主目录/home/username非常酷,因为我不必知道您的用户名即可为您提供良好的mkdir命令。相反,我们只使用~来指代路径的那部分。

运行命令后,继续并将目录更改为目录。

$ cd ~/dev/dotnet

进入目录后,您将知道自己所在的位置,因为您会在$提示符之前看到路径。

我们准备创建一个新的dotnet项目。

我们将创建一个基于控制台(终端)的简单程序。这很容易做到。

我们要做的就是告诉dotnet两件事:

  1. 我们要创建什么类型的项目(控制台)
    • 我们必须告诉它项目的类型,因为您将看到,您可以使用dotnet命令创建许多不同类型的.NET项目。
  2. 我们要为新项目命名的名称。

dotnet new

确保您位于正确的文件夹(~/dev/dotnet/)中。继续运行命令:

$dotnet new console -o FirstConsole

文件夹中的文件夹

DOTNET命令中的-o告诉DOTNET项目的输出名称。这将在您当前所在的文件夹中创建一个新文件夹。这就是为什么要位于~/dev/dotnet文件夹中。创建项目后,您将拥有一个新文件夹~/deve/dotnet/FirstConsole/,该文件夹内将是dotnet命令创建的所有项目文件。

将目录更改为新的项目目录:

$ cd FirstConsole

列出目录(lsl):

$ ls -al

此项目中只有一个源文件(Program.cs)。另一个文件是项目文件。

我们现在可以构建程序。

$ dotnet build

该程序成功编译并生成,因为我们没有收到任何警告或错误。

现在,我们可以运行该程序了。

$ dotnet run

就是这样。仅一行输出。

顺便说一句,当您给出一个命令时,dotnet将为您构建并运行该应用程序:

$ dotnet run

这样,如果您只想运行该应用程序但已进行了更改,则只需给出一个命令,然后dotnet会为您完成所有工作。

Visual Studio Code

让我们在Visual Studio Code中打开该项目,并查看源代码以结束第一章。

如果VSC没有打开,请继续打开它。

您会在VSC中看到正常的起始页。

转到[文件]菜单,然后选择[打开文件夹...]菜单项。

选择菜单项后,将打开文件浏览器应用程序。

您将单击左侧的[主页],然后向下导航至dev/dotnet/然后选择dotnet为您的项目创建的FirstConsole文件夹。

单击FirstConsole文件夹后,然后单击右上角的[确定]按钮。

Visual Studio Code将加​​载文件夹和文件,并将它们显示在左侧的文件视图中。

您会看到VSC标题栏包含项目的名称(FirstConsole)。

并且,在左侧,有七个图标(顶部为5,底部为2),可用于导航至其他VSC功能。

当前选择了文件视图图标

放大镜是搜索功能。

三节点形状允许您访问版本控制软件Git。这使您可以跟踪源代码中的更改。

带有三角形的错误使您可以访问调试器。

带四个块的图标使您可以访问有助于扩展VSC功能的插件。其中之一对于使用至关重要,因为它将提供Intellisense功能(代码完成和信息),并允许我们逐行调试和逐步执行C#代码。

圆人图标可让您登录到Microsoft开发人员帐户。

最后,使用该工具可以访问VSC配置项,并检查更新和更多内容。 

现在没有打开的文件,但是让我们继续,在文件导航器中单击Program.cs文件,以便我们可以编辑一些代码。

安装插件

当您单击该项目时,您将看到代码显示在右侧,而小的弹出对话框将出现在VSC的右侧。

VSC知道您打开了C#文件,因此它试图通过让您知道要安装C#插件来提供帮助,该插件将为您提供更多功能。继续并单击[安装]按钮。

完成后,它将开始安装。

请注意,现已选择插件图标(突出显示的白色)。您可以看到已安装了LinuxOmniSharp软件包(x64)。

再次单击文件浏览器图标(顶部图标),以便您可以再次看到C Program.cs文件。

选择左侧的Program.cs文件,以便该文件在编辑器中打开。

让我们改变输出到控制台(终端)的文本,这样就不只是Hello World!,用户将看到Hello, Linux-World!

您所要做的就是单击文件内部,然后在双引号之间键入该代码。

Console.WriteLine("Hello, Linux-World!");

带数字的小蓝色圆圈

您可能会在左上方的文档图标顶部看到一个带有数字的蓝色小圆圈。这表明该文件已更改但尚未保存。

继续并保存文件(CTRL + s),蓝色圆圈将消失。显然,要在运行程序时看到对源代码所做的更改,必须将它们保存到文件中。

转回您的终端。您仍应位于~/dev/dotnet/FirstConsole目录中。

运行以下命令,您将看到所做的更改。请记住,执行run命令时,如果发生更改,您还告诉dotnet构建源代码。

$ dotnet run

这个程序是如何运行的?

基本代码仅定义Main()方法或函数。这被认为是应用程序的入口点。那只是意味着一切开始。

这意味着当您告诉dotnet构建应用程序时,它会设置一些内部内容,以便操作系统知道从何处启动程序。

该程序启动时,只有一个命令可以运行(Console.WriteLine)。

System.Console

该命令实际上是C#开发人员编写的函数。实际的函数名称是WriteLine,但他们将函数放在名为Console的库中。他们这样做是为了组织职能。实际上,库的全名是System.Console

之所以看不到该System名称的一部分,是因为它已经添加到Program.cs文件的顶部(using System;),因此您不必每次都键入它。

像盒子一样的库

您可以将这些库视为盒子。当您要运行特定功能时,需要转到正确的盒子并在其中查看。某些盒子(库)中还有其他盒子。

在我们的例子中,我们查看了系统库(盒子)内部,找到了控制台库,然后在其中找到了一个名为WriteLine()的方法或函数,该方法或函数知道如何将消息输出到终端(控制台)窗口。

您可以查找此库并在Microsoft的开发人员网站上正常运行。它看起来像以下内容:

https://docs.microsoft.com/zh-cn/dotnet/api/system.console.writeline?view=netcore-3.1

注意,在左侧,您可以看到已选择该WriteLine方法,而在右侧,我们看到了说明该方法的主文档。

从顶部开始,我们看到名称Console.WriteLine,接下来是系统的命名空间(库或框)。我们接下来看到的是AssemblySystem.Console.dll。这是我们安装的.NET Core SDK一部分的实际文件。这是一个特殊的文件,其中包含我们从程序中调用的功能(方法)。DLL代表动态链接库。这是一种幻想的表达方式,您可以根据需要(动态)将此特殊库链接到您的程序中,以便拥有Microsoft开发人员为您使用而创建的功能。

最后,在重载部分(这意味着有很多方法可以调用该WriteLine方法)下,我们看到了第二个选项WriteLine(String)和一个定义(以灰色突出显示)。

这是我们正在使用的WriteLine()方法的形式。我们给它传递一个String(用双引号引起的一个或多个字符表示一种String类型)。

当我们传递String时,它将其写入标准输出流(终端)。

在本书中,我们将介绍更多细节。现在,这是对第一个基本程序中正在发生的事情的很好的坚实理解。

总结

这是对编程领域和Linux领域的长期介绍。您已经学到了很多,现在您已经了解了:

  1. 如何使用Visual Studio Code
  2. 如何在Linux文件系统中移动
  3. 如何建立目录
  4. 如何使用dotnet命令创建、构建和运行项目
  5. 一个简单的控制台应用程序的功能及其如何执行的基础知识

请阅读下一篇的 使用.NET Core 3进行Linux编程:第3章 。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值