このトピックでは、.NET SDK と ApsaraMQ for RocketMQ を使用してメッセージを送受信するための環境を準備する方法について説明します。
最新の RocketMQ 5.x SDK の使用を推奨します。これらの SDK は ApsaraMQ for RocketMQ 5.x ブローカーと完全な互換性があり、より多くの関数と強化された特徴を提供します。詳細については、C++ SDK のバージョン情報 をご参照ください。
Alibaba Cloud は、RocketMQ 4.x、3.x、および TCP クライアント SDK のみをメンテナンスしています。これらは既存のビジネスでのみ使用することを推奨します。
Windows .NET SDK
.NET SDK は、ApsaraMQ for RocketMQ クライアントの C++ バージョンを基に構築されたマネージドラッパーです。この設計により、SDK は標準の Windows .NET パブリックライブラリから独立して動作します。内部的には、C++ のマルチスレッド並行処理を使用して、高パフォーマンスと安定性を確保しています。
Visual Studio (VS) で .NET アプリケーションやクラスライブラリを開発する場合、デフォルトのターゲットプラットフォームは "Any CPU" です。この設定により、アプリケーションはプロセッサアーキテクチャに応じて x86 または x64 プラットフォームのいずれかで実行できます。実行時には、共通言語ランタイム (CLR) の Just-In-Time (JIT) コンパイラが中間言語 (IL) コードをネイティブな x86 または x64 マシンコードに変換します。対照的に、C/C++ コンパイラによって生成された DLL はすでにマシンコードであり、ターゲットプラットフォームはコンパイル時に決定されます。適切なコンパイルオプションを設定することで、C/C++ プロジェクトは x64 DLL にコンパイルされます。したがって、この SDK は、Visual Studio 2015 と .NET Framework 4.5.2 でコンパイルされたリリースモードの 64 ビット DLL を提供します。この DLL は、他のバージョンの Visual Studio とも互換性があります。
-
.NET SDK は 64 ビットの Windows オペレーティングシステムのみをサポートします。
-
C++ DLL ファイルには、Visual C++ 2015 実行環境が必要です。ご利用のシステムに Visual C++ 2015 ランタイムがインストールされていない場合は、SDK パッケージで提供されている
vc_redist.x64.exeファイルを実行してインストールしてください。
Windows .NET SDK のダウンロード
SDK の最新バージョンをダウンロードします。.NET SDK の最新バージョンのダウンロードリンクについては、リリースノート をご参照ください。
解凍されたパッケージには、次のディレクトリとファイルが含まれています:
-
lib/
基盤となる C++ DLL ファイルと Visual C++ 2015 ランタイムインストーラーが含まれています。Visual C++ 2015 ランタイムがインストールされていない場合は、
vc_redist.x64.exeを実行してインストールする必要があります。64/ ONSClient4CPP.lib ONSClient4CPP.dll ONSClient4CPP.pdb vc_redist.x64.exe -
demo/
通常メッセージ、一方向メッセージ、順序付きメッセージを送受信するためのサンプルコードが含まれています。
-
interface/
プロジェクトに含める必要がある PInvoke ラッパーコードが含まれています。
-
SDK_GUIDE.pdf
SDK 環境の準備方法に関するドキュメントと、よくある質問 (FAQ) のリストが含まれています。
-
changelog
各リリースに含まれるバグ修正と新機能がリストされています。
Visual Studio 2015 での .NET SDK の設定
-
Visual Studio 2015 でプロジェクトを作成します。Visual Studio 2015 を開き、[新しいプロジェクト...] をクリックします。[新しいプロジェクト] ダイアログボックスで、[インストール済み] > [テンプレート] > [Visual C#] > [Windows] に移動します。[コンソールアプリケーション] を選択し、ターゲットフレームワークを [.NET Framework 4.5.2] に設定し、プロジェクト名を指定してから [OK] をクリックします。
-
プロジェクトを右クリックし、[追加] > [既存の項目...] を選択し、ダウンロードした SDK パッケージの interface ディレクトリからすべてのファイルを追加します。
-
プロジェクトを右クリックし、 を選択します。[アクティブソリューション構成] を [Release] に、[アクティブソリューションプラットフォーム] を [x64] に設定します。
-
テストプログラムを作成してコンパイルします。プログラムを実行するには、SDK の DLL ファイルを実行可能ファイルと同じディレクトリまたはシステムディレクトリに配置します。コンパイル後、必要なランタイムファイル (ONSClient4CPP.dll など) は、通常 `bin\x64\Release` である出力ディレクトリにあります。
説明SDK には、事前設定済みのデモプロジェクトが含まれています。このプロジェクトを直接開いてコンパイルできます。アプリケーションを実行する前に、必要な DLL ファイルを実行可能ファイルと同じディレクトリにコピーしてください。
コピーするファイルは `ONSClient4CPP.dll`、`ONSClient4CPP.lib`、および `ONSClient4CPP.pdb` です。送信先のディレクトリ (`bin\Debug` や `bin\Release` など) は、ビルド構成とターゲットプラットフォームによって異なります。
Visual Studio 2015 で ApsaraMQ for RocketMQ SDK を使用するように ASP.NET を設定する
-
Visual Studio 2015 で ASP.NET Web Forms プロジェクトを作成します。Visual Studio 2015 で、[新しいプロジェクト] をクリックします。左側のテンプレートツリーで、[インストール済み] > [テンプレート] > [Visual C#] を選択します。テンプレートリストから [ASP.NET Web アプリケーション] を選択し、プロジェクト名 (例:
WebApplication1) を指定し、フレームワークのバージョンを [.NET Framework 4.5.2] に設定してから [OK] をクリックします。 -
プロジェクトを右クリックし、 を選択します。[アクティブソリューション構成] を [Release] に、[アクティブソリューションプラットフォーム] を [x64] に設定します。
-
プロジェクトを右クリックし、 を選択し、ダウンロードした SDK パッケージの interface ディレクトリからすべてのファイルを追加します。
詳細については、「Visual Studio 2015 での .NET SDK の設定」セクションのステップ 2 をご参照ください。
-
Global.asax.cs ファイルに SDK を起動およびシャットダウンするコードを追加します。
重要SDK コードをシングルトンクラスでラップします。これにより、オブジェクトがスコープ外になったときにガベージコレクターによって早期に収集されるのを防ぎます。SDK パッケージの `example` ディレクトリには、単純なシングルトン実装を提供する `Example.cs` が含まれています。これを使用するには、プロジェクトに `Example.cs` を含める必要があります。
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Optimization; using System.Web.Routing; using System.Web.Security; using System.Web.SessionState; using ons; // SDK が配置されている名前空間。 using test; // SDK のシンプルなラッパークラスの名前空間。SDK の example ディレクトリにある Example.cs をご参照ください。 namespace WebApplication4 { public class Global : HttpApplication { void Application_Start(object sender, EventArgs e) { // アプリケーションの起動時に実行されるコード RouteConfig.RegisterRoutes(RouteTable.Routes); BundleConfig.RegisterBundles(BundleTable.Bundles); try { // SDK を起動するコード。次のコードはシンプルなラッパーを使用しています。 OnscSharp.CreateProducer(); OnscSharp.StartProducer(); } catch (Exception ex) { // 例外を処理します。 } } protected void Application_End(object sender, EventArgs e) { try { // SDK をシャットダウンするコード。 OnscSharp.ShutdownProducer(); } catch (Exception ex) { // 例外を処理します。 } } } } -
テストプログラムを作成してコンパイルします。
-
プログラムを実行するには、SDK の DLL ファイルをプロジェクトの bin ディレクトリに配置します。コンパイル後、プロジェクトの出力 bin ディレクトリ (例:
Projects\WebApplication4\WebApplication4\bin) にONSClient4CPP.pdb、ONSClient4CPP.dll、およびONSClient4CPP.libファイルが含まれていることを確認します。 -
に移動し、[Web サイトおよびプロジェクトに 64 ビットバージョンの IIS Express を使用する] チェックボックスをオンにします。