やはり、プログラミングは面白い・・・

最近は、ASP.NET 3.5で管理サイト、Silverlight 3でブログパーツという構成で、開発をしています。

まあ、もう一つのゲーム系ぶろぐを見てくれている方なら、すでにお分かりですが・・・
ネットゲー Phantasy Star Universe(PSU)のキャラクターを、ブログパーツで表示するものです。
表示例は、おもにPSUぶろぐにて、管理ツールはこちら

PSUはアップデートを重ねて、キャラクターのステータスが複雑になってしまいまして・・・従来はHTMLで手打ちしていたのですが・・・かなぁり面倒になってしまいました^^;
サーバー側に登録して、ブログパーツで表示できるようにと考えていたのが、ようやく実現した感じです。

今回は、勉強も兼ねていまして・・・サーバー側は、以前から勉強を進めている、ASP.NET 3.5です。

Windows Server 2003上のIIS6.0で動作させていて、基本的に各種管理画面(データの編集など)で構成しています。
画像ファイルはApp_Data内に保存していますが、各データはSQL Server 2008 Express上のデータベースに保存しています。
また、ユーザーアカウントはASP.NETのユーザー管理及びロールを使用しています。
ユーザーとロールが標準であるため、プログラミング期間の短縮ができてうれしいところです。
また、データバインドとGridView、DetailsView、ListViewコントロール、AJAX Control Toolkitも使用しています。
データバインドではちょっと難しいところでは、コードビハインド側で、SQLClientを使用して、直でDBにアクセス・・・長くなってしまうSQL文も、Visual Studioのクエリビルダを使用して作成・・・PostgreSQLのときは、PSQLAdminでクエリを何度も試しては、手で書いていたものですが・・・さすが連携が進んでるだけあって、素早くつくれますねぇ。

ブログパーツ側は、通常であれば、Flashなどで開発するのですが・・・ぶりちゃんは、Flash未経験なんですよねぇ。
(もともとネットワークのサーバー側ですから^^;)

どうせ1からやるなら、.Net Frameworkを基盤としているSilverlightで作ってみようと思い、今回はSilverlightを使用しています。

こちらも、Expression Blendを使用してタイムラインベースのアニメーションやGUIによる配置などでかなり楽に組めたと思います。
Expression Blendを使用することで、XAMLコードを意識せず、イベントハンドラは、Visual Studio上でC#でコーディングと、デザインとコードを分離した開発ができるのも強みですね。

何より、ASP.NETで組んだサーバー側で、Webサービスを作成すれば、Visual Studio上でWebサービスを検索すると、Webサービスの戻りのオブジェクト型ごと認識、そのままその型をつかってコードを書けるのが便利です。
基本、戻り値はsoapなのですが、サーバー側Webサービスも、クライアント側もsoapを全く意識しないところがすごいなぁ。
Webサービス側は、WebService属性のメソッド、クライアント側はWebServiceから派生した非同期通信開始メソッド(戻り値=通信データ)と、通信完了時のハンドラを書き、その中で通信後の処理を記載するだけで、通信部分が終わってしまうんだからすごい・・・

以前から.Net Frameworkのリモート処理を使っていて、その高度な機能に舌を巻いていましたが・・・ほんとにすごいわ。
(Serialize属性をつけたクラスのインスタンスを別プロセスでそのまま呼び出せますからねぇ)

ぶりちゃんは、もともとはC、C++をメインに使ってたのですが、最近はC#をメインに、ネイティブコードとの連携を必要とする場合に、C++/CLIを使っています。

CやC++でガシガシ書いていたころと比べると、開発期間の短縮、コード量の削減は目覚ましいものがありますねぇ。
(今回の開発は、DB設計は以前からしてましたが、実装は2週間ちょいだったり)

そして、Visual Studioデバッガの高機能、優秀さが一番大きいかな。
ASP.NETのデバッグに、Webサーバーを別途立てる必要がなく、ネイティブアプリケーションとほぼ同様にデバッグできるのが大きいです。
(ローカルに仮想サーバーを自動で立てて、そこでステップ実行も可能なんです)

まだブログパーツの追加や、アップデート後の実装などありますが・・・次は何をつくろうか・・・悩み中です。

やっぱりプログラミングは面白い^^

コメントを書く

Month List