web-dev-qa-db-ja.com

C ++ BuilderまたはVisual Studio

ソフトウェア開発会社を経営しています。私たちは、彼らの名前/タイトルでブランド化する他の会社のためにソフトウェアを開発します。また、アカウンティング/ ERP市場には、自社ブランドのタイトルもいくつかあります。私たちの会計ソフトウェアは私たちのビジネスの約60%であり、C++ Builderで書かれています。

知っている人は、C++ BuilderがBorlandからCodeGear、Embarcadero、そしてその間の数回に手を変えるのに非常に困難な道を歩んできたことを理解しています。 C++ビルダーは私たちの会計ソフトウェアに何度も私たちを悩ませてきました。 QuickReportsはバグが多いことで悪名高く、そのXMLビルド記述はGUIに密接に結合されておらず、ビルドが機能しない原因になっています。

過去8年間、VCLとバギーコンポーネントへの依存を取り除くために着実に進出してきましたが、一部のサードパーティVCLコンポーネントはまだ簡単に交換できないだけです。私たちはDeveloper ExpressのGRIDパッケージを使用しています-素晴らしい製品です。

私はちょうど岐路に立っており、市場に出ているC++ Builder XEの最新バージョンでは、この製品のくだらない履歴を見ると、価格を正当化するのに苦労しています。

したがって、同様の状況にあり、Visual Studioへの切り替えに成功した可能性のある他の人が行ったアドバイスや手順を探しています。

Developer Expressツールを除いて、ほとんどのアプリケーションをゆっくりとwxWidgetsに移動しました。また、移植可能な独自のTSQL抽象化を作成しました。

考えや提案はありますか?プロジェクトをVisual Studioに移動したか、新しいBuilder XEをいじって、以前の欠点の多くがなくなったことを確認しましたか?

「そこにいる、それをした」というアドバイスを探しています。

28
Eric

WxWidgetsへの移行には、C++ BuilderやVisual StudioのようにIDEにバインドされないという利点があります。C++ Builderにはいくつかの問題があり、VCLが主な強みです私の意見では、C++で最も優れたGUIフレームワークの1つですが、C++ビルダーが必要なことはもちろん、安定性とコンパイラーのパフォーマンスに問題があります。

ただし、Visual Studioは究極のIDEではなく、最新バージョンはバグが多く、C++ Builderから提供されるRADツールの多くはVisual C++には存在しません(ただし、 .net言語に進んでください)。

あなたのコードをC++ビルダーに依存しないようにしたいというあなたの望みを完全によく理解できます。実は、それが長い間私自身のために存在し続けるのではないかということです。ただし、投稿の内容からすると、ほとんどの開発は急速に開発されたアプリケーションに依存しており、C++の世界ではC++ Builderはこの特定の要件に最適なツールの1つです。

個人的には、C++を迅速に開発されたWindows GUIアプリケーションの最良のソリューションとは考えていませんでした。おそらく、別のIDEを見つけることに焦点を当てるべきではありませんが、より適切な言語を見つけることにデルファイを使用することをお勧めします。既存のc ++ビルダープロジェクトをコンパイルし、既存のVCLコンポーネントを再利用することもできます。

Delphiは-私が信頼する-Delphiの形式、またはクロスプラットフォームでさえあり、64ビット開発のサポートを提供するLazarus(freepascalのIDE)の形式のいずれかで、C++ Builderよりも長く存在します。

ただし、言語の変更が選択肢にない場合、私は今のところC++ Builderを使用しますが、XEバージョンにアップグレードしないでください。XEバージョンにアップグレードすることはありません。 (もちろん、すでに比較的新しいバージョンで作業しています)。

15
Tommy Andersen

Visual Studioは、実際にはC++ Builderに匹敵しません。

はい、どちらもC++コンパイラですが、

  1. Visual Studioは.NET言語を使用している場合のみRAD
  2. MFCは「セミラッド」ですが、VCLの使いやすさに近づきません。
  3. Visual Studioコンパイラーは最適化されたコードの生成に優れていますが、C++ BuilderはClangを使用しています。
  4. Visual StudioおよびC++ Builderはどちらも標準に準拠しています(Clangベースのコンパイラを使用するCB)
  5. C++ BuilderにはBoostが付属しています
  6. C++ Builder XEは以前のバージョンよりも優れています(Builder C++ 6.0は含まれません)。
  7. C++開発用のC++ BuilderのRADツールに勝るものはありません。

