不久前发布" />

如何开发跨平台的应用并部署至Ubuntu运行,跨平

作者: win10  发布:2019-08-03

阅读目录

翻阅目录

  • 特征一览
  • 2019篮球世界杯投注官网,连串概况
  • 下一步?
  • 交换方式
  • 设置开垦境况
  • 编码
  • 谈一谈发布
  • 公布应用
  • 运行
  • 接下来?

style="font-family: Microsoft YaHei UI;">不久前发布了一篇博文“ style="font-family: Microsoft YaHei UI;">.NET轻量级RPC框架:Rabbit.Rpc style="font-family: Microsoft YaHei UI;">”,当初只兑现了非常简单的功用,也位列了后头的陈设,经过几天的不断大力又为Rabbit.奥迪Q5pc扩展了大量新特色,今日第一介绍下项目近况。

style="font-family: Microsoft YaHei UI;">从前写了一篇博文公布Rabbit 兰德酷路泽pc跨平台了“ style="font-family: Microsoft YaHei UI; color: #4f81bd;">拥抱.NET Core,跨平台的轻量级RPC:Rabbit.昂Corapc style="font-family: Microsoft YaHei UI;">”,在进度中品尝了怎么着编写协助跨平台的类库与应用程序,也尝尝了在linux上的运行,前日有意将经过中的一些经验记录下来,方便后人。

特征一览

  1. Apache License 2.0会谈开源
  2. 支持客户端负载均衡(提供了轮询、随机算法的兑现)

  3. 支撑ZooKeeper和文件分享方式的服务谐和

  4. 运维时客户端代理生成(基于Roslyn)

  5. 预生成客户端代理

  6. 客户端代理预生成(基于Roslyn)

  7. 架空的编解码器(提供了JSON、ProtoBuffer协议的兑现)

  8. 虚幻的传导通道(提供了DotNetty与Cowboy.Sockets的移植完结)

  9. 充足新闻传送(服务端运维时的当地非凡能够传递至客户端)

  10. NET Core项目架构

  11. 跨平台

安装开拓意况

本身用Windows蒙受就径直用Visual Studio了,当然也得以用记事本或Visual Code。

.NET Core开荒须求

  • Visual Studio 2015 Update3
  • .NET Core 1.0 for Visual Studio(DotNetCore.1.0.0-SDK.Preview2)

    具体的移位:https://www.microsoft.com/net/core#windows

    编码

    ### 新创设三个.NET Core调整台项目

    2019篮球世界杯投注官网 1

    #### 项目模板表达

  • Class Library(基础类库)

  • Console Application(控制台应用程序)
  • ASP.NET Core(Web应用程序)

    上边的.NET Framework4.5 大家再熟知可是了,不过.NET Core其实与.NET Framework非亲非故,相信后续的SDK版本会消除这几个题目。以后只可以选拔.NET Framework 4.5或以上才足以看来3个类型的连串。

    ### 键入一些代码

    2019篮球世界杯投注官网 2

    ### 运行

    2019篮球世界杯投注官网 3

    归来目录

    谈一谈发表

    .NET Core分为三种选择类型,分别是:

  • Portable applications(便携应用)

  • Self-contained application(自宿主应用)

    ### Portable applications(便携应用)

    其一类似于现成的.NET Framework方式,须求目的主机安装有.NET Core的运维时,相比未来的情形正是急需机械安装.NET Framework。

    对于这种办法自个儿想我们都很熟习了,微软有放出差异平台(操作系统)上的.NET Core运转时。

    .NET Core运营时与.NET Framework是同等级但不是同贰个。

    #### 优点

  • 易移植

  • 发表的始末相当小
#### 缺点
  • 亟需安装.NET Core运行时

    ### Self-contained application(自宿主运用)

    当当当,这种办法很酷,也是作者最爱怜的一种发表办法。

    这种方法会将运营时与程序共同打包,也就象征指标机器无需装.NET Core运转时。

    #### 优点

  • 布置简单

    #### 缺点

  • 发布内容非常的大

    #### 备注

    这种办法不是事先所说的.NET Native,也不会有总体性进步,因为大家的先后还是IL,依然须求CLPAJERO中的JIT举办编译,只是将Core CL昂Cora打包进去了而已,能够明白为提供了葡萄紫版的.NET Core运转时,然后提供了叁个一拍即合平台的可实施程序来进展加载调用。

    参照他事他说加以考察资料:https://docs.microsoft.com/zh-cn/dotnet/articles/core/app-types

    颁发应用

    ### 使用(CLI)命令行发表

    #### 宣布:Portable applications(便携应用)

    运转“CMD”(命令提醒符)

    向来到品种路径

    2019篮球世界杯投注官网 4

    采纳公布命令

    2019篮球世界杯投注官网 5

    这么就发表达成了。

    ps:如若公布失利请先进行dotnet restore或采用Visual Studio进行转移。

    dotnet publish有成都百货上千可挑选,格式如下:

    2019篮球世界杯投注官网 6

    -f, --framework [FID]

    钦命运营框架,如:netcoreapp1.0,net45,net451等,具体由“project.json”中的“framework”节点钦命。

    -r, --runtime [RID]

    钦赐应用程序运维时(自宿主应用),这种格局将会把钦赐平台的Core CLSportage打包进去。

    格式:[os].[version]-[arch]

