BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース 2つのメトロアプリケーションをURIで疎結合に設計する

2つのメトロアプリケーションをURIで疎結合に設計する

原文(投稿日:2011/09/15)へのリンク

メトロスタイルアプリケーションは、小さくて高度に収縮していることを意味する。伝統的な企業向けに作られたモノリシックな大規模なアプリケーションは、ワークフローに特化したツールであると再考することができる。たとえば、証券取引アプリケーションでは、ひとつのツールで基本的な顧客情報の位置と閲覧、そして証券商品の研究ができる。どちらのモードでも、完全に異なるアプリケーションであろう「証券の購入」ワークフローを超える必要がある。

メトロでこれを実現する方法がプロトコルの活用である。上の例で言えば、“acme-stock-purchase://client=123&stock=XYZ”のようなプロトコルである。証券購入ツールのインストール時に“acme-stock-purchase”プロトコルで送られたメッセージを受信できるように登録することができる。指定されたパラメータを受信すると、ツールが起動される。

コードはC++、.NET、JavaScriptベースのアプリケーションで非常にかんたんに処理することができる。OnActivatedとOnFileActivatedapplicationイベントを処理するC++アプリケーションから抜粋したコードを以下に提示する。後者は、登録されたファイルの種類を経由してアプリケーションを起動したときに使用する。




void App::OnLaunched(Windows::ApplicationModel::Activation::LaunchActivatedEventArgs^ args) 

  { 

    Window::Current->Content = ref new MainPage(true); 

    Window::Current->Activate(); 

  } 



  void App::OnFileActivated(Windows::ApplicationModel::Activation::FileActivatedEventArgs^ args) 

  { 

    MainPage^ page = ref new MainPage(false); 

    page->SelectScenario3(args->Files->GetAt(0)->Name); 

    Window::Current->Content = page; 

    Window::Current->Activate(); 

  } 



  void App::OnActivated(Windows::ApplicationModel::Activation::IActivatedEventArgs^ args) 

  { 

    MainPage^ page = ref new MainPage(false); 

    if (args->Kind == Windows::ApplicationModel::Activation::ActivationKind::Protocol) 

    { 

        Windows::ApplicationModel::Activation::ProtocolActivatedEventArgs^ protocolArgs = dynamic_cast<Windows::ApplicationModel::Activation::ProtocolActivatedEventArgs^>(args); 

        page->SelectScenario4(protocolArgs->Uri->RawUri); 

    } 

    Window::Current->Content = page; 

    Window::Current->Activate(); 

  }

このコミュニケーションは一方通行で、元のアプリケーションがメッセージをどのように処理されるかを知る方法がない。これはデザインの選択のいくつかを制限するが、疎結合の様々なツールを維持することができる。あなたの会社のビジネスニーズが変わったとき、全体を再デプロイすることなく、単体ツールを更新することができる。

URIについては、他のメトロアプリケーションから起動される必要はない。“http://sample.com”を使ってWebブラウザを起動することができるあらゆるアプリケーションは、プロトコルが有効なメトロアプリケーションを起動することができる。 同じように、ユーザーは単純にURIを起動メニューやWindows ExplorerやInternet Explorerのアドレスフィールドに貼り付けるだけである。これにより、開発者が簡単にレガシー、Web、メトロアプリケーションを統合することを可能にする。

この記事に星をつける

おすすめ度
スタイル

BT