コンポーネントの作成 (Visual Basic 6.0 ユーザー向け)

更新 : 2007 年 11 月

Visual Basic 6.0 と Visual Basic 2008 のどちらにもコンポーネント作成機能が備わっていますが、コンポーネントの作成方法にはいくつかの重要な相違があります。

概念の違い

Visual Basic 6.0 でのコンポーネントの作成とは、COM アプリケーションで使用できる ActiveX コントロール、ActiveX DLL、ActiveX EXE など、COM コンポーネントを作成することです。

Visual Basic 2008 では、コンポーネントは .NET Framework に基づいています。つまり、.NET Framework を使用して作成されたアプリケーションで使用できるコンポーネントを作成します。Visual Basic 2008 を使用して作成されるコンポーネントは、継承に基づいています。つまり、すべてのコンポーネントは、Component または Control のいずれかの基本クラスから派生します。詳細については、「コンポーネントのクラス」を参照してください。

マルチスレッド コンポーネント

Visual Basic 6.0 ではスレッド処理に 2 つのモデルが用意されており、コンポーネントはシングルスレッドとアパートメント スレッドのいずれかです。

Visual Basic 2008 では、本当のマルチスレッド コンポーネントがサポートされます。詳細については、「コンポーネントのマルチスレッド」を参照してください。

コンポーネントのインスタンス化

Visual Basic 6.0 では、アクセス レベルおよびコンポーネントの作成方法が、クラスの Instancing プロパティによって制御されます。

Visual Basic 2008 では、コンポーネントのクラスごとに、コンストラクタでアクセス修飾子とアクセス レベルを設定することによりインスタンス化を制御します。詳細については、「Visual Basic .NET におけるコンポーネントのインスタンス化の変更点」を参照してください。

バイナリ互換性とバージョン管理

Visual Basic 6.0 では、バージョンの競合を避けるためにコンポーネントのバイナリ互換性が重要であり、コンポーネント プロジェクトの Version Compatibility プロパティによって制御されています。

Visual Basic 2008 の場合、バージョン管理がコンポーネントのアセンブリに組み込まれているため、バイナリ互換性を設定する煩わしさから解放されます。詳細については、「コンポーネントによるプログラミング」を参照してください。

ActiveX コントロール

Visual Basic 6.0 では、Windows ベースのアプリケーション用の ActiveX コントロール (ユーザー コントロール) を作成できます。

Visual Basic 2008 では、Windows フォーム用のユーザー コントロールを作成するか、または既存のコントロールを継承して機能を追加できます。詳細については、「デザイン時の Windows フォーム コントロールの開発」を参照してください。

メッセージング

Visual Basic 6.0 では、アプリケーション間で情報をやり取りするために Microsoft メッセージ キュー (MSMQ) を使用するコンポーネントを作成できます。

Visual Basic 2008 では、メッセージング機能が .NET Framework に組み込まれています。詳細については、「メッセージング コンポーネントの使用」を参照してください。

トランザクション

Visual Basic 6.0 では、Microsoft Transaction Server (MTS) と連携する MTS コンポーネントを作成することによって、トランザクションを処理できます。

Visual Basic 2008 では、.NET Framework によってトランザクションが処理されます。これは、トランザクション コンポーネントをプロジェクトに追加するか、または既存のクラスに Transaction 属性を追加することによって行われます。

参照

概念

User コントロール (Visual Basic 6.0 ユーザー向け)

継承 (Visual Basic 6.0 ユーザー向け)

その他の技術情報

コンポーネントの作成

Visual Basic 6.0 ユーザー向けのヘルプ

Visual Studio のコンポーネント モデルの名前空間