SilverLight」カテゴリーアーカイブ

Yahoo!が!

ヤフーがSilverlight採用、2008年6月にサービス開始
http://itpro.nikkeibp.co.jp/article/NEWS/20080409/298468/

MicrosoftとアメリカYahooでは買収を巡ってあれこれしているみたいですが、日本のYahooはマイクロソフトと仲良くしていくのかな?SilverLightをYahoo動画等に使う形でのマルチプラットフォームをYahoo!Japanでは考えたようです。そう考えると、日本単体で考えればSilverLightの普及率は一気に上がるはず。

でも、これも結局は動画って使い方なんだよね。どこかもう少しアプリケーションで使わないかな~

SilverLightでのUnitTest

SilverLightでのUnitTestが紹介されている記事があった

Jeff Wilcox
Unit Testing with Silverlight 2
http://www.jeff.wilcox.name/2008/03/31/silverlight2-unit-testing/

Video walkthrough of the Silverlight 2 control unit tests
http://www.jeff.wilcox.name/2008/03/20/vid-silverlight-control-ut/

SilverLightに対してのテストを行うにはどうしたらいいのだろうかな~って思っていたところなのでナイスタイミングでありますよ!VideoのほうではおそらくMixで発表された内容だとは思うのですが、実際にSilverLightのUnitTestが動いているのが見れてなかなか面白い。英語は苦手だけど。。。

ソフトウェアを取り巻くテストの手法というのはここのところあれこれ出てきて、正直私はまだまだ勉強が足りない。会社の現場では、それらの潮流に全くと言っていいほど乗れてないのでなおさら取り残されている感じがする。

UnitTestをこういう形で提供されるのであれば、この周りを根つめて勉強してみるのもありなのかもしれない。開発手法もテスト手法も、知れば知るほど自分の無知さに気がつくので面白いですね。それだけまだ私は知ることができるのだ。頑張らねばいけない。

SilverLight Tutorial アップデート

ScottさんのSilverLightチュートリアルが更新されていました。

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

今までは基本的にVisualStudio2008を使用してのSilverLight製作でした。つまりUIのデザインも基本的にはVisualStudio上でXAMLを直接修正する形でしかなかったのです。WPFではできるVisualStudioのプレビューを使った修正もできない現在の状態ではつらいですね。

というわけなのか、Blendを使ってのチュートリアルがトップにのっかっていました。

それにしてもこのチャットの文字。。。

f:id:krote:20080401231814j:image

すごい字体だな。。。これは。

た、たのしそう

Silverlight Tutorial Part 6: Using User Controls to Implement Master/Detail Scenarios

ScottさんのTutorialもようやく6番目まできました。

Silverlight Tutorial Part 6: Using User Controls to Implement Master/Detail Scenarios
http://weblogs.asp.net/scottgu/pages/silverlight-tutorial-part-6-using-user-controls-to-implement-master-detail-scenarios.aspx

今回はちょっとしたダイアログを出して詳細を表示するんですね。よくよく見ていると、ダイアログを出すというよりは表面にあらかじめパネルを用意しておいて、それを非表示。リストを選択したときだけ表示する。。。というやり方のようですが。うーん、やっぱりダイアログみたいなものはウェブではウィンドウを別に出すんだろうかな~。とりあえず、気を取り直してやってみました。

はい、だんだんページに露出するソースの量が減っていっている上にそのままではいかないです。

まず、Page.xamlに追加したStoryDetailsViewを認識させるためにネームスペースを追加します。

xmlns:Digg="clr-namespace:DiggSample;assembly=DiggSample"

そしてDiggSampleクラスのメンバUriの型をstring→Uriへ変えて、Page.xaml.csの

HrefLink = ((string)story.Attribute("link")).Trim(),
を
HrefLink = new Uri((string)story.Attribute("link")),

へ、変更。

ちなみに、私は落としてきたサンプルを見ながらApp.xaml内のスタイルは作ってしまいました。とりあえず、ぺたぺたと

