技术开发 频道

超详细,手把手教你入门.NET for Linux

  【IT168 编译】基本上,当你知道了一个程序员的首选操作系统是什么的同时,你就可以猜测出他们使用的是什么编程语言。例如,如果程序员使用的是Windows,那么他们可能使用的语言列表包括C#,JavaScript和TypeScript,如果是比较传统的程序员,那可能使用Visual Basic,如果是紧跟时代潮流的程序员,那他可能就是在用F#;如果他们使用的是Linux,你也会得到一个开源项目列表:Go,Python,Ruby,Rails,Grails,Node.js,Haskell,Elixir等等,当然我们也不能忽略最近崭露头角的新语言——Kotlin。

  但是,微软的一个举动就打破了这个局面,其制作NET框架,创建.NET Core,开放源代码可以任何平台上运行,例如Windows,Linux,MacOS,甚至还可以在手机操作系统—三星Tizen上运行。鉴于这种情况,Linux程序员应该尽快熟悉.NET Core,并尝试使用它来构建生产应用程序。

  如何在Linux上安装.NET Core

  可以运行.NET Core的Linux发行版包括Red Hat EnterpriseLinux(RHEL),Ubuntu,Debian,Fedora,CentOS,Oracle和SUSE。

  每个发行版都有自己的安装说明,本文以Fedora 26为例:

  第1步:添加dotnet product feed。

  sudo rpm --import https:// packages.microsoft.com / keys / microsoft.asc

  sudo sh -c'echo -e“[packages-microsoft-com-prod] nname = packages-microsoft-com-prod nbaseurl = https://packages.microsoft.com/yumrepos/microsoft-rhel7.3-prod nenabled = 1 ngpgcheck = 1 ngpgkey = https://packages.microsoft.com/keys/microsoft.asc“> / etc /yum.repos.d/dotnetdev.repo”

  第2步:安装.NET Core SDK。

  sudo dnf update

  sudo dnf install libunwind libicu compat-openssl10

  sudo dnf install dotnet-sdk-2.0.0

  创建Hello World控制台应用程序

  .NET Core安装完之后,下一步就是创建 “Hello World”控制台应用程序。

超详细,手把手教你入门.NET for Linux

  输出:

超详细,手把手教你入门.NET for Linux

  下面我们来分析一下,上面这段代码做了哪些事情?

  dotnew new console

  毫无疑问,这个大家都知道它创造了“Hello World!”控制台应用,需要注意的是,项目名称需要匹配目录名称; 代码是使用模板(控制台应用程序)构建;项目的依赖关系由从nuget.org提取的dotnet restore命令自动检索。

  如果查看目录的话,你会看到有些文件被创建了:

  Program.cs

  helloworld.csproj

  Program.cs是C#控制台应用程序代码,Helloworld.csproj是MSBuild兼容的项目文件,当创建Web服务或网站时,项目文件将具有新的意义。

  dotnet run

  这个命令做了两件事:建立代码,并运行新建的代码。无论何时调用dotnet run,它都会检查* .csproj文件是否已被更改,并运行dotnet restore命令。同时它还会检查是否有任何源代码已被更改,并在后台运行dotnet构建命令构建可执行文件。最后,它会运行可执行文件。

  可执行文件在哪?

  以下是可执行文件的路径:

  /opt/rh/rh-dotnet20/root/usr/bin/dotnet

  当你创建一个.net应用,一个组件或者库的时候,你也正在创建一个DLL。如果你想查看dotnet build命令创建的内容,可以看看bin / Debug / netcoreapp2.0 /,其中包括helloworld.dll,JSON配置文件,和helloworld.pdb(调试数据库)文件,同时你也可以查看JSON文件。

  运行dotnet run,运行的进程是dotnet。该进程会调用DLL文件,并成为应用程序。

  便携式应用程序

  这个部分是.NET Core开始真正脱离仅限Windows的.NET Framework的地方:刚刚创建的DLL可以运行在安装了.NET Core的任何系统上,无论是Linux,Windows还是MacOS。它是便携式的,所以被称为“便携式应用程序”。

  独立应用程序

  如果你想分发一个应用程序,但是又不想让用户在他们的机器上安装.NET Core,怎么办?.NET Core有办法:独立应用程序。

  创建独立应用程序意味着你可以将应用程序分发到任何系统,并且可以无需安装.NET Core运行。这意味着更快更简单的安装,同时也意味着你可以在同一个系统上有多个应用程序运行不同版本的.NET Core。

  需要改进的地方

  当你使用dotnet publish命令创建独立应用程序时,DLL被放置到目标目录连同所有的.NET位必须运行DLL。也就是说,你可以在目录中看到50个文件。但是这个问题也将很快得到改变,已经在实验的.NET Native将很快被引入,并在.NET Core发布。它将构建一个包含所有比特的可执行文件,这就像Go语言编译一样,可以指定目标平台并得到可执行文件。

  在64位处理器上为RHEL 7.x构建发行版:

  dotnet publish -c Release -r rhel.7-x64

  Web服务,网站…

  .NET Core模板包含了更多内容,包括对F#和Visual Basic的支持。要获取内置到.NET Core中的可用模板起始列表,可以使用命令dotnet new --help。

  提示:.NET Core模板可以由第三方创建。

  和大多数命令行工具一样,使用--help命令可以随时获得上下文帮助。

2
相关文章