初识.Net Core
admin
2023-08-02 15:42:54
0

简介就不多说了,搜一下就很多,简单的讲究是微软官方的跨平台开源.net实现
既然是跨平台,本篇我就尽可能以Ubuntu为开发平台去写

安装说明:

https://www.microsoft.com/net/core#ubuntu
需要注意的是Ubuntu要求是14.04,我先用16.04结果没办法安装……所以还是老实用指定版本吧
输入命令:dotnet –version可确认安装成功

yotsuki@ubuntu:~/$ dotnet –version
1.0.0-preview1-002702

开发工具:

微软之前发布过跨平台的开发工具Visual Studio Code.本篇以本工具为主。Windows上可以使用VS2015 update2
安装完成输入命令 code 可打开vscode

HelloWorld:

惯例的helloworld程序,没什么好说的

yotsuki@ubuntu:~/code/core$ mkdir helloworld
yotsuki@ubuntu:~/code/core$ cd helloworld
yotsuki@ubuntu:~/code/core/helloworld$ dotnet new
Created new C# project in /home/yotsuki/code/core/helloworld.
yotsuki@ubuntu:~/code/core/helloworld$ code .

dotnet new 命令将创建两个文件\”project.json\”和“Program.cs”,其中“project.json”是项目文件(据说微软打算取消这个文件恢复回csproj),两个文件的内容都比较简单,

还原包:

dotnet restore

使用此命令可将project.json文件中引用的包还原到本地,第一次还原会比较慢。以后每次对project.json中引用的修改都要运行restore还原包
如果使用Windows上的VS2015update2的话,创建项目和每次修改project.json文件时会自动还原,无需命令(但得多注意输出中的错误信息)

编译命令:

dotnet build

运行命令:

dotnet run

本地程序

如果想要发布本地程序,修改project.json文件

{
    \”version\”: \”1.0.0-*\”,
    \”buildOptions\”: {
        \”emitEntryPoint\”: true
    },
    \”dependencies\”: {
        \”Microsoft.NETCore.App\”: {
            //\”type\”: \”platform\”, //删除本行
            \”version\”: \”1.0.0-rc2-3002702\”
        }
    },
    \”frameworks\”: {
        \”netcoreapp1.0\”: {
            \”imports\”: \”dnxcore50\”
        }
    },
    //添加以下节点
    \”runtimes\”: {
        \”ubuntu.14.04-x64\”:{}
    }
}

dotnet restore
dotnet publish -r ubuntu.14.04-x64

运行后,将在\”bin/Debug/netcoreapp1.0/ubuntu.14.04-x64/publish\”中发布本地程序,该程序可直接运行,无需.net core环境

经实验,在另一全新的ubuntu14.04中只要安装以下依赖即可运行

sudo apt-get install libunwind8 libunwind8-dev gettext libicu-dev libicu-dev liblttng-ust-dev libcurl4-openssl-dev libssl-dev uuid-dev unzip

在Ubuntu上编译Windows本地程序

同样在project.json的runtimes节点中增加“win7-x64”:{}(32位系统为win7-x86)

dotnet restore
dotnet publish -r win7-x64

复制发布的文件到windows平台下,运行下看看能否正常

OK,正常运行。(感觉大概不会有多少人在linux下编译windows程序吧XDD)

关于本地程序:

目前我发布了两个平台的本地程序,Ubuntu1404和Windows的。发布出来的程序都有上百个文件
windows的文件

Ubuntu1404的文件数

仔细研究这些文件发现,其实这个所谓的本地程序只是把.net core runtime复制到你的程序目录发布而已……

总结:

.Net Core 是一个真正跨平台的开源项目,虽然目前语言只有C#,但C#目前已经非常强大了,之前一直因为Framework的平台限制存在局限性,但Core给了C#更好的舞台。

因为是一个新的平台,目前性能如何还未知,但看微软的决心,应该会让大家满意的?

缺点:编译本地程序需要加载的包过多,Nuget又慢,第一次restore简直要命,我写这文章的时候就基本上等了一晚上restore。希望微软爸爸能在国内加个镜像QAQ

相关内容

热门资讯

Mobi、epub格式电子书如... 在wps里全局设置里有一个文件关联,打开,勾选电子书文件选项就可以了。
500 行 Python 代码... 语法分析器描述了一个句子的语法结构,用来帮助其他的应用进行推理。自然语言引入了很多意外的歧义,以我们...
定时清理删除C:\Progra... C:\Program Files (x86)下面很多scoped_dir开头的文件夹 写个批处理 定...
scoped_dir32_70... 一台虚拟机C盘总是莫名奇妙的空间用完,导致很多软件没法再运行。经过仔细检查发现是C:\Program...
65536是2的几次方 计算2... 65536是2的16次方:65536=2⁶ 65536是256的2次方:65536=256 6553...
小程序支付时提示:appid和... [Q]小程序支付时提示:appid和mch_id不匹配 [A]小程序和微信支付没有进行关联,访问“小...
pycparser 是一个用... `pycparser` 是一个用 Python 编写的 C 语言解析器。它可以用来解析 C 代码并构...
微信小程序使用slider实现... 众所周知哈,微信小程序里面的音频播放是没有进度条的,但最近有个项目呢,客户要求音频要有进度条控制,所...
Apache Doris 2.... 亲爱的社区小伙伴们,我们很高兴地向大家宣布,Apache Doris 2.0.0 版本已于...
python清除字符串里非数字... 本文实例讲述了python清除字符串里非数字字符的方法。分享给大家供大家参考。具体如下: impor...