ソフトウェア開発」カテゴリーアーカイブ

ScottさんのSilverLightTutorial4

ScottさんによるSilverLightTutorial Stage4
ようやく終わりました。

もう、いったいどれだけ時間かけてるんだ!って感じですね。
ちょっと悲しい。
でも平日は時間がなかなかとれないからしょうがない。

イイワケカコワルイ

ScottGu’ Blog
Silverlight Tutorial Part 4: Using Style Elements to Better Encapsulate Look and Feel
http://weblogs.asp.net/scottgu/pages/silverlight-tutorial-part-4-using-style-elements-to-better-encapsulate-look-and-feel.aspx

前回、Tutorial3ではいくつかフォローが足りないというか、
書いてないことがあって躓いてしまったわけですが。。。

今度は本当に罠が仕掛けられてました。。。

今回のTutorial4はコントロールに対するスタイルの指定方法ですね。
今まではコントロールのスタイルに関してはPage.xamlに直接書いていたわけですが
これをApp.xamlにApplication.Resourceとして書いておくことで
複数のコントロールに同一のスタイル指定を行う時に楽になる&変更が容易
ってわけで重要な項目です。

Tutorialにはすべての項目に関してはApp.xaml内のスタイル指定方法は
記述していません。とりあえず、Tutorial3にて指定されているプロパティを
のきなみApp.xamlへ移動してみました。

f:id:krote:20080323185645j:image

動きませんでした。
エラーメッセージからするとプロパティに対するSetter指定がいけない?
AutoGeneratedColumnsかな?

コメントを元に調べていくと、どうやらリソース側でGridに対して
AutoGeneratedColumnsプロパティを指定するといけないらしいです。
Page.xaml内で指定する分には当たり前ですが問題ありませんでした。

とりあえず、AutoGeneratedColumnsに対するSetterをコメントアウトして
再度チャレンジしてみると、

f:id:krote:20080323185644j:image

意味不明なエラーが出た。
これはさすがにわからん。
そもそもAG_E_INVALID_ARGUMENTってなんだ。。

調べてみると、カスタムコントロールを使っているときに時々起るみたい。
細かいことまでは確認できてないけど、いくつか報告があった。

このTutorialに限っていってしまうと、GridのShowGridLinesプロパティを
使用した時に発生するようだ。
とりあえず、これはあっても無くても構わないのでコメントアウトした。

この状態でなんとか実行可能になる。
ただし、AutoGeneratedColumnsプロパティ設定を外しているので結果がGridに反映されない。
しょうがないから結局はPage.xamlに直接書くことにした。

これでようやく完成。
Tutorialの誤りや補足事項としては以下のもの。

1.いつの間にかWaterMarkedTextがただのTextBoxになっている
2.GridのAutoGeneratedColumnsプロパティはPage.xamlで設定する
3.GridのShowGridLinesプロパティはApp.xamlではだめ。

たぶんこれくらい。もしかするとほかにもあったかもしれない。

ネット上の話を見ていると、もしかすると頑張れば今回エラーだったプロパティも
App.xaml内で設定できるのかもしれない。

それにしてもまだベータ技術だからしょうがないんだが、
チュートリアルがそのままではだめだとは。。。。
なかなか敷居がきっついのぅ

XAMLによる開発

日本のMicrosoftでWPFやSilverLight関連でいろいろな情報を出している
川西さんのブログが更新されていました。

川西 裕幸のブログ
新しいイテレーション型開発
http://blogs.msdn.com/hiroyuk/archive/2008/03/20/8326702.aspx

デザイナと開発者の役割分担。

実際、どこまでこの分担はちゃんとできているのだろうか。
かえるが務めている会社の開発現場にはデザイナという職種は存在しない。
みんな開発者状態になってしまっている。

デザイナがいるわけではないので、結局のところ開発者がコントロールとかも
決めたりなんだりの作業を行っているのが現状だ。

コントロールのデザインという意味においては、プロダクトの中である程度
統一されているべきなのであまり悩む必要はないのだが、
コントロールの配置だとか、色づかいだとか。
このあたりはどうしても弱くなってしまっているのを感じている。
自慢じゃないのだが、俺は絵心なんてものは持ち合わせてねぇーーーー!!