コンパイラーの違いは、おそらくVCLに依存しないコードではそれほど害にはなりません。私はDLLをVC6、VS2008、およびBuilder 2010/XEでクライアント用にコンパイルします。いくつかの#ifdefを投げる必要がありましたが、それらのほとんどは実際にはVC6用です。

私ができる最大の推奨事項は、MFCに移動しないことです。これが痛みの始まりです。

開発者向けのトレーニングについても検討してください。開発者は、新しいコンパイラーの特異性を学びながら、作業コードの生成が大幅に遅くなります。

以上のことから、VS2008/2010に移行するか、新製品のビルダーC++に移行するかをクライアントに選択するときに、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は非常に安定しており、リリースごとに改善されています

これはまだGoogle検索で発生するので、ベルリン10.1で再度更新されました。

  1. 32ビットおよび64ビットのコードでWindows用のCLANG/LLVMを使用
  2. OS Xの32ビットコードは古いコンパイラを使用しています
  3. AndroidおよびiOSコンパイルはCLANG/LLVMを使用します
18
Gregor Brandt

C++を使用していて、Visual Studio for C++でIDE Studioが提供するものと同じ種類のRAD.

正直に言うと、C++ BuilderはC++のGUI開発環境としては決して悪いものではありません。それはおそらくC++にとってこれまでで最高です。どうして? Delphiの優れたコンポーネントをすべて活用できるからです。

Visual Studioでは、C++のExpressQuantumGrid™Suiteに代わるものはありません。

C++ Builderに関する深刻な不満のほとんどは、STLやBoostなどの標準への準拠を中心としています。

EmbarcaderoがC++ Builderのサポートをあきらめるとは思いません。問題は通常、Delphiの担当者(サードパーティ)がコーディングした方法にあります。正直なところ、DevExpressのリリースの1つだけが問題であることを思い出します。

短くて甘い:C++を使用したい場合、ある種のRAD/GUIはC++ Builderに固執します。

10
weirdo12

1年前にC++ Builder 6からXEにアップグレードしました。 XEに非常に満足しています。 UnicodeStringへの移行はそれほど難しくありませんでした。また、すべてのBDEコードをBDExpress(DBX)に変換しました。これには長い時間と多くの書き換えが必要でしたが、それだけの価値はありました。覚えておくべきことは、どちらも完璧ではないということです。ことわざにあるように、芝生はフェンスの反対側では常に緑に見えます。開発効率を高めたい場合は、C++ BuilderとVCLを使用してください。非常に長期間のセキュリティが必要な場合、またはプログラマを簡単に見つける場合は、Visual Studioを使用します。私の意見:好きなものを維持し、好きでないものを交換してください。たとえば、C++ Builderを保持し、QuickReportを置き換えます。ところで、決定を下した場合は、お知らせください。

6
Stephane

C++ビルダーPMこちら。

C++ Builderには、いくつかの特定の長所があります。

  • UIデザインに最適です。 VCL(ネイティブWindowsコントロール)またはFMX(クロスプラットフォーム、多くの場合、必要に応じてネイティブコントロールも)を使用します。 Visual C++はどこにも近くなく、MFCは1995年と同じようにUIを設計しています。

  • クロスプラットフォームに焦点を当てています。 Visual C++はそれを宣伝していますが、C++ Builderは「完全なスタック」を提供します。コンパイルだけでなく、完全なライブラリ、UI、すべてなどです。 VC++は、必要のないものが必要になるまでクロスプラットフォームです。

  • データベースライブラリ(FireDAC)は非常に適切に設計されており、多くのデータベースをサポートしているため、データベース作業またはその他の「エンタープライズ」アイテムを必要とする人々によって広く使用されています。

  • これは、macOSを除くすべてのプラットフォームでClangを使用します。また、C++ 17へのアップデートに向かっています。

  • ライブプレビュー(アプリを設計し、携帯電話などのプラグインされたデバイスでアプリをライブ表示する)などの機能があり、最近の特定のMS機能に多大な影響を与えたようです;)心配しないでください、Visual Studio、私たちはあなたを愛しています:)そのため、特にx-plat開発では、多くの分野で実際にリードしています。

