BT

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

| 作者: Jonathan Allen フォローする 595 人のフォロワー , 翻訳者 尾崎 義尚 フォローする 0 人のフォロワー 投稿日 2011年9月20日. 推定読書時間: 4 分 |

原文(投稿日: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、メトロアプリケーションを統合することを可能にする。

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

あなたの意見をお聞かせください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする
コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

ディスカッション

InfoQにログインし新機能を利用する


パスワードを忘れた方はこちらへ

Follow

お気に入りのトピックや著者をフォローする

業界やサイト内で一番重要な見出しを閲覧する

Like

より多いシグナル、より少ないノイズ

お気に入りのトピックと著者を選択して自分のフィードを作る

Notifications

最新情報をすぐ手に入れるようにしよう

通知設定をして、お気に入りコンテンツを見逃さないようにしよう!

BT