有没有人使用Gupta(以前的Centura)团队开发人员?
如果是这样,您对支持开发成熟,可扩展,可维护的应用程序的能力有何看法?
由于
答案 0 :(得分:4)
自1.1版以来,我一直在使用CTD。目前我还在使用2.1 PTF4,主要用于在Windows 98-Vista下针对Centura SQLBase,MS Sql Server或MS Access进行富客户端CRUD。我没有从2.1升级到新版本,所以我只能谈谈2001年相对较旧的2.1。(§)
我们的应用程序通常有大约150个窗体窗口,大量使用类(在2.1中仍称为“用户定义变量”)并集成MS Office。我们没有稳定性问题或内存泄漏。然而,开发环境有点长,没有智能感知,没有智能调试,没有鼠标几乎无法使用。对于较新的版本,这可能已经改变。
CTD的本质没有任何东西迫使您编写不可维护的代码。使用类和文件包含您可以在代码中具有良好的可重用性,如果您将代码设计为可重用的,即。可维护性的问题可能是CTD变量和类没有“私有”或“受保护”之类的访问修饰符。另外:没有接口或抽象类。另一方面:多重继承。
代码的“大纲结构”需要一些时间来习惯,但是当我迷失在一个庞大的C#文件中时,我甚至有时会错过大纲结构,其中包含变量声明和事件处理程序......
< p> 2.1的控件非常完整但我们仍然需要手动集成“现代”的东西,如工具栏,日期选择器或制表符控件。 OTOH甚至还有一个开箱即用的数字输入字段。其中一个Unify-Newsletters声称他们添加了许多令人眼花缭乱的东西,让应用程序看起来更新。表格窗口的mtable-Extensions非常有用,可在此处获取:MTable by MICSTO。集成第三方DLL(例如集成智能卡读卡器)并不是很有趣,特别是当它们使用结构时。哦:“Centura Report Builder”是derierre的皇室痛苦。一个重要的专业人员是与CTD交配的SDK:这使得将自编写工具集成到开发环境中变得非常容易,例如:代码生成。
结论:我们使用并仍然使用CTD来扩展和维护可扩展的应用程序。由于不寻常的轮廓结构,学习曲线可能有点陡峭,并且可能导致不小心写出“丑陋”的代码:例如:许多静态函数,“消息操作”中的大量代码以及变量作用域的问题。我认为你在CTD方面取得的成功将取决于你想要编写的应用程序的性质:对于富客户端CRUD,你几乎可以肯定比使用.net更好,对于一个老实说我不知道的网络应用程序。
请记住,所有这些都与8岁的CTD版本有关。现在情况可能完全不同。如果可以,请获得评估版。
编辑:除了语言的优点和缺点之外,您可能还需要考虑CTD是一个利基。没有太多的免费工具,我还没有找到一个充满活力的社区(有一个新闻组,但服务器在合并后关闭 - 也许它仍然在somwhere)。因此,在特定问题上搜索帮助可能并不容易。
(§)我没有继续从2.1升级到5.1的升级路径,因为在与Unify合并之后,他们希望只为其支持方案(称为GLS)的订户提供补丁。由于我不打算为错误修正付费,我决定继续为我们的旧应用程序使用2.1并切换到.net以获取新应用程序。我想他们稍后会对此进行修改。
答案 1 :(得分:3)
我已经与Team Developer(以前的Centura Builder,SQL Windows等)合作了9年。 IMO的事情并没有像Stephan Keller在他的综合答案中描述的2.1版本那样发生太大变化。
我所工作的公司目前正在使用TD版本5.1,并考虑明年升级到TD 5.2。我们正在开发一个针对Oracle数据库运行的商业软件产品。该应用程序有超过500个窗体窗口和数百个报告。
我认为Team Developer可以很好地扩展到简单的小型应用程序,以及具有大型RDBMS和数百个用户的大型企业应用程序套件。
代码大纲使IDE易于接近,我认为学习曲线不会那么陡峭。即使没有鼠标也可以进行代码编辑,因为有许多方便的键盘快捷键。窗户设计师当然需要鼠标。在较新的版本中还有一个内置的Active Coding Assistant。
最新版本(5.1和5.2)提供了一些新的GUI控件,例如日期/时间选择器,网格窗口(对广泛使用的表窗口的增强)和富文本编辑器。还有一个新的选项卡控件。菜单可以显示为带状,但这不是“真正的”带状条。可以在Unify网站上找到示例截图。
在5.x版本的TD中也引入了新的GUI主题,为应用程序提供更现代的外观和感觉。
使用5.x版TD时,屏幕绘画等存在许多稳定性问题,性能问题和问题。已知较旧的3.x和4.x具有非常强大的质量,仅具有非常有限的数量(如果有的话)稳定性或其他问题。这些问题在Unify Support Forum上得到了积极讨论。其中许多问题与数据库路由器(Oracle,MS SQL Server)或Windows API调用有关。 TD的基本功能通常很好。
也可以在支持论坛上找到有关具体问题和问题的帮助。开发者社区可能很小,但非常活跃。
答案 2 :(得分:1)
我的公司成功使用Team Developer多年(我们的大多数应用程序都是用2.0编写的,有些在5.2中用作Web应用程序),并且计划将我们的开发更改为6.0版。
来自C ++背景我首先必须找到进入语言的方法(我仍然遗漏一些功能,如封装,结构良好的错误处理 1 或变量的范围 2 )
但毕竟,我学会了忍受语言的限制,并且通过一些规则,我们的应用程序相对容易维护。 (作为注释:我们有一组基本应用程序协同工作,并使用相同的代码库和一些客户相关的变体为每个客户构建单独的版本 - 错误修正出现在公共代码库中(之后用于任何其他项目), lokal项目文件的特殊修改)。您只需要为项目设置一些基本指导原则并与它们保持一致,因为编译器不会强制执行它们。
1 只有在整个程序发生或全局发生时才能捕获sql错误。
2 我仍然有时会得到错误拼写的变量在完全独立的窗口中编译某些内容的情况 - 或者对于共享相同名称但数据类型不同的半参考句柄的编译器错误
答案 3 :(得分:1)
我们将TD用于几个大型应用程序,但是由于缺乏资源,过时的SAL语言和老化的运行时,我们已经使用冰茶组gupta将数百万行SAL代码和数千种表单迁移到C#和Visual Studio 2010统一迁移工具。
我们起初持怀疑态度。但现在我们拥有全新的应用程序,与我们的其他.NET资产完全集成,只需要一小部分时间进行重写。而且我们不必试图理解所有代码所做的事情。 :)转换几近完美!
忘记提及我们自动将超过1200个报告生成器报告转换为水晶报告.NET可能会节省一个世纪的无聊工作。