HOME > ソフテックだより > 第145号(2011年9月7日発行) 技術レポート「ASP.NETによるWebアプリケーション開発」

「ソフテックだより」では、ソフトウェア開発に関する情報や開発現場における社員の取り組みなどを定期的にお知らせしています。
さまざまなテーマを取り上げていますので、他のソフテックだよりも、ぜひご覧下さい。

ソフテックだより(発行日順)のページへ
ソフテックだより 技術レポート(技術分野別)のページへ
ソフテックだより 現場の声(シーン別)のページへ


ソフテックだより 第145号(2011年9月7日発行)
技術レポート

「ASP.NETによるWebアプリケーション開発」

1. はじめに

最近はブラウザで動作するWebアプリケーションを目にする機会が増えてきています。
今回は、ASP.NETを使用したWebアプリケーションの開発事例について紹介させていただきます。

2. ASP.NET開発の概要

2-1. Webアプリケーションの仕組み

Webアプリケーションとは、Webブラウザからの要求に対して、HTMLデータを動的生成するプログラムのことです。(図1参照)

Webアプリケーションの仕組み
図1. Webアプリケーションの仕組み

Webアプリケーションの利点は以下の点にあります。

  • クライアントPCを選ばない
    クライアントPCにはWebブラウザだけがインストールされていればよいため、クライアントPCのセットアップ等の手間は必要ありません。
  • HTMLデータを動的生成できる
    例えば、HTMLの表形式でデータを表示していたとすると、通常のHTMLの場合は、表の行分のデータをHTMLに記載しなければいけませんが、Webアプリケーションであればデータの個数分の行の表を作成することが可能になります。
    そのため、Webページ修正の手間を減らすことができます。

2-2. ASP.NET開発の特徴

ASPは、「Active Server Pages」の略で、マイクロソフトが開発したウェブページを動的に作成する技術です。ASP.NETは、その後継技術で.NET Framework対応など大幅な拡張が行われています。
他にWebアプリケーション開発に使われる技術として、CGIやJava サーブレットなどがあります。それらの技術と比べて、ASP.NET開発には以下のような特徴があります。

  • .NET Frameworkの資産が使えるため、開発コストを低くすることができます。
  • Microsoft社の技術・製品のみでシステム開発・構築ができます。
  • Internet Explorerとの相性は良いですが、他のブラウザで表示できない機能があるので、開発時に注意する必要があります。

2-3. ASP.NET開発の流れ

1. Visual Studioのプロジェクト準備

ASP.NETの開発を行う場合、Visual Studio から新規プロジェクトを作成します。
この際、アプリケーションの種類は、「ASP.NET Webアプリケーション」を選択します。(図2参照)
すると、プロジェクトの雛形が作成されますので、そのまま開発を進めることができます。

新規プロジェクトの作成画面
図2. 新規プロジェクトの作成画面

2. デバッグ

アプリケーションのデバッグ実行も可能です。ブレークポイントを設定しておけば、Webからその処理が呼ばれたときに、ブレークポイントの位置でプログラムが停止します。
あとは通常のデバッガと同じようにデバッグをすることができます。

3. アプリケーションの実行

アプリケーションの発行処理により、Webサーバがプログラムの実行に必要なファイル一式を出力することができます。

IIS(Internet Information Service:インターネットインフォメーションサービス)で、アプリケーションの追加を行い、IISにプログラムの実行場所(URL)を登録します。後はクライアントPCのブラウザからIISで登録したURLにアクセスすれば、Webアプリケーションを使用することができます。
※64bit OSの運用環境で、32bitアプリケーションを動作させたい場合は、IISの設定で、32bitアプリケーションを有効にする必要があります。

3. ASP.NET開発事例

3-1. ファイルダウンロードシステム概要

ファイルダウンロードシステム概要
図3. ファイルダウンロードシステム概要

最近、私がかかわりましたファイルダウンロードシステムについて説明致します。

[1]. リスト更新要求

Webブラウザ上からリスト更新条件(日付指定、ダウンロード済みかどうか)を行い、Webサーバへリスト更新要求を行います。

[2]. リスト更新応答

取得したファイルリストを基に、HTMLデータを作成し、応答としてWebブラウザに送信します。その結果、ファイルリストがWebブラウザで表示されます。

[3]. リスト更新応答

取得したファイルリストを基に、HTMLデータを作成し、応答としてWebブラウザに送信します。その結果、ファイルリストがWebブラウザで表示されます。

[4]. ダウンロード要求

ファイルリストからダウンロードしたい項目をチェックボックスで選択し、Webサーバへダウンロード要求を行います。

[5]. データ取得

選択したダウンロード項目に対し、SQL文を生成し、必要なデータを取得します。

[6]. データ更新

取得したデータをダウンロード済データとして、更新します。

[7]. ダウンロード応答

取得したデータを基に、ダウンロードファイルのデータを作成し、応答としてWebブラウザに送信します。その結果、Webブラウザ側にファイルのダウンロードダイアログが表示されますので、そこで、「開く」を押すと、ダウンロードしたファイルを確認することができます。

3-2. 開発環境

今回の開発環境は以下の前提とします。

  • Windows Server 2008 Standard(32bit)
  • Microsoft Visual Studio 2010(C#)
  • .NET Framework3.5
  • IIS 7.0
  • Microsoft SQL Server 2008
通常、Microsoft Visual Studio 2010の.NET Frameworkのバージョンは4.0ですが、今回は以下の理由により3.5を使用しています。
  • IISの標準の.NET Frameworkのバージョンは3.5であるため。(.NET Framework4.0に対応は可能)
  • 別案件で.NET Framework3.5の開発実績(Visual Studio 2008使用)があったため。

3-3. 開発で苦労したところ

1. Visual Studioのクエリビルダが複雑なSQL文に対応していない。

SQLServerでは問題なく使用できるSQL文でも、Visual Studioのクエリビルダで使用できないものがありました。具体的には、CONVERTなどがSQL文に使われている場合、Visual Studioのクエリビルダがエラーで強制終了してしまいます。ただし、SQL文の構文が間違っているわけではないので、クエリビルダを使用しないで、直接ソースコードにSQL文を埋め込む場合は、問題なく動作します。

2. ダウンロードした項目が、Webブラウザ上にダウンロードされていないように表示されてしまう。

たとえば、3-1の[4]の段階でまだダウンロードしていない項目を選択し、ダウンロードしたとします。
その場合、3-1の[6]の段階でダウンロード済みと状態が変わっておりますが、Webブラウザの画面上は、3-1の[4]の画面状態から変わらないため、ダウンロードされてない表示の状態のままとなってしまいます。

Webアプリケーションにおいて、要求と応答は1対1の関係にあり、3-1の[7]でダウンロード応答を受け取った時に画面の更新を同時に行うことはできません。そこで、ダウンロード要求後、一定時間経ったら、リスト更新要求を出すようにすることで、問題を回避しました。

4. おわりに

今回は、ASP.NET開発の概要とその開発事例についてご紹介させていただきました。
拙い文章ですが、お読みくださりありがとうございました。本稿が皆様の参考になれば、幸いです。

(K.S.)


関連ページへのリンク

関連するソフテックだより

ページTOPへ