かずきのBlog@hatena

すきな言語は C# + XAML の組み合わせ。Azure Functions も好き。最近は Go 言語勉強中。日本マイクロソフトで働いていますが、ここに書いていることは個人的なメモなので会社の公式見解ではありません。

Developers Summit 2010参加してきた(2010/02/18)

デブサミ2010に参加してきました。受けながらとったメモです。
特にルールは決めて書いてないですが、箇条書きがセッションの内容で、箇条書きじゃないものが、自分の感想みたいなかんじです。

.NETFramework4の概要

最初にこれをうけました。
内容的には、.NET Framework4の新機能と、おさえておいてもらいたい大事な部分を説明するような内容です。

.NETって?
  • 単一のフレームワークでさまざまな環境に対応するものを目指して作られたもの。
  • クライアントでもWebアプリでも携帯 etc...でも、ベースは同じ。
.NET4の新機能って?
  • UXすごいぞ
    • 使いやすいUI作るの大事
    • でも作るの大変
    • そういったアプリを作るのが簡単になるようになってる
    • WPFだったり、ASP.NETの新しいコントロールだったり
  • コア機能も凄いぞ
    • BCL強化したよ
  • 開発生産性もすごいよ
    • .NET4までも頑張ってきたけど、4でも頑張ってます
.NET Frameworkの構造

CLRがあってBCLがあって、その上に色んなライブラリがあるよ。
.NET1.0から4まで共存可能で、1.1と2.0と4でCLRのバージョンが変わってる。
DLL Hellが起きないための仕組みもある。

動的言語もサポートしてる

DLRってやつね

マルチコアに対応した機能も強化されてるよ

DLINQのことかな??

最近のCPUはコアを増やす方向に進化してるけど、マルチコア対応するように作ってないと、そんなに早くならない。
マルチコアに対応したアプリ作ろうと思うと大変だよね。

WPF!!

個人的に好きなテクノロジ。
最近Silverlightにおされぎみな感じもする。

  • .NET3.0から使える。
  • Windows Formの後継的な存在
  • GPU有効に使うことでリッチでハイパフォーマンス
  • マルチタッチWindows7サポート
クライアントアプリ
  • Windows7に対応!
  • Office 2010対応!!
Webアプリケーション

これはRC版入れてみて試してるけど、とても素敵なことだと思う。
All in Oneって素敵だと思います。

Entity Framework
  • DBの変更にアプリの変更が、引きずられない
  • Entity FrameworkがDBの変更を吸収してくれる
  • ADO.NETは、今までどおり使える!

個人的には、どの程度吸収してくれるのか・・・疑問。
Dynamic Data Entities Web Applicationのデモがあったけど、この機能は、一体どれくらい機能強化されているのか、要調査だと感じた。
デモには、便利そうな機能だと思った。
Entity Frameworkで、きちんとドメイン層を作りこんでいれば、それに対してCRUDするアプリが簡単に作れるという理解であっているのだろうか。

WCF/WF

強化されてるらしい。詳しくは、説明されなかった。

よくあるFAQ
  • 対応OSはXP以降に対応!
  • 64bitもきちんとサポート
  • ダウンロードサイズは巨大!!
    • でも、クライアントプロファイルみたいに用途に応じたコンパクトなものもあるよ
  • 正式リリースは、まだ正式には決まってないけど、もうすぐ。
  • Windows Updateでも追加項目として提供される
  • 移行は、是非してほしい!でも状況に応じて。
    • .NET2.0からの開発はVS2010でサポートしてるのでIDEは、2010が便利

アジリティを向上させる開発ツールの進化〜Visual Studio 2010の場合

今RCを試しているVS2010のセッションでした。

マイクロソフトアジャイル開発
  • 開発が最近大変「市場のニーズ」etc...
  • デイリービルドとか、ずっとやってた
  • それだけで市場のニーズに対応するのは難しい・・・
  • MS独自のアジャイルな開発文化から、アジャイルプラクティスを色々取り入れた
  • キーワード「バリューアップ」価値をあげていこう
  • トップダウン vs ボトムアップ どっちも必要。
  • Work down から Value upへ・・・
  • 既存のやり方は、タスクドリブン
    • タスクの達成率が進捗
  • MSがしたこと
    • Code Complete → Feature Complete
    • Microsoft Process TemplateがCodePlexにある
    • これまでツール類は結構手作りだったけど、TSFを使い出した
    • VSはVSを使って開発している
    • PM DEV TESTでチームを作る
      • チームは10人くらい PM1 DEV5以下 TEST5以下
      • 開発プラクティスは好きなものを使ってOK
      • Check Point 0, 1, 2とかQuality Gate
      • Quality Gateで共通の品質基準で価値を計測(セキュリティ 制的コード分析 etc...)
      • Excel大好き(TSF → Excel Export → 分析)
  • 今まで2年周期で出せなかったけど、2年周期で出せるようになった
  • バグ激減
  • VS2010で色々機能強化されたよ

正直すごいなぁと思った。

進化したVisual Studio 2010
  • 開発中なので、正式版では違うかも・・・
  • Agile開発は難しい。VS2010は、協力にサポート
  • Team Systemというエディションは無い
    • 標準機能

そういえば、VS2010 Pro RCを使ってるけど、TSF関連のメニューがあるかも・・・

  • テスト影響分析
    • コード変更によるテストへの影響を分析、通知してくれる

これ、凄くほしい。

デモ!

色々なデモがされていたけど、TSFと連携したときの機能が凄く強化されているような感じでした。
非常に使いたい。
色々なレポートを見せてくれたり便利そう。

  • Eclipseのデモ(なぜ)
  • Team Foundation Server向けのプラグイン
    • 3rdパーティ製品だったけどMSが購入
    • MS公式ツールとして提供されそう
  • 人手によるテストの記録をしてくれる
  • バグ報告のタイミングで自動で動画が登録される
  • テスターと開発者間のやり取りが減って素敵