まぁ、川西さんが書いたホワイトペーパーにもある通り、
開発者としてXAMLが正しく理解できるように勉強しないといけないですね。

ちょっと川西さんの本、置いておきますね

XAMLプログラミング
http://www.amazon.co.jp/s/ref=nb_ss_gw?__mk_ja_JP=%83J%83%5E%83J%83i&url=search-alias%3Daps&field-keywords=XAML%83v%83%8D%83O%83%89%83%7E%83%93%83O

Oracle VM

ZDNetJapanのサイトにOracleのVMに関する記事が載っていました

Oracle VMの実力を試そう
http://builder.japan.zdnet.com/news/story/0,3800079086,20369653,00.htm

以前、時々参加させていただいていたOracleの無料セミナー
OracleTwirightでVMの話があって、行きたかったのですが気がついたのが遅く
すでに満席になってしまっていました。
OracleTwirightは夕方に行う無料セミナーなのでやっぱり人気なのはすぐに埋まってしまうなあぁ

Oracle Japan イベント・セミナー情報
http://www.oracle.co.jp/events/

で、早速読んでみたのですが。。。
うーむ。Oracleをアプリケーションサーバーとして使用している場合には
VMとしての使い道もあるのかもしれないけど、現在のところ私は
あくまでデータベースとしての用途でしか使っていない。
そうなると、基本的にはOracleユーザーを切り替えればいいだけの話
になりそうだなぁ~。

今回のOracleVMは、直接的にすぐに使用することはあまりないかもしれないけど
Xenのような仮想化技術はちょっと押さえておきたいところ。

VMWareやVirualPC、WindowsServer2008もVirtualization機能も含めて
これからはこういった仮想化技術。充実してきそう。
開発者としてはこれらの技術をうまく組み合わせて自分の作業を
快適にしていきたいですね!

SilverLight2 コントロールのスキン

SilverLight2のコントロールに関してちょっとネットを徘徊していたら
面白いページがあったので紹介

Silverlight 2 Control Skins
http://blogs.msdn.com/corrinab/archive/2008/03/11/silverlight-2-control-skins.aspx

コントロールに対してStyle指定を行うことで使えるようですね。
これはこれで面白いかも!

ver.1に比べるとようやくver.2になってコントロールの幅も増え、
少しずついわゆる「ストリーミング」以外の用途でも使える道が見えてきたようです。

ただ、いかにせんまだ少ない。
どのみち標準として用意されているコントロールはそのまま使うのは難しい場合が多いので
カスタマイズしていったりしないとつらいのかもしれないけど。
せめてツリービューくらいはほしいよね。

ま、物は試しってことでこのスキン、試してみようかな。
私は残念ながら絵心がないのでこういうものを作れる人は素直に”すごい!”って思う。
うーーん、うらやましいぞ

Silverlight Tutorial Part 3に潜む罠

ScottさんのTutorial。週末は別のことを少しいじっていたのでTutorialは2までしか
やってなかったのですよ。
いよいよ、Web上のサービスとやり取りをするTutorial3やってみました。

Silverlight Tutorial Part 3: Using Networking to Retrieve Data and Populate a DataGrid
http://beta.weblogs.asp.net/scottgu/pages/silverlight-tutorial-part-3-using-networking-to-retrieve-data-and-populate-a-datagrid.aspx

いや~~~~~~~~~~~~~~~~~~~~~~

正直疲れた。

今更Tutorial通りになんかやらねぇー!って人もいるかもしれませんが、
同じ道を歩く人が少なくなるように。

まず、紹介されているコードでは期待された動きをしません。
というか、まずビルドが通りません。

まず、ソリューションにXml.Linqを追加します。もしかするとXmlも追加しないと?
f:id:krote:20080319024054j:image

こんな感じ
f:id:krote:20080319024053j:image

あとは

using System.Net;
using System.Xml;
using System.Xml.Linq;

をPage.xamlに追加。
DataGridにある「Data:DataGrid」の記述は「my:DataGrid」でも問題なく動作したけど、Tutorial通りにいくのであれば

