data directory table
Export table, 160
Import table, 160
Relocation table, 160
Resource table, 160
Thread Local Storage table, 160
data integrity
asymmetric encryption, 505
digital signatures, 508
goals of cryptography, 497
hashing, 507
data types, IL, 24
array type, 27
compared to CLS types, 24
pointer types, 28
problems with describing, 24
signed data types, 27
table of data types, 25
typedref type, 27
unsigned data types, 27
using IL data types on evaluation stack, 29
DateTlme structure, 251
measuring performance, 251
DbgClr.exe
debugging IL, 54
deadlocks
avoiding deadlocks, 362
thread synchronization, 362
debug builds
release builds, profiling for compared to, 275
DebuggableAttribute class
example of using, 251
IsJITOptimizerDisabled property, 249
IsTrackingEnabled property, 249
JIT programmatic control, 249
syntax for using, 249
System.Diagnostics, 249
using in command line, 249
using with Visual Studio .NET, 250
debugging
cordbg command-line tool, 254
IL debugging, 52
compile-time IL errors, 56
CorDbg.exe, 54
DbgClr.exe, 54
IL from high-level languages, 54
peverify.exe, 60
Visual Studio.NET, 52
viewing JIT generated native code, 254
declarative security, 473
CAS, 473
CLR, 473
imperative security, compared to, 473
SecurityAttribute class, 478
working, 478
Decrement() method
Interlocked class, 377
decryption program example using DES, 502
default constructor
IL reference types, 76
IL value types, 71
problems with, 75
DefaultValueAttribute attribute, 201
DefineGlobalMethod() method
ModuleBuilder class, 317
delay-signing an assembly, 509
digital signatures, 509
private key, 513
public key, 510
verification skipping, 512
Delegate class, 346
delegates
AsyncCallback delegate, 346
asynchronous delegate invocation, 352
Beginlnvoke() method, 346
compared to thread synchronization, 431
Endlnvoke() method, 346
IL delegates, 103
using delegates, 104
MulticastDelegate class, 103
programming abort dialog, 431
synchronous delegate invocation, 351
ThreadStart delegate, 341
WaitCallback delegate, 341
WaitOrTimerCallback delegate, 372
delete
compared to Dispose() method, 210
developer-controlled memory management, 207
DeleteObject() function
GDI, 450
Demand() method
CodeAccessPermission class, 478
FilelOPermission class, 461
IStackWalk interface, 477
Deny() method
CodeAccessPermission class, 471
DES
example of using, 499
decryption program, 502
encryption program, 500
symmetric encryption, 499
DES class
System.Security.Cryptography, 499
DESCryptoServiceProvider class
CreateDecryptor() method, 504
CreateEncryptor() method, 501
IV property, 502
Key property, 502
KeySize property, 502
System.Security.Cryptography, 499
destination
native code operands, 256
deterministic finalization
garbage collector does not support, 210
lack of support not important in practice, 207
not supported in .NET, 206
developer-controlled memory management
advantages, 207
C++, 242
compared to garbage collector, 242
delete, 207
disadvantages, 208
IDisposable interface, 206
Digital Encryption Standard, see DES.
digital signatures, 508
Authenticode, 513
certificates, 513
verifying digital signatures, 514
cryptography, 508
data integrity, 508
delay-signing an assembly, 509
signing of assemblies, 190
sn.exe, 186
Disassembly window
debugging IL, 53
DispatchMessage() API call
message loop, 419
Dispose() method
compared to Close() method, 221
compared to delete, 210
compared to finalizers, 221
handling unmanaged resources, 223
classes with managed and unmanaged resources, 226
IDisposable interface, 227
implementing, 227
lock statement, 223
memory management, problems due to lack in, 281
reasons for using, 221
semantics, 221
distinguished attributes, 101
DllImportAttribute class, 142
compared to pinvokeimpl keyword, 91
pseudo-custom attributes, 102
unmanaged metadata API, 102
document object model, see CodeDom.
DOM, see CodeDom.
DrawItem event
ListBox class, 446
owner-draw controls, 443
DrawItem EventArgs class
BackColor property, 446
owner-draw controls, 443
State property, 446
System.Windows.Forms, 443
DrawMode enumeration
Normal value, 444
owner-draw controls, 443
OwnerDrawFixed value, 444
OwnerDrawVariable value, 444
System.Windows.Forms, 443
DrawMode property
ComboBox class, 443
ListBox class, 443
DumpBin.exe
/CLR option, 174
ildasm.exe, compared to, 174
PE files, examining contents of, 174
dynamic code generation
additional functionality, 309
applications illustrating highest performance, use in, 311
converting source code to IL
CodeDomProvider.CreateCompiler() method, using, 325
developer tools available, 310
DOM, 312
language conversion, importance in, 310
methodologies employed
reflection, using, 312
System.CodeDom class, using, 312
modifying assemblies, importance in, 310
optimising IL code, 310
reasons to use, 310
reflection, using in dynamic assemblies, 321
Reflection.Emit and CodeDom classes, alternatives to using, 313
templates, importance in, 310
UML-based coding, importance in, 310
use in .NET Framework, 309