c#4.0 と visual studio 2010/.net framework 4.0~ここが cool! いけてる機能10連発!~

67
C#4.0 Visual Studio 2010/ .NET Framework 4.0 1 2009/07/11 INETA DAY 2009 VSUG ここここここ Microsoft MVP for Development Tools - Visual C# ここ こここ ととと Cool! とととととと 10 とと !

Upload: fujio-kojima

Post on 12-Nov-2014

465 views

Category:

Technology


5 download

DESCRIPTION

「INETA Day 2009~コミュニティパワーをリアルに体験しよう」 2009年7月11日 日本科学未来館 みらいCanホール http://ineta.jp/tabid/232/Default.aspx セッション 1-3 『C#4.0 と Visual Studio 2010/.NET Framework 4.0~ここが Cool! いけてる機能10連発!~』 6月に公開されたばかりの Visual Studio 2010 Beta 1 を使って、C#4.0 と Visual Studio 2010/.NET Framework 4.0 いけてる、お勧めの機能を、どんどんとデモで紹介します。

TRANSCRIPT

Page 1: C#4.0 と Visual Studio 2010/.NET Framework 4.0~ここが Cool! いけてる機能10連発!~

C#4.0 とVisual Studio 2010/.NET Framework 4.0

1

2009/07/11 INETA DAY 2009

VSUGこみゅぷらすMicrosoft MVP for Development Tools - Visual C#

小島 富治雄

~ここが Cool! いけてる機能 10 連発 ! ~

Page 2: C#4.0 と Visual Studio 2010/.NET Framework 4.0~ここが Cool! いけてる機能10連発!~

自己紹介

2

Page 3: C#4.0 と Visual Studio 2010/.NET Framework 4.0~ここが Cool! いけてる機能10連発!~

小島 富治雄 (Fujiwo)

・ VSUG・こみゅぷらす・ Microsoft MVP for Development Tools - Visual C#

3

Page 4: C#4.0 と Visual Studio 2010/.NET Framework 4.0~ここが Cool! いけてる機能10連発!~

VSUG

Visual Studio® User Group

http://vsug.jp

4

Page 5: C#4.0 と Visual Studio 2010/.NET Framework 4.0~ここが Cool! いけてる機能10連発!~

こみゅぷらす

http://comuplus.net

5

Page 6: C#4.0 と Visual Studio 2010/.NET Framework 4.0~ここが Cool! いけてる機能10連発!~

マイブーム

自転車通勤“bicycle commute”

ジャグリング“juggling”

英語の勉強“learning English”

Page 7: C#4.0 と Visual Studio 2010/.NET Framework 4.0~ここが Cool! いけてる機能10連発!~

アジェンダ

•はじめに•いけてる機能 10 連発 !–Visual Studio 2010 新機能–C#/C++ 4.0 新機能–.NET Framework 4.0 新機能

Page 8: C#4.0 と Visual Studio 2010/.NET Framework 4.0~ここが Cool! いけてる機能10連発!~

はじめに

8

Page 9: C#4.0 と Visual Studio 2010/.NET Framework 4.0~ここが Cool! いけてる機能10連発!~

デモが中心です。

9

Page 10: C#4.0 と Visual Studio 2010/.NET Framework 4.0~ここが Cool! いけてる機能10連発!~

デモ環境

Visual Studio 2010 Beta 1( 日本語版 )

onWindows 7 RC

10

Page 11: C#4.0 と Visual Studio 2010/.NET Framework 4.0~ここが Cool! いけてる機能10連発!~

背景11

Page 12: C#4.0 と Visual Studio 2010/.NET Framework 4.0~ここが Cool! いけてる機能10連発!~

最近のマイクロソフトの技術

•Windows Azure–クラウド コンピューティング–分散、並列、スケーラビリティ ( スケールアウト )

12

Page 13: C#4.0 と Visual Studio 2010/.NET Framework 4.0~ここが Cool! いけてる機能10連発!~

最近のマイクロソフトの技術

•Oslo と M 言語–モデリング–DSL ( ドメイン特化言語 )

13

Page 14: C#4.0 と Visual Studio 2010/.NET Framework 4.0~ここが Cool! いけてる機能10連発!~

最近のマイクロソフトの技術•DLR–Dynamic Language Runtime–ダイナミック言語

14

Page 15: C#4.0 と Visual Studio 2010/.NET Framework 4.0~ここが Cool! いけてる機能10連発!~

プログラミング言語のトレンド

宣言型プログラミング

並列プログラミング

ダイナミック

DSL