xmlns:Data=”clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Data”

をネームスペースの所に追加しなければいけない。

これで何とか動きました。

f:id:krote:20080319024611j:image

やったーーーー!!
なんか苦労した分感動

まぁ、何を隠そう一番手間取ったのは慣れないインテリセンス。
そしてそれによって追記されたカッコが邪魔でいつまでたっても
まともに動作しなかったことなんですが。。。。

だって今まで会社で使ってたのVisualStudio6なんだもん!
しょうがないじゃないかー!

ゴメンナサイ

うわ、明日起きれるかしら。。。。

SilverLight2の情報更新

SilverLightはMicrosoftが提供するRIA技術として現在バージョン1.0がリリースされている
2.0が先日めでたくβ1のリリースを迎えたわけだが
まだまだ日本語の情報は少ない。

仕事ではちょっと使えるかどうかはわからないが個人的には気になる技術なので
少しずつ独学になってしまうだろうが勉強していきたいと考えている。
注目の技術ってやつだ

そんなわけで狭い範囲ながらも多少のアンテナを張っていたのだが
「Dan Wahlin’s WebLog」が更新されていた

Dan Wahlin’s WebLog
My SilverLight Articles
http://weblogs.asp.net/dwahlin/archive/2008/03/12/my-latest-silverlight-articles.aspx

SiverLightでのアニメーション作製においての導入部分といったところだろうか。
記事が追加されていた

Silverlight XAML Primer 11: Getting Started with Animations
http://visualstudiomagazine.com/columns/article.aspx?editorialsid=2530

記事のど真ん中にIBMのバナーがあったのだが、当然のようにFlashで作成されていた。
SilverLightのアニメーションの記事なのに~って思ったが現在のWebバナーの常識を考えればしょうがないか。

SilverLightを勉強する上で参考になるBlogとしてScottさんのブログがある

ScottGu’s Blog
First Look at Using Expression Blend with Silverlight 2
http://weblogs.asp.net/scottgu/archive/2008/02/28/first-look-at-using-expression-blend-with-silverlight-2.aspx

このあたりの情報を参考に勉強していかないといけないなぁ

革新的ソフトウェア企業の作り方

Eric Sink著。青木 靖訳の「革新的ソフトウェア企業の作り方」を読んだ。内容は、Eric Sinkという人がMSDNのコラムにしるしたものを集めたのだと思う。

Eric Sink on the Business of Software 革新的ソフトウェア企業の作り方
Eric Sink エリック・シンク
翔泳社
売り上げランキング: 24226

本書はソフトウェア開発者に向けられて作られた本であるけど、実際の内容は完全なビジネス書だと思う。著者はもっと多くのソフトウェア企業が世の中にはあるべきだと考え、マイクロISVという形態を提唱している。
本書で言うところの「マイクロISV」というのは、個人がISV(Independent Software Vendor:独立系ソフトウェア会社)を立ち上げる事になる。ただ、本書で薦められているものは脱サラ起業ではなく、いわゆる”週末起業”的な話。技術者であるソフトウェア開発者がそれを行おうとした場合に何に留意するべきか。どういう方向性で考えて行くべきかが本書では指南されている。
先般、ソフトウェア開発未来会議においてクラウド・コンピューティングが話題になった。ここで個人からみた視点として、iPhoneで言うところのAppStoreを例に挙げ、個人が作成したソフトウェアを世界に向けて配信する方向性の話が聞けた。オフライン会議に参加して、ここに強く共感を覚えたのはおそらく本書を読んでいる最中だったからだろう。

かなり刺激的な内容で、私自身も小さいながらISVに努めている事から色々と学ぶ事が多い一冊だった。また、昨今のクラウドに対する考え方やMarketPlaceがこの時期に出てきたのはもはや自分のためにあるのではないかと甚だ恥ずかしい勘違いをしたくなった。
また、ソフトウェア開発者であるならばぜひ読んでいただきたい私にとってお勧めの本となった。

何を作るのか