例子:win7-x64、win7-x86、win10-x64、win10-x86、rhel.7.0-x64、[Ubuntu](https://www.linuxidc.com/topicnews.aspx?tid=2).14.04-x64、osx.10.10-x64等。


参考资料:[https://docs.microsoft.com/zh-cn/dotnet/articles/core/rid-catalog](https://docs.microsoft.com/zh-cn/dotnet/articles/core/rid-catalog)

**-b,
--build-base-path [DIR]** 

指定输出路径根。


**-o, –output**


指定具体的输出路径,会与“-b”命令配合。


默认路径: 

 
  • Portable applications:./bin/[configuration]/[framework]//app

  • Self-contained application:./bin/[configuration]/[framework]/[runtime]/app

**--version-suffix
[VERSION_SUFFIX]**

替换在“project.json”文件中依赖包版本号中的*。

**-c, --configuration
[Debug|Release]** 

发布配置,这个大家都懂,默认为:Debug。


参考资料:[https://docs.microsoft.com/zh-cn/dotnet/articles/core/tools/dotnet-publish](https://docs.microsoft.com/zh-cn/dotnet/articles/core/tools/dotnet-publish)

### 使用Visual Studio发布

右键发布,可选参数请参考上面的。

[![](https://www.linuxidc.com/upload/2016_11/1611111030871914.png)](https://www.linuxidc.com/upload/2016_11/1611111030871913.png)

### 发布:Self-contained application(自宿主应用)

#### 修改“project.json”

删除“Microsoft.NETCore.App”节点中"type"
: "platform"的配置

增加“runtime”节点中对应的平台

修改后的“project.json”如下:

[![](https://www.linuxidc.com/upload/2016_11/1611111030871916.png)](https://www.linuxidc.com/upload/2016_11/1611111030871915.png)

在使用CLI或Visual
Studio进行发布

CLI命令:

**dotnet
restore**

**dotnet
publish –r [win10-x64 | ubuntu.16.04-x64] –c release**

[![](https://www.linuxidc.com/upload/2016_11/1611111030871918.png)](https://www.linuxidc.com/upload/2016_11/1611111030871917.png)

[![](https://www.linuxidc.com/upload/2016_11/1611111030871920.png)](https://www.linuxidc.com/upload/2016_11/1611111030871919.png)

参考资料:[https://docs.microsoft.com/zh-cn/dotnet/articles/core/deploying/index#self-contained-applications](https://docs.microsoft.com/zh-cn/dotnet/articles/core/deploying/index#self-contained-applications)

运行
----------------------------------------------------------

### Portable applications(便携应用)

cd到发布目录,然后运行以下命令

dotnet
ConsoleApp1.dll

### [![](https://www.linuxidc.com/upload/2016_11/1611111030871922.png)](https://www.linuxidc.com/upload/2016_11/1611111030871921.png)

### Self-contained application(自宿主应用)

直接打开可执行文件

#### Windows

下直接双击“ConsoleApp1.exe”你懂的。。

#### Ubuntu

#### 安装Ubuntu

目前官方给出的支持版本有

 
  • Ubuntu 14.04 LTS(长日子协理版本)
  • Ubuntu 15.04 LTS(长日子帮忙版本) 其一自家并未有揭橥成功
  • Ubuntu 16.04 LTS(长日子帮忙版本)

    作者运用的是16.04,镜像文件在1.4gb左右。

    下载地址:http://releases.ubuntu.com/16.04/ubuntu-16.04-desktop-amd64.iso

    小编采纳系统自带的Hyper-V作为虚构机软件。

    安装的切实流程不贴了,互连网海人民广播广播台大,说个注意点。

    动用Hyper-V安装Ubuntu时最终一步会卡住比较久,我们强制重启就能够(最佳等个几分钟在强制重启),当然也得以等,相当久相当久今后她会好的。

    2019篮球世界杯投注官网 7

    (大约意思是:请删除安装媒介,按回车)然则笔者早就经分开虚构光驱了。。

    #### 拷贝公布内容

    艺术不定,小编用的是虚构光驱镜像。

    2019篮球世界杯投注官网 8

    2019篮球世界杯投注官网 9

    #### 运转自宿主应用

    设置举行顺序的施行权限

    2019篮球世界杯投注官网 10

    行职务令行实施

    2019篮球世界杯投注官网 11

    是或不是很酷,未有安装其余事物,就可以直接运营。

    #### 运营便携式应用

    率先得安装.NET Core运转条件

    参照他事他说加以考察资料:https://www.microsoft.com/net/core#ubuntu

    设置到位之后,输入“dotnet --info”来测量检验是还是不是安装成功。

    2019篮球世界杯投注官网 12

    OK,接下去大家来运维。

    固定到目录,运营“dotnet ConsoleApp1.dll”

    2019篮球世界杯投注官网 13

    ps:记住不要用 “dotnet run”这几个命令,不然会提醒找不到“project.json”,输入之后会实行一段东西因为有个别缘由并未截到图。

本文永恒更新链接地址:http://www.linuxidc.com/Linux/2016-11/137009.htm

2019篮球世界杯投注官网 14

品种轮廓

2019篮球世界杯投注官网 15

开源地址:https://github.com/RabbitTeam/Rpc

Rabbit.路虎极光pc(接济跨平台)

CR-Vpc主题类库,有如下成效:

  1. 服务Id生成
  2. 传输消息模型
  3. 品类转变
  4. 劳动路由抽象
  5. 系列化器抽象(暗中同意提供JSON体系化器)

  6. 传输抽象

  7. 编解码器抽象(默许提供JSON的编解码器达成)

  8. 客户端运转时(地址分析器、地址选拔器,远程调用服务)

  9. 服务端运转时(服务条款管理、服务试行器、服务意识抽象、RAV4pcServiceAttribute标识服务意识完结)

Rabbit.中华Vpc.ProxyGenerator(支持跨平台)

劳动代办生成器,提供的作用:

  1. 劳务代办达成转换

  2. 劳务代办实例成立

extensions(相关扩大)

Rabbit.大切诺基pc.Codec.ProtoBuffer(帮助跨平台)

ProtoBuffer协议的编解码器完结。

Rabbit.中华Vpc.Coordinate.Zookeeper(扶助跨平台)

基于ZooKeeper的劳动路由管理。

Rabbit.Transport.DotNetty(暂不援救跨平台)

依照DotNetty的传导达成。

ps:官方以有将DotNetty帮忙NET Core的布署,大伙能够再等等,待官方援助后,会尽快展开适配。

Rabbit.Transport.Simple(帮助跨平台)

是因为DotNetty不援助跨平台运转,为了让rpc能在任何平台上跑通,故移植了“Cowboy.Sockets”完成了贰个粗略的传输完毕。

tools

Rabbit.Rpc.Tests

单元测验项目。

Rabbit.传祺pc.ClientGenerator(协理跨平台)

预生产服务代办的工具,提供了之类效果:

  1. 浮动服务代办实现代码文件

  2. 变迁服务代办完结程序集文件

性情测验

测量试验情状

OS

CPU

内存

硬盘

网络环境

虚拟机

Windows 10 x64

I7 3610QM

16GB

SSD

127.0.0.1

Ubuntu 16.04 x64

I7 3610QM

4GB

SSD

127.0.0.1

Windows10 NETCoreApp1.0 JSON协议 Simple传输

2019篮球世界杯投注官网 16

概述

style="font-family: Microsoft YaHei UI;">平均用时:2601.6飞秒

style="font-family: Microsoft YaHei UI;">平均每一遍用时:0.26纳秒

通过率:100%

Windows10 NETCoreApp1.0 ProtoBuffer协议 Simple传输

2019篮球世界杯投注官网 17

概述

style="font-family: Microsoft YaHei UI;">平均用时:2625.4皮秒

style="font-family: Microsoft YaHei UI;">平均每一回用时:0.25飞秒

通过率:100%

Ubuntu16.04-x64 NETCoreApp1.0 JSON协议 Simple传输

2019篮球世界杯投注官网 18

概述

style="font-family: Microsoft YaHei UI;">平均用时:3108.4皮秒

style="font-family: Microsoft YaHei UI;">平均每一遍用时:0.31飞秒

通过率:100%

Ubuntu16.04-x64 NETCoreApp1.0 ProtoBuffer协议 Simple传输

2019篮球世界杯投注官网 19

概述

style="font-family: Microsoft YaHei UI;">平均用时:3580.4皮秒

style="font-family: Microsoft YaHei UI;">平均每一回用时:0.35皮秒

通过率:100%

ps:linux质量与windows上的属性有一对距离,不知底是否设想机的由来,但有个风趣的情景,protobuffer在linux上的性质以致比json低,应该是protobuffer库的落到实处相当不足理想。

测验代码

https://github.com/RabbitTeam/Rpc/tree/master/src/examples/performances

下一步?

等待DotNetty组件支持NETCore,并举办适配。

后续写Rabbit.瑞鹰pc相关的文章。

下一篇应该是,如何在Ubuntu上运行Rabbit.Rpc。http://www.linuxidc.com/Linux/2016-11/137009.htm

本文永恒更新链接地址:http://www.linuxidc.com/Linux/2016-11/137008.htm

2019篮球世界杯投注官网 20

本文由篮球世界杯投注-2019篮球世界杯投注官网发布于win10,转载请注明出处:如何开发跨平台的应用并部署至Ubuntu运行,跨平

关键词: 篮球世