なか日記

一度きりの人生、楽しく生きよう。

Silverlightを囲む会 in大阪 #14に参加

Silverlightを囲む会in大阪#14に参加してきました。
前回参加したのは「Android/XPERIA developer meeting Osaka」なので、実に4ヶ月ぶりなのは気にしないw
置いて行かれないか心配で、1週間前に慌てて「エッセンシャルSilverlight3」を買ったりしたし。まぁ、2章までしか読めませんでしたけどね。

Silverlightを囲む会 in大阪 #14

  • テーマ:SilverlightXAMLを知る
  • 対象者:XAML(ザムル)をみっちりと勉強したいエンジニア
  • 日時:2010/6/26(土) 13:30〜18:00
  • 会場:http://www.kronos-jp.net/access.html
    〒532-0011
    大阪市淀川区西中島4丁目13番22号 新大阪淀川ビル7階 クロノス研修ルーム
    TEL:06-4806-3470
  • 参加費:800円 (学生さんは無料)

ponta3rdさんにもお会いできたし、有意義な1日でした。

以下、セッションの内容を簡単にまとめるというかキーワードを羅列するというかします。勘違いも含まれてるかもしれないのでご注意下さい。変なこと書いてたら遠慮無く突っ込みお願いします。趣旨としては、キーワードを挙げておいて、後から勉強した時に「あぁ、あのことか」と思えればいいかなぁと。

