Visual Studio 2010 Ready Day に行ってきた
行ってきたのは4月13日(火)。だらだら書いてたら1週間かかってしまいました。公式サイト: http://www.microsoft.com/japan/msdn/vstudio/2010/readyday/
VS2010世代(.NET4)の知識がほとんどないので、少しでも勉強しなくてはと思い、平日だけど行ってきました。MSのイベントはReMIX Tokyo 09 以来かな。会場はReMIXと同じ東京ミッドタウン。
普通に私服で行ったんですが、スーツの人が7,8割くらい。たぶん他に学生はいなかっただろうなあ。dynamic型とかF#の話とかあるかな、と思いきや、やっぱり業務アプリ向け?の話題が中心でした。
ASP.NETの地味な進化(MVCの方じゃなくて)と並列プログラミングが面白かったです。早速遊んでみよう。
以降、まとめ。
キーノート: 未来はコードで創られていく
午前中の授業を優先して行かなかった。
セッション: "4"の時代の次世代Web開発
主にASP.NET MVC 2.0の話かと思いきや、jQueryの標準搭載とかIntelliSenseのJavaScript対応(対応は前からしてたかな?改善/改良?)とか。
ASP.NET 全般
- HTML標準への対応(HTML 4.01, XHTML 1.0/1.1, IE6)
- CSS標準への対応(CSS 1.0/2.0/2.1, IE6)
- jQueryのサポート(標準搭載)
- IntelliSense, CodeSnippet(JavaScript, HTMLでも使える)
<system.web> <pages controlRenderingCompatibilityVersion="4.0" /> <system.web>
ASP.NET(Webフォーム)における追加・改善点
- ClientIDModeプロパティの追加
- ViewStateModeプロパティの追加
- ViewState が肥大化する問題を解決
- コントロール, ページ単位で指定する事ができる
- RenderOuterTableプロパティの追加
- ちょっとよくわからないが、レイアウトにTableタグやインラインのスタイル属性指定を使ったHTMLを出力しないようにするプロパティ
- FormView, Login, PasswordRecovery, ChangePassword コントロールで利用可能
ASP.NET MVC 2.0
- ASP.NET MVS 2 からVisual Studio 2010(.NET Framework 4)から標準搭載
- Htmlヘルパー(HTML生成を助ける関数群)
- DataAnnotations validations(モデル中心のHTML生成と入力検証ルール)
- Areas
- 単一MVCプロジェクト内でアプリケーションを分割(AreaRegistration.RegisterAllAreas())
- TemplateHelpers
- Auto-Scaffold UI Helper
- RenderAction
- AsyncController
- 非同期アクションメソッド呼び出しのサポート
- デフォルト値(これはC# 4.0の機能かな?)
- 新しいHTTP Method 属性
- HttpPost, HttpGet, HttpPut, HttpDelete
Webアプリケーションの配置
- Web.config ファイルをDebug, Releaseなどのビルド設定ごとに変換ルールを定義可能になった
- アプリケーションの圧縮ファイル作成(Zipファイル形式)
- Webコンテンツ, DBスキーマ, IISの設定ファイルなどをVisual Studioでまとめ、IISで展開(IISマネージャもしくはMSDeploy.exeの利用)
- ワンクリック発行
その他
- 新しい HTML Encoding 構文
- <%: hoge %>
- 新しいサーバーコントロール
- Chart, QueryExtender
セッション: "7"時代の次世代Windows開発
チャートコントロール(Chart)
- .NET Framework 4.0 で標準サポート(3.5 では追加コンポーネントでの提供だった)
- 25種類のチャート(2D, 3Dチャート)
WPF アプリケーション
データアクセス
アプリケーションの配置
- インストーラプロジェクトが新しくなった
- ノータッチデプロイメントの廃止
- WPFブラウザアプリケーション(XBAP)での「完全信頼モード」の追加
- ClickOnceの強化
- 配布場所制限の緩和, マニュフェスト生成・編集ツールの配布(.NET Framework 3.5)
- 署名なしでの配布をサポート, バックグラウンドアップデートのサポート, コマンドライン引数のサポート, ファイル拡張子関連付けのサポート(.NET Framework 3.5 SP1)
- クライアントプロファイル
- アプリケーション配布時のラインタイムサイズの削減
- セキュリティモデルの変更
- Security Transparency Level2(レベル2透過性モデル)の採用(Silverlightと合わせるため?)
.NET Framework 4 での機能
セッション: Silverlight4 データ駆動アプリケーション開発
普通に開発できる基盤を目指した(Visual Studio 2010)
Silverlight アプリケーション開発
- Silverlight におけるデータアクセスは、Web上のリソースを利用する(RDBに直接接続ということは考えられない)
WCF Data Services
サービスの選択
データバインディング
その他
- RichTexttArea
- 印刷のサポート: PrintDocument
セッション: Visual Studio 2010 & .NET 4 時代の並列プログラミング
並列101
Visual Studio 2010 と .NET 4
- 並列ライブラリ
- 同時実行可能なデータ構造
- 同時実行キュー, 同時実行バッグ
- 同時実行ランタイム
- スレッドプール + ワークスチーリング, 同時実行ランタイム + UMS
- 並列ツール
- 並列デバッガ, 並列プロファイラ
カーネルモードスケジューラ
- プロセスをたくさん作るのは高コスト
- プロセスはプロセッサのコア数に応じた数にし、分割可能なタスクを各スレッドに分割に分け与える
- CLR スレッドプール, ワークスチーリング
- CPUのキャッシュを考慮したローカルワークスチーリングキュー
- ワーカースレッドAのタスクをBがスチール、など
MyParallelForeach
- 面白かった
- 仕事をプロセッサコア数で割ってThreadでやるだけじゃだめ
- ワークスチーリングで手が空いたワーカープロセスにタスクを取ってくる
PLINQ
協調型データ構造(.NET)(System.Collections.Concurrent 名前空間)
- スレッドセーフコレクション
- ConcurrentBag
, ConcurrentStack , ConcurrentQueue , ConcurrentDictionaly
- ConcurrentBag
- プロデューサ & コンシューマ
- BlockingCollection
, IProducerConsumerCollection
- BlockingCollection
- 分割
- Partitioner, Partitioner
, OrderablePartitioner
- Partitioner, Partitioner