Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.
.NET Framework入門2013/03/09 Visual Studio勉強会@kamukiriri
目次0. 自己紹介1. はじめに2. .NET Frameworkって?3. 覚えておくと便利な機能4. さいごに
0. 自己紹介HN:     kamu(@kamukiriri)仕事:元.NET系業務システム開発者        現iOSアプリ開発者プログラミング暦:      C#, VB.NET, Objective-C, Javascript,   ...
1. はじめに(1)この発表の内容は、「.NET Framework入門」ですが、.NET Frameworkの使い方を具体的に説明する為に、以下の言語を例として使用します ・Visual C# (以後C#) ・Visual Basic.NET...
1. はじめに(2)その為、C++/CLIをはじめとする他の.NET系言語では事情が異なる内容も含まれているかもしれませんもしそういう事や他の間違いに気付かれた方は、是非、質疑応答の際などに教えてください!
2. .NET Frameworkって?(1)Visual StudioのメインターゲットであるC#やVB.NET等の言語で作られたプログラムの実行環境であり開発環境→VSでの開発に必要不可欠な存在
2. .NET Frameworkって?(2)大きな特徴・どの言語も同じ実行環境で動く・開発には基本クラスライブラリ (BCL)を用いる (=プログラミングのための部品の集合)・言語間に互換性がある (データ型が同じ、C#で作ったクラスをVB....
2. .NET Frameworkって?(3)つまり・・・C#で開発する事も、VB.NETで開発する事も、.NET Framework(のBCL)で開発していると言う意味では同じ事
2. .NET Frameworkって?(4)「VBでxxしたいけどサンプルないなあ」→「C#ならあった!」「VBのあの機能をC#でも使えたらなあ」→「C#でも使えた!」・・・という事が結構あります
3. 覚えておくと便利な機能独断と偏見で選んだ重要機能たち 3-1. null許容型 3-2. ジェネリック コレクション 3-3. LINQ
3-1. null許容型(1)null許容型とは?.NETでは数値型や日付型のように、null(VBではNothing)の代入できないデータ型があるこのnullの代入できない型にnullが代入できる(かのように扱う)ようにするのがnull許容型...
3-1. null許容型(2)補足:nullの入らない型.NETのデータ型(変数の型)は、以下の2種類に大別することができる  ・値型 :数値、日付など。       実体を保持し、nullが入らない。  ・参照型:文字列、GUIコントロールな...
3-1. null許容型(3)null許容型を使う主な場面外部から取得したデータを変数に格納したいが、必ず値が取得できるとは限らないとき ・ユーザーに入力してもらう画面項目が省略可能な場合 ・データベース上のnull許可項目から値を取得する場合
3-1. null許容型(4)null許容型を宣言するC#:  int? number;  Nullable<int> number;VB.NET:  Dim number As Integer? VB2008以降  Dim number As...
3-1. null許容型(5)null許容型を使う(C#) int? number = 1; number = number + 1 //2 number = null if (number == null){ //true     numbe...
3-1. null許容型(6)null許容型を使う(VB.NET) Dim number As Integer? = 1; number = number + 1 //2 number = Nothing If number Is Nothin...
3-1. null許容型(7)null許容型の注意点・紹介した使い方は言語のサポートありきの構文 →純粋にNullable構造体の機能だけで処理を   書くのは少し面倒・あくまで元々の型(数値や日付)とは別の型 →代入の際はキャストで変換するか...
3-2. ジェネリックコレクション(1)ジェネリックコレクションとは?(1)なんからのコレクション(=値の集合)を表現する場合、よく使われるのが配列変数しかし、(C#やVBの)配列変数は固定長なので時として不便・大き目の配列にすると、有効な値の...
3-2. ジェネリックコレクション(2)ジェネリックコレクションとは?(2)そこで、.NET Framework 1.1以前では、可変長なコレクションとして、ArrayListなどが使われていたしかし、ArrayListはObject型でしか要...
3-2. ジェネリックコレクション(3)ジェネリックコレクションとは?(3)そんな中.NET Framework 2.0で登場したのが、List<T>などのジェネリックコレクションジェネリックコレクションは、可変長かつ実際に格納する型を明示でき...
3-2. ジェネリックコレクション(4)主なジェネリックコレクションList<T>       :配列と同じように扱えるDictionary<T> :キーと値のペアを保存する               (いわゆる連想配列、辞書、ハッシュ)他に...
3-2. ジェネリックコレクション(5)ジェネリックコレクションを使う(C#) List<string> list = new List<string>(); list.Add("a"); list.Add("b"); for (int i =...
3-2. ジェネリックコレクション(6)ジェネリックコレクションを使う(VB.NET) Dim list As List(Of String) = New List(Of String) list.Add("a") list.Add("b") ...
3-3. LINQ(1)LINQとは?正式名称は「統合言語クエリ」データの集合(データソース)から特定のデータを抜き出したり、加工したりするための仕組みコレクションの操作やデータベース問い合わせに使用できる               (※.N...
3-3. LINQ(2)LINQの対象配列やジェネリックコレクションでも使用できる他にも、 ・XML用の「LINQ to XML」 ・DB用の「ADO.NET Entity Framework」などがある
3-3. LINQ(3)LINQの特徴(1)LINQの機能は、対象となるオブジェクトのメソッドとして提供されているまた、メソッドは統一的に作られているので、異なるデータソースを同じ様に扱うことが出来る
3-3. LINQ(4)LINQの特徴(2)従来はループを用いて書く必要があった処理を、メソッド1つで実現できるLINQのメソッドの例: ・Where():特定の条件を満たす要素を抽出する ・All():全ての要素が特定の条件を満たすかどうか調...
3-3. LINQ(5)LINQを使う(C#) List<int> list = new List<int>{1, 2, 3, 4, 5, 6}; IEnumerable<int> query                    = list...
3-3. LINQ(6)補足:条件の記述について(1) List<int> list = new List<int>{1, 2, 3, 4, 5, 6}; IEnumerable<int> query                    = ...
3-3. LINQ(7)補足:条件の記述について(2) IEnumerable<int> query                  = list.Where(isEven); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ b...
3-3. LINQ(8)LINQを使う(VB.NET) Dim list As List(Of Integer)    = New List(Of Integer) From {1, 2, 3, 4, 5, 6}; IEnumerable(Of...
3-3. LINQ(9)クエリ式言語が対応していればSQLライクに記述できるC#:  List<int> list = new List<int>{1, 2, 3, 4, 5, 6};  var query = from number in l...
3-3. LINQ(10)LINQの注意点(1)・LINQの処理は遅延実行される →抽出や加工の結果が実際に必要になった   タイミングで処理される(foreachで使用した時など)
3-3. LINQ(11)LINQの注意点(1) List<int> list = new List<int>{1, 2, 3, 4, 5, 6}; IEnumerable<int> query                      = l...
3-3. LINQ(12)LINQの注意点(2)・クエリ式はSQLと互換性があるわけではない →あくまでそれっぽく書けるだけ   特にJOINやサブクエリ(みたいな書き方)は   SQLよりややこしい(主観)
4. さいごに(1)今回ご紹介した機能やその使い方は、.NET Frameworkの本当に極一部、取っ掛かりの部分にすぎません(LINQに関しては特に!)便利な機能はたくさん他にも沢山あります!
4. さいごに(2)困った時はとにかく・・・MSDNライブラリを読みましょう!!http://msdn.microsoft.com/library/default.aspx・日本語!・全バージョンをカバー!・豊富なサンプル!
.NET Framework入門ご清聴ありがとうございました
Nächste SlideShare
Wird geladen in …5
×

VS勉強会 .NET Framework 入門

5.985 Aufrufe

Veröffentlicht am

2013/03/09 第1回Visual Studio 勉強会

Veröffentlicht in: Technologie
  • Als Erste(r) kommentieren

VS勉強会 .NET Framework 入門

  1. 1. .NET Framework入門2013/03/09 Visual Studio勉強会@kamukiriri
  2. 2. 目次0. 自己紹介1. はじめに2. .NET Frameworkって?3. 覚えておくと便利な機能4. さいごに
  3. 3. 0. 自己紹介HN: kamu(@kamukiriri)仕事:元.NET系業務システム開発者 現iOSアプリ開発者プログラミング暦: C#, VB.NET, Objective-C, Javascript, PHP, VB6, VBA, VBS, etc...
  4. 4. 1. はじめに(1)この発表の内容は、「.NET Framework入門」ですが、.NET Frameworkの使い方を具体的に説明する為に、以下の言語を例として使用します ・Visual C# (以後C#) ・Visual Basic.NET (以後VB.NET)
  5. 5. 1. はじめに(2)その為、C++/CLIをはじめとする他の.NET系言語では事情が異なる内容も含まれているかもしれませんもしそういう事や他の間違いに気付かれた方は、是非、質疑応答の際などに教えてください!
  6. 6. 2. .NET Frameworkって?(1)Visual StudioのメインターゲットであるC#やVB.NET等の言語で作られたプログラムの実行環境であり開発環境→VSでの開発に必要不可欠な存在
  7. 7. 2. .NET Frameworkって?(2)大きな特徴・どの言語も同じ実行環境で動く・開発には基本クラスライブラリ (BCL)を用いる (=プログラミングのための部品の集合)・言語間に互換性がある (データ型が同じ、C#で作ったクラスをVB.NETで使える等)
  8. 8. 2. .NET Frameworkって?(3)つまり・・・C#で開発する事も、VB.NETで開発する事も、.NET Framework(のBCL)で開発していると言う意味では同じ事
  9. 9. 2. .NET Frameworkって?(4)「VBでxxしたいけどサンプルないなあ」→「C#ならあった!」「VBのあの機能をC#でも使えたらなあ」→「C#でも使えた!」・・・という事が結構あります
  10. 10. 3. 覚えておくと便利な機能独断と偏見で選んだ重要機能たち 3-1. null許容型 3-2. ジェネリック コレクション 3-3. LINQ
  11. 11. 3-1. null許容型(1)null許容型とは?.NETでは数値型や日付型のように、null(VBではNothing)の代入できないデータ型があるこのnullの代入できない型にnullが代入できる(かのように扱う)ようにするのがnull許容型 (※.NET Framework2.0以降)
  12. 12. 3-1. null許容型(2)補足:nullの入らない型.NETのデータ型(変数の型)は、以下の2種類に大別することができる ・値型 :数値、日付など。 実体を保持し、nullが入らない。 ・参照型:文字列、GUIコントロールなど。 参照を保持し、nullが入る。
  13. 13. 3-1. null許容型(3)null許容型を使う主な場面外部から取得したデータを変数に格納したいが、必ず値が取得できるとは限らないとき ・ユーザーに入力してもらう画面項目が省略可能な場合 ・データベース上のnull許可項目から値を取得する場合
  14. 14. 3-1. null許容型(4)null許容型を宣言するC#: int? number; Nullable<int> number;VB.NET: Dim number As Integer? VB2008以降 Dim number As Nullable(Of Integer)
  15. 15. 3-1. null許容型(5)null許容型を使う(C#) int? number = 1; number = number + 1 //2 number = null if (number == null){ //true number = number + 1 //null }
  16. 16. 3-1. null許容型(6)null許容型を使う(VB.NET) Dim number As Integer? = 1; number = number + 1 //2 number = Nothing If number Is Nothing Then //True number = number + 1 //Nothing End If
  17. 17. 3-1. null許容型(7)null許容型の注意点・紹介した使い方は言語のサポートありきの構文 →純粋にNullable構造体の機能だけで処理を   書くのは少し面倒・あくまで元々の型(数値や日付)とは別の型 →代入の際はキャストで変換するか、   Valueプロパティで元々の値を取得する
  18. 18. 3-2. ジェネリックコレクション(1)ジェネリックコレクションとは?(1)なんからのコレクション(=値の集合)を表現する場合、よく使われるのが配列変数しかし、(C#やVBの)配列変数は固定長なので時として不便・大き目の配列にすると、有効な値の範囲を管理するのが手間・必要なサイズが増える度に作り直すとパフォーマンスが低下
  19. 19. 3-2. ジェネリックコレクション(2)ジェネリックコレクションとは?(2)そこで、.NET Framework 1.1以前では、可変長なコレクションとして、ArrayListなどが使われていたしかし、ArrayListはObject型でしか要素を扱えず、やはり不便だった・値を取得する際に毎回キャストする手間がかかる・何でもかんでも入るのでバグの発生や保守性低下の恐れ
  20. 20. 3-2. ジェネリックコレクション(3)ジェネリックコレクションとは?(3)そんな中.NET Framework 2.0で登場したのが、List<T>などのジェネリックコレクションジェネリックコレクションは、可変長かつ実際に格納する型を明示できる→実行速度などを気にする必要がなければ、配列ではなくこちらを使っておく方が便利
  21. 21. 3-2. ジェネリックコレクション(4)主なジェネリックコレクションList<T> :配列と同じように扱えるDictionary<T> :キーと値のペアを保存する  (いわゆる連想配列、辞書、ハッシュ)他にもキューやスタックなどの一般的なデータ構造が揃っている
  22. 22. 3-2. ジェネリックコレクション(5)ジェネリックコレクションを使う(C#) List<string> list = new List<string>(); list.Add("a"); list.Add("b"); for (int i = 0; i < list.Count; i++){ Console.WriteLine("{0}", list[i].ToUpper()) //A, B }
  23. 23. 3-2. ジェネリックコレクション(6)ジェネリックコレクションを使う(VB.NET) Dim list As List(Of String) = New List(Of String) list.Add("a") list.Add("b") For i As Integer 0 To list.Count-1 Console.WriteLine("{0}", list(i).ToUpper()) //A, B Next
  24. 24. 3-3. LINQ(1)LINQとは?正式名称は「統合言語クエリ」データの集合(データソース)から特定のデータを抜き出したり、加工したりするための仕組みコレクションの操作やデータベース問い合わせに使用できる (※.NET Framework3.5以降)
  25. 25. 3-3. LINQ(2)LINQの対象配列やジェネリックコレクションでも使用できる他にも、 ・XML用の「LINQ to XML」 ・DB用の「ADO.NET Entity Framework」などがある
  26. 26. 3-3. LINQ(3)LINQの特徴(1)LINQの機能は、対象となるオブジェクトのメソッドとして提供されているまた、メソッドは統一的に作られているので、異なるデータソースを同じ様に扱うことが出来る
  27. 27. 3-3. LINQ(4)LINQの特徴(2)従来はループを用いて書く必要があった処理を、メソッド1つで実現できるLINQのメソッドの例: ・Where():特定の条件を満たす要素を抽出する ・All():全ての要素が特定の条件を満たすかどうか調べる ・Select():各要素を別の値に加工する
  28. 28. 3-3. LINQ(5)LINQを使う(C#) List<int> list = new List<int>{1, 2, 3, 4, 5, 6}; IEnumerable<int> query = list.Where(x=>x%2 == 0); foreach (var number in query ){ Console.WriteLine("{0}", number) //2 ,4, 6 }
  29. 29. 3-3. LINQ(6)補足:条件の記述について(1) List<int> list = new List<int>{1, 2, 3, 4, 5, 6}; IEnumerable<int> query = list.Where(x=>x%2 == 0); foreach (var number in query ){ Console.WriteLine("{0}", number) //2 ,4, 6 }
  30. 30. 3-3. LINQ(7)補足:条件の記述について(2) IEnumerable<int> query = list.Where(isEven); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ bool isEven(int x){ return x % 2 == 0 }
  31. 31. 3-3. LINQ(8)LINQを使う(VB.NET) Dim list As List(Of Integer) = New List(Of Integer) From {1, 2, 3, 4, 5, 6}; IEnumerable(Of Integer) query = list.Where(Function(x)=>x mod 2 = 0); For Each number As Integer In list Console.WriteLine("{0}", number ) 2 ,4, 6 Next
  32. 32. 3-3. LINQ(9)クエリ式言語が対応していればSQLライクに記述できるC#: List<int> list = new List<int>{1, 2, 3, 4, 5, 6}; var query = from number in list where number % 2 == 0 select number; //2 ,4, 6
  33. 33. 3-3. LINQ(10)LINQの注意点(1)・LINQの処理は遅延実行される →抽出や加工の結果が実際に必要になった   タイミングで処理される(foreachで使用した時など)
  34. 34. 3-3. LINQ(11)LINQの注意点(1) List<int> list = new List<int>{1, 2, 3, 4, 5, 6}; IEnumerable<int> query = list.Where(x=>x%2 == 0); list[0] = 0; //0, 2, 3, 4, 5, 6 foreach (var number in query ) Console.WriteLine("{0}", number) //0, 2 ,4, 6
  35. 35. 3-3. LINQ(12)LINQの注意点(2)・クエリ式はSQLと互換性があるわけではない →あくまでそれっぽく書けるだけ   特にJOINやサブクエリ(みたいな書き方)は   SQLよりややこしい(主観)
  36. 36. 4. さいごに(1)今回ご紹介した機能やその使い方は、.NET Frameworkの本当に極一部、取っ掛かりの部分にすぎません(LINQに関しては特に!)便利な機能はたくさん他にも沢山あります!
  37. 37. 4. さいごに(2)困った時はとにかく・・・MSDNライブラリを読みましょう!!http://msdn.microsoft.com/library/default.aspx・日本語!・全バージョンをカバー!・豊富なサンプル!
  38. 38. .NET Framework入門ご清聴ありがとうございました

×