<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C#</title><link>http://sqljp.com/hotikisu/category/525.aspx</link><description>C# Programming</description><managingEditor>ホチキス先生</managingEditor><dc:language>ja-JP</dc:language><generator>.Text Version 0.95.2004.102</generator><item><dc:creator>ホチキス先生</dc:creator><title>Microsoft TechEd 2010 レポート - Day 2 - 2 - T6-302「Expression Blend 4でデザインするSilverlight 4アプリケーション」</title><link>http://sqljp.com/hotikisu/archive/2010/08/26/27076.aspx</link><pubDate>Thu, 26 Aug 2010 23:57:00 GMT</pubDate><guid>http://sqljp.com/hotikisu/archive/2010/08/26/27076.aspx</guid><wfw:comment>http://sqljp.com/hotikisu/comments/27076.aspx</wfw:comment><comments>http://sqljp.com/hotikisu/archive/2010/08/26/27076.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://sqljp.com/hotikisu/comments/commentRss/27076.aspx</wfw:commentRss><trackback:ping>http://sqljp.com/hotikisu/services/trackbacks/27076.aspx</trackback:ping><description>&lt;P&gt;このセッションは、マイクロソフトのエバンジェリスト高橋忍氏により、Microsoft Expression 4による開発手法を初心者にもわかりやすく、かつ実務で使えるTipsを満載で紹介された。とても贅沢なセッションだった。&lt;/P&gt;
&lt;P&gt;Expression Design 4で作成できるSilverlight 4アプリケーションで利用できるコントロールの種類は数多くあるが、実際に必要十分なコントロールの種類は60くらいだ。このように数多くのコントロールが使えることは魅力だが、むしろコントロールの種類の多さよりも、カスタマイズ性のよさを強調したい。&lt;/P&gt;
&lt;P&gt;Silverlight 4で提供されるコントロールは、デザイン面の数多くのプロパティがある。このうちいくつかはVisual Studioでも扱うことができるが、やはりExpression Blendを使えば数多くのプロパティを編集することができる。たとえば画面上にテキストを作ったとき、これをパスに変更すれば、様々なプロパティを編集してデザインを自由に変更できる。Expression Blend 4の「アセット」にはたくさんのオブジェクトがあり、これをそのまま利用することもできるが、より本格的にデザインをするためにはExpression Designを使う。Expression Designで作成されたデザインはXAMLのデータで構成されているので、これをエクスポートしてExpresshion Blendにインポートするか、編集中のオブジェクトをコピーして貼り付けてもいい。すでにデザイン経験のあるデザイナーはPhotoshopやIllustratorでデザインを作成するが、これもExpresshion Blendにインポートすることができる。このとき、Photoshopファイルのレイヤーもそのままの形でインポートされる。&lt;/P&gt;
&lt;P&gt;アニメーションは状態の変化に対する表現であり、タイムラインに設定されたキーフレーム間のアニメーションである。マークやテキストなどが移動するアニメーションは、キーフレームに設定されたデザインの位置を画面上でドラッグして移動するだけである。直線的な動きに「イージング」を与えて躍動感のあるアニメーションにすることも簡単だ。これらのアニメーションは「ストーリーボード」というオブジェクトに保存される。&lt;/P&gt;
&lt;P&gt;複数の図形に統一的なイメージを与えたい場合は、デザインを「スタイル」というテンプレートに保存し、適用することができる。これは図形を右クリックして「スタイルの編集」を選択し、「空アイテムの作成」で作成する。スタイルを変更してしまった後に「空アイテムの作成」をしてしまったときは、「ローカル値に変換」オプションでスタイルをセットすることができる。&lt;/P&gt;
&lt;P&gt;よく使われる重要なオブジェクトに「ボタン」がある。作成した図形を「コントロールオブジェクト」に変換することは簡単で、図形を右クリックし「コントロールの作成」で変更することができる。これで図形をクリックしたときにボタンの機能を果たすことはできる。しかしボタンをクリックしたときに、押されたという実感をユーザーに与えるデザインはそれなりに作成しなければならない。ボタンには「Normal」「MouseOver」「Pressed」「Dissabled」といった4つの通常のステートと、「Unfocused」「Forcused」のフォーカスステートがある。たとえばマウスをボタンに重ねたとき「MouseOver」のステートに遷移するので、この状態ではボタンを少し大きくするデザインを、マウスをクリックしたときは「Pressed」のステートに遷移するので、こちらは右下に少しずれたデザインを適用する。こうすることで通常のボタンがクリックされたデザインができる。こうした一連の設定は個別に行うと煩雑であり、かつ異なるデザインになると統一性が損なわれるので、各状態の違いの部分だけをテンプレートとしてパッケージできるようになっている。また遷移時間の設定もでき、イージングも適用することができる。&lt;/P&gt;
&lt;P&gt;2つのコントロールを特定のプロパティで関連付けると、スライダコントロールを動かすことでプログレスバーの長さが変わり、テキストボックスの数値を変化させることができる。これらもコードを記述することなく、画面上のプロパティを編集することで実現できる。&lt;/P&gt;
&lt;P&gt;メディアエレメントはビデオ再生のオブジェクトである。このオブジェクトには動画の再生、停止などのメソッドが実装されている。これらのメソッドにアクセスするのが「ビヘイビア」の概念である。このようにメソッドを持つオブジェクトからボタンコントロールにビヘイビアを適用するとき、二重丸のアイコン「アートボードピッカー」を利用すると直感的に適用することができる。アートボードピッカーをドラッグしてビヘイビアをコントロールしたいボタンオブジェクトにオーバーするのだ。&lt;/P&gt;
&lt;P&gt;パネルコントロールは複数のエレメントを子要素として持ち、グリッドを使ってデザインを決定することができる。動的にユーザーに操作させたくないグリッドエリアは、ロックアイコンを使って動かないように固定することができる。&lt;/P&gt;
&lt;P&gt;画面を遷移するコンテンツを作りたいときは、FrameコントロールとPageコントロールを使う。Frameコントロールの中に複数のPageコントロールを作成し、切り替えるという手法だ。&lt;/P&gt;
&lt;P&gt;データの取り扱いについては、SilverLightで扱うことができるデータはXMLデータソースかオブジェクトデータソースである。データを利用したアプリケーションを作るときは、サンプルデータツールを使ってデザインすることができる。&lt;/P&gt;
&lt;P&gt;最後に実用的なSilverlightアプリケーションとして、写真を表示する「フォトビューワー」を作るデモが行われた。&lt;/P&gt;
&lt;P&gt;Microsoft TechEd 2010 Japan 公式サイト&lt;BR&gt;&lt;A href="http://www.microsoft.com/japan/teched/2010/"&gt;http://www.microsoft.com/japan/teched/2010/&lt;/A&gt;&lt;/P&gt;&lt;img src ="http://sqljp.com/hotikisu/aggbug/27076.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>ホチキス先生</dc:creator><title>Microsoft TechEd 2010 レポート - Day 1 - 4 - T6-309「詳説！Visual Basic 10、C# 4.0の新機能～Visual Studio 2010で進化したコーディング環境～」</title><link>http://sqljp.com/hotikisu/archive/2010/08/26/27073.aspx</link><pubDate>Thu, 26 Aug 2010 08:59:00 GMT</pubDate><guid>http://sqljp.com/hotikisu/archive/2010/08/26/27073.aspx</guid><wfw:comment>http://sqljp.com/hotikisu/comments/27073.aspx</wfw:comment><comments>http://sqljp.com/hotikisu/archive/2010/08/26/27073.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://sqljp.com/hotikisu/comments/commentRss/27073.aspx</wfw:commentRss><trackback:ping>http://sqljp.com/hotikisu/services/trackbacks/27073.aspx</trackback:ping><description>&lt;P&gt;マイクロソフトのエバンジェリスト新村剛史氏によるセッションである。まず「開発言語の今とこれまで」として、1957年のFortranから約50年の間にあらわれた様々な開発言語についてざっくりまとめられた。数多くの開発言語には「オブジェクト指向」などプログラミング概念の変遷がある。そしてC#はJava、Visual Basic、C++のそれぞれの特徴を取り入れて作られた開発言語だ。Visual Basicは2002年の.NETフレームワークによりVB7として大きく変化し、同時にC#1.0が公開された。そしてVB8とC#2.0でジェネリクス、VB9とC#3.0でLINQの技術を取り入れながら、両者は互いに歩み寄りながら進化している。そしてVB10、C#4.0でさらに近くなったのが現在である。&lt;/P&gt;
&lt;P&gt;ここでVB10とC#4.0を取り上げて開発言語の新機能について、これまでC#でできたこと、できなかったこと、VBでできたこと、できなかったことを表の形でまとめながら説明される。&lt;/P&gt;
&lt;P&gt;C#の新機能として、まず「オプション引数」と「名前付き引数」が紹介された。「オプション引数」は引数にデフォルト値を設定し、記述されなかった引数はデフォルト値が渡されたものとして処理する、というものである。「名前付き引数」は引数に名前を付けて記述し、引数の順番を入れ替えることができるというものだ。&lt;/P&gt;
&lt;P&gt;「遅延バインディング」は実行時に型を確定して実行するもので、コンパイル時には静的型チェックをバイパスしてエラーを出さずにコンパイルする。型としては異なっていても、同様の機能を利用する場合に使い、ダックタイピングと言われる。これはCOM相互運用を簡単にするために実装された。&lt;/P&gt;
&lt;P&gt;VBの新機能としては、自動実装プロパティ、コレクション初期化子、アンダーバーなしの改行が可能になる暗黙の行連結、複数行のラムダ式とラムダ式によるサブルーチンなどがある。&lt;/P&gt;
&lt;P&gt;VB、C#共通の新機能としては、PythonやRubyなど動的言語との連携サポート共変性と反変性が紹介された。特に共変性と反変性については、図で示しながらコードサンプルも例示し、かなりの時間を割いて説明がなされた。実際に自分でコーディングしながら理解しなければならない概念である。&lt;/P&gt;
&lt;P&gt;Visual Studio 2010のエディターとしての新機能は、強化された検索機能、参照の強調表示、C#だけではあるが呼び出し階層のツリー表示、コードの自動生成がある。コードの自動生成は、定義されないクラスや型を書いたとき、エディタが自動生成してくれる機能であり、とても便利だと感じた。またヒントチップで追跡したい値をコードの近くにピン止めできる機能が追加され、地味ではあるが便利な機能である。またブレークポイントにラベルを付けることができる機能、ブレークポイントのインポートとエクスポートの機能が追加された。これなどは実際に開発者の意見を取り入れた機能強化だという印象を受けた。&lt;/P&gt;
&lt;P&gt;このセッションを終えて思ったことだが、C#1.0が2002年、C#2.0が2005年、C#3.0が2006年、そしてC#4.0が2010年と言語仕様が拡充している。このような言語仕様の拡充は開発者が煩雑に思うコーディングの負荷を減らすために行われるので、新しい仕様を知らなければ、いつまでも手間のかかるコーディングをそれと気づかずにしてしまうことになるだろう。また逆に、あまりないケースかもしれないが、最新の言語仕様でコーディングに慣れたプログラマーが、古い言語仕様でしか開発できない環境に出会ったとき、思わぬトラブルに遭遇する可能性もあるということだ。いずれにせよ開発者は、言語仕様の拡充に注意を払いながらプログラミングスキルを磨き続けなければならない時代である、ということだろう。&lt;/P&gt;
&lt;P&gt;それにしてもクラウド技術が中心のTehcEd2010だが、このようなプログラミング技術のセッションも大人気である。このセッションはルームCで行われたが、びっしりと並べられた椅子のほぼ全席が参加者で満員となり、熱気で会場の空調も力不足に感じられるほどだった。&lt;/P&gt;
&lt;P&gt;Microsoft TechEd 2010 Japan 公式サイト&lt;BR&gt;&lt;A href="http://www.microsoft.com/japan/teched/2010/"&gt;http://www.microsoft.com/japan/teched/2010/&lt;/A&gt;&lt;/P&gt;&lt;img src ="http://sqljp.com/hotikisu/aggbug/27073.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>ホチキス先生</dc:creator><title>TechEd 2008 Yokohama - Day 3 - 2 - T2-304「一歩進んだVisual C#活用術」 </title><link>http://sqljp.com/hotikisu/archive/2008/08/29/25514.aspx</link><pubDate>Fri, 29 Aug 2008 15:15:00 GMT</pubDate><guid>http://sqljp.com/hotikisu/archive/2008/08/29/25514.aspx</guid><wfw:comment>http://sqljp.com/hotikisu/comments/25514.aspx</wfw:comment><comments>http://sqljp.com/hotikisu/archive/2008/08/29/25514.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://sqljp.com/hotikisu/comments/commentRss/25514.aspx</wfw:commentRss><trackback:ping>http://sqljp.com/hotikisu/services/trackbacks/25514.aspx</trackback:ping><description>&lt;P&gt;このセッションでは、バージョン1から2.0、3.0と進化してきたC#で、C#2.0、.NET Framework 2.0、.NET Framework 3.0で実装された「ジェネリック」と「反復子」、C#3.0、.NET Framework 3.5で実装された「クエリ式」、「ラムダ式」について解説された。&lt;/P&gt;
&lt;P&gt;これらの実装についての背景や実際の使用例、それによって得られる恩恵、制約や留意点など具体的な細かい説明がなされた。C#プログラミングについては、簡単な経験があるだけの私には難しいセッションだったが、プロのC#プログラマーには興味深く役に立つセッションであったと思う。&lt;/P&gt;&lt;img src ="http://sqljp.com/hotikisu/aggbug/25514.aspx" width = "1" height = "1" /&gt;</description></item></channel></rss>