極東IT Engineers 設立記念勉強会
そういえば、デモの内容をメモってたのを思い出したので貼り付けておきます。
.NETアプリケーションの起動
App Domain
1. アプリの作成
アプリの依存関係の説明
2.DumpBin
/Dependents
C:\Program Files\Microsoft Visual Studio 9.0\VC\bin
mscoree.dll -> mscorwks.dll
AppDomain
3. プロセス起動
4. mscoree.dll
5. SystemDomain
6. SharedDomain
7. load mscorlib.dll
8. Default AppDomain
9. アセンブリロード
Assembly
Assemblyの内部
1. ildasm
C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\Bin
2. [表示] - [メタ情報] - [表示]
3. 内部構造
マニフェスト
メタデータ
コード
リソース
4.マニフェスト
アセンブリ名
バージョン番号
カルチャ
公開キー
アセンブリ内のファイルリスト
参照アセンブリに関する情報
------------------
TypeDef
TypeRef
Assembly
AssemblyRef
StrongName
1. キーペアの作成
sn -k key.snk
"C:\Program Files\Microsoft Visual Studio 8\sdk\v2.0\Bin\sn.exe" -k key.snk
2. ソースにバージョン情報を追加
[assembly: System.Reflection.AssemblyVersion("1.2.3.4")]
3. 厳密名付きアセンブリの作成
C:\windows\Microsoft.NET\Framework\v3.5\csc /keyfile:key.snk /out:demo1sn.exe demo1.cs
4. ildasmでバージョン情報、publicKeyの確認
IL
1. ILDASM
2. JIT
3. NGEN
GAC
中を追ってみよう
GAC 1.0, 1.1
GAC_MSIL OnlyManaged
GAC_32 32BitNativeを含む
GAC_64 64BitNativeを含む
CAS
GC
1. Managed Heap
2. NextObjPtr
3. Generation
4. Compaction
5. Dispose
6. Finalization List
7. F Reachable Queue