Delphi 2009 の Win32 アプリを .NET に移植する簡単な方法はありますか?

StackOverflow https://stackoverflow.com/questions/132299

  •  02-07-2019
  •  | 
  •  

質問

最新の IDE と最新のテクノロジーを維持するために、Delphi 7.0 から Delphi 2009 に移行したいと考えています。私たちのターゲット プラットフォームは .NET です。この目標を達成するための最善の方法は何でしょうか?

役に立ちましたか?

解決

私は、D2007 から D2009 にかけて導入された文字列処理に関する Unicode の状況を取り入れます。このステップに含まれる変更は、アプリケーションに多大な影響を与える可能性があります (これはあなたにしかわかりません)。また、使用しているサードパーティのツール/ライブラリ/コンポーネントを考慮する必要があります。まだすべてが D2009 に移行しているわけではなく、あまり人気のないコンポーネントはまったく移行しない可能性があります。

より賢い方法の 1 つは、 D7 を D2007 に移行する (これはよく踏まれた道であり、多くの勝利と価値のある改善があり、ほとんど痛みはありません)。そうすれば、最新で安定した最新のサポートされた Delphi プラットフォームを利用できるようになり、そこから .Net への移行をより適切に評価できるようになります。

この最後の段階に関する私自身の意見は、他のコメントのいくつかに同調することになりますが、念のため言っておきますが、.Net から大きな勝利が得られない限り、なぜ Delphi から離れる必要があるのか​​わかりません。さまざまなランタイムやサービス パックの最新の要件により、Delphi は、 ますます 実行可能な 関連する Win32 開発用のツール。コードを D7 から D2007/D2009 に進化させるか、単に D7 から .Net にジャンプします。一方を実行してからもう一方を実行するのは少し奇妙に思えます。

他のヒント

D2009 は win32 バージョンであり、.net ではないことに注意してください。最初に D2009 に移動し、次に .net に移動するという 2 つのステップのパスを作成したいと考えていますか?

幸いなことに、delphi は非常に安定したプラットフォームであり、古いアプリケーションを最新バージョンに変換するのははるかに簡単ですが、別のことを考慮する必要があります。

アプリケーションが BDE を使用して DB にアクセスしている場合は、ADO や DBX などの他のテクノロジを使用するように変換します。

サードパーティのコンポーネントを使用する場合は、D2009 および/または .NET のバージョンが存在することを確認してください。

文字列の処理は非常にデリケートな点です。文字列を「通常」に使用する場合は大きな問題はありませんが、C のように文字列を「バイトバッファ」として使用する場合は、注意してその部分を書き換える必要があります。経験則としては、「コード内のすべての PChar を削除するように努める」です。

Delphi 7 から Delphi 2009 への移行はおそらく簡単で、わずかな変更しかありませんでした (最近議論された ANSI から Unicode 文字列への移行など)。ただし、.NET への移行はそれほど単純ではありません。GUI の移行を可能にする VCL.NET はありますが、他の重大な機能は動作しません。そこで、Win32 コードと .NET コードを用意し、それらを COM 経由で統合することを考えるかもしれません。(COM についてはすでにご存知だと思いますが、そうでない場合はおそらくこれは選択肢ではありません;-))

デルフィ 2009 Win32 のみをターゲットとします。.NETの場合は使用できます RAD スタジオ 2007 これには .NET 用の Delphi パーソナリティが付属しており、単純な VCL アプリケーションを .NET 2.0 フレームワークをターゲットとする VCL.NET に移植するのは非常に簡単です。ただし、サードパーティのコンポーネントやライブラリを使用している場合は、.NET の代替品も確認する必要があります。

これでは作業が多すぎると思われる場合、または最新の .NET フレームワークをターゲットにしたい場合は、Microsoft の Visual Studio と C# を使用してプロジェクトを最初から書き直す方が良いかもしれません。

免責事項:私には Delphi Win32 プロジェクトを .NET に移植した経験がないため、これは単なる私の謙虚な意見です。

移植は決して簡単ではありません。ただし、Delphi と .NET のセマンティクスは、どちらも Anders Hejlsberg を主任アーキテクトとして迎えているため、非常に似ています。おそらく、Win32 VCL 呼び出しを同等の VCL.NET 呼び出しに置き換える必要があります。

CodeGear RAD Studio にアップグレードすると、Delphi と .NET 言語 (主に C#) の両方に 1 つの IDE を使用できるようになります。

あるテクノロジから別のテクノロジに移行するときに、多くの場合、制御の代替品を導入することができました。たとえば、実際にコードを変更することなく、BDE データベース コントロールを ADO.NET の代替品に置き換えることができました。最終的には、あなたがコードを所有しており、私たちの誰よりもよく知っています。

Win32 実行可能ファイルに対する非常に優れたサポートがあるのに、なぜ .NET Framework をターゲットにするのでしょうか?Delphi はすでに業界の小さなセクションですが、.NET を使用する Delphi はさらに小さいです。Delphi は、.NET の世界では常に二級市民であり続けるでしょう。Delphi はすでに第一級の Win32 市民です。

上記のGiacomoの回答に続いて、BDEを使用している場合は、MicroOlapのDACをお勧めします http://www.microolap.com/ - これにより、コードを他のものに変換する必要がなくなり、時間を大幅に節約できます。私は PostgresDAC を使用しています。この製品は非常に安定していて高速です。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top