SlideShare uma empresa Scribd logo
1 de 38
Javaユーザーにも聞いてほしい 今だから理解する「.NET Framework」 マイクロソフト株式会社 デベロッパー & プラットフォーム 統括本部 開発ツール製品部 エグゼクティブプロダクトマネージャ 鈴木 祐巳
アジェンダ はじめに .NET Framework の概要 コンパイル 配置 実行 セキュリティ まとめ
はじめに
本セッションの目的 .NET Framework初めての方 .NET Framework の実行の仕組みを理解する。 .NET 開発者の方 CLR に対する理解を深めるきっかけとし、トラブルを未然に防ぐための一助とする。
.NET Framework の概要
⊃ .NET Framework とは =
⊃ .NET Framework とは ⊃ “ConnectedSystem” を実現するためのフレームワーク実装 CLR + Library 開発生産性、安全性、信頼性を実現する開発プラットフォーム SOA をはじめとする ConnectedSystem の技術基盤、ソリューション、サポートの総称
.NET Framework の構造 Solution Framework ASP.NET AJAX LINQ WCF WPF WF CardSpace ADO.NET ASP.NET Windows フォーム Base Class Library(BCL) Common Language Runtime(CLR)
.NET Framework バージョン遷移 3.5 Add 3.0 3.0 Keep Add 1.0 1.1 2.0 2.0 2.0 V-UP Keep Keep V-UP 1.0 1.1 2.0 2.0 2.0 V-UP Keep Keep V-UP 包含 共存
本題の入り口
実行までの超概要 プログラム:3つの状態 開発環境と実行環境 2つのコンパイラ ソースコード アセンブリ ネイティブ CLR Visual Studio、SDK 言語別コンパイラ JIT コンパイラ
コンパイル
.NET 言語 (プログラミング 言語)
言語別コンパイラ 言語別のコンパイラ と ひとつの中間言語 CLR が解釈可能な中間言語にコンパイル アセンブリ C# コンパイラ Visual C# 中間言語 MSIL VBコンパイラ Visual Basic
アセンブリ アセンブリとは アプリケーションのビルディング ブロック 基本単位 配置 バージョン管理 再利用 アクティブ化のスコープの指定 セキュリティ アクセス許可 つまり、DLL や EXE
アセンブリの内容 アセンブリ MANIFEST 自己記述型のアセンブリ情報 アセンブリのID、厳密名情報、バージョン情報、カルチャ 含まれる型やリソースの情報 参照しているアセンブリの情報 実行に必要な許可セット情報など IL JIT コンパイラへの入力となる中間言語 メタデータ 型とメソッドに関する情報 リソース 文字列や画像、永続化されたデータなど MANIFEST リソース メタデータ メタデータ メタデータ IL IL IL
アセンブリ名 テキスト 簡易名 テキスト バージョン カルチャ 公開キー + + + 厳密名 秘密キー
配置
アセンブリの配置場所 任意のディレクトリ 単一のアプリケーションからしか使用しない場合 構成ファイルの<codeBase>を使用して検索場所を指定 厳密名を持つ場合 コンピュータ、イントラネット、インターネットの任意の場所 厳密名を持たない場合 アプリケーションのディレクトリ、もしくはサブディレクトリ GAC (Global Assembly Cache) 複数のアプリケーションで共有する場合 厳密名を持つ場合のみ登録可能 gacutil.exe を使用して アセンブリのインストールや削除を行う
.NET での配置方法 配置の特徴 レジストリへの登録は不要 アセンブリ単位で管理される 高度なバージョン管理が可能 配置方法 XCopyによる配置 (XCopyデプロイメント) 単純なファイルのコピー Windows インストーラを利用した配置 .msiファイルを利用したセットアップ プログラム VisualStudio を使って作成 ClickOnce HTTP を利用して Web サーバーからダウンロード
アセンブリのバージョン管理 厳密名 バージョンもアセンブリ区別の対象となる DLL HELL からの解放 複数のバージョンの DLL を管理可能 前提とするバージョンの DLL を勝手に更新しない (GACの場合) サイド バイ サイド 実行 適切なバージョンの DLL を検索し、ロード
アセンブリのサイドバイ サイド実行 プログラム A New Class1() プログラム B New Class1() プログラム C New Class1() プログラム D New Class1() ローカルな使用 共有アセンブリ としての使用 Example.dll Example.dll Example.dll Example.dll MANIFEST MANIFEST Ver.1.0.0.0 MANIFEST Ver.2.0.0.0 MANIFEST Ver.2.0.1.0 簡易名 厳密名 厳密名 厳密名 indowsssembly  グローバル アセンブリ キャッシュ (GAC) バージョン管理 の対象外 Class1 Class1 Class1 Class1 異なるバージョンの共有 DLL が共存
実行
アセンブリの実行 マネージ EXE .NET実行ファイル 自身のロード 実行 アセンブリ ローダ JIT コンパイラ 起動 必要な型の ロード コンパイル・ コードの検証 ヘッダー解析 MSCorEE.dll MSCorWks.dll ロード・初期化
ASP.NET ランタイムの実行プロセス コードビハインドクラス 解析 生成 ASPX エンジン ページ クラス ASPX ファイル 生成されたページクラス リクエスト リクエスト インスタンス コンパイル レスポンス レスポンス プロセスのインスタンス化 Web サーバー (IIS) Web ブラウザ
ランタイムバージョンの選定 アセンブリのファイル ヘッダで実行する CPU アーキテクチャを選定 構成ファイルなどの情報で実行する CLR のバージョンを選定 (サイド バイ サイド 実行) CLR 1.0 の MSCorWks.dll 32bit の MSCorEE.dll アセンブリのヘッダ 構成 ファイル CLR 1.1 の MSCorWks.dll 64bit の MSCorEE.dll CLR 2.0 の MSCorWks.dll
アプリケーション ドメイン プロセス 論理的なプロセス空間 SystemDomain mscoree.dll mscorwks.dll SharedDomain mscorelib.dll AppDomain アプリケーション AppDomain 1 (Default AppDomain) AppDomain 2 System.dll System.dll App1.exe App2.exe SharedDomain mscorlib.dll SystemDomain
JIT コンパイラ JIT(Just In Time) コンパイラ 実行時に未コンパイルの MSIL を ネイティブ コードにコンパイル コンパイル後のネイティブ コードはメモリに格納 NGen.exe による事前コンパイルも可能
セキュリティ
セキュリティ コード アクセス セキュリティ ロールベース セキュリティ
コード アクセス セキュリティとは コード アクセス セキュリティ プログラムの実行時、アセンブリに対して、リソース アクセスや特定操作に関して行われるアクセス制御 エビデンスベースのセキュリティ .NET Framework 実行環境が標準で備えている 証拠 (エビデンス) の提示 アセンブリ CLR アクセス許可の付与
セキュリティポリシー コードグループとアクセス許可セットとの対応付け 特定の条件ごとのグループ アクセス許可(Permission)のグループ Group All Code FullTrust すべてのアクセス許可 Group ゾーン – マイコンピュータ LocalIntranet ファイル ダイアログ Group ゾーン – イントラネット MySet ファイル IO Group URL – http://srv/* ロード 条件に照らし合わせ、 コードグループに属する アクセス許可が付与される メンテナンス アセンブリ caspol (コマンドライン) Microsoft . NET Framework 2.0 構成(MMC)
ロール ベース セキュリティ 役割ごとにユーザーをグループ化した「ロール」単位で行うセキュリティ制御 おもにビジネスロジック制御に利用 ロールは Windows OS のアカウントに非依存 ロールは Windows のグループア カウントにマップ可能 実行スレッドに対して、Principal オブジェクトが関連付いている 実行者を表す Principal オブジェクトを元に制御する
まとめ
CLR のメリット(まとめ) 異なるプログラミング言語での簡単な連携 異なる言語で記述された DLL を他の言語から利用できる 複数言語間のクラス継承、例外処理 高度なバージョン管理 DLLHELL からの解放 サイド バイ サイド実行 ランタイムによるセキュリティ向上 コード アクセス セキュリティ ロール ベース セキュリティ
多様なアプリケーション開発 プラットフォームのパワーを最大限活用した アプリケーションの実現 モバイル アプリケーション Web アプリケーション クラウド Windows アプリケーション バックエンド システム Office アプリケーション
参考書籍 .NET Framework 開発ガイドブック プログラミング .NET Framework 第2版 Jeffrey Richter 著 吉松 史彰 監訳 日経BP ソフトプレス
© 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista, Visual Studio and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation.  Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation.  MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Mais conteúdo relacionado