Page 16: C#4.0 と Visual Studio 2010/.NET Framework 4.0~ここが Cool! いけてる機能10連発!~

宣言型プログラミング

“What” を記述⇔ 命令型プログラミング–“How” を記述 (C# 2 .0 以前など )

Page 17: C#4.0 と Visual Studio 2010/.NET Framework 4.0~ここが Cool! いけてる機能10連発!~

ダイナミック ( 動的 )

コンパイラによる型チェック無し⇔ スタティック ( 静的 )–コンパイラによる型チェック

(C# 3.0 以前など )

Page 18: C#4.0 と Visual Studio 2010/.NET Framework 4.0~ここが Cool! いけてる機能10連発!~

DSL ( ドメイン特化言語 )

ドメインのモデルの記述に特化した言語

⇔ 汎用言語(C#, Visual Basic 等 )

Page 19: C#4.0 と Visual Studio 2010/.NET Framework 4.0~ここが Cool! いけてる機能10連発!~

並列プログラミング

19

Page 20: C#4.0 と Visual Studio 2010/.NET Framework 4.0~ここが Cool! いけてる機能10連発!~

ムーアの法則の破れ

20

「今から 10 年後、 15 年後に、

われわれは極めて根本的な問題に直面する」

2007/09/18

「半導体に集積されるトランジスタの数は18 ~ 24 カ月ごとに

倍増する」ムーアの法則 1965

ゴードン・ムーア( インテルの共同創業者 )

Page 21: C#4.0 と Visual Studio 2010/.NET Framework 4.0~ここが Cool! いけてる機能10連発!~

マルチコア CPU

21

Page 22: C#4.0 と Visual Studio 2010/.NET Framework 4.0~ここが Cool! いけてる機能10連発!~

プログラマはどうすればいいか

22

James Hughes 氏( サン マイクロシステムズ副社長 )

マルチ スレッディングを有効に活用するための

並列プログラミング技術が必要2008/12/03

Page 23: C#4.0 と Visual Studio 2010/.NET Framework 4.0~ここが Cool! いけてる機能10連発!~

マルチパラダイム• 手続き型• オブジェクト指向型• 関数型• 命令型 ⇔ 宣言型• 静的型付き ⇔ 動的型無し• Generic• 並列プログラミング 23

Page 24: C#4.0 と Visual Studio 2010/.NET Framework 4.0~ここが Cool! いけてる機能10連発!~

各のパラダイムの限界

•手続き型の限界•オブジェクト指向の限界

→ 適材適所のパラダイム→ マルチパラダイム

24

Page 25: C#4.0 と Visual Studio 2010/.NET Framework 4.0~ここが Cool! いけてる機能10連発!~

どんな風にプログラミング

したいか

25

Page 26: C#4.0 と Visual Studio 2010/.NET Framework 4.0~ここが Cool! いけてる機能10連発!~

複雑なものでも楽に

より早く

26

Page 27: C#4.0 と Visual Studio 2010/.NET Framework 4.0~ここが Cool! いけてる機能10連発!~

どんな風にプログラミングしたいか

コンピュータにできることは

コンピュータにやってほしい

27

→ ツール重要

Page 28: C#4.0 と Visual Studio 2010/.NET Framework 4.0~ここが Cool! いけてる機能10連発!~

どんな風にプログラミングしたいか

•シンプルに書きたいことだけを書く–モデル記述

( モデル = 関心事が分離されたもの )

28

→ モデリング重要 !

Page 29: C#4.0 と Visual Studio 2010/.NET Framework 4.0~ここが Cool! いけてる機能10連発!~

どんな風にプログラミングしたいか

•CPU に指示するようでなく•コンパイラに指示するようでなく•人が人に話すように

29

→ パラダイム採用 !

Page 30: C#4.0 と Visual Studio 2010/.NET Framework 4.0~ここが Cool! いけてる機能10連発!~

本日のキーワード

•ツール•モデリング•マルチパラダイム

30

ツール重要 !

パラダイム採用 !

モデリング重要 !

Page 31: C#4.0 と Visual Studio 2010/.NET Framework 4.0~ここが Cool! いけてる機能10連発!~

いけてる機能 10 連発 !

31

Page 32: C#4.0 と Visual Studio 2010/.NET Framework 4.0~ここが Cool! いけてる機能10連発!~

「いけてる ! 」と思ったら

拍手してください

32

Page 33: C#4.0 と Visual Studio 2010/.NET Framework 4.0~ここが Cool! いけてる機能10連発!~

練習します

33

Page 34: C#4.0 と Visual Studio 2010/.NET Framework 4.0~ここが Cool! いけてる機能10連発!~

1 発目Visual Studio 2010

スタート ページ

34

ツール重要 !

Page 35: C#4.0 と Visual Studio 2010/.NET Framework 4.0~ここが Cool! いけてる機能10連発!~

スタートページ

•WPF ベース• “ 最近使ったプロジェクト”–ピン止め機能など

•カスタマイズ可能

Page 36: C#4.0 と Visual Studio 2010/.NET Framework 4.0~ここが Cool! いけてる機能10連発!~

2 発目Visual Studio 2010

コード エディター

36

ツール重要 !

モデリング重要 !

Page 37: C#4.0 と Visual Studio 2010/.NET Framework 4.0~ここが Cool! いけてる機能10連発!~

コード エディター等

•コード 文字サイズのZoom-In 、 ZoomOut•フローティング–マルチディスプレイに便利 !

•呼び出し階層の表示–メソッドを選択 - 呼び出し階層の表示

Page 38: C#4.0 と Visual Studio 2010/.NET Framework 4.0~ここが Cool! いけてる機能10連発!~

コード エディター等•検索–検索単語を選択して•編集 - 移動 → 移動•選択単語の強調表示

• インテリセンス–自動採用するかどうかの切り替え• Ctrl+Alt+Space

38

Page 39: C#4.0 と Visual Studio 2010/.NET Framework 4.0~ここが Cool! いけてる機能10連発!~

自動生成機能

•クラスの自動生成•プロパティの自動生成

テスト駆動開発を更にサポート

メソッドの内部設計をしながらの実装が可能に

Page 40: C#4.0 と Visual Studio 2010/.NET Framework 4.0~ここが Cool! いけてる機能10連発!~

シンプルに書きたいことだけを書く

→ モデル記述( モデル = 関心事が分離されたもの )

40

Page 41: C#4.0 と Visual Studio 2010/.NET Framework 4.0~ここが Cool! いけてる機能10連発!~

3 発目Visual Studio 2010

アーキテクチャエクスプローラ

41

ツール重要 !

モデリング重要 !

Page 42: C#4.0 と Visual Studio 2010/.NET Framework 4.0~ここが Cool! いけてる機能10連発!~

モデリング機能•アーキテクチャ

エクスプローラ–コードの依存関係を可視化• ソース / クラス / メソッド等を選択 - グラフィッ

Page 43: C#4.0 と Visual Studio 2010/.NET Framework 4.0~ここが Cool! いけてる機能10連発!~

4 発目Visual Studio 2010

UML

43

ツール重要 !

モデリング重要 !

Page 44: C#4.0 と Visual Studio 2010/.NET Framework 4.0~ここが Cool! いけてる機能10連発!~

モデリング機能•UML–アクティビティ図–ユースケース図–レイヤー図–論理クラス図–コンポーネント図–シーケンス図

Page 45: C#4.0 と Visual Studio 2010/.NET Framework 4.0~ここが Cool! いけてる機能10連発!~

モデリング機能

•シーケンス図の生成–ソースコードから

Page 46: C#4.0 と Visual Studio 2010/.NET Framework 4.0~ここが Cool! いけてる機能10連発!~

5 発目Visual Studio 2010

デバッガー

46

ツール重要 !

Page 47: C#4.0 と Visual Studio 2010/.NET Framework 4.0~ここが Cool! いけてる機能10連発!~

デバッガー

•ブレークポイント–エキスポート–検索•デバッグ - ウィンドウ - ブレークポイント - 検索窓

Page 48: C#4.0 と Visual Studio 2010/.NET Framework 4.0~ここが Cool! いけてる機能10連発!~

デバッガー

•Data Tips–付箋紙のような変数ウォッチ• ( デバッグ中 ) 変数を選択 - 付箋紙アイコン

•デバッグ履歴

48

Page 49: C#4.0 と Visual Studio 2010/.NET Framework 4.0~ここが Cool! いけてる機能10連発!~

デバッガー

•Parallel Tasks/Stacks–並列動作のデバッグ• ( デバッグ中 )デバッグ - Window - Parallel Tasks または Parallel Stacks

49

Page 50: C#4.0 と Visual Studio 2010/.NET Framework 4.0~ここが Cool! いけてる機能10連発!~

break

50

Page 51: C#4.0 と Visual Studio 2010/.NET Framework 4.0~ここが Cool! いけてる機能10連発!~

6 発目C#4.0

dynamic

51

パラダイム採用 !

Page 52: C#4.0 と Visual Studio 2010/.NET Framework 4.0~ここが Cool! いけてる機能10連発!~

• dynamic–var•コンパイル時に型を特定•C# 3.0

–dynamic•実行時に型を特定•C# 4.0

C# 4.0

Page 53: C#4.0 と Visual Studio 2010/.NET Framework 4.0~ここが Cool! いけてる機能10連発!~

7 発目C#4.0

オプション引数 /名前付き引数

53

Page 54: C#4.0 と Visual Studio 2010/.NET Framework 4.0~ここが Cool! いけてる機能10連発!~

•オプション引数public void Foo(int x = 1, int y=2, int z=3){ … }

•名前付き引数

Foo(x: 10, z: 11);

C# 4.0

Page 55: C#4.0 と Visual Studio 2010/.NET Framework 4.0~ここが Cool! いけてる機能10連発!~

• オートメーション オブジェクトをダイナミック オブジェクト (dynamic) に• 省略可能な名前付きパラメータ• 省略可能な “ ref”

COM 相互運用性の改善

Page 56: C#4.0 と Visual Studio 2010/.NET Framework 4.0~ここが Cool! いけてる機能10連発!~

8 発目.NET Framework

4.0

並列プログラミング

56

パラダイム採用 !

Page 57: C#4.0 と Visual Studio 2010/.NET Framework 4.0~ここが Cool! いけてる機能10連発!~

Parallel Computing• Task Parallel Library (TPL)– Task ベースの並列処理の必要性– 最大限の効率を求める Work-Stealing アルゴリズ

ム– 抽象化により、Thread などの低レベルの知識が不

• Parallel Linq (PLINQ)– 宣言的データ並列処理– LINQ to Object を使用したシンプルな並列処理

• Coordination Data Structures (CDS)– 並列処理を支援する為のデータ構造体

Page 58: C#4.0 と Visual Studio 2010/.NET Framework 4.0~ここが Cool! いけてる機能10連発!~

パラレル•Task Parallel Library(TPL)

Parallel.For(0, 100,index => 何か重い処理

(index));

– Parallel の中断• Exception 、 ParallelLoopState クラ

ス、 Break 、 Stop 、 ShouldExitCurrentIteration

Page 59: C#4.0 と Visual Studio 2010/.NET Framework 4.0~ここが Cool! いけてる機能10連発!~

パラレル•PLINQ–AsParallel()–AsOrdered()–ParallelEnumerable

Enumerable.Range(1, 100).AsParallel().ForAll(Console.WriteLine);

ParallelEnumerable.Range(10, 100).AsOrdered().ForAll(Console.WriteLine);

Page 60: C#4.0 と Visual Studio 2010/.NET Framework 4.0~ここが Cool! いけてる機能10連発!~

パラレル•スレッドセーフな

コレクションクラス –BlockingCollection<T>–ConcurrentBag<T>–ConcurrentDictionary<TKey,

Tvalue>–ConcurrentQueue<T>–ConcurrentStack<T>

Page 61: C#4.0 と Visual Studio 2010/.NET Framework 4.0~ここが Cool! いけてる機能10連発!~

9 発目C++

C++ 0x への対応

61

Page 62: C#4.0 と Visual Studio 2010/.NET Framework 4.0~ここが Cool! いけてる機能10連発!~

C++ 0x への対応

•auto キーワード•ラムダ式•static_assert 宣言•decltype 演算子• rvalue への参照宣言

62

Page 63: C#4.0 と Visual Studio 2010/.NET Framework 4.0~ここが Cool! いけてる機能10連発!~

10 発目C++

Parallel Pattern Library

63

パラダイム採用 !

Page 64: C#4.0 と Visual Studio 2010/.NET Framework 4.0~ここが Cool! いけてる機能10連発!~

Parallel Pattern Library

array<int, 5> values = { 1, 2, 3, 4, 5 };

parallel_for(0U, values.size(),[&values] (size_t i){

values[i] *= 2;}

); 64

Page 65: C#4.0 と Visual Studio 2010/.NET Framework 4.0~ここが Cool! いけてる機能10連発!~

Parallel Pattern Library

array<int, 5> values = { 1, 2, 3, 4, 5 };

parallel_for_each(values.begin(),values.end(),[] (int& value) { value *= 2; }

);

65

Page 66: C#4.0 と Visual Studio 2010/.NET Framework 4.0~ここが Cool! いけてる機能10連発!~

Let’s enjoyprogramming!

66

Page 67: C#4.0 と Visual Studio 2010/.NET Framework 4.0~ここが Cool! いけてる機能10連発!~

Thank you for your attention.

67