ヒントとテクニック

<< 目次を表示 >>

ページ位置:  API・アドイン・スクリプト > アドイン > アドインの作業 >

ヒントとテクニック

Enterprise Architectのアドインを作成する場合に有用なヒントを掲載します。特に、32ビット版・64ビット版の両方のアドインを作成する場合にはこのページの内容を確認してください。

 

項目

説明

GUID

アドインを登録する際の名前とアドインが持つGUIDは、32ビット版・64ビット版の両方のアドインを作成する場合でも、共通にすることをお勧めします。DLLのファイル名およびインストール位置のみを調整します。

64ビット版のEnterprise ArchitectとC++のアドイン

64ビット版のEnterprise ArchitectでC++のアドインを利用する場合、特別な設定は不要です。64ビットのCOMオブジェクトを取得できます。

(アドインを登録するレジストリのみが異なります。)

.NETのアドイン

.NETでEnterprise Architectのアドインを作成する場合、ターゲットCPUは明示的にx86/x64のいずれかを選択することをお勧めします。AnyCPUの場合、64ビットOSで32ビット版のEnterprise Architectを実行する場合に問題が発生する場合があるようです。

 

また、プロジェクトにInterop.EAが含まれる場合、Visual StudioでのCOM登録で問題が発生する場合があります。その場合には、COM相互運用機能の登録のチェックボックスのチェックを外した上で、ビルド後のイベントの設定で、以下のような形で別途登録することで問題が回避できる場合があります。

 

 if $(PlatformName) == x64 ( "%Windir%\Microsoft.NET\Framework64\v4.0.30319\regasm" "$(TargetPath)")

 

    if $(PlatformName) == x86 ( "%Windir%\Microsoft.NET\Framework\v4.0.30319\regasm" "$(TargetPath)")

 

なお、Wine環境での実行の場合、WineとWine-Monoの組み合わせでは、.NETのアドインは動作しません。

JavaAPI

JavaのAPIを利用する場合、最後に実行したEnterprise Architectの位置を自動的に検出し、EA.exeを呼び出します。32ビット版・64ビット版のEnterprise Architectで必要となる追加の設定はありません。

状態情報を保持するには

アドインは状態についての情報を保持できます。これにより、情報をメンバー変数に格納しておいてあるイベントから別のイベントにその情報を間接的に渡すことができます。

このような処理をする場合には、3点注意すべき問題があります。

 

  • 引数として渡されるオブジェクトは、ユーザーの作業や他のマシンでの作業・同じクライアントの別のオブジェクトの処理があった場合でも、更新されることはありません。このオブジェクトのハンドルを保持しておいて後で利用する場合には、その処理を行うときの最新の情報と異なっている場合があります。
  • ユーザーがEAを終了させようとすると、すべてのアドインに対してシャットダウン(終了)の確認が行われます。もし別に外部にクライアントがある場合には、終了後でもEA自身は実行状態にある必要があるため、すべてのアドインは再起動されます。その結果、アドインが持つ内部のデータはすべて破棄されることになります。
  • アドインがEnterprise Architectのオブジェクトへの参照を保持している場合には、Enterprise Architectプロセスを終了することができません。すべてのオブジェクトはDisconnect()イベントで開放してください。

 

特別な理由のない限りは、アドインはイベントの引数として渡されるリポジトリ情報をそのまま利用して必要な情報を取得することをお勧めします。