6 11 2008
Expert .NET 2.0 IL Assembler
If you want to know how .Net Framework works internally then there is very good book by Serge Lidin – Expert .NET 2.0 IL Assembler. Serge Lidin is author of IL Assembler, IL Disassembler. He is also one of those guys who wrote IL Assembler language specification. So I think he knows the topic very well.
Although books concentrates more on IL Assembler, it gives you a very good review how lower layers of .Net Framework work and how these layers are built. For beginners this book is too heavy reading I think, because this book is fun if you have very good knowledge of .Net Framework.
If you don’t know what is IL and you want to see how IL assembly language look then take a look at posting C# and var keyword. Second block of code there is in IL assembly language. Looks horrible but it is not so hard if you study it a little bit.
For me the most interesting topics were about how different .Net language compilers behave in different situations and what kind of code they are generating. Also there were some interesting pieces of information about limits of different compilators. By example, now I know what features of .Net Framework are used for global variables that VB.Net supports.
Expert .Net 2.0 IL Assembler is weird book. It is like mixture of good reading and manual. If you are writing IL Assembler code you can take this book on your table and you can be sure this book helps you. If you want to read about IL Assembler, again take this book and read. It works well in both cases.
Table of contents
|2||Enhancing the Code|
|3||Making the code easier|
|4||The Structure of Managed Executable File|
|5||Metadata Tables Organization|
|6||Modules and Assemblies|
|7||Namespaces and Classes|
|8||Primitive Types and Signatures|
|9||Fields and Data Constants|
|IV||Inside the Execution Engine|
|14||Managed Exception Handling|
|15||Events and Properties|
|18||Managed and Unmanaged Code Interoperation|
|A||ILAsm Grammar Reference|
|B||Metadata Tables Reference|
|C||IL Instruction Set Reference|
|D||IL Assembler and Disassembler Command-Line Options|
|E||Offline Verification Tool Reference|