弱点:

  • IDEはWindowsでのみ実行されます。どこにでもデプロイしてデバッグできますが、IDEはWindowsです。

  • C++ 11のみですが、C++ 17に向かっています。 MacOSは(Gasp)C++ 98です。ロードマップにあります。あなたはそれが最新であることを信頼することができます。

  • コード補完とコード洞察は、Visual C++よりも弱いです。それに取り組んでいます。

  • バギーとしての評判があり、これは最近のリリースで積極的に取り組んでいるものであり、個人的に排除する傾向があります。しかし、評判を落とすのは難しい。

3
David

ほとんどの回答はここにありますmixコンパイラ、IDEおよびライブラリ(および質問には重要なサブテキストがあります:ビジネス/ GUIアプリケーションの環境を選択する方法)。質問と回答はVisual Studio言語を組み合わせますおよびプロジェクトの種類:GUIへのサポートが不十分なC++、素晴らしいエコシステムを備えたC#など(基本、F#など)すべてVisual Studioの傘下にあります。

GUIライブラリ:

MFCはライブラリであり、非常に古く、生産性は低いです。 * .RESおよびWM_Enventsに対するその低レベルのラッパー。おそらくまだMS C++がないとコンパイルできません(そしておそらくライセンスがこれを禁止しています)

VCLは、Borland/Enbecaroの哲学にとって最も重要なライブラリであり、GUIアプリケーションの構築という1つの領域での市場シェアです。ポータブルなopensurce GUIライブラリをうまく利用しているようですが、ほとんどすべてがクリック可能なIDEでそれほど良いサポートをしていません

IDE:

個人的な感情がベストアンサーのようです。同意します。プロデューサのみIDEは、独自のGUIコンポーネントに対して最適な制御を行います。多くの独立したIDEがここで引用されています。

コンパイラ:

Brland C++コンパイラーは、何年もの間c ++標準からかけ離れていました(boostのようなメインストリームのc ++コードをコンパイルできません)。 Object PascalコードまたはC++標準との共存という多くの目標は矛盾していると思います。

正直に言うと、C++ Builderの世界のほとんどのプロジェクトでは、Boost/Embecareo C++言語を部分的にC++に基づいた独立した言語(一部はVCL)として扱うため、boostなどの高度な「ハッカー」コードを使用する必要はありません。一般的に、この世界は閉じられており(ますます)、ドライバー、互換性のあるライブラリー、最新のネットワークプロトコルなどはありません。

私の意見:MS C++コンパイラー(過去および現在)は、標準をよりよくサポートしています。

私は(たぶん良い)ボーランドのC++プログラマでした。 C#/ WinForms Visual Studio(まれにJava SWTまたはSwing)とMicrosoft C++を使用して、低ボリュームのC/C++非GUIプロジェクトを作成する

最後の言葉:C++構文に限定されていますか、それとも切り替えることができますか?はい、C#に切り替えます。 C++と生産性の高いGUIでなければならない場合は、Embadecaderoに(ますます)支払う

2
Jacek Cz

VS2008とwxWidgetsへの移行はゆっくりと進んでいます。 C++ Builder(Developer Expressなど)で購入できるすべてのコンポーネントについて、計画はhire誰かがそのコンポーネントをビルドするpieceまたはコンポーネントメーカーを雇ってビルド wxWidgetコンポーネント。

C++ビルダーは、現時点ではウィンドウ上で視覚的にプログラミングするための最良の方法です。ただし、x64bitはサポートされておらず、mac、linuxもサポートされていません。おそらく彼らはcrossxバージョンをビルドするつもりです...どのくらい待つことができますか?

2
pcunite

C++ビルダー2006、2009、XE6、RS10で働いています。

それからあなたのプロジェクトを変換することをお勧めします。私は何年にもわたって、環境のクラッシュや他の多くの風変わりな動作など、多くの問題を抱えてきました。さらに、何か助けが必要な場合は、ユーザーコミュニティが存在しないので、通常24時間待って、Remyが応答することを期待する必要があります。)または、delphiコードを読んでC++に変換してみてください(はいそれらのデルファイ環境はより人気があります...オブジェクト指向のパスカルのようなもの...)。

どのような環境に変換したとしても、望んでいるほどクリーンでも簡単でもないでしょう。したがって、多くの作業があることを知っているので、長期的な戦略を検討することをお勧めします。

