实践目标

编写经典的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

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

   

再将其解压到/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那个文件就是可执行文件

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

[root@] dotnet ConsoleApp1.dll

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

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

.Net Core实践1的更多相关文章

  1. .net core实践系列之SSO-跨域实现

    前言 接着上篇的<.net core实践系列之SSO-同域实现>,这次来聊聊SSO跨域的实现方式.这次虽说是.net core实践,但是核心点使用jquery居多. 建议看这篇文章的朋友可 ...

  2. .net core实践系列之短信服务-目录

    前言 经过两周多的业余时间,终于把该系列的文章写完了.第一次写系列,可能部分关键点并没有覆盖到,如果有疑问的朋友可以随时反馈给我.另外也感谢在我发布文章时给予我方案建议与反馈源码BUG的朋友们.下面是 ...

  3. .net core实践系列之短信服务-架构设计

    前言 上篇<.net core实践系列之短信服务-为什么选择.net core(开篇)>简单的介绍了(水了一篇).net core.这次针对短信服务的架构设计和技术栈的简析. 源码地址:h ...

  4. .net core实践系列之短信服务-Sikiro.SMS.Api服务的实现

    前言 上篇<.net core实践系列之短信服务-架构设计>介绍了我对短信服务的架构设计,同时针对场景解析了我的设计理念.本篇继续讲解Api服务的实现过程. 源码地址:https://gi ...

  5. .net core实践系列之短信服务-Api的SDK的实现与测试

    前言 上一篇<.net core实践系列之短信服务-Sikiro.SMS.Api服务的实现>讲解了API的设计与实现,本篇主要讲解编写接口的SDK编写还有API的测试. 或许有些人会认为, ...

  6. .net core实践系列之短信服务-Sikiro.SMS.Bus服务的实现

    前言 前两篇<.net core实践系列之短信服务-Sikiro.SMS.Api服务的实现>.<.net core实践系列之短信服务-Api的SDK的实现与测试>分别讲解了AP ...

  7. .net core实践系列之SSO-同域实现

    前言 SSO的系列还是以.Net Core作为实践例子与大家分享,SSO在Web方面复杂度分同域与跨域.本篇先分享同域的设计与实现,跨域将在下篇与大家分享. 如有需要调试demo的,可把SSO项目部署 ...

  8. .net core实践系列之短信服务-架构优化

    前言 通过前面的几篇文章,讲解了一个短信服务的架构设计与实现.然而初始方案并非100%完美的,我们仍可以对该架构做一些优化与调整. 同时我也希望通过这篇文章与大家分享一下,我的架构设计理念. 源码地址 ...

  9. .Net Core 实践 - 如何在控制台应用(.Net Core)使用appsettings.json配置

    新建控制台应用(.Net Core)程序 添加json文件,命名为appsettings.json,设置文件属性 如果较新则复制.添加内容如下 { "MyWords" : &quo ...

随机推荐

  1. 通过Excel文件快速创建页面和数据表

    在设计一个软件系统,构建过程:需求->数据表->系统开发.实际情况是需求(数据)很多来源于已经存在的文件中,客户会要求把这些数据“电子化”,这就给需求分析产生了很大的工作量: 分析这些原始 ...

  2. Several ports (8005, 8080, 8009) required by Tomcat v9.0 Server at localhost

    Several ports (8005, 8080, 8009) required by Tomcat v9.0 Server at localhost 问题:Tomcat服务器的端口被占用 解决: ...

  3. macos 安装sublime text 3,如何安装插件

    1. 上面的代码如下: import urllib.request,os,hashlib; h = '2915d1851351e5ee549c20394736b442' + '8bc59f460fa1 ...

  4. SQL Server实际执行计划COST"欺骗"案例

    有个系统,昨天Support人员发布了相关升级脚本后,今天发现系统中有个功能不能正常使用了,直接报超时了(Timeout expired)的错误.定位到相关相关存储过程后,然后在优化分析的过程中,又遇 ...

  5. 指定IP地址进行远程访问服务器设置方法(windows系统)

    我们有很多服务器经常受到外界网络的干扰,入侵者们通过扫描3389端口爆破密码非法进入我们的服务器,这时,我们可以配置服务器IP 安全策略来限制一些IP访问,大大提高了服务器的安全. 实验环境:     ...

  6. poi包冲突问题(excel)

    1. 所需jar包 涉及的poi (1)poi-3.14.jar  (HSSF) 依赖:commons-logging-1.2.jar.log4j-1.2.17.jar.commons-codec.1 ...

  7. 我认知的javascript之函数调用

    今天刚好周六没事,又由于工作的原因导致早上醒来就睡不着,无聊之下,就想到了 js 的function调用问题.当然,网上也是对javascript的一些事情说得很透了,但我觉得还是有必要把自己的想法说 ...

  8. 用Angular部署Cesium

    用到的集成开发环境是WebStrom,Cesium版本是1.50.0,Angular版本是6.2.4  1.首先我们安装cesium,在webstorm中的Termianl中输入 npm instal ...

  9. Thread中的join()方法

    package com.qjc.thread; public class JoinExcemple { // join方法就是用来同步的 public static void main(String[ ...

  10. iowait 过高问题的查找及解决linux

    Linux 有许多可用来查找问题的简单工具,也有许多是更高级的 I/O Wait 就是一个需要使用高级的工具来debug的问题,当然也有许多基本工具的高级用法.I/O wait的问题难以定位的原因是因 ...