RO45 – 如何写RemObjects SDK 服务 (.NET Version)

 
RO45 – 如何写 RemObjects SDK 服务 (.NET Version)
本文说明如何创建你的第一个 RemObjects SDK 服务 . 在下一相关文档中 (RO46) 中说明如何基于这个服务端创建客户端 .
选择服务类型
第一步是选择你要创建的服务类型 . Visual Studio IDE, 选择主菜单 "File | New | Other" . 如下图 :
本例我们要创建一个简单的 Windows Forms Server . 这是可以创建的最简单的服务 , 不需要 Web 服务和额外的配置 . 选择 "Windows Forms Server" 点击 OK 按钮 . 将看到一个 "New RemObjects SDK Server" 对话框 :
选择高级项目选项
点击 "Advanced Project Options" 按钮查看所有服务选项的对话框 . 这里允许你设置基础的选项如项目名称和服务库名称 , 要使用的通道类型及消息类型 :
  • 取消 'Also create a matching Client Application' 选项
通常 , 你也需要同时生成客户端应用程序 , 但是为了展示创建一个附加的客户端有多么简单 , 我们将在下篇文章中创建客户端 (RO46).
在这个项目中我们不需要修改任何选项 , 每个选项的意义 :
  • Template Location: RemObjects服务项目的模板.如果你打开'/RemObjects SDK for .NET/bin/Templates'目录,可以发现很多包含模板的子目录.
  • Project Name: 将要创建的项目名称.
  • Project Location: 项目要保存的位置.
  • Library Name: 每个RemObjects SDK服务端可以容纳多个服务(services).库文件名称保持在RODL,将在生成Intf Invk原文件中使用.
  • Service Name: 你要创建的第一个服务的名字.
  • Server Channel: RemObjects SDK 服务端可以使用多个通讯协议向客户端提供服务.这里是你选择的默认的一个.记住你在以后还可以添加其他通道.
  • Message: RemObjects 服务端可以通过不同的消息协议连接.这只是你选择的默认的一个.
点击 OK 按钮创建你的解决方案 .
激活你的服务
现在你的项目已经创建 , 主窗口如下 :
在窗口设计器的下方 , 你可以看到两个我们在上一步中选择的相应服务通道和消息类型的控件 .
点击 ServerChannel 控件查看其 Active 属性并设置为 TRUE ( 默认 ):
RODL 文件 : 代理 (proxy), 存根 (stub) 和实现文件
如果你在解决方法管理器中仔细观察 , 将可以发现红色的图标的 ROWindowsFormsServer.RODL 文件 . RODL (RemObjects Definition Language) 文件中包含所有服务端开放的服务定义和数据类型 .
可是使用 Service Builder 工具编辑和查看这个文件 .
在解决方案管理器中双击这个 RODL 文件 , 或点击 RemObjects SDK 主菜单的 "Edit Service Library" 项可以打开它 :
如图可见 , 这个 RODL 中包含一个服务和两个方法 : Sum GetServerTime.
这里不用修改和增加任何东西 . 简单的关闭 Service Builder 并查看解决方案如何变化 :
每次你使用 Service Builder 编辑你的 RODL 文件 , Visual Studio IDE 将解析 RODL 文件并更新或生成如下文件 :
  • <LibraryName>_Intf: 这个文件中包含客户端要连接到服务端的代理代码.
  • <LibraryName>_Invk: 这个文件中包含存根代码,可以使服务端不用通过反射直接调用服务方法,提高执行效率.
  • <ServiceName>_Impl: 这种文件每个服务只生成一次,以后将不会自动变化.其中含有服务的实现.
代开 "ROWindowsFormsServerService_Impl.cs" 文件并给 Sum,GetServerTime 方法提供实现 . 如下图 :
public virtual int Sum(int A, int B)
{
    return A + B;
}
 
public virtual System.DateTime GetServerTime()
{
    return DateTime.Now;
}
现在按 F5 编译并启动服务端 .
测试服务
服务启动界面如图 :
现在你的服务运行了 , 我们检查一下是否正常 . 打开 IE 浏览器输入如下 RUL: http://localhost:8099/BIN
你将看到如下 XML 文档 :
好了 ! 服务已经成功运行并可以被 RemObjects SDK 客户端使用 . 我们做的只不过写了两行代码 .
注意 : 如果你的浏览器没有如上图一样显示出 XML 文档 , 或者是因为你没有设置 ROServer.Active True, 或者你输入了错误的 URL.
现在可以创建客户端调用这个服务了 . RO46.
 
 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值