SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

japan.internet.com翻訳記事

.NETの高度な配置機能を活用する

エンドユーザーに応じてインターフェイスがカスタマイズされるアプリケーションの作成

  • X ポスト
  • このエントリーをはてなブックマークに追加

カスタムアプリケーションの作成は、ソフトウェア開発における長年の課題です。これまでは、エンドユーザーごとに別のライセンスファイルを提供するなど、いくつかの方法を使ってカスタマイズが行われてきました。今では、Visual Studio .NETを使用することで、インストーラ派生クラスによってカスタム動作を実現するデプロイメントプロジェクトを作成できます。

  • X ポスト
  • このエントリーをはてなブックマークに追加

はじめに

 .NETの登場によって確かにアプリケーションの開発は容易になりました。今や開発者は大きな難題にぶつかることなく魅力的で機能的なアプリケーションを書くことができます。一方で、アプリケーションの配置(デプロイメント)については、開発サイクルの他のフェーズに比べて関心が薄れつつあります。本稿では、カスタム動作(Custom Action)を利用して、配置中にターゲットコンピュータ上で設定ファイルを作成する手順を説明します。この配置プロセスでは、ユーザー(インストール実行者)から情報を収集し、その結果に基づいて適切なフォルダとXMLファイルを作成して、そこにユーザー固有の情報を格納します。今回のサンプルアプリケーションでは、どのユーザーがアプリケーションを実行しているかによって、機能の一部を無効にしたり有効にしたりします。このような仕組みは、同じソフトウェアをいくつかのベンダーに提供し、それぞれのベンダーの要件に応じて一部の機能を無効または有効にしたい場合などに役立ちます。

今回のサンプルのポイント

 インストール時に一部の機能の無効/有効を決定するアプリケーションを実現するには、インストール中に、インストール実行者についての固有の情報をXMLファイルに記録します。このXMLファイルをアプリケーションの実行時に読み込み、実行ユーザーに応じてインターフェイスをカスタマイズすればよいのです。

実装

 ある組織のために開発したアプリケーションを、一部の機能を制限または無効にして別の組織に提供しなければならない、という状況に直面することがあります。そのソフトウェアが.NETで書かれていれば、Visual Studio .NETのカスタム配置の機能を使ってこの問題を容易に解決できます。本稿では、VS .NETのカスタム動作を使用して、配置プロセス中にターゲットコンピュータ上で各種ファイルを用意する方法について説明します。具体例として、この仕組みをカスタム配置によって実現している簡単なアプリケーションを紹介します。

 次の2つの図は、今回のデモ用に作成したインターフェイスです。このアプリケーションは、1つのフォームといくつかのコントロールで構成されています。このアプリケーション自体はごく簡単なものですが、これから紹介する考え方はどんなアプリケーションにも応用できます。

 ここで注目してほしいのは、「Arslan Inc」が実行しているアプリケーションの画面(図1)は、「ABC Financial Corp.」が実行しているアプリケーションの画面(図2)よりも構成要素(ボタン)が1つ多いという点です。

図1 アクセスレベルの高いユーザーが操作するアプリケーション
図1 アクセスレベルの高いユーザーが操作するアプリケーション
図2 アクセスレベルが制限されているユーザーが操作するアプリケーション
図2 アクセスレベルが制限されているユーザーが操作するアプリケーション

 明らかに、このアプリケーションは実行する企業(エンドユーザー)によって異なる動作をしています。今回のサンプルアプリケーションでは、1つの変数(企業名)に基づいて動作の切り替えを行っています。大規模なアプリケーションでは、2つ以上の変数を扱ったり、ライセンスファイルを提供したりすることになるでしょう。

セットアップと配置

 ソフトウェア開発ライフサイクルとは、ソフトウェアの完成と運用にいたるまでのあらゆる作業を含むプロセスのことです。典型的なライフサイクルは、構想化、計画、開発、安定化、配置など、いくつかのフェーズに分かれています。ただし、これら複数のフェーズが1つにまとまっていることもあります。構想化フェーズでは、ソリューションの目的を明確にします。計画フェーズでは、その目的を分析して設計を行います。開発フェーズでは、いわゆる開発作業の大部分を行います(ほとんどのコードはここで作成されます)。安定化フェーズでは、機能の追加は行いませんが、多くのテストを実施し、バグを修正します。このフェーズは「テストフェーズ」とも呼ばれます。最後の配置フェーズでは、ターゲットコンピュータにソフトウェアをインストールします。

 配置戦略はアプリケーションの設計にも影響を与えるため、ライフサイクルの早い段階から、プロジェクトの配置について検討しておくことが重要です。たいていのアプリケーションは、配置の際に、サーバー上でのデータベースのセットアップ、IIS上での仮想ディレクトリのセットアップ、またはターゲットコンピュータ上でのファイル操作を必要とします。.NET Frameworkのおかげで、高価な配置プログラムを別途購入しなくても、アプリケーション開発者が自力で配置プログラムを作成することができます。

 VS .NETを使えば、インストール先ディレクトリを変更するのも難しくはありませんし、Webアプリケーションにおいてインストール中に仮想ディレクトリを作成し、そこにアプリケーションファイルをコピーするのも比較的簡単です。ただし、大規模なWindowsアプリケーションやWebアプリケーションでは、共有コンポーネントのグローバルアセンブリキャッシュ(GAC)への登録、データベースのインストール、イベントログの追加に加えて、設定パラメータのカスタマイズに利用する情報をインストール実行ユーザーから収集したり、実行時のインターフェイスをカスタマイズするための設定ファイルをインストール時の入力情報に基づいて作成したりという処理が必要になります。

 ここで改めて確認しておきましょう。本稿の目的は、実行ユーザーに応じてインターフェイスがカスタマイズされるアプリケーションを作成することです。ユーザーの情報はインストールプロセス中に記録され、アプリケーション実行時にXMLファイルから読み込まれるものとします。では前置きはこれくらいにして、VS .NETを利用してこの目的を達成する方法を見ていくことにしましょう。

会員登録無料すると、続きをお読みいただけます

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

次のページ
配置プログラムの作成

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
japan.internet.com翻訳記事連載記事一覧

もっと読む

この記事の著者

japan.internet.com(ジャパンインターネットコム)

japan.internet.com は、1999年9月にオープンした、日本初のネットビジネス専門ニュースサイト。月間2億以上のページビューを誇る米国 Jupitermedia Corporation (Nasdaq: JUPM) のニュースサイト internet.comEarthWeb.com からの最新記事を日本語に翻訳して掲載するとともに、日本独自のネットビジネス関連記事やレポートを配信。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

Anthony Arslan(Anthony Arslan)

現在、開発者としてネブラスカ州リンカンの大手金融機関に勤務するかたわら、地元の大学で「Microsoftアプリケーション」という授業を受け持っている。コンピュータ科学修士。連絡先はarslan@nefel.com

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/317 2006/02/16 13:10

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング