デブサミ2010に参加してきました。受けながらとったメモです。
特にルールは決めて書いてないですが、箇条書きがセッションの内容で、箇条書きじゃないものが、自分の感想みたいなかんじです。
.NETFramework4の概要
最初にこれをうけました。
内容的には、.NET Framework4の新機能と、おさえておいてもらいたい大事な部分を説明するような内容です。
.NETって?
- 単一のフレームワークでさまざまな環境に対応するものを目指して作られたもの。
- クライアントでもWebアプリでも携帯 etc...でも、ベースは同じ。
.NET4の新機能って?
.NET Frameworkの構造
CLRがあってBCLがあって、その上に色んなライブラリがあるよ。
.NET1.0から4まで共存可能で、1.1と2.0と4でCLRのバージョンが変わってる。
DLL Hellが起きないための仕組みもある。
動的言語もサポートしてる
DLRってやつね
マルチコアに対応した機能も強化されてるよ
DLINQのことかな??
最近のCPUはコアを増やす方向に進化してるけど、マルチコア対応するように作ってないと、そんなに早くならない。
マルチコアに対応したアプリ作ろうと思うと大変だよね。
WPF!!
個人的に好きなテクノロジ。
最近Silverlightにおされぎみな感じもする。
クライアントアプリ
- Windows7に対応!
- Office 2010対応!!
Webアプリケーション
- ASP.NETやASP.NET AJAX強化してある
- ASP.NET MVCに追加
- Silverlight3も最初からサポート!
これは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公式ツールとして提供されそう
- 人手によるテストの記録をしてくれる
- バグ報告のタイミングで自動で動画が登録される
- テスターと開発者間のやり取りが減って素敵
- Visual Studio + OSS
- TSFを便利に使うOSSがいっぱいある(CodePlex)
非常に便利になってると感じたので、非常に使ってみたい・・・
でも、あまりチーム開発の機会がない・・・。
- 3/19にAgileDayがある。
ASP.NET MVC2
- ASP.NET MVCは、凄く注目されてる
全然触ってないのは、まずそうだなぁ・・・。ということで、セミナー中に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...
色々あるよね
.NET Framework
- ランタイムがでっかい
- .NET Framework4では37MB
- プラットフォーム別に別れた
- Client Profileもある
Silverlight4
- ランタイム小さい
インストール速度比べ
- Silverlight 20秒
- .NET Framework 4 Client Profile 3分
- ↑に比べて再起動必要
意外に.NETのインストール早いと思ったら、再起動がさらにあった・・・。
インストール方法
- Windows Update, WSUS, Active Directory etc...
インストール要件
- Silverlight3のほうがWin2kもサポートしている
- でもWin2k自体がもうすぐサポート切れ
保守容易性
- アプリケーションの自動更新は、Silverlight, XBAPのほうがいい
- 完全信頼XBAPが出来る
- ローカルコンピュータは普通に完全信頼
- イントラネットと信頼済みは、対話を伴うが完全信頼可能
- 証明書は必要
ランタイムのバージョン管理
- .NET Frameworkはサイドバイサイドで配備可能
- Silverlightは、単一環境のみ
下位互換が取れてるとはいえ、ちょっと怖いなぁ。
.NET Frameworkに傾くかも・・・。
Silverlightは、1年に1回くらいのペースでバージョンアップしてるから、対応がもしかしたら大変になるかもしれないと思った。
WPF
- 物理2層のアプリ作成可能
- 物理3層も出来る
Silverlight
- 物理2層のアプリ作成は出来ない
- 物理3層が必須
WCF RIA Services
- n層アプリの開発をシンプルに
- 二重化が必要な共通ロジックの開発をコードの自動精しえにより一元化
これは、個人的に、とても期待しているテクノロジ!
早く正式版でないかなぁ。
非同期通信
- Silverlightは非同期のサービス呼出しのみ
- 可読性下がる
UIの無効化
- UIがブロックされないなんて素敵
- でも処理中に変なボタン押されたら大変
- Silverlight ToolkitのBusyIndicatorがラク
Visual Studio 2010の参照の追加画面の改善を見てると、非同期処理って上手く作ると素敵だけど、作るのは大変なんだろうなぁ。
機能実現性
- Silverlight is ready for business
- Silverlight 3に足りなかった機能が追加された
- クリップボード
- 右クリック、ホイールスクロール
- COM
- 印刷
- etc...
- Silverlight 3に足りなかった機能が追加された
Silverlight4の印刷
- 業務利用はきびしいかも。
- 画面をラスタ画像にして、プリンタで印字するイメージ?
ブラウザ外実行
- サンドボックスの外へ
- COMオートメーション
- etc...
パフォーマンス
- スクロールパフォーマンス
- Silverlight
- 早め
- WPF
- 遅め
- Silverlight
WPF ToolkitのDataGridは、使ってみた感じもっさりしてた気がするけど、実装がイマイチなのかな・・・。
まとめ
- .NET Frameworkは思っていたよりは時間がかからない
- XBAPは実はできる奴
- WPFのスクロール意外と遅い・・・?
- Silverlightは共存できない
- インターネットが必要なときは、Silverlight
- それ以外はWPF(ClickOnceやXBAP)
このセッションを受けて、SilverlightよりWPFのほうがいいのかな〜と思いました・・・。