[Delphi] Delphi 概要 (2015/11)
Delphi 10 Seattle をもとに、Delphi およびそれを取り巻く様々な要素の概要をメモします。Delphi を知るうえでのきっかけになるようなコンテンツになればさいわいです。 なお、この記事は、Delphi 概要についての個人的なメモです。個人的な見解のもと作成されています。網羅性がない可能性が含まれる点に留意してください。
Delphi 10 Seattle の主たる構成要素は以下のようなものです。
- 統合開発環境 (IDE): ソフトウェア開発における作業環境にあたる部分。ビジュアルな操作環境が特徴。この部分が Delphi と呼ばれる場合がある。IDE は Windows 上で動作する。
- プログラミング言語:Delphi 言語 (または Object Pascal 言語)
- ランタイムライブラリ: RTL (Run Time Library functions and procedures)。大抵のクラスライブラリには「T」プレフィックスが付与されている。あるエディション以上には 大抵の部分のソースコードが同梱される (すべてでは無い)
- コンポーネントシステム: ソフトウェア部品についてのエコシステム。コンポーネントの使用、作成、登録、有償または無償のものを組み込んで利用などが可能
- コンパイラ: ソースコードを入力して、Windows 32/64bit、Mac OS X、iOS 32/64bit、Android (ARM) 向けのバイナリを生成するネイティブコンパイラ。内部的には LLVM ベースでこれを拡張した実装となっている。コマンドライン形式でも提供されるので、MSBUILD などをもちいてスクリプトによるビルドを構築することが可能。
- ツールチェイン
- それ以外: 無償版の帳票ツールやボーナスパックなどが同梱される。
※文脈によって、Delphi が どの部分を指しているのかが異なるケースに留意が必要です。
主要な開発可能ソフトウェアについては、『docwiki:主要なアプリケーション種別』に記載があります。 私なりに整理すると、主要なものは おおむね以下のようになります。
- クライアントアプリ
- Windows アプリ: UI フレームワークは VCL または FireMonkey のいずれかを選択
- Mac OS X アプリ
- iOS アプリ
- Android アプリ
- その他 Windows 関連
- コンソール アプリケーション
- コントロールパネル アプリケーション
- サービス アプリケーション
- ダイナミックリンク ライブラリ
- リソース DLL
- ActiveX ライブラリ
- サーバーアプリ
- Web サービス系アプリ
- DataSnap サーバー
- EMS
- Web サービス (SOAP サーバー)
- Web アプリ
※リストには、エディションによっては開発できないものが含まれています。また、一部については実行時に別途ランタイムライセンスが必要なものが含まれます。 ※モデリング関連各種、ユニットテスト関連、HTML/XMLファイルなどは、上記リストから除外しています。
- UI
- FireMonkey: マルチデバイス対応の UI フレームワーク
- VCL: Windows 向けアプリにおいてのみ利用可能な UI フレームワーク
- コンソール
- その他: Windows コントロールパネル、Windows サービス、ダイナミックリンクライブラリ
- データベース
- FireDAC、dbExpress などのデータベースクライアントAPI
- 組み込みデータベース (InterBase / IBLite / ToGo / SQLite)
- その他...
- ネットワーク
- プリミティブ
- HTTP(S) クライアント
- Indy
- REST
- JSON
- SOAP
- RPC的
- DataSnap / EMS
- SOAP
- App テザリング
- アプリ的
- デバイス
- センサー / ジェスチャー / カメラ...
- IoT
- Bluetooth
- Bluetooth LE
- Beacon
- ログ出力
- 印刷(プリミティブおよび帳票ツール)
- XML
- スレッド
- アニメーション
- 2D / 3D
- i18n : TLang またはサードパーティ製ツール(TBD)を利用
- security 関連
- ビジュアルプログラミング
- LiveBindings
- OS
- Windows API 呼び出し
- iOS API 呼び出し
- Android API 呼び出し
- Delphi と C++Builder の相互呼び出し
- Java : Java2OP (Android の場合のみ)
- その他
- ActiveX
- Using a .NET Assembly via COM by Jim McKeeth
- ネットワーク越しの連携