どんなアプリケーションを作るのか。技術者の多くにとって不足しがちな商品開発におけるマーケティングの重要性があげられている。私もどちらかというとそうなのだが、”この技術を何かに使えないか?”という出発点ではなく、”この内容を実現するのにはどの技術が使えるのだろうか?”という、本来当たり前の出発点が必要になる。

「重要なのはユーザーにとってどうかということ」というのを覚えておこう。ユーザーが普通の人たちなら、彼らが.NET CLRをダウンロードしインストールする準備ができているだろうか注意して考える必要がある。普通の人々はすべてが「当たり前のように動く」ことを期待している(P.174)

そう、結局のところ技術は技術者にとっては主役なんだけどユーザにとってはどうでもいいことなんだ。Silverlightがどんなに操作性が良くても.Netの生産性が高くて製品の値段が抑えられても、インストールの手間がかかっていたのでは障壁になってしまう。これは意外と馬鹿に出来ないコストだ。言ってしまうと、我々開発者はその技術が一般化するまでは待たなければいけないことになる。ユーザーがアプリケーションを仕事として使っているのでない限り。

また、製品のマーケットの中での位置づけはどうするのか。
最近よく読む”週末起業”だとかの中では主に”その分野の先がけ・パイオニアになれ”という事がしきりに言われている。本書でのアプローチはこうだ

競合を避けることの大きな問題は、それが顧客をも避けることになるという事だ。競合の存在はお金を払っている顧客の存在を意味する。あなたのアイディアで商売をしている人が誰もいなかったとしたら、それが本当にお金になる事なのか怪しいと思うべきだ
(中略)
彼は、一番良いアプローチは「大きくて無能な」競合を見つけることだと言っている。(P.144-145)

完全に新しいマーケット。ブルーオーシャンは認知されるまでに大変大きい労力を要する。個人が週末レベルでそれを広めているのでは何年先になるのかがわからない。また、それがマーケットとして成り立つのかが不明だ。
マーケットの中で出来るだけ無能な競合を選び、そことの差別化を図る。製品の値段を決定する場合にも競合製品と見比べ、さらに価値を高めて値段を上につけて売り出す。もちろん、差別化した内容が、その価格差に適合しているのかは見極めないといけない。
だが、これらを考える基準を作る事が出来るのも競合がいて、そこのビジネスが成り立っているからであろう。やみくもにブルーオーシャンを探してニーズを無理に自分で想像していないか、確認する必要がある。
もちろん、そこにマーケットを見つけ出せるのであればブルーオーシャンを否定するものではない

より多くの失敗をしろ

この本で面白いのは、この主題を書きあげるためにEricが自らソフトを作って試してみたということだ。彼が作った”必ず勝つ方法があるソリティア”。その名も「Winnable Solitaire」だ。だが、彼の試みた今回の挑戦は結果として失敗した。

2004年9月29日の時点で、Winnable Solitaireは6本売れ、あんまりすごくない合計42ドルの収入を上げた。
支出が0だったなら、新たに得られたこの富で豪勢に買い物をするところだが、開発の際、アートワークのために379ドル使った。また、リリースして以来271ドルを広告で使っている。<中略>結論として、私の損益計算書には現在純損失626ドルと記されている。(P.50)

この失敗に対してEricは10の考えを記事にしている。「勝てる」というのは差別化要因としては弱かったのか?別な種類の製品であったなら?等々
これはよく言われる話ではあるけど、成功するためには多くの失敗をし、その多くの失敗から学ぶ必要があるという事だ。今回もEricは「これは素晴らしい失敗の仕方だと思う」、「小さな失敗で私が傷つくことは全くないと思う」等々の記事を記している。
結局のところ、多くの失敗をして学んだとしても次につなげることができなければ最終的な成功を収めることはできない。そのために致命的な失敗をしないための保険なりをかけておくべきなのだろう。
作ったばかりで売れてもいないソフトウェアに一人で惚れこんで、勢いあまって会社を辞めてしまうようなことはするべきじゃない。そこまでしなくてもマイクロISVという形態であれば十分可能性を試すことができるんだよってことだろう。

実際のところ、環境は整ってきていると思う

