++C++; // 未確認飛行 C ブログ

http://ufcpp.net/

Visual Studio 11 beta

with one comment

シアトルに行ってる間に出ましたね。

VS11β はその場で入れたものの、Win8 CP はいまだインストールできずにいたり。

VS11、まだ年号はつかず、“バージョン11”のまま。

でも、今がβだと、ひょっとすると Windows 8 正式版を待たずして、VS 11 だけ先にリリースかな?

以下、DP 版から β 版での変更点。(ちなみに、DP からの差分と言わず、4.0 と比べての差分はこちら: What’s New in the .NET Framework 4.5 Beta

C# 5.0

まず、正式に C# 5.0 の β 版としてリリースされました(今までは、Async CTP という形で、非同期メソッドがらみしか提供されていなかった)。

非同期メソッドに関しては、後述する Awaiter パターン実装側の変更のみ。なので、await 演算子の利用側に関していうと変更なし。

これに加えて、Caller Info 属性というのが入りました。情報だけは昨年9月の BUILD の時点で出ていたものの、実際に試せるものが公になったのは今回が初。このページのサンプルにもあるように、ログ用途の他に、INotifyPropertyChanged の実装用に便利そう。

非同期がらみ

以下のような変更があった模様。

  • 非同期メソッド中では、lock じゃなくて SemaphoreSlim を使ってとのこと
    • こいつなら、Wait するスレッドと Release するスレッドが別でもよいので
    • あと、ロック待ちのためにスレッドをブロックするのはいまいちなので、WaitAsync メソッドを追加したそうです
  • Awaiter のパターンの変更
    • INotifyCompletion もしくは ICriticalNotifyCompletion インターフェイスの実装が必要になったらしい
    • 理由は、同期コンテキストのディスパッチ(非同期処理を開始したスレッドに、コールバック処理を戻す)をフレームワーク内でやってもらうか自前でやるかを選べるようにするため
      • INotifyCompletion → 自前でやる
      • ICriticalNotifyCompletion → フレームワークにやってもらう
  • System.Threading.Tasks.Dataflow 改善
  • 非同期メソッドの単体テスト可能に
    • ただし、テスト フレームワークが同期コンテキスト持ったわけではないので、そこは注意が必要
  • Concurrency Visualizer 改善

Metro style アプリ

クラス名やメソッド名のリネームは山ほど。

でも、XAML アプリの開発スタイルに変更はなさそう。

あと、XAML 系 UI はいいとして、XNA 的な(ゲーム ループを持った低層 UI)フレームワークは結局なさそう。ゲームやら 3D やらやりたければ DirectX と C++ で。

というのも、ネイティブ ⇔ .NET 間ではデータのやり取りがネックになったりしそうで、XAML + C# 的な仕組み(WinMD を介して実装はネイティブ、利用側は .NET)は XNA 的なものには不向きっぽく。

おまけ: PowerShell 3.0

WMF 3.0 (PowerShell 含む、管理用フレームワーク)も β 化。DP からの差分はバグフィックスが主っぽい。

相変わらず、日本語 Windows には入らないっぽい。

広告

Written by ufcpp

2012年3月6日 @ 04:56

カテゴリー: .NET, C#

コメント / トラックバック1件

Subscribe to comments with RSS.

  1. Visual Studio 11 beta « ++C++; // 未確認飛行 C ブログ…

    素敵なエントリーの登録ありがとうございます – .NET Clipsからのトラックバック…

    .NET Clips

    2012年3月7日 at 01:07


コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。