最近可能搞个项目,计划是我做一个传输和负载均衡调度平台,然后其他人的程序可以用所有通用语言,全动态接入我的平台,这样可以实现计算能力的动态无限扩容,全动态容错,等等等等。
于是要多写一些例子,这几天玩命的用各种语言写演示。
.Net Core以前试过,当时还不稳定,现在发布到3.1 lts了,这次也可以试试看。
我看官方说明里面是没有vb语言的,没细看,结果用vb写好了才意识到可能有这个问题,但我转念一想,vs既然可以创建vb+netcore的项目,那应该就支持啊,然后稍微走了点弯路。
起初我按照传统路子,试着从windows平台发布出来一个linux的包,但不行,而且还把我电脑上的netcore环境给整废了,最终发现其实还是直接在linux编译很省事。
方法是这样,把项目文件夹传linux上,然后安装.net core sdk和runtime,进入项目目录,编译命令为:
dotnet publish -r linux-x64 --configuration release DBServer.vbproj
其中DBServer.vbproj是vs的工程文件,然后需要用到的nuget扩展包以及所有相关文件会自动搞好的。妈的,其实就这么简单……
然后进入编译提示的那个目录,改一下权限:
chmod 755 ./*
接着执行文件名(一般是工程名)就行了。
目前只发现一点小缺憾,console.writeline出来的是utf8字符,而shell环境我也改为zh_CN.utf8了,但仍然输出中文为乱码,没招,我把输出改成英文了(让我用英语这种劣等表音语言,实在恶心)。
另外要注意的是,windows系统的api是不能用了,其他方面跟开发windows的.net控制台程序没啥区别,别用系统特有的api就是了。
就开发环境而言,vs免费版加上linux执行,再加上远超java的效率和那么多一堆一堆的nuget包,说实话我真觉得比java强太多。因为我用到的外围库很少,所以并不是很熟,如果说以前的.net库或者控件全都能用,那真的很不错了。