Linux培训
达内IT学院
400-996-5531
基本上,当你知道了一个程序员的首选操作系统是什么的同时,你就可以猜测出他们使用的是什么编程语言。例如,如果程序员使用的是Windows,那么他们可能使用的语言列表包括C#,JavaScript和TypeScript,如果是比较传统的程序员,那可能使用VisualBasic,如果是紧跟时代潮流的程序员,那他可能就是在用F#;如果他们使用的是Linux,你也会得到一个开源项目列表:Go,Python,Ruby,Rails,Grails,Node.js,Haskell,Elixir等等,当然我们也不能忽略最近崭露头角的新语言——Kotlin。
但是,微软的一个举动就打破了这个局面,其制作NET框架,创建.NETCore,开放源代码可以任何平台上运行,例如Windows,Linux,MacOS,甚至还可以在手机操作系统—三星Tizen上运行。鉴于这种情况,Linux程序员应该尽快熟悉.NETCore,并尝试使用它来构建生产应用程序。
如何在Linux上安装.NETCore
可以运行.NETCore的Linux发行版包括RedHatEnterpriseLinux(RHEL),Ubuntu,Debian,Fedora,CentOS,Oracle和SUSE。
每个发行版都有自己的安装说明,本文以Fedora26为例:
第1步:添加dotnetproductfeed。
sudorpm--importhttps://packages.microsoft.com/keys/microsoft.asc
sudosh-c'echo-e“[packages-microsoft-com-prod]nname=packages-microsoft-com-prodnbaseurl=https://packages.microsoft.com/yumrepos/microsoft-rhel7.3-prodnenabled=1ngpgcheck=1ngpgkey=https://packages.microsoft.com/keys/microsoft.asc“>/etc/yum.repos.d/dotnetdev.repo”
第2步:安装.NETCoreSDK。
sudodnfupdate
sudodnfinstalllibunwindlibicucompat-openssl10
sudodnfinstalldotnet-sdk-2.0.0
创建HelloWorld控制台应用程序
.NETCore安装完之后,下一步就是创建“HelloWorld”控制台应用程序。
输出:下面我们来分析一下,上面这段代码做了哪些事情?
dotnewnewconsole
毫无疑问,这个大家都知道它创造了“HelloWorld!”控制台应用,需要注意的是,项目名称需要匹配目录名称;代码是使用模板(控制台应用程序)构建;项目的依赖关系由从#提取的dotnetrestore命令自动检索。
如果查看目录的话,你会看到有些文件被创建了:
Program.cs
helloworld.csproj
Program.cs是C#控制台应用程序代码,Helloworld.csproj是MSBuild兼容的项目文件,当创建Web服务或网站时,项目文件将具有新的意义。
dotnetrun
这个命令做了两件事:建立代码,并运行新建的代码。无论何时调用dotnetrun,它都会检查*.csproj文件是否已被更改,并运行dotnetrestore命令。同时它还会检查是否有任何源代码已被更改,并在后台运行dotnet构建命令构建可执行文件。最后,它会运行可执行文件。
可执行文件在哪?
以下是可执行文件的路径:
/opt/rh/rh-dotnet20/root/usr/bin/dotnet
当你创建一个.net应用,一个组件或者库的时候,你也正在创建一个DLL。如果你想查看dotnetbuild命令创建的内容,可以看看bin/Debug/netcoreapp2.0/,其中包括helloworld.dll,JSON配置文件,和helloworld.pdb(调试数据库)文件,同时你也可以查看JSON文件。
运行dotnetrun,运行的进程是dotnet。该进程会调用DLL文件,并成为应用程序。
便携式应用程序
这个部分是.NETCore开始真正脱离仅限Windows的.NETFramework的地方:刚刚创建的DLL可以运行在安装了.NETCore的任何系统上,无论是Linux,Windows还是MacOS。它是便携式的,所以被称为“便携式应用程序”。
独立应用程序
如果你想分发一个应用程序,但是又不想让用户在他们的机器上安装.NETCore,怎么办?.NETCore有办法:独立应用程序。
创建独立应用程序意味着你可以将应用程序分发到任何系统,并且可以无需安装.NETCore运行。这意味着更快更简单的安装,同时也意味着你可以在同一个系统上有多个应用程序运行不同版本的.NETCore。
需要改进的地方
当你使用dotnetpublish命令创建独立应用程序时,DLL被放置到目标目录连同所有的.NET位必须运行DLL。也就是说,你可以在目录中看到50个文件。但是这个问题也将很快得到改变,已经在实验的.NETNative将很快被引入,并在.NETCore发布。它将构建一个包含所有比特的可执行文件,这就像Go语言编译一样,可以指定目标平台并得到可执行文件。
在64位处理器上为RHEL7.x构建发行版:
dotnetpublish-cRelease-rrhel.7-x64
Web服务,网站…
.NETCore模板包含了更多内容,包括对F#和VisualBasic的支持。要获取内置到.NETCore中的可用模板起始列表,可以使用命令dotnetnew--help。
提示:.NETCore模板可以由第三方创建。
填写下面表单即可预约申请免费试听! 怕学不会?助教全程陪读,随时解惑!担心就业?一地学习,可全国推荐就业!
Copyright © 京ICP备08000853号-56 京公网安备 11010802029508号 达内时代科技集团有限公司 版权所有
Tedu.cn All Rights Reserved