在企业合并之后,我的客户希望统一他的IT环境。一个要加入的遗留应用程序基于PowerBuilder 11.5 classic。
如果可能,应该保留复杂的业务逻辑和数据库模型,但应用程序应该可以从某种Web服务调用。 GUI操作应该作为Web服务调用重新实现(例如,获取所有对象,编辑此对象,删除它等)。
鉴于应用程序已经移植到PowerBuilder.net,我建议创建一个REST服务。 PowerBuilder经典有什么类似的可能吗?
注意:我已被指派管理合并,但没有PowerBuilder经验。
答案 0 :(得分:1)
当然可以这样做 - 但是没有"魔术按钮"将您的PB代码GUI重构为非可视类(也称为NVO' s),然后可以将其作为Web服务公开...有人将不得不卷起袖子并进行一些PB编码。
例如,假设您的应用中的一个窗口有一个名为" GetData"的按钮,它会在其点击的事件中执行数据窗口检索。无法通过Web服务调用单击该按钮。您必须将业务和数据层逻辑移出UI层。
一种方法是将该数据窗口重构为非可视用户对象。创建一个接受检索参数的公共方法或函数。该方法必须通过池连接连接到数据库后端,实例化数据存储类,将其绑定到连接的事务对象,然后执行Retrieve()调用。然后,您逐行将结果集逐个字段地编组到定义的结构变量中,这将是公共方法的返回值。
然后,您将该单个NVO公开为IIS中的.NET Web服务。唯一真实的共享代码"您现有的PB应用程序和Web服务之间的NVO将是该单个数据窗口对象。