非常に便利になってると感じたので、非常に使ってみたい・・・
でも、あまりチーム開発の機会がない・・・。

  • 3/19にAgileDayがある。

ASP.NET MVC2

全然触ってないのは、まずそうだなぁ・・・。ということで、セミナー中にASP.NET MVCのプロジェクト作成してみてみた。

  • ASP.NET3.5/4でのMVCの位置づけ
    • Web Formと住み分ける感じ
Webフォームとの比較
  • コントロール
    • 高い生産性!!
    • HTMLは自分で微調整しづらい
  • イベントドリブン
    • Windows Formと同じような開発スタイル
    • PostBack, ViewStateなど独自概念がある
  • 他のWebアプリ開発のテクノロジとは違う・・・
    • ASP.NET MVCは、他のWebテクノロジと同じようなノリでいける
    • HTMLベース
    • リクエストに応じた処理の記述
    • MVCパターンの適用
ASP.NET MVCの開発
  • Model
    • 特にサポートは無い
      • Entity Frameworkとか使う?
    • Control
      • 足場を提供
    • View
      • 足場を提供
MVC2での機能強化
  • Area
    • 1つのプロジェクトに複数のASP.NET MVCが作れる
    • 大規模開発時にチーム単位なんかで分割しやすい
  • 非同期コントローラ
    • 時間のかかる処理をサーバ上でやるとき
Validation
  • Dynamic DataであったDataAnnotationに対応している
if(ModelState.IsValid) {
  // OKのとき
} else {
  // NGのとき
}
  • クライアントでのバリデーションも可能

Expression Studio 3で作るSilverlight3

  • インタラクションデザイン
    • ボタンが押されたときにどう振舞うのか
    • 画面を出すときにふわっとだすのか、しゅ〜んと出すのか
  • こういったデザインはVisual Studioでは難しい
    • プログラミングが必要
  • Expressionを使えばラクチン
  • Expression Studio 3
    • Expression Blend
    • Expression Encoder
    • Expression Web
    • Expression Design
    • スイートパッケージ
  • Blend3
    • SketchFlow
    • サンプルデータ
    • ビヘイビアー
    • フォトショやイラレのインポート
  • Web3
    • 複数ブラウザの見比べ
    • etc...
  • Encoder3
    • スクリーンキャプチャ(使いでがありそう)
  • Design3
Expression Blend 3を使うに際しての心得
  • コードをいじってはいけない

この後SketchFlowのデモ。
何回見てもSketchFlowの機能は素敵。UIモック作るのはこれが素敵だろう。
Wordへのエクスポートも素敵。

Expression Encoderのキャプチャは、あると使うだろうと思ったけど、買わないだろうなぁ・・・。

WPF4とSilverlight4これから業務アプリを開発するならどっち?

業務アプリで大事なこと
  • 導入しやすい
  • 保守しやすい
  • etc...

色々あるよね

WPF
  • .NET Fwが必須!

凄い勢いでスライドが流れていった・・・

.NET Framework
  • ランタイムがでっかい
  • .NET Framework4では37MB
    • プラットフォーム別に別れた
  • Client Profileもある
Silverlight4
  • ランタイム小さい
インストール速度比べ

意外に.NETのインストール早いと思ったら、再起動がさらにあった・・・。

インストール方法
インストール方法
  • XBAPはIE7以降で、.NET Framework自動インストールするか聞いてくれる

XBAP意外といい・・・。

インストール要件
  • Silverlight3のほうがWin2kもサポートしている
  • でもWin2k自体がもうすぐサポート切れ
保守容易性
  • アプリケーションの自動更新は、Silverlight, XBAPのほうがいい
  • 完全信頼XBAPが出来る
    • ローカルコンピュータは普通に完全信頼
  • イントラネットと信頼済みは、対話を伴うが完全信頼可能
    • 証明書は必要
ランタイムのバージョン管理

下位互換が取れてるとはいえ、ちょっと怖いなぁ。
.NET Frameworkに傾くかも・・・。
Silverlightは、1年に1回くらいのペースでバージョンアップしてるから、対応がもしかしたら大変になるかもしれないと思った。

WPF
  • 物理2層のアプリ作成可能
  • 物理3層も出来る
Silverlight
  • 物理2層のアプリ作成は出来ない
  • 物理3層が必須
WCF RIA Services
  • n層アプリの開発をシンプルに
  • 二重化が必要な共通ロジックの開発をコードの自動精しえにより一元化

これは、個人的に、とても期待しているテクノロジ!
早く正式版でないかなぁ。

非同期通信
  • Silverlightは非同期のサービス呼出しのみ
  • 可読性下がる
UIの無効化
  • UIがブロックされないなんて素敵
  • でも処理中に変なボタン押されたら大変
  • Silverlight ToolkitのBusyIndicatorがラク

Visual Studio 2010の参照の追加画面の改善を見てると、非同期処理って上手く作ると素敵だけど、作るのは大変なんだろうなぁ。

機能実現性
Silverlight4の印刷
  • 業務利用はきびしいかも。
  • 画面をラスタ画像にして、プリンタで印字するイメージ?
ブラウザ外実行
パフォーマンス

WPF ToolkitのDataGridは、使ってみた感じもっさりしてた気がするけど、実装がイマイチなのかな・・・。

まとめ
  • .NET Frameworkは思っていたよりは時間がかからない
  • XBAPは実はできる奴
  • WPFのスクロール意外と遅い・・・?

このセッションを受けて、SilverlightよりWPFのほうがいいのかな〜と思いました・・・。