Silverlightの基本の話(蜜葉たん

セッション資料はこちら:2010-06-26 - Atelier:Mitsuba
Silverlightって何?って所から、生い立ちや過去の経緯などを簡単に説明して頂きました。予習*1のおかげで、この辺は「うんうんそうそう」って感じ。Silverlightも3以上のランタイムをインストールしてる人が全体の75%位になってきて、もう普及率を気にする必要もあまりないのかなとか。

それより、ちょっとボールペンでメモろうとしたところ、3文字くらい書いたら徐々にインクが…出かける時に慌ててたせいで、ボールペンを1本しか持ってきてませんでした…「Twitter / nakaji: ボールペンが死亡したorz
でも、しばらくすると、インクが出てきて書ける。でもまた数文字でかすれる。の繰り返し…
でも諦めちゃダメよと。書けなくても跡は付くじゃない。帰ってから鉛筆でこすれば、書いた文字が浮き上がるでしょ!と自分を奮い立たせながらメモることにしました。

.NET開発者のためのXAML入門(もり ひろゆきさん

XAMLって

C#等の手続き型言語とは異なり、XAMLは宣言型の言語であり、問題そのもの(UI)を記述する。*2
XAMLSilverlight以外にも、WPF/XPS/WCF等々で使用されるが、それぞれに多少方言があるので注意が必要。

XML文書とは

XAMLXMLを元にしているということで、XMLってこういう書き方をするんですよっていう説明。

名前空間の宣言方法
  • 宣言方法
    • URI形式
      存在しないURIでもいいよ
    • clr-namespace
      assemblyを指定する場合は「.dll」を省いて書く*3
  • WPFではXmlDefinitionでCLR名前空間をまとめることができる。←Silverlight4から出来るようになってるらしい
プロパティ設定
  • 設定方法
    • 属性 … プリミティブ型やメソッド名(文字列で表現出来るもの)を書く
    • 要素 … オブジェクトを書く
  • 型コンバータ … 属性や要素に書かれた文字列をオブジェクトに変換する
    • TypeConverter
    • TypeConverterAttribute
      • CanConvertFrom,CanConvertTo … 文字列を変換出来るかどうかチェックする(戻り値はbool型)
      • ConvertFrom,ConvertTo … 文字列を変換する
コードビハインド

XAMLから、パーシャルクラスが自動生成されて、コードビハインドと結合されて実行ファイルができあがる。

プロパティ
  • Silverlightの理念:メソッドやイベントよりはプロパティを使用する
  • 問題点
    • 通知
    • (失念)
  • 解決策
    • 依存関係プロパティ
    • 添付プロパティ
依存関係プロパティ*4
  • プロパティの値を管理するメカニズム
  • DependencyObjectを継承
  • Registerメソッドで検証などを強制できる
添付プロパティ*5
  • 子要素から親要素にイベントを通知
    • パネルとその上に乗ってるコントロールの関係
  • RegisterAttachedメソッド
ルーティングイベント
  • Window→StackPanel→Button
  • 子から親にイベントが引き継がれる(といういうのかな?)

知っていると便利(かも)な Silverlight の小技紹介(インフラジスティックス 池原さん

セッション資料はこちら:
NetAdvantage製品に関する問い合わせの中から、ありがちな質問をいくつか紹介して頂きました。
以下、タイトルが関西弁ですが実際のセッションではちゃんとしたタイトルでした。メモり切れてないので、あくまでニュアンスということで…

ヘルプからXAMLをコピペしたけど、動かへんでー

ちゃんと名前空間(xmlns)や参照設定を追加してますか?という話に始まって、名前空間のマッピングが大事よねっていう内容でした。
コンポーネントのバージョンアップに伴って、アセンブリ名がころころ変わってしまうと利用している側は名前空間の宣言を毎回変えないといけないから大変です。っていうか、めんどくさくてやってらんねー。
ということで、もりさんの話の中でも出てきましたが、提供するアセンブリには AssemblyInfo に XmlDefinition 使って名前空間エイリアスを付けておきましょうということ。
以下のような感じですね。

日本語対応のハズなのに、日本語のメニューがでてけぇへんでー

プロジェクトをVisual Studioから作成した場合は問題無いのですが、Blendで作るとが空白になったり、タグすら作成されないらしい。その結果、「日本語?なにそれ?」な状態になって、デフォルト(?)の英語にローカライズされてしまうみたい。

コントロールのカスタマイズしたいねんけど

あー、難しいですよねー(^^;
XAMLのビジュアルツリー定義に関する知識が無いと難しいのですが、それを理解するために役立つルールを紹介して頂きました。
Expression Blend : テンプレートコピー機能を使う
Visual Studio : VisualTreeHelperを使う
※VisualTreeHelperを使ったサンプルはかずきさん「[C#][WPF]WPFで表示してるものの中身を見たい!」が紹介されてますね。
もっと楽にいろいろ出来るツールとして、Silverlight SPY3*6というものがあるそうです。
これはすごかった!ビジュアルツリーを表示できるだけでなく、その場でプロパティを変えて表示や見た目を変えることが出来るみたいです。お値段は個人ライセンスで69ユーロ(今、1ユーロ110円位なので7,600円くらい)、商用ライセンスでも99ユーロと結構お買い得。さっそく買ってキャッキャウフフしてる人もいるかもしれませんねw
WPFはSNOOPというSilverlight SPYと同じようなツールが無料であるらしいです。

HLSLに関する話(丸山さん)

「High-Level Shader Language:上位レベルシェーダ言語」*7らしいのですが、初耳で自分にはさっぱり…
Silverlightで画像処理掛ける際つかうエフェクトを作成できるらしい。ツールはShazzamというのを使って、見た目はC言語ライクな感じで書いていくようです。数学の知識が無いとお話にならない雰囲気でした…*8

勉強会開催の案内([きよくらさん

OITEC - Okayama IT Engineers Community来週7月5日に勉強会やりますよっていう案内。
SilverlightSquareの遥佐保さんも話されるそうです。

ディスカッション

テーブル毎に何でもいいので話しましょうよというコーナー。

  • 仕事でSilverlight使ってる?
    • 2の頃に提案したけど、ダメだった
    • 昔話があったけど、当時の普及率が低くてFlashに負けた
    • これから話がありそうなので勉強してる
  • 3とか4になってコントロールも増えたし、業務アプリも作りやすそうになってるよね
  • Silverlightとサーバサイドの守備範囲がよくわからん
    • 特に指針とか出てないよね
  • SilverlightのデモではUIカッコイイよねー
    • 自分ではなかなかCoolなUIって考えつかないよねー(そうそう)
    • やっぱりデザイナーさんとかいれば違うのかもね

などなど

お楽しみ

プレゼント争奪じゃんけん大会

インフラジスティックス 池原さんから、

のライセンスをそれぞれ1名に。そのほか

  • インフラジスティックス Tシャツ15枚

もり ひろゆきさんから

  • Microsoftのマウスを1名に
  • Windows Server Systemのロゴ入り目覚まし時計(当たり付き*9)を11名に

ライセンス争奪じゃんけんにはやっぱり負けました。まぁ、自分がゲットしても今のところ宝の持ち腐れになりそうなので悔しくないですw
自分は目覚まし時計をもらって帰りました。
家に帰って電池をセットしてみると、液晶がまともに表示されません。もりさんが言ってたように、外れだったようですw

お知らせ

次回は8月3日(火)の予定だそうです。

振り返り

Keep
  • 定期的に勉強会に参加して、刺激をもらって帰る
  • 多少なりとも予習をして行く
Problem
  • ペンは予備も持っていく
  • 会場が寒かったので、服をちゃんと着ていく
Try
  • 積極的に話せよ>俺
  • 懇親会に参加しよう

所感

事前に多少でも予習しておいたので完全に置いて行かれる状況は免れた気がしてたけど、いざまとめようとすると全然わかってなかったわ><
やっぱみんなスゲェよ。モチぺーションとか、知識・経験とか。自分ももっと勉強しなきゃねーと思ったのはいつもと同じかな。

語るだけの知識はない、質問できるほど勉強してないとかで「あー、そうそう」みたいな話が出来ないのはねぇ。と思ってたけど、別に技術的な話じゃなくていいじゃん。Silverlightを勉強しようと思ったきっかけは?とかね。気がついたのは終わってからだったけど。

今更かもしれないが、仕事で.Netに関する技術に関わりたいとそう思った。今の職場じゃ無理っぽいんだよなぁ〜

それは置いといてちゃんと勉強しよう!と思ったら、VisualStudio2010のアップグレード版が安くなってた。先週は6万位してたのに。ありがとうAmazonさん。

Microsoft Visual Studio 2010 Professional アップグレード

Microsoft Visual Studio 2010 Professional アップグレード

*1:ただし、一夜漬け

*2:[http://msdn.microsoft.com/ja-jp/library/cc189036%28VS.95%29.aspx:title]

*3:AppManifest.xamlに拡張子を省略した形で宣言されるため

*4:[http://msdn.microsoft.com/ja-jp/library/cc221408%28VS.95%29.aspx:title]

*5:[http://msdn.microsoft.com/ja-jp/library/cc265152%28VS.95%29.aspx:title]

*6:[http://firstfloorsoftware.com/silverlightspy:title]

*7:[http://ja.wikipedia.org/wiki/High_Level_Shader_Language:title]

*8:元々理系のクセにsinって何それおいしいの?状態な自分が情けなかった

*9:ちゃんと使える物が入ってるかもしれないらしい