.net core这个名字对.net程序员来说都不陌生了,但貌似圈子里真正有开发经验的并不多,关键是公司的项目没需求。
今天我就趁着不忙上手玩了玩,搞明白了一些东西,心中也有了十万个为什么。那么现在与大家分享一下我这次玩耍的经历。
在系统中创建一个将要存放工程的目录(我的是F:\Researches\20180409 dotnetcore\test00)
打开一个cmd程序,定位到这个目录,使用dotnet new console命令(用命令行程序模板创建一个工程)
提示成功,在我们的目录中看到,项目已经创建好了
恩。。。还成,console.writeline(“ hello world”);已经帮我写好了,觉得有点空虚。。
使用visual studio code调试程序。
看了一下生成文件,为啥是个dll而不是exe,问了一下群里的码友,
路人A:“那就对了 这玩意儿是跨平台的 Linux之类的不认exe把”
我:“soga 那如果我想要exe呢”
路人B:“修改工程文件,加一行 <RuntimeIdentifier>win10-x64-corert</RuntimeIdentifier>”
exe就这么出现了
接下来,做一个实用点的控制台程序,我之前写过一个C#爬虫程序(此程序的初始版本有在blog里边记录,现在已经加了对多个羞羞网站的支持了)
为了方便,项目生成完成后直接使用vs2017进行编辑
将之前的文件全部导入,大部分代码都可以直接使用。
但遇到两个问题,
一是用于解析RSS源的SyndicationFeed类找不到了
二是Encoding.GetEncoding("gb2312")运行时无法找到相应的类
网上搜索了一下,这两个问题都是少包导致的,.net core的理念是按需加载包
解决方法。还是cmd程序定位到项目目录,两条命令为项目添加两个包引用
dotnet add package System.ServiceModel.Syndication --version 4.5.0-preview1-26216-02
dotnet add package System.Text.Encoding.CodePages --version 4.4.0
并在main方法中注册当前系统的编码
Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
调试运行:
感觉自己棒棒哒!!
试验完后,仍然有一大堆问题在心中
比如:
.net core的模板中并没有提供带gui框架的模板,那么.net core程序的界面都是怎么处理的?大多用来写控制台程序和网站后台?
wpf程序可以直接引用.net core项目生成的类库么?
我上边的项目在linux系统上如何跑?