|
必聴講座ご紹介 Cloud Days Tokyo 2012 エムオーテックス Cloud Days Tokyo 2012 ヴイエムウェア Cloud Days Osaka 2012 アマゾン データ サービス ジャパン |
【事例】.NETと独自ツールを使い
|
| ||
| ||
|
開発期間は短かったが,当初の目的通り見栄えをよくできた。ブルーリボン・ドットコムの商品表示画面は,一度に8個の商品を表示するようになっている(図1[拡大表示])。そのカテゴリの商品が8個よりも多い場合には,8個単位で横にスムーズ・スクロールする。しかもスクロールし始めは加速しスクロールが終わるときにはだんだん減速するよう,表現力にもこだわった。この処理は,サーバー・サイドで動作するASP.NETとクライアント・サイドで動作するJavaScriptの組み合わせで実現した。
構築した新システムの構成は,OSがWindows 2000 Server。その上でASP.NETをホスティングするためのInternet Information Services(IIS) 5.0と,データベース管理システムのSQL Server 2000 Standard Editionを動かしている(図2[拡大表示])。
実は,Windows 2000 Server+IIS 5.0,SQL Server 2000というシステム構成だけを見ると,旧システムと変わらない。ただ,新システムにASP.NETを選んだのは,旧システムがASP.NETで構築されていたからという理由だけではなく,生産性の高さ,高機能な開発ツールが大きな理由だった。
もちろんゼロから作ったのでは,いくら生産性の高い.NETの開発環境といえども,電子決済や商品管理,販売ステータス管理などの仕組みを組み込んだシステムを,2週間で完成させるのは不可能だ。それを可能にしたのは,エコス独自の開発支援ツール「M3」である。
M3は,データベースおよびデータ操作,入力項目や入力規則などを記述したアプリケーション仕様書を基に,C#(ASP.NET)またはJava(J2EE+Struts*)のソース・コードを生成するコード・ジェネレータと,文字列操作,ファイル操作,ユーザー・インターフェース関連,セキュリティ,データベース接続,入力データのチェックといった機能を提供するライブラリからなる(図3[拡大表示])。これを使うことで,コーディング量を半分近くにまで削減できるという。
例えばコード・ジェネレータを使うと,Excel形式のデータベース定義書から,本来開発者がコーディングする面倒なデータ・アクセス処理を実装したクラスが自動生成される。このクラスにはデータの検証処理なども実装されており,開発者はSaveメソッドを呼び出すコードを書くだけで,データベースにデータを正しく格納できる。データベース管理システムの違いによるデータベースへの接続方法やSQLクエリーの差異なども,M3ライブラリによって抽象化されているので,開発途中のデータベース項目の変更にも臨機応変に対応できる。
M3を使うと,同じ仕様書を基にJavaのソース・コードも生成できる。だが,今回の案件ではC#とASP.NETの組み合わせを選んだ。その理由は,この案件に加えて携帯電話向けサイトの構築計画があり,それをMobile Internet Toolkit*を使って開発しようとしていたためだ。
また,ASP.NETではコード・ビハインドと呼ぶ,Webアプリケーションのユーザー・インターフェースを表現するHTML部分と,ロジック部分を記述するプログラム・コードを,異なるファイルに分離して記述する方式を採れる。これも生産性向上に役立ち,ユーザー・インターフェースをモジュール化できるユーザー・コントロールも開発に大きく役立った。ちなみに携帯電話向けサイトは,後日,3日間で完成させたという。
新システムの開発を通して,Visual Studio .NETに対する不満がなかったわけではない。ブルーリボンのようなオンライン通販サイトでは,デザイナが作成したデザイン(ユーザー・インターフェース)を基にWebアプリケーションを作成するのが一般的だ。エコスでも,まずデザイナがデザインしたユーザー・インターフェースを基に,プログラマがコードを追加してWebアプリケーションに仕立てている。
ASP.NETではコード・ビハインドによって,HTML部分とプログラム部分を分離できるようになっている。とはいえ,完全に分離できるわけではない。例えば,HTML部分にも,プログラムに必要なコントロールのタグが記述される。一度コードを組み込んだものを再びデザイナに戻してデザインし直すようなことはめったにないが,デザイナは一般的なHTMLにはないコントロールのタグを理解できない場合が多い。
また,Visual Studio .NETのHTMLデザイナ機能にも不満をもらしていた。せっかく記述したタグがなくなってしまうことがあるという。そのため,大まかにコントロールを配置するときだけHTMLデザイナ機能を使い,その後はHTMLのコード編集画面で直接HTMLを記述することがほとんどだったという。