.NET Core跨平台开发

对于.NET开源计划想必关注的人已经跃跃欲试了,可是真正将其用于开发的目前来讲很少。毕竟截至本文发布时.NET Core才发布到1.0RC2版本。正式版预计还有一段时间。何况大多数人都是持观望态度,就算开发仍然用的仍是.NET Framework。另外不得不说的一点就是.NET开源的进度很惊人可是社区建设还有待提高,不少配套的东西还不齐全。Java在语言层级上可能落后.NET可是Java的社区力量是.NET远不及的。git

1、安装SDKgithub

.NET Core发布版:https://www.microsoft.com/net/coreshell

.NET Core提供了核心的运行组件,要用到的模块都是经过NuGet方式来获取的。开发能够彻底不依赖于.NET Framework和平台。可是.NET Core的功能没有.NET Framework那么全。Web领域的WebForm已经被舍弃了。WinForm目前也再也不开源计划内。想用的仍是慎重些,毕竟这只是一个开始。json

1.windows平台安装SDKubuntu

直接下载并安装便可。https://go.microsoft.com/fwlink/?LinkID=798398windows

 

2.Linux平台安装SDK(测试系统为:Ubuntu 14)浏览器

官方指导手册:https://www.microsoft.com/net/core#ubuntu网络

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

主要有几个注意的点:app

Ubuntu 16在测试时使用apt-get安装不成功。目前只在Ubuntu14测试成功。编辑器

直接使用:apt-get install dotnet 获取到的版本不清楚,看安装以后的版本号貌似是最新的,可是建立出来的项目又不是最新的。因此安装时仍是按照官方给的方式指明版本号。

 

3.安装完成进行环境测试

使用指令:

dotnet --info

测试结果以下:

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

2、建立HelloWord程序

1.建立控制台项目:

mkdir hwapp
cd hwapp
dotnet new

使用的dotnet new指令来快速建立项目。

dotnet new –t Console 建立控制台项目。目前项目类型只能建立控制台项目,没有其它可选类型,但愿后期能够建立更多项目模板。

dotnet new –l C# 使用C#语言建立项目。目前只支持C#和F#。

编译并运行项目:

dotnet restore
dotnet run

使用dotnet resotre来还原包引用

使用dotnet run运行程序

使用dotnet build编译代码

使用dotnet publish 发布项目

详细指令参数请查看指令的帮助说明。

 

2.建立Web项目

因为建立指令并不支持建立Web项目,因此不能直接使用建立指令来建立,固然可使用手工方式建立project.json来建立项目,这样作并不明智。能够借助于一些工具和模板来快速建立项目。

可用的模板案例:https://github.com/aspnet/cli-samples

能够直接使用Git工具复制到本地使用。

另外须要注意的:

dnx的启动方式目前在新版本中已经不使用了,所有改成dotnet指令。Web项目启动方式和Console项目的启动方式同样。

Linux运行效果以下:

image

3、使用编辑器

引用官方的宣传标语:

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:https://www.visualstudio.com/en-us/products/code-vs.aspx

安装C#开发支持插件

打开VSCode使用Ctrl+P调出指令栏,输入安装指令:

ext install csharp

插件官网:https://marketplace.visualstudio.com/items?itemName=ms-vscode.csharp

安装完成,会提示重启VSCode,重启以后便可进行开发了。

 

2.使用VSCode编译运行项目

使用VSCode打开建立好的项目文件夹便可。默认项目没有.vscode文件夹,打开以后会在上方的消息栏提示,点击肯定以后就会自动建立.vscode文件夹了。

image

该文件夹下包含:

launch.json和tasks.json两个文件,用来配置调试器和调试指令用的。

打开代码文件会发现代码会有不少异常信息,通常都是引用的包没有加载,可使用restore指令来还原或者等VSCode加载完成便可,可能会在通知栏提示还原包。

调试运行使用F5便可。C#调试插件提供了如下几种方式启动调试,使用Web启动会默认会自动打开浏览器。断点调试单步跟踪基本差异不是很大,平常开发足够用。

image

运行效果如图:

image

须要注意的问题:

(1)若是跳过了添加调试器的步骤,有可能编译时报错。只须要launch.json修改对应的参数便可。如:

image

(2)Troubleshooting 'Error while installing .NET Core Debugger'

若是有上述提示,请使用dotnet --info 看可否输出正常信息,若是不行,请从新安装.NET Core SDK的支持版本。若是提示restore失败,请检查网络链接。

(3)Windows平台上,若是提示找不到Symbols,则启用Portable PDBs

image

打开project.json找到buildOptions,将debugType修改成portable,若是找不到buildOptions选项,在老版本中名称叫:compilationOptions

 

结束语:这次.NET的开源与其说是微软的仁慈倒不如说是一种无奈。另外VSCode在文本编辑以及多项目管理等诸多方面还有很大的提高空间。社区的建设还有不少的空白地方但愿可以尽快补充上来。每次看文档资料看到In the future、hasn’t been written yet等词时老是一种莫名的失落感。