简单谈谈.NET Core跨平台开发
对于.net开源计划想必关注的人已经跃跃欲试了,但是真正将其用于开发的目前来说不多。毕竟截至本文发布时.net core才发布到1.0rc2版本。正式版预计还有一段时间。况且大多数人都是持观望态度,就算开发仍然用的还是.net framework。另外不得不说的一点就是.net开源的进度很惊人但是社区建设还有待提升,很多配套的东西还不齐全。java在语言层级上可能落后.net但是java的社区力量是.net远不及的。
一、安装sdk
.net core发布版:
.net core提供了核心的运行组件,要用到的模块都是通过nuget方式来获取的。开发可以完全不依赖于.net framework和平台。但是.net core的功能没有.net framework那么全。web领域的webform已经被舍弃了。winform目前也不再开源计划内。想用的还是慎重些,毕竟这只是一个开始。
1.windows平台安装sdk
直接下载并安装即可。https://go.microsoft.com/fwlink/?linkid=798398
2.linux平台安装sdk(测试系统为:ubuntu 14)
官方指导手册:
sudo sh -c 'echo "deb [arch=amd64] https://apt-mo.trafficmanager.net/repos/dotnet/ trusty main" > /etc/apt/sources.list.d/dotnetdev.list' sudo apt-key adv --keyserver apt-mo.trafficmanager.net --recv-keys 417a0893 sudo apt-get update sudo apt-get install dotnet-dev-1.0.0-preview1-002702
主要有几个注意的点:
ubuntu 16在测试时使用apt-get安装不成功。目前只在ubuntu14测试成功。
直接使用:apt-get install dotnet 获取到的版本不清楚,看安装之后的版本号貌似是最新的,但是创建出来的项目又不是最新的。所以安装时还是按照官方给的方式指明版本号。
3.安装完成进行环境测试
使用指令:
测试结果如下:
c:\>dotnet --info .net command line tools (1.0.0-preview1-002702) product information: version: 1.0.0-preview1-002702 commit sha: 6cde21225e runtime environment: os name: windows os version: 10.0.10586 os platform: windows rid: win10-x64
yoli@ubuntu:~$ dotnet --info .net command line tools (1.0.0-preview1-002702) product information: version: 1.0.0-preview1-002702 commit sha: 6cde21225e runtime environment: os name: ubuntu os version: 14.04 os platform: linux rid: ubuntu.14.04-x64
二、创建helloword程序
1.创建控制台项目:
mkdir hwapp cd hwapp dotnet new
使用的dotnet new指令来快速创建项目。
dotnet new –t console 创建控制台项目。目前项目类型只能创建控制台项目,没有其它可选类型,希望后期可以创建更多项目模板。
dotnet new –l c# 使用c#语言创建项目。目前只支持c#和f#。
编译并运行项目:
dotnet run
使用dotnet resotre来还原包引用
使用dotnet run运行程序
使用dotnet build编译代码
使用dotnet publish 发布项目
详细指令参数请查看指令的帮助说明。
2.创建web项目
由于创建指令并不支持创建web项目,所以不能直接使用创建指令来创建,当然可以使用手工方式创建project.json来创建项目,这样做并不明智。可以借助于一些工具和模板来快速创建项目。
可用的模板案例:
可以直接使用git工具复制到本地使用。
另外需要注意的:
dnx的启动方式目前在新版本中已经不使用了,全部改为dotnet指令。web项目启动方式和console项目的启动方式一样。
linux运行效果如下:
三、使用编辑器
引用官方的宣传标语:
it is very easy to get started with .net core on your platform of choice.you just need a shell, a text editor and 10 minutes of your time.
感觉形容的很贴切,但是估计会有一大堆人蒙逼了。vs都不用了还怎么开发?官方说只需一个文本编辑器即可,放着如此强大的vs不用改用文本编辑器开发,开发者会接受吗?就我而言愿意改变的只是很少一部分人。毕竟绝大多数还是在windows平台上开发,最终还是选择还是用windows+vs开发,发布时可能选择其它平台来发布。这对于其它平台工具链的形成是十分不利的。
1.安装vscode
下载并安装vscode:
安装c#开发支持插件
打开vscode使用ctrl+p调出指令栏,输入安装指令:
插件官网:https://marketplace.visualstudio.com/items?itemname=ms-vscode.csharp
安装完成,会提示重启vscode,重启之后即可进行开发了。
2.使用vscode编译运行项目
使用vscode打开创建好的项目文件夹即可。默认项目没有.vscode文件夹,打开之后会在上方的消息栏提示,点击确定之后就会自动创建.vscode文件夹了。
该文件夹下包含:
launch.json
和tasks.json
两个文件,用来配置调试器和调试指令用的。
打开代码文件会发现代码会有很多异常信息,一般都是引用的包没有加载,可以使用restore指令来还原或者等vscode加载完成即可,可能会在通知栏提示还原包。
调试运行使用f5即可。c#调试插件提供了以下几种方式启动调试,使用web启动会默认会自动打开浏览器。断点调试单步跟踪基本差别不是很大,日常开发足够用。
运行效果如图:
需要注意的问题:
(1)如果跳过了添加调试器的步骤,有可能编译时报错。只需要launch.json修改对应的参数即可。如:
(2)troubleshooting 'error while installing .net core debugger'
如果有上述提示,请使用dotnet --info 看能否输出正常信息,如果不行,请重新安装.net core sdk的支持版本。如果提示restore失败,请检查网络连接。
(3)windows平台上,如果提示找不到symbols,则启用portable pdbs
打开project.json找到buildoptions,将debugtype修改为portable,如果找不到buildoptions选项,在老版本中名称叫:compilationoptions
结束语:此次.net的开源与其说是微软的仁慈倒不如说是一种无奈。另外vscode在文本编辑以及多项目管理等诸多方面还有很大的提升空间。社区的建设还有很多的空白地方希望能够尽快补充上来。每次看文档资料看到in the future、hasn't been written yet等词时总是一种莫名的失落感。
推荐阅读
-
简单谈谈.NET Core跨平台开发
-
Net Core平台灵活简单的日志记录框架NLog+SqlServer初体验
-
.NET Core跨平台部署
-
.NET Core开发的iNeuOS工业互联网平台,发布 iNeuDA 数据分析展示组件,快捷开发图形报表和数据大屏
-
.NET Core开发的iNeuOS工业互联平台,升级四大特性:配置数据接口、图元绑定数据、预警配置和自定义菜单
-
谈谈如何在ASP.NET Core中实现CORS跨域
-
超简单让.NET Core开发者快速拥有CI/CD的能力-Docker版本
-
.NET Core跨平台部署于Docker(Centos)- 视频教程
-
.Net Core应用程序跨平台应用研究-HelloArm(串口篇)
-
.NET Core 跨平台 串口通讯 ,Windows/Linux 串口通讯,flyfire.CustomSerialPort 的使用