C++ Builder或Visual Studio

Eri*_*ric 28 c++ c++builder visual-studio

我拥有一家软件开发公司.我们为其他以其名称/头衔命名的公司开发软件.我们在会计/ ERP市场上也有一些自有品牌的头衔.我们的会计软件大约占我们业务的60%,并使用C++ Builder编写.

那些知道,实现C++ Builder的人在从Borland,CodeGear到Embarcadero的转手方面走的路很艰难,可能还有几次.C++ Builder在我们的会计软件上多次搞砸了我们.众所周知,QuickReports是错误的,他们的XML构建描述并没有与GUI紧密耦合,导致构建不起作用 - 通常是错误的界面.

在过去的8年中,我们已经稳步取消了对VCL和有缺陷的组件的依赖,但是,一些第三方VCL组件仍然不易更换.我们使用Developer Express的GRID包 - 很棒的产品.

我只是处于十字路口并且市场上有最新版本的C++ Builder XE,当你看到这款产品的糟糕历史时,我很难证明价格合理.

因此,我正在寻找可能处于类似情况并成功切换到Visual Studio的其他任何人的建议或步骤.

除了Developer Express工具之外,我们已经将大部分应用程序慢慢移动到wxWidgets.我们编写了自己的TSQL抽象,我们也可以移植.

有什么想法或建议吗?您是否已将项目移至Visual Studio,或者您是否已使用新的Builder XE来发现它之前的许多缺点已经消失?

寻找"去过那里,做过那些"的建议.

Gre*_*ndt 19

Visual Studio与C++ Builder无法真正比​​较.

是的,它们都是C++编译器,但是:

  1. 使用.NET语言时,Visual Studio只是RAD
  2. MFC是'半rad',但不接近VCL的易用性
  3. Visual Studio编译器更擅长生成优化代码,但C++ Builder使用Clang非常好
  4. Visual Studio和C++ Builder都符合标准(CB使用基于Clang的编译器)
  5. C++ Builder附带Boost
  6. C++ Builder XE比以前的版本好很多(不包括Builder C++ 6.0)
  7. 你无法在C++ Builder for C++开发中击败RAD工具,没有什么可以接近的

对于非VCL依赖代码,编译器的差异可能不会对您造成太大伤害.我有一个DLL,我为VC6,VS2008和Builder 2010/XE下的客户编译.我不得不抛弃几个#ifdef,但其中大多数实际上是用于VC6.

我可以提出的最大建议是不要移动到MFC,那就是疼痛开始的地方.

考虑一下开发人员的培训.在学习新编译器的特性的同时,您的开发人员在生成工作代码时会变得非常慢.

尽管如此,当我在移动到VS2008/2010或者使用Builder C++购买新产品时为客户选择时,我选择了Builder,仅用于RAD IDE.

祝好运.

针对C++ Builder 10.2(2017)进行了更新:

  1. 32位和64位Windows都使用Clang/LLVM(iOS和Android也一样)
  2. 32位和64位Windows均使用Boost 1.55
  3. 10.2非常稳定,每次发布都会越来越好

这仍然出现在谷歌搜索上,因此柏林10.1再次更新:

  1. 32位和64位代码现在使用CLANG/LLVM for Windows
  2. OS X的32位代码仍然使用旧的编译器
  3. Android和iOS编译使用CLANG/LLVM


Tom*_*sen 16

迁移到wxWidgets有其优点之一就是你不会被绑定到像C++ Builder或Visual Studio这样的IDE.C++ Builder有几个问题,它的主要优点是VCL框架,我认为它仍然是C++最好的GUI框架之一.问题是它需要C++ Builder,温和地说它确实存在稳定性和编译器性能方面的一些问题.

然而,Visual Studio并不是最终的IDE,最新版本最好是bug,而C++ Builder提供的许多RAD工具在Visual C++中根本不存在(除非你愿意使用.net语言) .

我完全理解你希望让你的代码更少依赖于C++ Builder,告诉你实话我怀疑它会继续存在很长时间.然而,从您的帖子中听起来,您的大多数开发都依赖于快速开发的应用程序,而在C++领域,C++ Builder是满足此特定需求的最佳工具之一.

