PDF 形式

.NET Framework 4 &
Visual Studio 2010 技術概要
~ ダ゗ジェスト版 ~
日本マイクロソフト株式会社
パートナービジネス営業統括本部
パートナーテクノロジー本部
プリンシパル テクノロジーゕドバ゗ザー
ジニアス平井(平井昌人)
[email protected]
.NET Framework の変遷
~ 複雑になった階層構造を見直してバージョンを統一 ~
ラ
゗
ブ
ラ
リ
CLR
ツ
ー
ル
3.5
Add
Add
3.0
3.0
1.0
UP
1.1
UP
2.0
2.0
2.0
1.0
UP
1.1
UP
2.0
2.0
2.0
UP
UP
1.0
1.1
2.0
3.0
3.5
2007.07
2008.10
2011.04
2011.04
SP1はOS準拠
VS2002
VS2003
VS2005
4.0
4.0
4
VS2008
Visual Studio 2010
.NET Framework 4
~ CLR 2.0 から久々のバージョンゕップ ~
 ランタイムはサイドバイサイド・インストール
 サ゗ドエフェクトはゼロ(既存環境を破壊せず)
 In-Process サイドバイサイド
プロセス
 CLR 2.0 / CLR 4.0 をホスト
Foo.dll
 ゕセンブリ毎に利用する CLR を決定
 動的プログラミング
 C#: dynamic d;
 VB: Dim d As Object
Acme.dll
CLR 4.0
CLR 2.0
 並列プログラミング
 Parallel クラス・PLINQ を提供
 MEF(Managed Extension Framework)
 ゕド゗ン的なコンポーネント開発を手助けするラ゗ブラリ
 新言語
 F#・IronRuby
Parallel Extension & PLINQ
~ マルチスレッド・マルチコゕ対応の並列化ラ゗ブラリ ~
 Parallel Extension
 Task-based プログラミングモデル
 System.Threading.Tasks.Task
 System.Threading.Tasks.Future
 Parallel クラス
 Parallel.For
 Parallel.Invoke
Task t = Task.StartNew(…);
t.Wait(2000);
t.Cancel();
var f = Future.StartNew(() => C());
int result = f.Value;
Parallel.For(0, n, i => work(i));
Parallel.ForEach(data, e => work(e));
 Parallel LINQ-to-Objects (PLINQ)
var qy = from p in people.AsParallel()
 ParallelEnumerable
 VS2010 開発環境
 Parallel デバッガ
 タスク、スタック
 Concurrency 分析
select p;
Visual Studio 2010 コンセプト
~ 今回のバージョンゕップは凄いぞ! ~
新しい技術、トレンドへの対応
 クラウドコンピューテゖングへの対応
 並列処理への対応の強化
開発者の生産性と柔軟性の向上
 コードを ”読む” ”書く” の支援を強化
 デザ゗ンツール、デバッグツールなどの改善
新しいプラットフォームへの対応
 Windows 7、Windows Server 2008 R2
 Office 2010, Windows Azure
Visual Studio 2010 製品構成
~ Professional / Premium / Ultimate ~
IntelliTrace™
UML モデリング
ゕーキテクチャ エクスプローラ
論理クラス デザ゗ナ
ロード テスト
テストケース管理
手動テスト
テストの記録と再生
レ゗ヤー ダ゗ゕグラム
Web テスト
自動 UI テスト
パフォーマンス プロフゔ゗リング
コードカバレッジ
データベース変更管理
データベース 単体テスト
テスト影響度分析
静的コード分析
コード メトリクス
データベースの配置
テスト データの生成
Silverlight 開発ツール
Windows ゕプリケーション開発
Web ゕプリケーション開発
Office ゕプリケーション開発
クラウド ゕプリケーション開発
新しい WPF エデゖタ
SharePoint 開発
マルチコゕ対応開発
メンバーの逆生成
IDE のカスタマ゗ズ
Team System 製品構成
~ ラボマネージメントが新しい! ~
テストケース管理
手動テスト
チーム エクスプローラ
テストの記録と管理
ラボの構成管理
チーム エージェント
仮想環境の管理と展開
仮想環境の構築 (テンプレート)
仮想環境のチェックポ゗ント管理
バージョン管理
チェック゗ンの品質確認
レポーテゖング
自動ビルド
並列開発状況の可視化
テストケース管理
基本機能のみの構成
ゕジャ゗ル開発 計画ツール
チームポータル
IDE(統合開発環境)の強化
~ 遂に Visual Studio も WPF ベースになりました ~
 WPF ベースの IDE へ刷新
 新スタートページ
 HTML ベースから XMAL ベースへ





ズーム機能
呼び出し階層の表示 Call Hierarchy
変数のハ゗ラ゗ト Highlight Reference
各種デザ゗ナの強化
マルチモニタ対応
 マルチターゲット
 .NET Framework 2.0 / 3.0 / 3.5 / 4.0
 これまでの(2.0 以降)のメンテナンスも VS 2010 で OK
 テスト駆動開発(TDD)サポート強化
 クラスやメソッドの自動生成(Generate from Usage)
 Visual Studio 2010 評価版を提供中!
 http://www.microsoft.com/japan/msdn/vstudio/campaign/trial/
IntelliTrace™
~ これは凄いぞ! Debug.Print はもういらない!~
 IntelliTrace
 デバッグの履歴を自動記録して煩雑なデバッグ作業を効率化
 [゗ベント]と[呼び出し]を記録
 再生・巻き戻しも可能
 情報収集設定
 任意のモジュール
 任意の゗ベント
 プレークポイントの
エクスポート&
インポート
 XMLフゔ゗ルの保存
 いつもでロードして
再設定が可能
コード契約(Code Contracts)
~ Debug.Assert の進化した使い方 ~
 コンパイル時・実行時にパラメータや戻り値、インターフェイ
スの型など妥当性を審査する仕組み
 DevLabs からダウンロードして゗ンストール
 http://msdn.microsoft.com/en-us/library/dd491992.aspx
 プロジェクトのプロパテゖ-[Code Contracts]タブでオンにする
 System.Diagnostics.Contracts 名前空間
 Contract.Requires()
:前提条件
 Contract.Ensures()
:事後条件
public static int Foo(int a, int b)
{
//契約の定義
Contract.Requires(a >= 0, "パラメータ a は 0 以上でなければなりません");
Contract.Ensures(Contract.Result<int>() >= 100, "戻り値は 100 以上のこと");
// プログラム€
本体
return a + b;
}
C# 4.0
~ テーマは "Dynamic Programming" ~
 Dynamically Typed Objects
 dynamic というキーワードが追加
Calculator c = GetCalculator();
int sum = c.Add(10, 20);
 var と違ってどこでも使える
 AsDynamic メソッドで型変換可能
 実行時は DLR を利用
 オプショナル&名前付き引数
OpenTextFile(bufferSize: 4069, path: "foo.txt");
 COM Interoperability
 No PIA / VBラ゗クなコーデゖング
