.Net Core实践1

时间:2023-12-10 23:48:44

实践目标

编写经典的hello world程序.使用.netcore框架,然后运行在linux上.

.netcore目前已经是2.1版本了,可以简单的认为是一种跨平台的.net framework,除了MS系统,还能运行在linux mac os.很多年以前,已经有一个体系天生跨平台,就是JAVA.,dotnet体系生态无法与java竞争.

2004年7月发布的mono项目是.net的一种跨平台实现, 做成了能在linux上运行的.net framework,还部分实现了ADO.NET ASP.NET等工具.使用C#开发的程序,终于可以跑在linux上了.当然,前提API能实现.

看过一些介绍.netcore的文章,看完后还是云里雾里,目前就这样理解了.它就是一种.net在linux和其它OS上的重新发明.

基础环境

这个hello world,运行环境如下

WIN10 / vs2017 / .netcore2.1 / centos7 16.11 (运行在VM12.57)

需要一些Linux基本操作知识.类似ms的cmd,linux系统是主要用命令行交互.比如新建文件/文件夹,进入文件夹,运行文件,查看系统信息等等.不像MS有易于操作的图形界面.会一些linux命令,并不意味着能玩转linux.

#[mkdir] 建立文件夹

#[tar] 解压缩用

#[In] 建立链接文件,这如同ms系统中的"快捷方式",就是一个指向运行文件的引用

#[echo $PATH] 显示环境变量.和MS一样,在cmd中执行一个程序时,如果这个程序所在目录不在环境变量中,那么提示找不到 程序.除非到这个程序的目录下执行.

#[可执行程序] 运行可执行程序.如果希望在任何目录下都能执行,可将其目录加到环境变量,或者在已经有环境变量目录下,添加一个到该程序的"链接文件"(快捷方式).

安装.netcore

和MS系统中一样,如果要跑C#程序,必须安装.net framework,并且必须对应好版本.

在linux中装软件,可以编译源码安装,也可以安装编译好的包.显然,第1种要求高,安装编译好的包要容易一些.

下载.netcore2.14https://github.com/dotnet/core/blob/master/release-notes/2.1/2.1.4/2.1.4-download.md

环境是centos7 所以下载linux X64的这个版本.下载后得到文件 dotnet-sdk-2.1.402-linux-x64.tar.gz

.Net Core实践1

将这个文件复制到centos中.目前是从MS系统复制到VM中的centos

.Net Core实践1   .Net Core实践1

再将其解压到/usr/dotnet这个目录下

[root@] mkdir -p /usr/dotnet     // 在usr下建立dotnet目录

[root@] tar zxf dotnet-sdk-2.1.402-linux-x64.tar.gz -C /usr/dotnet // 解压.netcore到/usr/dotnet目录下

[root@] ln -s /usr/dotnet/dotnet /usr/local/bin // dotnet是可执行文件,在/usr/local/bin下建立一个到该文件的"快捷方式".这样,在其它目录下也能执行dotnet命令了,因为/usr/local/bin已经在环境变量里了

测试程序

在centos下安装好了.netcore的SDK之后.就能运行程序了.

在vs2017里建立一个.netcore控制台程序,写在那句经典的 Console.WriteLine("Hello World!");  这个过程和.netframework时没有什么区别.

编译后在bin里有这些文件.其中.dll那个文件就是可执行文件

.Net Core实践1

将这些文件复制到centos下,然后进入这个目录,使用dotnet命令执行这个dll

[root@] dotnet ConsoleApp1.dll

.Net Core实践1

Hello World!打印出来.运行成功了.

就这样,在MS下开发的.C#程序,可以运行在linux下了.