1
22
当我看到片名的时候,我就想潜伏起来,成为一个著名的铅顽固分子。哦,好吧。谢谢你的信任投票,伯纳德。 我的第一个建议是摒弃自我欺骗的语言。如果我吃半块“清淡”的芝士蛋糕,我还是会失去腰带。迁移只需10分钟。你要做的是 重写 . 这个 时间 需要作为重写来衡量。这个 风险 需要作为重写来衡量。以及 设计努力 应该作为重写来衡量。 是的,我说过设计努力。”migrate“使人联想到通过黑盒抽取代码的图像,并通过翻译将原来的代码镜像到另一边。你想复制1994年的设计错误吗? 生活在一起 多年来?即使有了出色的质量代码,我想PowerBuilder中优秀的设计选择在C中也可能是糟糕的设计选择。直接转换是否忽略了平台的力量和优势?你会是 生活在一起 在接下来的15年里忽视一个好的C设计的后果是什么? 撇开这句牢骚不谈,因为你没有提到“转向.NET”的动机,所以很难建议你可能需要哪些选择来降低重写的风险。如果您的管理层只是认为PowerBuilder开发人员闻起来不好,需要从办公室中清除,那么在重写时祝您好运。 如果您只想部署Windows窗体、Web窗体、程序集或.NET Web服务,或者利用.NET库,那么正如Paul所提到的那样,移动到11.0或11.5可以帮助您实现这一目标,并且更接近于迁移。(我建议您再次检查并确保为新平台(尤其是Web表单)提供了一个良好的设计,但是这项工作应该比重写要小得多。)如果您想部署WPF应用程序,我知道等待一年是相当长的一段时间,但是研究PowerBuilder 12可能是值得的。正确启动后,WPF功能可能会将PowerBuilder置于一个独特而强大的位置。 如果一个重写被保证在你的未来(淋浴似乎更便宜),你可能想阶段转换。datawindow.net使您可以随身携带数据窗口。(本周我最喜欢的理论是,PowerBuilder开发人员将DataWindow视为理所当然,直到他们必须重新生成内置的所有功能。)能够插入预先存在、预先测试、多行、可滚动、资源消耗最小、可打印、数据绑定的动态UI,生成具有内置逻辑记录的最小SQL将锁定和数据库错误转换为事件,转化为新的应用程序是一大进步。 您还可以通过将PowerBuilder代码转换为.NET应用程序可使用的代码来逐步过渡。如前所述,您可以使用已有的pb 10生成COM对象,但必须移动到11.0或11.5才能生成程序集。这个值可能取决于应用程序的分区程度。如果您的业务逻辑是通过GUI事件和函数而不是划分为非可视对象(又称自定义类),那么这一点的价值可能是值得怀疑的。不过,这是一个设计 失礼 这可能应该在完全转换为C之前解决;这是可以在保持PowerBuilder应用程序作为分阶段然后完全转换的初步步骤的同时完成的。 毫无疑问,我宁愿看到你和PowerBuilder在一起。如果失败了,我希望看到你成功。记住,一旦你咬了第一口, you'll have to finish it . 祝你好运找到那条腰带, 特里。 我看到你提到过将“核心组件”移到.NET开始。正如你现在可能猜到的,我认为分阶段的方法是一个明智的决定。现在,“核心”的定义可能是有争议的,但是相反的观点呢?思考的食物?(显然,这是开始节食的错误一周。)根据pb现在的位置,很难将您的应用程序与应用程序功能(如pb中的应收账款、c中的应付账款)一起划分为pb和c。一个可能起作用的部门是GUI与业务逻辑。如前所述,将业务逻辑从pb抽取到可执行文件c can consume中已经是可能的。如何在C_中构建GUI,其中数据窗口是从pb复制的,业务逻辑是作为COM对象或程序集输出的?相反,要在pb中使用.NET程序集,您要么移动到11.x并迁移到Windows窗体,要么将它们放入 COM callable wrapper . 或者,只需在PowerBuilder中培训您的C开发人员。这可能只是谣言,但我听说新的PowerBuilder市场营销标签行将“非常简单,即使是C开发人员也可以使用它。”;-) |
2
6
我认为GBJBAANB在上面给了你一个很好的答案。 其他一些值得考虑的问题:
如果软件非常差,并且对公司业务产生负面影响,我并不反对重写,但即使是这样,逐步的调整和改进也是实现系统进化的一种风险较小的方法。 另外,在特里·沃思发帖之前,不要在这条线上跳线。他在StackOverflow上,是顶级的PB选手之一。 |
3
4
如果它相当大,那么在.NET(或基于Web的GUI)中为它编写前端并使用它与pb代码交互可能会得到更好的结果,前提是您可以将其作为API公开。 如果您使用的是Pb9或更高版本,您可以 generate COM or .NET dlls ,然后您可以使用C_GUI。我建议你不要用任何新语言重写。 记住,重写永远不是一个银弹,它们总是比你最初期望的更耗时、更困难、更麻烦。 |
4
3
你可能想花点时间调查一下 PowerBuilder 11.5 (最近发布)这增加了一些重要的.NET集成。 迁移到PowerBuilder 11.5以使用新的.NET代码肯定比用C完全重写整个应用程序容易得多。 |
6
3
我支持这个理论。几年前,我尝试过一个项目,从PB8到Java的转换失败,甚至使用第一代HTML数据窗口。我目前的雇主一直致力于转移到C_,而不是使用datawindow.net,尽管我们目前的产品中有2千DWO。我不期待实现的那一天。(整个产品由多个用户应用程序、十几个服务和大约70个PBD组成) 除非您的应用程序结构异常良好(最初可能是为EA服务器编写的?),这不是端口。在pb&net环境中,工作方式太不相同,普通端口无法正常工作。我不能足够强调这一点——如果您真的使用pb事件模型,“端口”可能会失败。 您需要查看逻辑流(相互交织的UI和流程)、控制流(谁拥有流程或数据) 马上 ,数据访问(UI,数据层,??)以及从代码使用的dw事件模型的各个部分。如果您正在考虑ASP.NET(和我们一样),那么您的整个用户交互体验将不得不改变,这将反馈到其他考虑事项中。 与代码没有直接关系,构建自动化将发生变化(我们使用powergen进行一致的pb构建;msbuild与您的安装和设置非常不同)。 |
7
3
我认为任何一个为大型应用考虑这个的人都会非常疯狂,不认真考虑使用datawindow.net,以免失去对dws的投资。 |
8
3
大型企业的PHB认为PowerBuilder是一种玩具语言,迁移到像C这样的新语言是微不足道的,而且成本很低。事实上,将一个pb应用程序迁移到任何其他语言的成本至少与在新语言上开发一个全新的应用程序的成本相同。与原始应用程序相比,生成的应用程序通常会失去功能,并会导致用户不满。我见过很多次尝试——都失败了,因为困难和用户问题。 如果没坏,就别修了。 |
9
0
是的,它现在可以在不重写服务组件周期的情况下实现。 Pb 12.5和gt; 并将GUI和服务组件迁移和集成目标定为C。 迁移/集成策略可能因项目范围、可扩展性、资源和时间线而异。 您可以在powerbuilder.net中使用这些目标和项目类型。 参考此链接 Sybase_PB .Net
|
Robert King · Unity C#语法问题-转换位置 1 年前 |
JBryanB · 如何从基本抽象类访问类属性 1 年前 |
law · 检查答案按钮的输入字符串格式不正确 2 年前 |
i_sniff_ket · 在unity之外使用unity类 2 年前 |