doc.SaveAs(ref fileName,
ref missing, ref missing, ref missing, ...
dynamic c = GetCalculator();
int sum = c.Add(10, 20);
public StreamReader OpenTextFile(
string path,
Encoding encoding = null,
bool detectEncoding = true,
int bufferSize = 1024);
doc.SaveAs("Test.docx");
 Co- and Contra-variance
 Generic 型の引数に in, out を導入(共変性・反変性の実現)
Visual Basic 10.0
~ あの忌々しい "_" は不要になった ~
 オブジェクト初期化子
Dim x As New List(Of Integer) From {1, 2, 3}
Dim d As New Dictionary(Of String, Integer) From {{"A", 1}, {"B", 2}}
 改行記号(_) の排除
 複数行のデリゲート式をサポート
 自動プロパティ
Public Property MyProp As Integer = 0
 HTMLリテラル
 XMLリテラル(VB 9.0)に続き、HTML
もリテラル記述が可能に
Dim html = <table>
<%= From x In s
Select <tr><td><%= x.Name
%></td></tr> %>
</table>
Dim t As New Thread
(
Sub ()
For Each o In Arr
Console.WriteLine(o)
Next
End Sub
)
Dim f As Function(i As Integer)
If i > 10 Then
Return 0
Else
Return 1
End If
End Function
Windows API Code Pack
~ Windows 7 の新機能を利用する多機能ラ゗ブラリ ~
 Windows 7 タスクバー




ジャンプリスト
ゕ゗コンオーバーレ゗
プログレスバー
タブサムネ゗ル
 Sensor & Location Platform
 Sensor API
 Location API
 グラフィックス
 Direct3D / Direct2D
 DirectWrite
 Windows Imaging Component
 その他
 フェデレーションサーチ、コモンダ゗ゕログ
 電源管理、リスタート&リカバリー
Visual Studio Team System 2010
~ チーム開発を効率化してプロジェクトの進捗を可視化する ~
TFS の簡単
゗ンストール
レポート機能の強化
テスト管理
Native Code
対応
テスト環境の
管理と展開
テスト時の情報共有
ゕーキテクチャ
レ゗ヤ ダ゗ゕグラム
UML 対応
UML モデリング
~ UML でゕプリケーションの構造を多角的に表現 ~
アクティビティ図
ユースケース図
ビジネスorシステムの振る舞いを表現
システムの振る舞いを表現
シーケンス図
動的な振る舞いを表現
コンポーネント図
システムの物理的な構造を表現
クラス図
クラスの静的な構造を表現
アーキテクチャーエクスプローラー
~ ゕプリケーション構造を可視化 ~
 依存関係グラフ
 ゕセンブリ別
 名前空間別
 クラス別
 カスタム
テスト
~ 品質は最重要! テストの効率化 ~
 テストケース管理
 テスト計画の早期実施と進捗確認
 一般テスト担当者へのゕプローチ
 全体の進捗の共有
 テスト環境のライブラリ化
 再現性のないバグへの対応が可能
 環境構築時間の短縮
 テスト構成の復元・再構築が容易
 効果的なビルドとテストが可能
 テストの並行実施
 コード化された UI テスト
 UI の操作を記録してテスト
プロジェクト化
 テストを実行すると自動的に UI
の操作が行われる
ASP.NET 4.0
~ より標準に向けた改良と生産性を追求 ~
 Web フォームの機能強化
 Non-table-based HTML レンダリング
 ViewStateなしの ListView
 HTML スニペット
 ASP.NET AJAX の強化
 クラ゗ゕントサ゗ドテンプレート
 GridView
 jQuery サポート
 jQuery Plugin Repository
 キャッシュ機能の強化
 Disk-based Output
 Cloud-based object caches
 Distributed object caches
 マルチ Web.config
 配置に合わせた Web.config
ASP.NET MVC
~ SEO 対策が容易で゗ンターネットサ゗ト向き ~
 Web Form
 生産性重視
 PostBack / ViewState
 豊富なコントロール
 RAD による高い生産性
 ASP.NET MVC
 Internet 対策重視
 SEO 対策が容易 (URL)
 単体テストが容易
 タグによるコーデゖング
WCF 4.0(Windows Communication Foundation)
~ サービスの基盤テクノロジー ~
 構成 (Configuration) の簡素化
 <service> セクション不要
 既定のバ゗ンデゖング、ビヘ゗ビゕの提供
 machine.config で既定を変更可能
 暗黙のエンドポ゗ント構成
 既定構成を変更する場合のみ従来通りの記述
 .svc フゔ゗ル不要
 .svc などを使わずにサービスホストが可能
 動的 Service Discovery
 UDPのブロードキャストによるローカルサブネット上の Adhoc
Discovery と プロキシを使用したManaged Discovery の提供
 サービスは serviceDicovery ビヘ゗ビゕ, udpDiscoveryEndpoint な
どクラ゗ゕントは DynamicEndpoint , DiscoveryClient などで記述
 WCF REST / Json サポート
 WCF 4.0 標準機能として実装
Visual Studio 2010 SP1 の新機能
~ 今回は無難なゕップデートです ~
 IIS 7.5 Express の提供
 軽量・高速の Web サーバー
 デバッグまたは実行に管理者ゕカウントが不要に
 IIS の利用可能なほとんどの開発機能がビルト゗ン
 VC++
 MFC に Animation と Direct2D のラ゗ブラリを追加
 XOP, FMA4, LWP プロセッサ テクノロジーをサポート
 IDE





゗ンテリトレースの 64 bit 対応、ワークフロー& Web パーツにも対応
旧 .NET Framework 3.5 の単体テストをサポート
Silverlight 4 開発ツールを正式サポート
HTML 5 サポート
SQL Server Compact 4.0 のデザ゗ンタ゗ムサポート
 Web 配置ツール 2. 0
 展開可能な依存関係(ゕセンブリ)の追加機能
 SQL Server Compact ランタ゗ム ゕセンブリなど
Tools Update
~ MIX 11 での発表 ~
 ASP.NET MVC 3 Tools Update
 Windows 認証を使ったテンプレート
 View コードの HTML5 対応
 jQuery 1.3 をサポート
 各種 JavaScript ラ゗ブラリの NuGet パッケージとしての搭載
 Razor
 ASP.NET用のオプションとなる新しいビュー・エンジン
 コードにフォーカスしたテンプレート方式を使用
 HTML 生成周りを最適化
 Modernizr
 HTML5/CSS3 のブラウザの対応状況を簡単に確認
 クロスブラウザ対応のための JavaScript ラ゗ブラリの搭載
 Kinect for Windows SDK beta
 XBOX の Kinect センサーを Windows ゕプリケーションで利用する
ドラ゗バとラ゗ブラリ
Windows Presentation Foundation
WPF4 の新機能
~ 細かい機能強化ですがどれも重要です ~
 データバインディング パイプラインを変更
 UI コントロールのプロパテゖを設定後に
バ゗ンデゖングソースからもう一度プロパテゖ値を
取得するように変更
 Easing 関数
 ゕニメーションにおける値の補完をカスタマ゗ズ
 11 種類の゗ージング関数をビルト゗ン
 Cached Composition
 CacheMode プロパテゖを提供
 コントロールなど任意のビジュゕル
をビデオメモリにビットマップと
してキャッシュする機能
 大量オブジェクト&コントロール
配置時の描画を高速化できる
WPF4 レンダリングエンジン
~ くっきりはっきりした UI になります! ~
 UseLayoutRounding プロパティ
 描画をピクセル単位に揃える丸め処理を使用するかどうか
 Silverlight 2 で導入、WPF 4 では既定値 False
16ピクセルのビットマップを
Canvas.Left="0.5" で表示
True
 Text Rendering API
 テキスト描画スタックを改良して文字もより明瞭に
 TextFormattingMode 添付プロパテゖ
 Ideal: WPF 既定のメトリックス
 Display:GDI 互換のメトリックス
False
WPF Other Features
~ WPF するなら 絶対に 4.0 がお勧めです ~
 Custom Dictionary
 スペルチェックに使用するカスタム辞書の追加が可能
#LID 1033
 英語のみ
 Caret ブラシ
 カーソルの色
GeniusHirai
 幅や形状の変更は不可
 Selection ブラシ
 テキスト選択時の背景色
 透明度
 グラデーション
 Pixel Shader 3.0 のサポート
 WPF 3.5 SP1 は Pixel Shader 2.0 をサポート
 PS 3.0 では劇的に洗練れている
Win7 タスクバーインテグレーション
~ コードでも XAML でも OK ~
 ジャンプリスト
 ゕプリケーションに渡されたコマンド
ラ゗ン引数で処理を判断
 ゕ゗コンは Win32 リソースか
ICOフゔ゗ル
 プログレスバー
 進行状況をゕ゗コン上にバー表示
 オーバーレイアイコン
 タスクバーのゕ゗コンの右下1/4に
別ゕ゗コンを表示
 プレビューアイコン
 タスクバーのプレビューウゖンドウに
カスタムボタンを配置可能
タッチ & マルチタッチ
~ WPF 4.0 でなら楽勝! ~
 Multi-Touch サポート
 UIElements と UIElements3D を対応
 IsManipulationEnabled プロパテゖ
 マルチキャプチャのサポート
 マニュピュレーション&イナーシャ
 操作(パン・ズーム・ローテーション)
 慣性(弾き飛ばすような動き)
 境界フィードバック(端までいったらどうする)
 イベント




ManipulationStarting
ManipulationDelta - 各種変換を適用
ManipulationInertiaStarting - 慣性を設定
TouchDown, TouchMove, TouchUp などの RAW
゗ベントもある
 Mouse ゗ベント ≒ Touch ゗ベント
GUI
NUI
WPF vNEXT
~ 次なる WPF ! 現在フゖードバック受付中 ~
 WPF Ribbon
 正式に゗ンテグレーション予定
 Silverlight Host
 WebBrowser コントロールでなく、
専用のホストコントロールを提供
 Collections on Background Thread
 大量のコレクション処理をバックグランドで処理可能に
 UI スレッドと別タスクで操作性を向上
Silverlight
Silverlight 3
~ パフォーマンスの大幅向上とメデゖゕ機能の拡張 ~
 擬似 3D のサポート
 平面を3次元空間に投影
 WriteableBitmap
 任意の UIElement の
スクリーンショットが可能
 メディア機能の強化
 H.264 / AAC のサポート
 HD フルスクリーン再生
 IIS Smooth Streaming
 コンテンツ保護の強化(DRM)
 GPU アクセラレーション
<div id="silverlightControlHost">
<param name="enableGPUAcceleration"
value="true"/>
<param name="enableCacheVisualization"
value="true"/>
Silverlight Out-of-Browser
~ Silverlight はついにブラウザの外へ!~
 ブラウザー外実行
 ゗ンストール
 デスクトップショートカット
 スタートメニューへの追加
 安全で堅牢なセキュリテゖ
 変更の自動検知と自動更新
 VS の構成ダ゗ゕログで設定
 ネットワーク接続検知
 NetworkAddressChanged ゗ベント
 GetIsNetworkAvailable プロパテゖ
Silverlight 4 - 新機能
~ お客様のご要望にお応えしました ~
 印刷機能搭載
 PrintDocument クラス
 PrintableArea, PageVisual, HasMorePages
 ドラッグ&ドロップ
 UIElement.AllowDrop プロパテゖ
 各種 Drag ゗ベントを提供
 マウス制御
 右クリック対応
 ホ゗ール対応
 クリップボード
 Clipboard クラス
 Webカメラ
 CaptureSource クラス
 CaptureDeviceConfiguration
Silverlight 4 - その他
~ Silverlight 4 で大規模ビジネスゕプリケーション開発 ~
 IME 対応
 IME のオン・オフや入力モードの指定
 Out of Browser を拡張
 大きさ、位置、最前列表示などのウゖンドウ制御
 NotificationWindow によるトーストポップゕップ
 WebBrowser による HTML の表示
 ローカルフゔ゗ルシステムへのゕクセス
 クロスドメ゗ンポリシーフゔ゗ルの設置が不要
 COM Automation サポート (IDispatch) Windows 限定
 Controls & DataBind
 RichTextBox コントロール
 依存プロパテゖとのデータバ゗ンド
 データバ゗ンデゖング
 StringFormat, TargetNullValue, FallbackValue を新設
 IDataErrorInfo, INotifyDataErrorInfo のサポート
Silverlight PivotViewer
~ BI のフロントして゗ケてる UI ~
 Silverlight PivotViewer(Silverlight 5 で標準搭載)
 コレクションを超視覚的に表示するコンポーネント&コントロール
 CXML(コレクション XML)や ゗メージデータの作成ツールも提供
 並び替え・フゖルター機能付き
 DeepZoom を実装
 http://www.microsoft.com/silverlight/pivotviewer/
Silverlight 5
~ 現在 Beta を提供中! 2011年中に RTM 予定 ~
 Media
 ハートウェゕ・デコード
 トリックプレ゗
 電源管理
 リモートコントロール
 Out-of-Browser
 Multiple Window サポート
 P/Invoke(API 呼び出し)
 グループポリシーサポート
 パフォーマンス
 Faster Startup
 Hardware Acceleration
 64 ビット プラグ゗ン
 Data Binding
 Data Binding Debugging
 MVVM サポート
 Implicit Data Templates
 Ancestor RelativeSource
Binding
 Binding in Style Setters
 DataContextChanged Event
 WCF & RIA Services
 WS-Trust Support
 Low-latency Networking
 MVVM friendly DataSource
 Windows Azure Support
http://www.microsoft.com/japan/silverlight/development_SL5b.aspx
Windows Phone 7
Windows Phone 7 の特徴
~ Easy Navigation and Access ~
 メトロデザイン フレームワーク
 統一された UI と゗ンタラクション
 カラーバリエーションとの親和性
 ライブタイル
 自由なレ゗ゕウト
 ユーザーやゕプリの登録
 プッシュ配信と情報表示
 ハブ
 クラウドと連携した6つの標準機能
 people, office, music+video,
photos, games, marketplace
Windows Phone 7 開発
~ Silverlight か XNA か? ゲームもビジネスもこれ1台で! ~
 Silverlight での開発
 Silverlight のプログラミングモデル
 RIA プラットフォーム
 XNA での開発
 DirectX ベースのゲーム開発環境
 開発ツール
 Visual Studio 2010 for Windows Phone
 Expression Blend 4 for Windows Phone
 XNA Game Studio 4.0 for Windows Phone
 Phone インテグレーション





Location & Map Control
Microphone & Camera
Push Notifications
Accelerometer
Hub Integration
Windows Azure Hosted Service
プロジェクトの作成
~ Visual Studio のテンプレートではじめる ~
 Windows Azure クラウドサービス
 Visual Studio を起動して [新規作成][Windows Azure クラウドサービス]
プロジェクトテンプレートを選択
 必要なロールを追加
 1ロール = 1プロジェクト
+ クラウド サービス プロジェクト
プロジェクトのプロパティ
~ 構成フゔ゗ルの直接編集も OK ~
 主な設定項目
 ゗ンスタンス数
 VM サ゗ズ
 Storage サービスの




ゕカウント情報
ローカルストレージ
証明書
エンド ポ゗ント
カスタム変数設定
開発ファブリック
~ Windows Azure の環境を開発マシンでエミュレート ~
 Development Fabric UI
 WebRole, WorkerRole を
稼働させる疑似環境
 ロール゗ンスタンスの
稼働状況
 ログの確認
 VS2010 で実行すれば
自動的に起動
 トレ゗ゕ゗コンにメニュー
あり
 Development Storage UI
 開発環境用の Storage を提供
 BLOB, TABLE, QUEUE などの
ストレージ稼働状況の確認
 起動・停止の制御
Azure へのデプロイメント
~ 配置は Visual Studio から 1クリックで完了 ~
 クラウドサービス プロジェクトの[発行]メニュー
 発行用パッケージの作成と
Windows Azure 環境への
ゕップロードを自動化
 各マシンで証明書の作成して
Azure ポータルでゕップ
 一度やれば OK
 サ゗トの [Account] – [Upload
Certificate]で Upload
 パッケージ化して Azure
ポータルサイトからでも
発行可能
 2つのフゔ゗ルを Upload
 xxxxx.cscfg(構成フゔ゗ル)
 xxxxx.cspkg(パッケージフゔ゗ル)
まとめ
~ ぜひ!皆様のビジネスにご活用ください ~
 プラットフォームは Windows 7 & Windows Server 2008 R2 &
2008 R2 & Windows Azure & Internet Explorer & Windows Phone
Windows Phone 7 & Office 365
 クラ゗ゕント Windows 7, サーバーは Windows Server 2008 R2
 ゕプリは Windows Azure に展開、データは SQL Azure へ!
 開発ツールは Visual Studio 2010
 上位エデゖションをお勧めします
 デザインツールは Expression Studio 4
 Expression Blend は有益かつ重要な画面設計ツールです
 データベースは SQL Server 2008 R2 & SQL Azure
 非常に出来がいいです。安心してご採用下さい。
 テクノロジーは WPF, WCF, Silverlight, AJAX, LINQ,
64 bit, Parallel, MVC, REST, HTML5, 仮想化, クラウド
 既に実績も増えだしてて本格的な実装フェーズになりました
Thanks for Attending !
アンケートにご協力ください。
本セッション専用のゕンケート用紙がございます。
お手数をお掛けしますが、ご協力ほどお願いします。