.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 ! アンケートにご協力ください。 本セッション専用のゕンケート用紙がございます。 お手数をお掛けしますが、ご協力ほどお願いします。
© Copyright 2024 Paperzz