実際のところこのマイクロISVという事を実践するための環境は着実に整ってきているのではないだろうか。
クラウドコンピューティングは多くの開発者にサービスを提供する場を与え、AppStoreやWindowsMarketPlaceはモバイル端末に対してアプリケーションを配布する一つの入り口としての機能を持っている。
これらの場を生かして、早く、小さくともアウトプットを出していくことが大切なのだろう。エピローグに載せられた言葉をもって今日のエントリーを締めくくりたい

(君の考えは)クールなアイディアに聞こえる。実装はそう難しくないだろう。君にはそれをやる時間がある。基本的に心配すべきリスクはあまりない。このアイディアが良いものか見極めようと多くの時間を使ったところで。結局確かなことはわからないだろう。そうする代わりに、同じ時間をこのアイディアの実装に使う事も出来る。そうすればこのアイディアが良いものかどうかが本当にわかるだろう。

うーん

久しぶりに、疲れた。

いや、いつも疲れるには疲れるんだけど、今日は自分に直接ではない。
今進めているプロジェクト。キーパーソンになっているメンバーに任せている周りの進捗がおもわしくない。あまり口を出しても変に自尊心を傷つけてもあれなので、もう少し見守っていくつもりだったが、ここにきて別プロジェクトが火を吹き始め、その原因が何を隠そうこの本人であった。
今日のところはとりあえずは任せたが、明日からは本格的に立て直しにかからなければいけないだろう。それ自体はいいのだが…。
うーむ。
明日からはちょうど来る台風並みに荒れることにならなければいいのだが。いや、荒れさせてはいけない。

のだが。。。。
うーむ。

SilverLight2 インストール!

ようやく、SilverLight2をインストールしてみました!
仕事ですぐに使うわけではないのですが、面白そうだから!

VisualStudio2008でSilverLight2を作るのは今の所、以下のモジュールを使う事になる。
VisualStudioだけでも開発は出来なくは無いが、見た目をもう少しいじりたいのであれば
デザイナツールであるBlendも見逃せない。
と言うか、XAMLをゴニョゴニョするの大変

Microsoft SilverLight Tools Beta 1 for Visual Studio 2008
http://www.microsoft.com/downloads/details.aspx?FamilyId=E0BAE58E-9C0B-4090-A1DB-F134D9F095FD&displaylang=en

Microsoft Expression Blend 2.5 March 2008 Preview
http://www.microsoft.com/expression/products/download.aspx?key=blend2dot5

SilverLight Toolsのインストール

ダウンロードしてきたファイルをインストールします
f:id:krote:20080316235121j:image
ぽちっとな
f:id:krote:20080316235120j:image

インストール、結構時間が掛かりました。
私の開発環境としてはそんなに素晴らしい~~環境ではないので
時間が掛かっただけなのかもしれませんが。
VisualStudio2008のインストールもとっても時間が掛かりましたし。。。
いや~~。懐がキビシー

Blendのインストール

f:id:krote:20080316235119j:image

Blendは比較的すぐに終わったかな?
この状態でVisualStudioを立ち上げてみると。。。

f:id:krote:20080316235118j:image

あったあった!
これで一応作る事が出来ますね~。

とりあえず、先に紹介したScottGu’Blogにあったチュートリアルを色々と試してみています。
うーん。ちょっと面白いかも。

ただ、XAMLでGUIをいじるのはやっぱりめんどうだなー

f:id:krote:20080317002555j:image

せっかく上にデザインが出ているのに!!!
そこで編集したいんだぁーーー!!!

あ、おとなしくBlend使えってやつですね。そーですね。ハイ
ごめんなさい

基幹システムにパッケージの適用は?

ZDNetに日本でSaaSが普及しない理由として、各企業内での独自システムに関して記事が載っていた

日本でSaaSが普及しない理由
http://japan.zdnet.com/sp/feature/enterprise-trend/story/0,3800089971,20389127,00.htm?ref=rss

記事を読んでいると、SaaSが普及しない理由というよりは基幹システムをパッケージソフトウェアに一新する事の難しさに対する理由が書かれているように感じた。

独自のシステム