就个人而言,我从未真正想过C++是快速开发的Windows GUI应用程序的最佳解决方案,也许你的重点不应该是找到一个不同的IDE,但是在寻找更合适的语言时,我建议使用Delphi,Delphi,你将会是能够编译您现有的c ++构建器项目,甚至可以重用现有的VCL组件.

Delphi将 - 我相信 - 比C++ Builder更长,可以是Delphi的形式,也可以是Lazarus(freepascal的IDE)的形式,它甚至可以跨平台并支持64位开发.

但是,如果语言的改变不是一个选项,我现在会坚持使用C++ Builder,但不会升级到XE版本,我认为这不是价格标签所证明的.(鉴于当然你已经开始研究一个相对较新的版本).

  • 在大多数情况下,驱动程序和图形界面不必用相同的语言编写,实际上通常不会。Delphi 确实是 Embarcardero 产品,但这让您有机会保留现有的库。此外,您还可以选择切换到 Free Pascal。还有一件事,从使用 VCL 的 C++ 切换到 Delphi 并不是一件大事。VCL 是用 obj 编写的。帕斯卡。 (2认同)

小智 10

如果您坚持使用C++并期望在Visual Studio for C++中使用相同类型的IDE,RAD Studio会让您感到震惊.

说实话,C++ Builder从来就不是一个糟糕的C++ GUI开发环境.它可能是C++的最佳选择.为什么?因为您可以利用所有伟大的Delphi组件.

在Visual Studio中,没有可替代ExpressQuantumGrid™Suite for C++.

关于C++ Builder的大多数严重抱怨都经常集中在它与STL和Boost等标准的兼容性上.

我不认为Embarcadero会放弃支持C++ Builder.这些问题通常与德尔福人(第三方)编码的方式有关.老实说,我只记得DevExpress的一个版本是一个问题.

简短而甜蜜:如果你想使用C++和某种RAD/GUI的东西坚持使用C++ Builder.


小智 7

我们一年前从C++ Builder 6升级到XE.非常满意XE.转向UnicodeString并不太难.我们还将所有BDE代码转换为BDExpress(DBX).这花费了很长时间并且重写了很多,但非常值得.要记住的是,两者都不是完美的.俗话说,篱笆另一边的草总是看起来更绿.如果您想要开发效率,请使用C++ Builder和VCL.如果您想要非常长期的安全性,或者轻松找到程序员,那么Visual Studio.我的意见:保持你喜欢的东西,取代你不喜欢的东西.例如,保留C++ Builder并替换QuickReport.顺便说一句,如果您已做出决定,请告诉我们.


Dav*_*vid 5

C++ Builder PM在这里。

C++ Builder 有一些特定的优势:

  • 它非常适合 UI 设计。使用 VCL(本机 Windows 控件)或 FMX(跨平台,如果需要,通常也是本机控件)。Visual C++ 离我们不远,而且 MFC 仍在按照您在 1995 年的方式设计 UI。

  • 它专注于跨平台。Visual C++ 正在宣传它,但 C++Builder 提供了“完整的堆栈”:不仅是编译,还有完整的库、UI 等等。VC++ 是跨平台的,除非您需要一些不需要的东西。

  • 它被需要数据库工作或其他“企业”项目的人广泛使用,主要是因为数据库库 (FireDAC) 的架构非常好并支持大量数据库。

  • 它在所有平台上使用 Clang,除了 macOS,它仍然有一个旧的编译器。它也正朝着更新到 C++17 的方向发展。

  • 它具有实时预览等功能(设计您的应用程序,在您的手机等插入式设备上实时查看应用程序),这些功能似乎极大地激发了某些最近的 MS 功能;)别担心,Visual Studio,我们爱您 :)所以在许多领域它实际上处于领先地位,尤其是在 x-plat 开发方面。

弱点:

  • IDE 仅在 Windows 上运行。您可以在任何地方进行部署和调试,但 IDE 是 Windows。

  • 它只是 C++11,虽然朝着 C++17 前进。MacOS 是(喘气)C++98。它在路线图上。您可以依靠它及时更新。

  • 代码完成和代码洞察力比 Visual C++ 弱。正在努力。

  • 它以 buggy 着称,这是最近版本中正在积极研究的东西,也是我个人消除的动力。但名声是很难摆脱的。