デスクトップアプリケーションが必要な場合は、個人的にJavaおよびSWT( https://www.Eclipse.org/swt/ )を使用して)に移行することをお勧めします。また、フレンドリーなライセンスを備えたオープンソースライブラリを使用することをお勧めします。これにより、毎年お金を払う必要がなく、ビジネスを拡大することができます。クライアントシステムが必要ない場合でも、Javaをお勧めします。フルスタックを実行し、非常に強力です。Java私の経験からのコミュニティは、(大部分は)明確な回答を持つ鋭い人々を持つ傾向があります。私は、 .Netを使用してください:)

Visual Studioについて言及しましたが、Javaを実行できない場合は、次善の策としてC#をお勧めします。しかし、それでも、ライセンス料をマイクロソフトに支払う必要があり、ユーザーグループも処理する必要があります。

1
James Oravec

私はWindowsのC++クライアント側エンジニアとして始めました。 MFCがかなり悪いというコメントに同意します。私のプロジェクトのいくつかでは、MFCを使用する代わりに、XML駆動のテンプレートを使用して独自のUIエンジンを作成したため、ソフトウェアエンジニアを必要とせずにグラフィックデザイナーがUIを操作できます。

私の個人的な意見では、C#.NetはWindows UI開発に最適です。 IDEはすばらしいです。C++でのUIのコーディングには非常に多くの労力が必要です。高いパフォーマンスを必要とするC++の断片を保持することもできます。

PS。 VCLのWikiページでこれに気づきました。 "最初のDelphiバージョンの主要な設計者の1人であるAnders HeijlsbergがMicrosoftに行き、そこでNETの主要な設計者の1人だったため、.NETはVCLをモデルにしています。"

1
expert

これは、Visual Studio 2010のリリースによって新しい質問が作成されることを意味します。NET4にアップグレードしていなくても、Visual Studioをアップグレードすることは理にかなっていますか?答えは「はい」で、多くの理由があります。ただし、.NET 4を使用する場合は、Visual Studio 2010で多くのサポートが提供されます。

Visual Studio 2010を起動するとすぐに、スタートページが[ファイル]メニューよりも便利になったことに気づくでしょう(図1を参照)。スタートページでは引き続きプロジェクトテンプレートにアクセスできますが、ページの残りの部分では、主要な.NETテクノロジのトレーニングリソースに体系的にアクセスできます。

ファイルを開くと、Windows Presentation Foundation(WPF)のおかげで、編集ウィンドウに視覚的なフィードバックが表示されます。たとえば、変数名をクリックすると、その変数名のすべての使用が強調表示されます。この機能は変数に限定されていません。メソッドヘッダーをクリックすると、すべてのreturn句とメソッドの終わりが自動的に強調表示されます。しかし、この追加の強調表示には欠点がないわけではありません。たとえば、デバッグ時に、現在選択されている項目に追加された強調表示によって強調表示が上書きされたため、現在の行が失われることがありました。 アズテックタトゥー

0
robert

私はこれを言うのが嫌いですが、私の会社はこれと同じ岐路にあります。私たちは長年C++ Builderを使用しており(v6を超えてアップグレードされることはありません)、最近、管理担当者がVisual Studioへの切り替えを開始するためのトリガーを引いています:-(既存のCを移植することになるとは思わない++ BuilderアプリはVC++にすぐに対応します。メジャーな書き直しになるためですが、将来の新製品はVC++ /。NETになる予定です。

0
Remy Lebeau

@casablancaが言ったことですが、現在使用しているプログラムに満足できないと言った場合は、非常に優れた代替案も検討する必要があります。

  1. Eclipse[〜#〜] cdt [〜#〜] ):非常に優れた完全な製品
  2. NetBeans :Eclipseと比較されることが多い
  3. Code :: Blocks :シンプルですが、多くの場合推奨されますが、ビルドシステムの統合にはそれほど優れていませんが、wxWidgetsと完全に統合されています
  4. QtCreator :私の個人的なお気に入り(クリーンで高速でgitで動作します)ですが、現在は個人的なプロジェクトと小さなアプリケーションでのみ使用されています。 )

警告の1言:Visual Studio Debuggerは「できる限り優れている」と見なされていますが、その代償を払っています。上記の1〜4はすべて無料で高く評価されています。

0
rubenvb