<Style x:Key="DiggPanel" TargetType="StackPanel">
<Setter Property="Margin" Value="10" />
<Setter Property="Width" Value="55" />
<Setter Property="Height" Value="55" />
<Setter Property="Background">
<Setter.Value>
<LinearGradientBrush EndPoint="0,5,1" StartPoint="0,5,0" >
<GradientStop Color="#FFFFF098" />
<GradientStop Color="#FFFFF9D4" Offset="1" />
</LinearGradientBrush>
</Setter.Value>
</Setter>
</Style>
<Style x:Key="NumDigsBlock" TargetType="TextBlock">
<Setter Property="HorizontalAlignment" Value="Center" />
<Setter Property="FontSize" Value="18" />
<Setter Property="FontWeight" Value="Bold" />
<Setter Property="Foreground" Value="DarkSlateGray" />
</Style>
<Style x:Key="NumDigsSubBlock" TargetType="TextBlock">
<Setter Property="HorizontalAlignment" Value="Center" />
<Setter Property="FontSize" Value="12" />
<Setter Property="Foreground" Value="DarkSlateGray" />
</Style>
<Style x:Key="ThumbnailPreview" TargetType="Image">
<Setter Property="Margin" Value="7,7,5,5" />
<Setter Property="Height" Value="55" />
</Style>
<Style x:Key="TitleBlock" TargetType="TextBlock">
<Setter Property="FontFamily" Value="Trebuchet MS" />
<Setter Property="TextAlignment" Value="Left" />
<Setter Property="VerticalAlignment" Value="Center" />
</Style>
<Style x:Key="CloseButton" TargetType="Button">
<Setter Property="HorizontalAlignment" Value="Right"/>
<Setter Property="Width" Value="50" />
<Setter Property="Height" Value="25" />
</Style>
<Style x:Key="TitleLink" TargetType="HyperlinkButton">
<Setter Property="FontFamily" Value="Trebuchet MS"/>
<Setter Property="TextWrapping" Value="Wrap"/>
<Setter Property="HorizontalAlignment" Value="Left"/>
<Setter Property="FontSize" Value="28"/>
<Setter Property="Foreground" Value="White"/>
<Setter Property="Width" Value="500"/>
<Setter Property="Grid.Row" Value="0"/>
<Setter Property="Grid.Column" Value="1"/>
<Setter Property="Grid.ColumnSpan" Value="2"/>
</Style>
<Style x:Key="DiggPanelDetail" TargetType="StackPanel">
<Setter Property="Margin" Value="10"/>
<Setter Property="Width" Value="55"/>
<Setter Property="Height" Value="55"/>
<Setter Property="Background">
<Setter.Value>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#FFFFF098"/>
<GradientStop Color="#FFFFF9D4" Offset="1"/>
</LinearGradientBrush>
</Setter.Value>
</Setter>
<Setter Property="Grid.Row" Value="1"/>
<Setter Property="Grid.Column" Value="0"/>
<Setter Property="HorizontalAlignment" Value="Center"/>
<Setter Property="VerticalAlignment" Value="Top"/>
</Style>
<Style x:Key="DescriptionBlock" TargetType="TextBlock">
<Setter Property="FontFamily" Value="Trebuchet MS"/>
<Setter Property="TextWrapping" Value="Wrap"/>
<Setter Property="HorizontalAlignment" Value="Left"/>
<Setter Property="Foreground" Value="white"/>
<Setter Property="Width" Value="380"/>
<Setter Property="Grid.Row" Value="1"/>
<Setter Property="Grid.Column" Value="1"/>
</Style>
<Style x:Key="DetailsThumbNailPreview" TargetType="Image">
<Setter Property="Margin" Value="10, 0, 10, 0"/>
<Setter Property="Width" Value="100"/>
<Setter Property="Grid.Row" Value="1"/>
<Setter Property="Grid.Column" Value="2"/>
</Style>
<Style x:Key="PosterBlock" TargetType="TextBlock">
<Setter Property="Foreground" Value="white"/>
<Setter Property="FontFamily" Value="Trebuchet MS"/>
<Setter Property="HorizontalAlignment" Value="Left"/>
</Style>
<Style x:Key="SubmitDetails" TargetType="StackPanel">
<Setter Property="Grid.Row" Value="2"/>
<Setter Property="Grid.Column" Value="1"/>
<Setter Property="Orientation" Value="Horizontal"/>
</Style>

変更点そのものはたいしてなかったのですが、Uriの所に気付かず、画面が真っ白の状態になってしまって時間をロスしてしまいました。うーむ。

スタイル指定は便利なようで、これくらいのデモを作る分には少し面倒だなぁ。

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

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

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

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使えってやつですね。そーですね。ハイ
ごめんなさい