SilverlightとWindows Azureで業務アプリを作ってみる

はじめに

2009/06/21

Silverlightはカッコよさが表に出るけど、プログラミングモデルが違和感ないんで、むしろ単純にブラウザベースのアプリ開発がしやすい、という面での注目があってもいいと思う。
カッコよさとかおいといて、配布問題の低減とか、クラウドをプラットフォームにしたASPビジネスモデルの可能性とか、そういうところに興味の主眼があるソフトウェア開発者もきっといるはず。
ということで、ちょっと実験的に、Webでカッコいいことしてる人たちとは一線を画す(?)泥臭い連載企画をやってみることにしました。
目的としては、業務アプリにSilverlightやAzureは使えるのか?無理やり使ったらどうなるのか?を検証することにあります。
そのほか、WCFやWWFあたりの技術もむりやりでも使ってみたい。
私自身、SilverlightやAzureに詳しいわけではないので、Silverlightならではのカッコいいアプリにはなりません。
むしろ画面や体験(操作性)は、「何でこれでSilverlight?」みたいな、今までの味も素っ気もない業務アプリとかわらねーじゃん、というようなことになると予想してますが、よろしければお付き合いください。
あと、ここでは、SilverlightやAzureのコーディング手法とか、TIPSとかの紹介はあまり重視しません。(MSDNでの宣教師の方々のブログなどをご参照ください)
「こうやってはじめるSilverlight」、とか「Windows Azureで開発するまでの準備」などは、検索するといろいろ手法が出てくるので、ぜひそちらをご参照ください。
そこまではできている、ということで、はじめます。

ご意見・ご要望はメールか
伝言板(SPAM対策ができてたので再開してます)、mixiのコメントなどでどうぞ。

思考のダダ漏れをしているので、文体が丁寧語だったり口語だったりしていますが、ご容赦ください。

このコンテンツは、(というかこのサイトのどのコンテンツもそうですが)、筆者の個人的な考えや趣味のみを反映しており、筆者の勤務先とは関係ないことを念のために書いておきます。
勤務先ではこんなことやってるよ、とかではありません。念のため。

業務アプリケーションの要件(1)

2009/06/21

業務アプリケーション、ここでは対話型の業務アプリケーションを想定していますが、その要件の典型として、以下のものがあります。

データの…だけじゃん。ええ。業務アプリケーションというのは(特に事務処理の対話型のアプリケーションは)おおむねそんなものです。
もちろん実際にはこの裏に、追加・訂正されたデータにしたがって動作する処理があったりするわけですが。おや?このへんの考えWWF使えそうなので覚えていたら後で使いましょう。
必要な操作は、アプリケーションによってさまざまですが、おおむね、 まあこんなあたりがあればいいわけです。
本来ならSilverlightなら、これらの操作や体験はとても重要で、一工夫もふた工夫もしてユーザーを感動させたいところですが、この企画ではやるにしても後回し。

業務アプリケーションの要件(2)

2009/06/21

これ以外に、非機能要件というんでしょうか、だいたいこんなのがあります。本当のお仕事だともっと厳しいし、たくさんあるんですが、あんまり厳しくすると(私が)泣きそうになるので、まあ、ざっくりと。

本当は起動ン秒以内、検索ンミリ秒以内、とかいろいろ決まってます。あとで計るとして、上の「データの〜」でそれぞれどのくらいの性能が出るのか確認しましょう。
もっというと「何件登録したときでの性能」とか「最大件数」とかあるんですが、まあ適当に決めていくことにします。(実際の仕事ではまじめに検討しましょう) 業務アプリはお仕事で使うので、構成している要素が壊れたときの運用が問題になります。
作るのは画面はSilverlightなのでWebアプリですが、お仕事で使う場合は、「ネットワーク切れたから今日は使えません」てわけにはいきません。ただ、「ネットワーク切れてもまったく同じように」だと莫大なコストがかかる傾向があるんで、「ネットワークが切れたときは、これだけができます」みたいなこと(縮退運用)を考えるわけですね。
あと、たとえばハードディスクが壊れたとき、どこまでデータが救えるのか、再び使えるようになるまでにどのくらいかかるのか、とかも考えます。
今回は、サーバにAzureを使うので、とりあえずバックアップはMicrosoftがんばれということで、ネットワーク切断やサーバダウン時の縮退運用だけを考えましょう。
ただ、この「縮退運用」、必ずしもシステム/アプリケーション側の対処が必要とは限りません。
たとえば、手作業で伝票を書いて、電卓で計算して、ネットワークが復旧したらあとで入力する、とかもできるわけですな。
まあ要するに、個人的に、Silverlight3のオフライン対応機能を使ってみたいんです。
セキュリティといってもたくさんあるんですが、たとえばPC盗まれて顧客情報全部流出しました、とかだとノートPCなんか怖くて使えないわけでして。
今回はAzureなので、基本的にデータはクラウドの彼方。じゃあPC盗まれても大丈夫じゃね?
いや、そこから自由にAzureのそのシステムにつなげるようだとクラウドの彼方のデータをぜーんぶ見られますねー。
というわけで、せめて本人確認的な何かはつけたほうがいいでしょうねえ。
Live IDでなんかできるかな?

開発環境

2009/06/21

今回の私の開発環境は、クライアントOSはWindows 7 RC ビルド7100。Visual Studio 2010 beta (日本語版が一般公開されました)。
Silverlight 3 betaのSDK、Expression Blend 3のpreview。そしてWindows AzureのSDKをインストールしています。
ベータ版とか評価版なので、なんと今のところ全部無料。すばらしい。全部無料。すばらしい。大事なことなので2回言いました。
(ベータじゃなくてExpressシリーズでもできるはず。ただ、Expression Blendだけは、継続使用にはお金が必要ですな)

住所録アプリケーション

2009/06/21

とりあえず、例として実装を考えたのは、「住所録」です。
え。がっかりですか?
いやこれ、データの追加・訂正・削除・検索・読取、そして一覧画面とか詳細画面とか、業務アプリの基本を一通り使う、新しいプラットフォームでできることを試すにはうってつけのアプリでして。
しかも大体の機能は多くの人が連想するので、あまりプログラムの説明が要らないんですよね。

ということで、次回は、住所録アプリの(なんちゃって)設計、というのをやってみます。
そんなことよりさっさと実装してみたいのは山々なんですが、ちょっと我慢。一応慣れないなりにいろいろ考えて作って見ましょう。
ためしに実装、であれば、小さい実験プログラムを都度作って調べます。


このコンテンツのトップ Top of Site

Copyright (c) 2009 Takao Tamura