Delphi は、Object Pascalプログラミング言語のDelphi拡張を用いたデスクトップ、モバイル、Web、およびコンソールソフトウェアの迅速なアプリケーション開発のための統合開発環境(IDE)を提供するソフトウェア製品であり、現在エンバカデロ・テクノロジーズによって、開発・保守されています。 Delphiは、高速なコンパイル速度、ネイティブコード、高い開発生産性で知られています。 ボーランドは当初、Turbo Pascalの後継としてWindows用の迅速なアプリケーション開発ツールとしてDelphiをリリースしました。
In this article, we will go over everything you need to know about modernizing Delphi apps and look at some of the most important points mentioned by senior Embarcadero members that you should keep in mind when modernizing UI Delphi apps with the Windows UIツールキット.
目次
サードパーティコンポーネントをアップグレードする方法
まず、レガシーDelphiまたはC ++ Builderプロジェクトで使用しているサードパーティのライブラリとコンポーネントを自問する必要がありますか?これらのコンポーネントのソースコードがあると、既存のソースコードを取得して、現在のバージョンのDelphi Builderにドロップし、再構築できるため、簡単になります。これで、必要な現在のDelphi / C ++ビルダーで動作するライブラリができました。このソースコードを持たないサードパーティのライブラリまたはコンポーネントには、使用している現在のDelphi / C ++ビルドのアップグレードバージョンが必要です。
すべてのサードパーティライブラリやコンポーネントは網羅していませんが、 GetItパッケージマネージャーを用いれば、ライブラリやコンポーネントを検索して、直接Delphi / C++Builderにインストールすることができます。これにより、現在のバージョンのDelphi / C++Builderと互換性のあるサードパーティライブラリやコンポーネントのバージョンを探す時間と労力を大幅に節約できます。
アプリをUnicode対応にアップデートする必要があるか?
多くの人が自分のアプリを Unicode それよりもずっと難しいです。アプリケーションにUnicodeが必要かどうかを自問する必要がありますか、それとも英語のみのアプリケーションとして使用できますか?既存のコードが「シングルバイト」(英語の標準英数字と句読点)のみを使用し、コードでUnicode文字をサポートする必要がない場合は、Unicodeを完全に回避できる可能性があります。文字列またはUnicode文字列の代わりに使用することは完全に有効な手法です。
Unicodeをチェックするには、 Unicode Statistics Toolと呼ばれるツールを利用します。これは、Unicode移行の複雑性を示すいくつかの客観的な指標を返します。
幸いなことに、コンパイラは、Unicodeの変更が必要な場所と場所を通知するのに十分なほどスマートです。 Unicodeの移行は、人々が思っているよりもずっと簡単でした。良い点は、Unicode移行のプロセスを経た後、コードを使用して、Unicode文字とUnicode文字列をサポートするためにそのアプリケーションをより大きな市場に配布できるようになることです。
また、Delphiの将来のバージョン間のアップグレードがはるかに簡単になります。
最新のデータベーステクノロジーを使用しているか?
BDE(Borland Database Engine)からの移行は、真剣に検討する必要のある項目です。BDEは、長年にわたって非常に人気がありましたが、すでに非推奨となってかなりの時間が経過しており、過去15年間アップデートは提供されていません。 BDEはUnicodeをサポートしておらず、64ビットにも対応していません。つまり、BDEに依存するアプリケーションは、新しい代替機能にアップデートしなければならないのです。最新かつ最もパフォーマンスの高いデータアクセスコンポーネントは、FireDACと呼ばれます。
BDEからの移行作業を容易にするには、reFINDと呼ばれるユーティリティを使います。reFINDは、BDEからFireDACに自動アップグレードしてくれるツールです。このツールを使えば、BDEからFireDACへのアップグレードに時間を浪費する必要がなくなります。 reFINDを実行するだけでよいのですす。すべてのBDE構文を検索して置換し、同等のFireDACコードに置き換えます。
BDEからFireDACに移行することで、テーブルを開いてフィルタリングするのではなく、クエリに移行できます。また、データへのアクセス方法やアクセスしているデータのより効率的な処理が可能になります。さらに、古いデータベースから最新バージョンのデータベースに移動することで、いくつかの追加のセキュリティ機能などを利用できるようになります。
データベースおよびデータアクセスのためのデータベースのアップグレードの世界では、セキュリティは非常に重要です。 FireDACに移行することで、OracleデータベースであるSequel Server Interfaceを利用できるようになります。また、これらのデータベースが提供する固有の機能についても、FireDACではサポートしており、より良いレベルでこれらの機能にアクセスできます。
古いバージョンのミドルウェアを使用しているか?
旧バージョンを利用している一部のユーザーでは、MIDAS(COM)テクノロジーとして知られている古いプロセス間通信技術を引き続き使用しています。これは、当時のミドルウェアの一般的なソリューションでした。そのテクノロジーは現在、DataSnap(HTTP)またはRAD Serverとして知られる最もパフォーマンスの高いミドルウェアレイヤーに置き換えられています。
ミドルウェアにMIDASを使用する多層アプリケーションがあるとします。その場合は、MIDASをDataSnapソリューション、あるいは最もパフォーマンスの高いすぐに使用できるRAD Serverに置き換えることを検討する必要があります。幸いなことに、MIDASからDataSnapに移行する方法、DataSnapからRAD Serverに移行する方法を示す非常に優れたホワイトペーパーがいくつか書かれています。
Delphiユーザーは、これらの新しい技術によって、Webおよびモバイル対応データの恩恵を受けることができます。ミドルウェアをRAD ServerやDataSnapに移行することで、アプリケーションベースとユーザーベースを拡張できるのです。
ランタイムエラーを取り除くための最良の方法
フォームのプロパティが存在しなくなったり、デバイスに存在しなくなった古いDLLを使用しているなどの理由で、ときにランタイムエラーが発生することがあります。これらの特定のランタイムエラーは修正すべきですが、アプリケーションを実行してみるまで、それらについてはわかりません。
古いバージョンは、設計時に利用できるあるプロパティがあったとします。例えば、以前はグリッドのColumnCoountプロパティがあったのですが、何らかの理由で新しいバージョンでは削除されたとします。アプリケーションが実行されると、グリッドのColumnCountが呼び出されますが、それが見つからず、ランタイムエラーが発生します。次に、ソースコードでColumnCount変数を検索しようとしても、ソースコードには存在しないため、見つけることができないのです。それは、フォームのみに存在します。
このような場合は、DFMに移動してそのプロパティを検索し、削除するか、変更されたものに置き換えます。
UIのモダナイゼーションが重要な理由
UXは、世の中で最大のホットチケットアイテムの1つになっています。つまり、最高のユーザーエクスペリエンスを実現するために、アプリケーションのモダナイズにおいても、エンドユーザーにとって最高のユーザーインターフェイスを実現することは最も重要なトピックのひとつになっています。例えば、Microsoftが追加した非常に優れた機能を利用すべきですが、これらはVCLスタイルによって実現できます。
UIは、エンドユーザーが最初に目にするものの1つになる傾向があります。すべてのランタイムエラーを修正したとしても、エンドユーザーはそのUXを重視しており、そこに問題があるとアプリケーションに満足しなくなります。そのため、アプリケーションの見栄えを良くし、視覚的にも魅力的にする努力が欠かせません。
経験豊富な開発者は、ユーザーを維持することが課題になる可能性があることを知っているため、アプリケーションをより速く、より機能的に、よりユーザーフレンドリーにするために継続的に投資しています。この取り組みはユーザーだけのものではありません。未使用で非効率的なコードをクリーンアップすると、開発者はアプリを前進させ続けることが容易になります。
こうした専門家の提案を活用して、ぜひDelphiアプリのモダナイズを実行してください。詳細については、 製品情報ページをご覧ください。