記事にもあるとおり、日本の企業。特に中小~中企業では自社システムを手組で作っている場合が多い。
欧米で主流となるトップダウンな効率化と違って、日本では効率化の手段を現場主導で行う場合が多い。そうなると、どうしてもこの記事の中にあるとおり”その企業内での最適化”という形になってしまう。ましてや終身雇用が約束された時代に作られたシステム。業界内のシステムがどうであれ、あまり関係のない話だ。そして現場手動で作り上げた”その企業にとってかゆい所に手が届く”システムだけに現場が現行システムに対して思い入れを持っている場合も少なくない。
パッケージソフトウェアのビジネスは、基本的には業界で一般的であろうモデルで作られたパッケージソフトに対し、社内の業務を改革して適応させていく形が望ましいと私は考えている。パッケージに含まれる機能が不十分であるのであれば別ではあるが。
ただ、実際の導入事例を見ているとそのほとんどがアドオン等のカスタマイズ開発を要している。企業独自の付加価値を見出すような機能を追加しているのも多いが、そもそもパッケージの原形をとどめていないくらいのカスタマイズが入る案件も中にはある。この場合、パッケージ費用よりもカスタマイズ費用のほうが多くなり、なぜこのパッケージを選定したのか疑問が出てくるくらいだ。
この一つの要因が、現行システムの存在だ。カスタマイズを、”現行システムでこう動いているから”という理由だけで行っている場合もあれば、現行システムの全容を把握していないがために、あとから追加の機能に気付き、追加カスタマイズを要する場合もある。なかなか難しいものだ。なにせ導入企業自身が、自分の欲しい機能(現行システムが保持している機能)を知らないのだから。

決して個別企業における最適化が間違いだとは思わない。事実、それによって力をつけてきた企業は日本には多いと思う。経営のスタイルとして現場手動での最適化を目指すのであれば、結局のところ現状のようにカスタマイズ前提の基幹システムは続くのだろう。逆にトップダウンで動くのが主流になるのであればパッケージに適応させるような現場の改革が行われることになる。
それ抜きにSaaSへの移行は難しいのではないだろうか

所有する事への安心感

仮にパッケージを受け入れたとしてもSaaSに踏み切りづらい理由の一つに、システムを外部に置くことに対しての危機感があると思う。企業にとっての生命線ともなるべき財務や顧客の情報を社外に持つことそのものに対する恐怖感があるのだろう。
ただでさえ個人情報保護法等が施行されたり情報流出、内部統制だの言われている中でこの問題にどう対応をするのか。そういう懸念を抱く層が多いのだと思う。たぶん、手元に持っておきたいのだろう。気持ちはわかる。

これに対してはSaaSプロバイダー側がある程度の保障や、障害児の対策を明確に提示する必要があるだろう。セキュリティ等は確かに懸念される点ではあるかもしれないが、普通に考えると自社に持つよりも”場所”としてのセキュリティはしっかりしている可能性が高いのではないだろうか。また、自社でデータセンター並みのセキュリティを整備しようとすると初期コストだけでなく維持にもかなりのコストがかかるはずだ。
以前、企業内におけるITに対するコストのそのほとんどが、現状システムの保守に対して割り当てられているという調査結果を見たことがある(確かMicrosoftのカンファレンスか何かだったと思うがうろ覚え)。自社で運用するという事はそれ相応の保守のためのコストもかかる事を忘れてはいけない。コストのほとんどが現状維持のために使われている状態は決していい状態とは思えない。
経営資源の有効活用という意味でも一考の価値があると思われる

日本でのSaaS

全ての企業において基幹システムがSaaS形態になるかというとそんなことはないと思う。
現在、日本で出始めているのはCRMや営業支援関連のパッケージがSaaS形態で提供されているように見える。これから少しずつ他のシステムにも波及していくのだろう。アプリケーションを提供しているベンダーもSaaS対応を考慮しているが、オンプレミス環境でのシステム提供がなくなるわけではない。そうなると、比較的乗り換えが容易なSaaS形態で複数のシステムを試し、決定した段階で自社保有するような形をとる場合なども出てくるのかもしれない。
いずれにしても各パッケージベンダーがどういう対応を取ってくるのか。今後が楽しみではある