Rahman | C# Deconstructed | E-Book | sack.de
E-Book

E-Book, Englisch, 165 Seiten, eBook

Rahman C# Deconstructed

Discover how C# works on the .NET Framework
1. Auflage 2014
ISBN: 978-1-4302-6671-6
Verlag: APRESS
Format: PDF
Kopierschutz: 1 - PDF Watermark

Discover how C# works on the .NET Framework

E-Book, Englisch, 165 Seiten, eBook

ISBN: 978-1-4302-6671-6
Verlag: APRESS
Format: PDF
Kopierschutz: 1 - PDF Watermark



C# Deconstructed answers a seemingly simply question: Just what is going on, exactly, when you run C# code on the .NET Framework? To answer this question we will dig ever deeper into the structure of the C# language and the onion-skin abstraction layers of the .NET Framework that underpins it. Well follow the execution thread downwards, first to MSIL (Microsoft Intermediate Language) then down through just-in-time compilation into Machine Code before finally seeing the results executed at the hardware level. The aim of this deep-dive is to provide you with a much more rounded knowledge of the environment within which you code exists. As a managed language, its best-practice to let the Framework deal with device interaction but youll find the experience of taking the cover off once in a while a very rewarding one that will greatly enrich your appreciate of the C# language and the way in which in functions.

Rahman C# Deconstructed jetzt bestellen!

Zielgruppe


Popular/general


Autoren/Hrsg.


Weitere Infos & Material


1;Contents at a Glance;3
2;Contents;160
3;About the Author;164
4;About the Technical Reviewer;165
5;Chapter 1: Introduction to Programming Language;4
5.1;Overview of the CPU;4
5.1.1;Instruction Set Architecture of a CPU;7
5.2;Memory: Where the CPU Stores Temporary Information;8
5.3;Concept of the OS;9
5.3.1;Concept of the Process;11
5.3.2;Concept of the Thread;12
5.3.3;What Is Virtualization?;12
5.4;Programming Language;13
5.4.1;Compilation and Interpretation;13
5.4.2;Birth of C# Language and JIT Compilation;13
5.5;// Microsoft (R) .NET Framework IL Disassembler Version 4.0.30319.1;16
5.5.1;The CLR;19
5.5.2;Road Map to the CLR;20
5.6;Tools Used in This Book;25
5.6.1;Son of Strike Debugging Extension DLL;26
5.7;Conclusion;27
5.8;Further Reading;27
6;Chapter 2: The Virtual Machine and CLR;28
6.1;Virtual Machine;28
6.1.1;Problems with the Existing System;28
6.1.2;Optimization During Execution;29
6.2;Virtual Execution Environment;31
6.2.1;Components of the Virtual Execution Environment;32
6.3;CLR: Virtual Machine for .NET;32
6.3.1;CLR Supports Multiple Languages;33
6.3.2;Common Components of the CLR;39
6.4;Conclusion;40
6.5;Further Reading;40
7;Chapter 3: Assembly;41
7.1;What Is the Assembly?;41
7.2;Overview of Modules, Assemblies, and Files;42
7.3;Introduction to PE Files;43
7.4;Structure of the Assembly;44
7.4.1;Analysis of the Assembly;51
7.4.1.1;Section Header;53
7.4.1.2;.text Section;55
7.4.1.3;#~ stream;57
7.4.1.3.1;ModuleDef;58
7.4.1.3.2;TypeDef;58
7.4.1.3.3;MethodDef;58
7.4.1.3.4;Reference Tables;58
7.4.1.3.4.1;AssemblyRef;58
7.4.1.3.4.2;ModuleRef;58
7.4.1.3.4.3;TypeRef;58
7.4.1.3.4.4;MemberRef;59
7.5;Assembly Loading;60
7.5.1;Inside the Bind, Map, Load Process;61
7.5.2;Binding to an Assembly;61
7.5.3;Consulting the Cache;61
7.6;Conclusion;62
7.7;Further Reading;62
8;Chapter 4: CLR Memory Model;63
8.1;Introduction;63
8.1.1;Memory Interaction between the CLR and OS;64
8.2;Windows Memory Management;66
8.2.1;Concept of the Process;67
8.2.1.1;Process Structure;68
8.2.1.2;Process Address Space;69
8.2.2;Concept of the Thread;71
8.2.2.1;Thread Address Space;74
8.2.2.2;Thread and Frames;74
8.2.3;Concept of the Virtual Memory;74
8.2.3.1;32-bit and 64-bit Process Addressing;75
8.2.3.2;Virtual-to-Physical Address Mapping;79
8.2.4;Learn the Contents of a Particular Physical Memory Address;80
8.2.5;Find a Virtual Address and Its Contents;81
8.3;Memory-Mapped File;82
8.4;Conclusion;88
8.5;Further Reading;88
9;Chapter 5: CLR Memory Model II;89
9.1;CLR Memory Model: Application Domain;89
9.1.1;Finding an object in the Application Domain;94
9.1.2;Address Space of the Application Domain;95
9.1.3;Stack in the CLR;98
9.1.4;Address Space of the Stack;102
9.1.5;Heap;104
9.1.6;Heap and Address Space;106
9.2;objects;107
9.3;Garbage Collection;110
9.3.1;Generation 0;111
9.3.2;Generation 1;111
9.3.3;Generation 2;111
9.4;Conclusion;112
9.5;Further Reading;112
10;Chapter 6: CLR Execution Model;113
10.1;Overview of the CLR;113
10.1.1;The C# Program and the CLR;117
10.2;CLR Bootstrapping;122
10.2.1;CLR Address Space;126
10.3;Class Loader in the CLR;130
10.3.1;Locating the Main Entry Point;130
10.3.2;Stub Code for the Classes;131
10.3.3;Verification;132
10.4;Conclusion;132
10.5;Further Reading;132
11;Chapter 7: CLR Execution Model II;133
11.1;JIT Compilation;133
11.1.1;Method Stub of a Type;133
11.1.2;JIT-Compiled Status: NONE;135
11.1.3;JIT-Compiled Status: JIT;139
11.1.4;JIT-Compiled Status: PreJIT;142
11.1.5;How Many Times a Method Is JIT Compiled;145
11.2;Execution State of the CLR;145
11.3;Conclusion;153
11.4;Further Reading;153
12;Index;154


Mohammad Rahman is a computerprogrammer. He has been aprogrammer since 1998 and for the past seven years he has been designingdesktop and web-based systems for private and government agencies using C# language in Microsoft.NET. Currently he is working as acomputer programmer and earning his doctorate as a part-time student at the University ofCanberra, Australia.



Ihre Fragen, Wünsche oder Anmerkungen
Vorname*
Nachname*
Ihre E-Mail-Adresse*
Kundennr.
Ihre Nachricht*
Lediglich mit * gekennzeichnete Felder sind Pflichtfelder.
Wenn Sie die im Kontaktformular eingegebenen Daten durch Klick auf den nachfolgenden Button übersenden, erklären Sie sich damit einverstanden, dass wir Ihr Angaben für die Beantwortung Ihrer Anfrage verwenden. Selbstverständlich werden Ihre Daten vertraulich behandelt und nicht an Dritte weitergegeben. Sie können der Verwendung Ihrer Daten jederzeit widersprechen. Das Datenhandling bei Sack Fachmedien erklären wir Ihnen in unserer Datenschutzerklärung.