Semelhante a 090916 X D E V今だから理解する[

PowerShell の基本操作とリモーティング&v3のご紹介 junichia
PowerShell の基本操作とリモーティング&v3のご紹介 junichiaPowerShell の基本操作とリモーティング&v3のご紹介 junichia
PowerShell の基本操作とリモーティング&v3のご紹介 junichia
junichi anno
 

Semelhante a 090916 X D E V今だから理解する[ (20)

『これからの.NETアプリケーション開発』セミナー .NET用アプリケーション フレームワーク Open 棟梁 概説
『これからの.NETアプリケーション開発』セミナー .NET用アプリケーション フレームワーク Open 棟梁 概説『これからの.NETアプリケーション開発』セミナー .NET用アプリケーション フレームワーク Open 棟梁 概説
『これからの.NETアプリケーション開発』セミナー .NET用アプリケーション フレームワーク Open 棟梁 概説
 
20050903
2005090320050903
20050903
 
デブサミ2008 .NETの仕組み
デブサミ2008 .NETの仕組みデブサミ2008 .NETの仕組み
デブサミ2008 .NETの仕組み
 
本格化するクラウド ネイティブに向けて進化する開発プラットフォームと .NET
本格化するクラウド ネイティブに向けて進化する開発プラットフォームと .NET本格化するクラウド ネイティブに向けて進化する開発プラットフォームと .NET
本格化するクラウド ネイティブに向けて進化する開発プラットフォームと .NET
 
ADO.NET Entity Framework
ADO.NET Entity Framework ADO.NET Entity Framework
ADO.NET Entity Framework
 
クロスプラットフォーム開発入門
クロスプラットフォーム開発入門クロスプラットフォーム開発入門
クロスプラットフォーム開発入門
 
Linux & Mac OS でも動く! ~ オープンソース & クロスプラットフォーム .NET の歩き方 ~
Linux & Mac OS でも動く! ~ オープンソース & クロスプラットフォーム .NET の歩き方 ~Linux & Mac OS でも動く! ~ オープンソース & クロスプラットフォーム .NET の歩き方 ~
Linux & Mac OS でも動く! ~ オープンソース & クロスプラットフォーム .NET の歩き方 ~
 
闘うITエンジニアのためのLinuxセキュリティ講座
闘うITエンジニアのためのLinuxセキュリティ講座闘うITエンジニアのためのLinuxセキュリティ講座
闘うITエンジニアのためのLinuxセキュリティ講座
 
MicrosoftのOSSへの取り組み
MicrosoftのOSSへの取り組みMicrosoftのOSSへの取り組み
MicrosoftのOSSへの取り組み
 
20021007
2002100720021007
20021007
 
Open棟梁概要説明 v02-00
Open棟梁概要説明 v02-00Open棟梁概要説明 v02-00
Open棟梁概要説明 v02-00
 
Cloud から IoT まで、なんでもおまかせ ~ .NET 5 正式リリース!
Cloud から IoT まで、なんでもおまかせ ~ .NET 5 正式リリース!Cloud から IoT まで、なんでもおまかせ ~ .NET 5 正式リリース!
Cloud から IoT まで、なんでもおまかせ ~ .NET 5 正式リリース!
 
.NET Core と Container, そして Azure Web Apps on Linux による Web アプリ開発最前線
.NET Core と Container, そして Azure Web Apps on Linux による Web アプリ開発最前線.NET Core と Container, そして Azure Web Apps on Linux による Web アプリ開発最前線
.NET Core と Container, そして Azure Web Apps on Linux による Web アプリ開発最前線
 
PowerShell の基本操作とリモーティング&v3のご紹介 junichia
PowerShell の基本操作とリモーティング&v3のご紹介 junichiaPowerShell の基本操作とリモーティング&v3のご紹介 junichia
PowerShell の基本操作とリモーティング&v3のご紹介 junichia
 
20060419
2006041920060419
20060419
 
20010127
2001012720010127
20010127
 
INF-009_PowerShell を 使いこなして、自動化対応 エンジニア になろう!!
INF-009_PowerShell を 使いこなして、自動化対応 エンジニア になろう!!INF-009_PowerShell を 使いこなして、自動化対応 エンジニア になろう!!
INF-009_PowerShell を 使いこなして、自動化対応 エンジニア になろう!!
 
2015 0227 OSC-Spring Tokyo NETMF
2015 0227 OSC-Spring Tokyo NETMF2015 0227 OSC-Spring Tokyo NETMF
2015 0227 OSC-Spring Tokyo NETMF
 
クラウドアプリケーション開発に必要なセキュリティ
クラウドアプリケーション開発に必要なセキュリティ クラウドアプリケーション開発に必要なセキュリティ
クラウドアプリケーション開発に必要なセキュリティ
 
OSSによるマッシュアップ&サービス化を実現するOpen棟梁サービス開発基盤
OSSによるマッシュアップ&サービス化を実現するOpen棟梁サービス開発基盤OSSによるマッシュアップ&サービス化を実現するOpen棟梁サービス開発基盤
OSSによるマッシュアップ&サービス化を実現するOpen棟梁サービス開発基盤
 

Mais de Masami Suzuki (6)

2014年OSC 東京 LT 「某開始記念!OSS利用者向けWindows Azureの ライトなライトな使い方」
2014年OSC 東京 LT 「某開始記念!OSS利用者向けWindows Azureのライトなライトな使い方」2014年OSC 東京 LT 「某開始記念!OSS利用者向けWindows Azureのライトなライトな使い方」
2014年OSC 東京 LT 「某開始記念!OSS利用者向けWindows Azureの ライトなライトな使い方」
 
131110dot feswindowsazurewebsitefordesigners4x3
131110dot feswindowsazurewebsitefordesigners4x3131110dot feswindowsazurewebsitefordesigners4x3
131110dot feswindowsazurewebsitefordesigners4x3
 
Windows Azure ミニシアター@日経BP Cloud Days 2013春展示会場
Windows Azure ミニシアター@日経BP Cloud Days 2013春展示会場Windows Azure ミニシアター@日経BP Cloud Days 2013春展示会場
Windows Azure ミニシアター@日経BP Cloud Days 2013春展示会場
 
「Windows Azure がPaaS と IaaS を提供する理由」
「Windows Azure がPaaS と IaaS を提供する理由」「Windows Azure がPaaS と IaaS を提供する理由」
「Windows Azure がPaaS と IaaS を提供する理由」
 
IT Pro Expo Booth Main Stage Windows Azure
IT Pro Expo Booth Main Stage Windows AzureIT Pro Expo Booth Main Stage Windows Azure
IT Pro Expo Booth Main Stage Windows Azure
 
Cloud Solution for business development
Cloud Solution for business development Cloud Solution for business development
Cloud Solution for business development
 

090916 X D E V今だから理解する[

  • 1. Javaユーザーにも聞いてほしい 今だから理解する「.NET Framework」 マイクロソフト株式会社 デベロッパー & プラットフォーム 統括本部 開発ツール製品部 エグゼクティブプロダクトマネージャ 鈴木 祐巳
  • 2. アジェンダ はじめに .NET Framework の概要 コンパイル 配置 実行 セキュリティ まとめ
  • 4. 本セッションの目的 .NET Framework初めての方 .NET Framework の実行の仕組みを理解する。 .NET 開発者の方 CLR に対する理解を深めるきっかけとし、トラブルを未然に防ぐための一助とする。
  • 7. ⊃ .NET Framework とは ⊃ “ConnectedSystem” を実現するためのフレームワーク実装 CLR + Library 開発生産性、安全性、信頼性を実現する開発プラットフォーム SOA をはじめとする ConnectedSystem の技術基盤、ソリューション、サポートの総称
  • 8. .NET Framework の構造 Solution Framework ASP.NET AJAX LINQ WCF WPF WF CardSpace ADO.NET ASP.NET Windows フォーム Base Class Library(BCL) Common Language Runtime(CLR)
  • 9. .NET Framework バージョン遷移 3.5 Add 3.0 3.0 Keep Add 1.0 1.1 2.0 2.0 2.0 V-UP Keep Keep V-UP 1.0 1.1 2.0 2.0 2.0 V-UP Keep Keep V-UP 包含 共存
  • 11. 実行までの超概要 プログラム:3つの状態 開発環境と実行環境 2つのコンパイラ ソースコード アセンブリ ネイティブ CLR Visual Studio、SDK 言語別コンパイラ JIT コンパイラ
  • 14. 言語別コンパイラ 言語別のコンパイラ と ひとつの中間言語 CLR が解釈可能な中間言語にコンパイル アセンブリ C# コンパイラ Visual C# 中間言語 MSIL VBコンパイラ Visual Basic
  • 15. アセンブリ アセンブリとは アプリケーションのビルディング ブロック 基本単位 配置 バージョン管理 再利用 アクティブ化のスコープの指定 セキュリティ アクセス許可 つまり、DLL や EXE
  • 16. アセンブリの内容 アセンブリ MANIFEST 自己記述型のアセンブリ情報 アセンブリのID、厳密名情報、バージョン情報、カルチャ 含まれる型やリソースの情報 参照しているアセンブリの情報 実行に必要な許可セット情報など IL JIT コンパイラへの入力となる中間言語 メタデータ 型とメソッドに関する情報 リソース 文字列や画像、永続化されたデータなど MANIFEST リソース メタデータ メタデータ メタデータ IL IL IL
  • 17. アセンブリ名 テキスト 簡易名 テキスト バージョン カルチャ 公開キー + + + 厳密名 秘密キー
  • 19. アセンブリの配置場所 任意のディレクトリ 単一のアプリケーションからしか使用しない場合 構成ファイルの<codeBase>を使用して検索場所を指定 厳密名を持つ場合 コンピュータ、イントラネット、インターネットの任意の場所 厳密名を持たない場合 アプリケーションのディレクトリ、もしくはサブディレクトリ GAC (Global Assembly Cache) 複数のアプリケーションで共有する場合 厳密名を持つ場合のみ登録可能 gacutil.exe を使用して アセンブリのインストールや削除を行う
  • 20. .NET での配置方法 配置の特徴 レジストリへの登録は不要 アセンブリ単位で管理される 高度なバージョン管理が可能 配置方法 XCopyによる配置 (XCopyデプロイメント) 単純なファイルのコピー Windows インストーラを利用した配置 .msiファイルを利用したセットアップ プログラム VisualStudio を使って作成 ClickOnce HTTP を利用して Web サーバーからダウンロード
  • 21. アセンブリのバージョン管理 厳密名 バージョンもアセンブリ区別の対象となる DLL HELL からの解放 複数のバージョンの DLL を管理可能 前提とするバージョンの DLL を勝手に更新しない (GACの場合) サイド バイ サイド 実行 適切なバージョンの DLL を検索し、ロード
  • 22. アセンブリのサイドバイ サイド実行 プログラム A New Class1() プログラム B New Class1() プログラム C New Class1() プログラム D New Class1() ローカルな使用 共有アセンブリ としての使用 Example.dll Example.dll Example.dll Example.dll MANIFEST MANIFEST Ver.1.0.0.0 MANIFEST Ver.2.0.0.0 MANIFEST Ver.2.0.1.0 簡易名 厳密名 厳密名 厳密名 indowsssembly グローバル アセンブリ キャッシュ (GAC) バージョン管理 の対象外 Class1 Class1 Class1 Class1 異なるバージョンの共有 DLL が共存
  • 24. アセンブリの実行 マネージ EXE .NET実行ファイル 自身のロード 実行 アセンブリ ローダ JIT コンパイラ 起動 必要な型の ロード コンパイル・ コードの検証 ヘッダー解析 MSCorEE.dll MSCorWks.dll ロード・初期化
  • 25. ASP.NET ランタイムの実行プロセス コードビハインドクラス 解析 生成 ASPX エンジン ページ クラス ASPX ファイル 生成されたページクラス リクエスト リクエスト インスタンス コンパイル レスポンス レスポンス プロセスのインスタンス化 Web サーバー (IIS) Web ブラウザ
  • 26. ランタイムバージョンの選定 アセンブリのファイル ヘッダで実行する CPU アーキテクチャを選定 構成ファイルなどの情報で実行する CLR のバージョンを選定 (サイド バイ サイド 実行) CLR 1.0 の MSCorWks.dll 32bit の MSCorEE.dll アセンブリのヘッダ 構成 ファイル CLR 1.1 の MSCorWks.dll 64bit の MSCorEE.dll CLR 2.0 の MSCorWks.dll
  • 27. アプリケーション ドメイン プロセス 論理的なプロセス空間 SystemDomain mscoree.dll mscorwks.dll SharedDomain mscorelib.dll AppDomain アプリケーション AppDomain 1 (Default AppDomain) AppDomain 2 System.dll System.dll App1.exe App2.exe SharedDomain mscorlib.dll SystemDomain
  • 28. JIT コンパイラ JIT(Just In Time) コンパイラ 実行時に未コンパイルの MSIL を ネイティブ コードにコンパイル コンパイル後のネイティブ コードはメモリに格納 NGen.exe による事前コンパイルも可能
  • 30. セキュリティ コード アクセス セキュリティ ロールベース セキュリティ
  • 31. コード アクセス セキュリティとは コード アクセス セキュリティ プログラムの実行時、アセンブリに対して、リソース アクセスや特定操作に関して行われるアクセス制御 エビデンスベースのセキュリティ .NET Framework 実行環境が標準で備えている 証拠 (エビデンス) の提示 アセンブリ CLR アクセス許可の付与
  • 32. セキュリティポリシー コードグループとアクセス許可セットとの対応付け 特定の条件ごとのグループ アクセス許可(Permission)のグループ Group All Code FullTrust すべてのアクセス許可 Group ゾーン – マイコンピュータ LocalIntranet ファイル ダイアログ Group ゾーン – イントラネット MySet ファイル IO Group URL – http://srv/* ロード 条件に照らし合わせ、 コードグループに属する アクセス許可が付与される メンテナンス アセンブリ caspol (コマンドライン) Microsoft . NET Framework 2.0 構成(MMC)
  • 33. ロール ベース セキュリティ 役割ごとにユーザーをグループ化した「ロール」単位で行うセキュリティ制御 おもにビジネスロジック制御に利用 ロールは Windows OS のアカウントに非依存 ロールは Windows のグループア カウントにマップ可能 実行スレッドに対して、Principal オブジェクトが関連付いている 実行者を表す Principal オブジェクトを元に制御する
  • 35. CLR のメリット(まとめ) 異なるプログラミング言語での簡単な連携 異なる言語で記述された DLL を他の言語から利用できる 複数言語間のクラス継承、例外処理 高度なバージョン管理 DLLHELL からの解放 サイド バイ サイド実行 ランタイムによるセキュリティ向上 コード アクセス セキュリティ ロール ベース セキュリティ
  • 36. 多様なアプリケーション開発 プラットフォームのパワーを最大限活用した アプリケーションの実現 モバイル アプリケーション Web アプリケーション クラウド Windows アプリケーション バックエンド システム Office アプリケーション
  • 37. 参考書籍 .NET Framework 開発ガイドブック プログラミング .NET Framework 第2版 Jeffrey Richter 著 吉松 史彰 監訳 日経BP ソフトプレス
  • 38. © 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista, Visual Studio and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Notas do Editor

  1. 少し経験談を話す。忙しいと競合情報がなかなかつかめない。もう5年以上利用されている技術だと、生い立ちや、バックグラウンド、どのバージョンを使っていいのか?等まったく想像がつかない。新バージョン登場で、記事はたくさんでるが、新規にフォーカスしすぎていて、前提知識がないと、よくわからない。かといって、初期の情報が今でも通用するのか?陳腐化していないか?わからないので読む気がしない。
  2. 4
  3. 10
  4. 12
  5. 18
  6. 30
  7. 38
  8. 43
  9. タイプシステムGC