カドルドエグ's profileたま(ご)の記録PhotosBlogListsMore ![]() | Help |
たま(ご)の記録とある個人のニューススクラップ集と成長(?)の記録。 |
||||
|
|
November 19 ベータ祭り[速報]Internet Explorer 9初披露、HTML5対応、DirectXで描画。Silverlight 4は今日からβ公開 Silverlight 4 Beta Information PDCを皮切りにSilverlight4関連がいろいろ出てきました。 ついでにAIR2も出てますw …なんかフォントいじると調子悪いな…>Live November 18 Web Application Toolkit for IE8のサンプルをいじる時の注意諸事情でいじりちゅうw そしてもしかしたら私だけかもしれないけど備忘録がてら。 IE8では、下記の新機能が追加され、後述するToolkitを使って実装できる。 ・検索候補の表示 ・アクセラレータ ・Webスライス でも今回言いたいことはそれらについてではないので詳細はMSDNでw http://msdn.microsoft.com/ja-jp/ie/default.aspx んで。 それらを実装できるToolkitはここでサンプルコードごとダウンロード可能。 http://code.msdn.microsoft.com/WebAppToolkitIE8 ダウンロードすると、デフォルトだとCドライブ直下に 「WebAppToolkitIE8」 というフォルダができ、その中にVB版とC#版のソリューションおよびReadMeなドキュメントが入ってる。 基本、ドキュメント(但し全文英語)を見ながら環境を整えてすすめていけばよいのだけど、一つ注意が。 新機能の一つであるWebスライスを使うと、対象のWebページの一部をきりとり、ブックマークバーで更新情報をチェックできるようになる。 今回のサンプルは、チェック表示にSilverlightを使ってるのだけど、なんと「C#版では」それが動かない! 原因は2つ。まあ、どっちか一方をどうにかすればよいのだけど…。 まず1つめはAuctionItems.ascx.cs(AuctionSample.Webプロジェクト下のUserControlsフォルダ内)の GetWebSlideTitleメソッド。ちなみに戻り値にString。 C#が return HttpUtility.HtmlEncode( string.Format( CultureInfo.InvariantCulture, "{0} ({1})", auctionTitle, auctionPrice)); とあるのに対し、 VBでは Return String.Format(CultureInfo.InvariantCulture, "{0} ({1})", auctionTitle, auctionPrice) 吐き出すStringの違いは以下のとおり。 C#:Nanette Lepore for Keds Women's Shoes Size 9 NEW $75 x (¥4) VB:Nanette Lepore for Keds Women's Shoes Size 9 NEW $75 x (¥4) つまり、「¥」に余計なことがされている(笑)ので、情報の不一致が起きてしまう。 なので、HttpUtility.HtmlEncodeメソッドを外し、単純にString.Formatメソッドの結果を返してやれば きちんと切り取れるようになります。 もうひとつはCalculateCurrentPriceメソッド。ファイルの場所は同じ。 GetWebSlideTitleメソッドの下の方にある。 見方によっては、ここが大本の原因といえるかも。 ここでreturn時に「CultureInfo.CurrentUICulture」とあるところを CultureInfo info = new CultureInfo("en-US"); というように別途ドル対応のカルチャの変数を放り込めばOK。 なんでHTMLエンコード以外はVBも同じなのにちゃんと処理してくれてるのかは私はまだ知りません; どなたかそのあたり詳しい方教えてくれると幸いです;; November 10 ビデオでBlend3を学ぶ今回は「ビデオプレイヤーを作る」がテーマのようです。
ほかにも、いろいろとチュートリアル系の記事がいっぱい投稿されてますな。
しかも動画だから見るだけで結構覚えられる。 同じ時計でもこんなのはいかが?【Blog: Time to reflect】Silverlight Flip Clock
よく、SilverlightやWPFといったリッチ系なものの練習として時計が取り上げられる。
たいていはあのアナログスタイルのだけど、同じ
「x秒に一度動作をする」
でもいろんな表現があるわけで。
RIAって動きも含めた「表現」が大事だと思う。
てなわけで(←無理やり)「時計」をテーマにいろんなタイプの時計を作って(作らせて)
みるのも面白いやも。 November 04 もっと上位になるようにしてもいいんじゃないの?Expression Blend 3の目玉機能である「Sketchflow」。
MSの技術に関してはヘルプと、そしてMSDNを調べるのが基本。
というわけでこれの作り方・使い方も例外ではなく、
調べるときは、ほぼ必ずネットでの検索を行うと思うのだけど……。
因みに今回参考になる(少なくとも私は参考にしている)ページはこちら。
では、このページはどうやったら見つけられるだろう?
とりあえずまずは「sketchflow」でだけ検索。
Googleで検索してみた結果↓
ちょっとスクロールさせてようやくMSDNのチュートリアルページ発見。
もっと上位にヒットさせるようにした方がいいんじゃないかな…。
1ページ目にある分だけマシだけどさ。 Bingで検索↓
TechFieldersのコラムが上に来てるのは特に悪くないと思うんだけど、 もしかしたらもっと別な単語や組み合わせ等々でヒットするのかもしれないけど、 October 29 何を以て時間があるとひどくどうでもいいことについて考えるもので。
Twitterにて、
洗い物.do
というつぶやきを発見。
その後すぐ思いついたのは
家事.洗い物();
でもこれって、
家事.洗う(食器);
家事.洗う(衣類);
と表現するのもありなんじゃないかと思ったり。
ただ、わざわざメソッドを一つにまとめて引数で使い分けすることに
どんなときに一体何のメリットがあるのかにもよるんだけど。。。
てかそもそも「家事(クラス)」に何を実装させるか(= どんな類を家事とするか)という話になるんだけれども。
…以上どうでもいい話でした。 イノベーションセンターでのLINQセミナーに参加してきました昨日未明にたまたまキャンセル待ちで入ることができたので急遽参加。
ちょうど、LINQについての知識がほとんど皆無だったので非常にためになりました。
一応、正式に.NETに組み込まれたときから存在だけは知っているし本もちょこっと持ってはいるものの、
積読しっぱなしだわ聞きっぱなしだわで。。。
今回はハンズオンもあり、基本の部分を少しだけではあるけど書けるようにはなりました^^;
以下、知ってる人からすればあまりにも「今更」なメモ。。。。
----------------------------------------------------------------------------
・LINQは、「全て一つで事足りる」ことに依存せず、「操作」について共通利用する。
「構造」について平準化するものではないことに注意。
・LINQといえば必ず紹介されるこういう↓スタイル(クエリ構文)
IEnumerable<string> result = from p in places
where p.Legth == 2
order by p
select p.Substring(0,1);
は、以下の表現を簡素化したものである。
IEnumerable<string> result = places.Where(p => p.Length == 2).OrderBy(p => p).Select(p => p.Substring(0,1));
→これを「糖衣構文(シンタックスシュガー)」と呼ぶ。
・LINQはコンパイルされると最終的に拡張メソッドに変換される
→クエリ構文ではLINQの全機能を使うことはできない(クエリ構文でカバーされてないものが多々ある)
・LINQというか拡張メソッドのイメージ(前述のメソッド構文を例にした場合)
places:元のコレクション > Where:データの絞り込み > OrderBy:データの並び変え > Select:データを加工し新しいコレクションとして返す
左から右へ値が引き渡され、フィルタリングされているイメージ:パイプライン処理
・前述で書いたようなLINQ処理は、その場で行われて(今回の場合)resultに格納されてはいない。
この後で、foreachなどでresultが使用されるときにはじめて動作する。
結果セットをインメモリで保持しないので別途保存(ToArray()など)が必要。
・C#及びVB:手続き型プログラミング = 問題の解法を記述
→LINQは、そこに宣言的プログラミング(= 問題そのもの、必要とする結果を表現)を持ち込んだものである。
問題の抽出方法はLINQの実装側が考えること。
・従来との対比
<<LINQなし>>
List<String> companyNames = new List<String>();
List<String> result = new List<String>();
foreach(string c in companeNames)
{
if(c == "Microsoft")
{
result.Add(c);
}
}
<<LINQあり>>
List<String> companeNames = new List<String>();
return from c in companeNames
where c == "Microsoft"
select c;
やってることは同じでも表現がとてもすっきりしている
・C#内でのLINQは、C#2.0~3.0にかけての新しい技術で成立している。
→デリゲートや匿名メソッド、拡張メソッド、ラムダ式など ・クエリ構文で使用される「句」はメソッド構文にしたときの「演算子」に相当。
※一部除く。詳細はMSDN等を見てください ・クエリ結果は、RangeやAll、Anyといったメソッドで活用させることができる。
※詳細はMSDN等で。 ・よくあるLINQプロバイダ…
LINQ to Object:配列やListなど
LINQ to SQL:SQLServerへのアクセスをサポート。 対象は2000~2008及びCompact 3.5。 DataContextがポイント。 ストアドの呼び出しも可。但しどんどん遅延していくので注意。 LINQ to XML:3.5から加わったSystem.Xml.Linq名前空間内のクラスを使用。より直感的に扱えるようになった。 Xmlをインメモリで取り扱う。 VBではXMLリテラルなどの機能で直にコード内にXMLが書けるが……。 LINQ to Objectにあった標準的なクエリ拡張メソッドの他、XML用のも用意されている。(System.Xml.Linq.Extentionクラスで定義) October 27 HTML5概要【japan.internet.com】大幅に進化した次世代 HTML 規格「HTML5」とは?
こうやって見ると、
より「開発言語」としての側面を強めた感じ。
確かにプラグインなしでも~、というのは魅力の一つだと思うけど、
最終的には使い分けになるような気がするなぁ。 Windows 7 開発秘話?MSだけじゃなく、Windowsを入れるメーカー側とも協力し合って作り上げたのかー。
なんだかそういうのを知ると、別に自分が関わったわけじゃないのに特別な思いが入るようなww
…というか今まで完全自社オンリーだったいうのがあまりにイメージ通りすぎて驚き。。 |
|
||
|
|