Home Page Icon
Home Page
Table of Contents for
Index
Close
Index
by Steven Pratschner
Customizing the Microsoft® .NET Framework Common Language Runtime
Customizing the Microsoft® .NET Framework Common Language Runtime
Foreword
Acknowledgments
Introduction
What Makes This .NET Framework Book Unique?
The .NET Framework 2.0 Prereleases
Sample Code and System Requirements
Comments, Corrections, and Support
1. CLR Hosts and Other Extensible Applications
Summary
2. A Tour of the CLR Hosting API
CorBindToRuntimeEx and ICLRRuntimeHost
CLR Hosting Managers
CLR Initialization and Startup
Other Unmanaged Functions on mscoree.dll
Hosting Manager Discovery
Discovering Host-Implemented Managers
Step 1: The Host Supplies a Host Control Class
Step 2: The CLR Queries the Host Control Class
Obtaining CLR-Implemented Managers
Overview of the Hosting Managers
Assembly Loading
Customizing Failure Behavior
Programming Model Enforcement
Memory and Garbage Collection
Threading and Synchronization
Other Hosting API Features
Loading Code Domain Neutral
Thread Pool Management
I/O Completion Management
Debugging Services Management
Application Domain Management
CLR Event Handling
Summary
3. Controlling CLR Startup and Shutdown
The CLR Startup Configuration Settings
Version
Side by Side: A Technique to Avoid DLL Hell
The Side-by-Side Architecture of the .NET Framework
.NET Framework Registry Keys
The Versioned Installation Directory
The Global Assembly Cache
The CLR Startup Shim
.NET Framework Updates
Choosing Your Strategy: Fix or Float
The Server and Workstation Builds
Concurrent Garbage Collection
Domain-Neutral Code
Setting the Startup Options Using CorBindToRuntimeEx
Starting the CLR
Handling Failures from CorBindToRuntimeEx
Deferring CLR Initialization and Startup
The CLR and Process Lifetime
Summary
4. Using the Default CLR Host
Invoking the Default Host: Running Managed Executables
Invoking the Default Host: Activating Managed Types Through COM Interop
Defaults for the CLR Startup Options
Selecting a CLR Version
Running Managed Executables
Upgrades
Activating Managed Types Through COM Interop
Customizing the Default Host Using Configuration Files
Concurrent Garbage Collection
Build Type
Changing the Build Type on Older Versions of the CLR
Version
The <supportedRuntime> Element
The <requiredRuntime> Element and .NET Framework 1.0
Summary
5. Using Application Domains Effectively
The Role of Application Domains
Type Safety and Verification
Application Isolation
Type Visibility
Configuration Data
Security Settings
Access to Static Data and Members
Runtime Concepts Not Isolated by Application Domains
Application Domain Structure
Assembly List
Security Policy
Application Domain Properties
Statics for Domain-Neutral Assemblies
Proxies for Remote Calls
The Default Application Domain
The AppDomainViewer Tool
Guidelines for Partitioning a Process into Multiple Application Domains
Code Unloading
Cross-Domain Communication
Sample Application Domain Boundaries
ASP.NET
SQL Server
Internet Explorer
Application Domain Managers
Creating an Application Domain Manager
Associating an Application Domain Manager with a Process
The CLR Hosting APIs
Calling an Application Domain Manager from Unmanaged Code
Step 1: Setting Initialization Flags to Register With Host
Step 2: Implement IHostControl::SetAppDomainManager
Environment Variables
Creating Application Domains
Application Domains and Threads
The CLR Thread Pool
Unloading Application Domains
Step 1: Aborting the Threads Running in the Domain
Step 2: Raising an Unload Event
Step 3: Running Finalizers
Step 4: Freeing the Internal CLR Data Structures
Exceptions Related to Unloading Application Domains
Receiving Application Domain Unload Events
Receiving Domain Unload Events Using the IActionOnCLREvent Interface
Summary
6. Configuring Application Domains
Application Domain Configuration Settings
Private Assembly Directory Settings
Customizing the ApplicationBase Directory Structure
Turning Off ApplicationBase Searching
Configuration File Settings
Shadow Copy Settings
Turning on Shadow Copy
Specifying the Location for the Copied Files
Specifying Which Files Are Copied
The Shadow Copy Sample
Assembly Binding Settings
Miscellaneous Settings
LicenseFile
LoaderOptimization
DynamicBase
DisallowCodeDownload
ActivationArguments
AppDomainInitializer and AppDomainInitializerArguments
Customizing Application Domain Creation Using System.AppDomainManager
Step 1: Call AppDomainManager.CreateDomain
Step 2: Create a New Instance of the Application Domain Manager
Step 3: Call AppDomainManager.InitializeNewDomain
Step 4: Get the ApplicationActivator
Step 5: Get the HostExecutionContextManager
Step 6: Get the HostSecurityManager
Summary
7. Loading Assemblies in Extensible Applications
Concepts and Terminology
Strong and Weak Assembly Names
Early-Bound and Late-Bound References
Fully Specified and Partially Specified References
Version Policy
Loading Assemblies by Assembly Identity
Architecture of an Extensible Application Revisited
System.Reflection.Assembly and CLR Remote Calls
Recommendations for Loading Assemblies in Extensible Applications
Step 1: The Extensible Application Is Made Aware of the New Add-In
Step 2: An Application Domain Is Chosen in Which to Load the New Add-In
Step 3: The Application Domain Manager in the Target Domain Is Called to Load the Add-In
Step 4: The Application Domain Manager in the Target Domain Loads the Add-In
Using Assembly.Load and Related Methods
Specifying Assembly Identities as Strings
Specifying Assembly Identities Using System.Reflection.AssemblyName
How the CLR Locates Assemblies
How the CLR Locates Assemblies with Weak Names
How the CLR Locates Assemblies with Strong Names
Using System.Reflection.Assembly to Determine an Assembly’s Location on Disk
Using Fuslogvw.exe to Understand How Assemblies Are Located
Common Assembly Loading Exceptions
Partially Specified Assembly References
Loading Assemblies by Filename
Subtleties of Assembly.LoadFrom
LoadFrom’s Second Bind
Binding Contexts and Type Identity
Loading Multiple Files with the Same Name
The Loadfrom Context and Dependencies
The ReflectionOnly APIs
Loading Assemblies Using ICLRRuntimeHost
Capturing Assembly Load Events
Versioning Considerations for Extensible Applications
Determining Which Version of the CLR Was Used to Build an Assembly
The Extensible Application Chooses the Version
Microsoft .NET Framework Unification
Overriding Unification
Summary
8. Customizing How Assemblies Are Loaded
The Cocoon Deployment Model
CLR Binding Identities
Obtaining Binding Identities
Step 1: Obtaining a Pointer to ICLRAssemblyIdentityManager
Step 2: Calling GetBindingIdentityFromFile (or Stream)
The Makecocoon.exe Program
Implementing an Assembly Loading Manager
Implementing the IHostAssemblyManager Interface
Specifying Non-Host-Loaded Assemblies
Returning an Assembly Store
Implementing the IHostAssemblyStore Interface
Resolving Assembly References
The AssemblyBindInfo Structure
The EBindPolicyLevels Enumeration
Associating Host-Specific Data with an Assembly
Assigning Assembly Identity
Loading Assemblies from a Cocoon
Resolving Module References
Bringing It All Together
Opening the Cocoon File
Initializing the CLR
Creating the Assembly Loading Manager and Host Control Object
Invoking the Hosted Application
Customizing How Assemblies Are Loaded Using Only Managed Code
The Load(byte[]...) Methods
The AssemblyResolve Event
The Runcocoonm Sample
Supporting Multifile Assemblies
Summary
9. Domain-Neutral Assemblies
Domain-Neutral Assembly Architecture
Implications of Using Domain-Neutral Code
Domain-Neutral Code Cannot Be Unloaded
Access to Static Member Variables Is Slower
Initialization of Types Can Be Slower
Security Policy Must Be Consistent Across All Application Domains
The Set of Domain-Neutral Assemblies Must Form a Closure
Domain-Neutral Code and Assembly Dependencies
Specifying Which Assemblies Are Loaded Domain Neutral
CorBindToRuntimeEx
The Loader Optimization API
Domain-Neutral Assemblies and the CLR Hosting Interfaces
Determining Whether an Assembly Has Been Loaded Domain Neutral
Summary
10. Extending the CLR Security System to Protect Your Extensible Application
An Overview of Code Access Security
The Core Concepts: Evidence, Permissions, and Policy
Evidence
Policy
Policy Levels
Default CAS Policy
Permissions
Runtime Enforcement of Permissions: Permission Demands and the Stack Walk
Customizing the Code Access Security System Using a HostSecurityManager
Code Access Security in the Cocoon Host
Step 1: Provide an Initial Implementation of HostSecurityManager
Step 2: Create Custom Evidence
Step 3: Create a Custom Membership Condition
Step 4: Create an Application-Domain-Level Policy Tree
Step 5: Assign Custom Evidence to Assemblies in the Cocoon
Assigning Evidence Using the Assembly Loading APIs
Putting It All Together
Associating Evidence with an Application Domain
The AllowPartiallyTrustedCallers Attribute
Summary
11. Writing Highly Available Microsoft .NET Framework Applications
Application Domain Isolation and Process Lifetimes
Failure Escalation
Critical Finalization, SafeHandles, and Constrained Execution Regions
Specifying Escalation Policy Using the CLR Hosting Interfaces
Setting Policy Using ICLRPolicyManager
Step 1: Obtain a ICLRPolicyManager Interface Pointer
Step 2: Set Actions to Take on Failures
Step 3: Set Timeouts and the Actions to Take for Various Operations
Step 4: Set Any Default Actions
Step 5: Specify Unhandled Exceptions Behavior
Receiving Notifications Through IHostPolicyManager
Step 1: Provide an Implementation of IHostPolicyManager
Step 2: Notify the CLR of Your Implementation Using IHostControl
Guidelines for Writing Highly Available Managed Code
Use SafeHandles to Encapsulate All Native Handles
Use Only the Synchronization Primitives Provided by the .NET Framework
Ensure That Calls to Unmanaged Code Return to the CLR
Annotate Your Libraries with the HostProtectionAttribute
Summary
12. Enforcing Application-Specific Programming Model Constraints
The Host Protection Categories
Synchronization
Shared State
External Process Management
Self-Affecting Process Management
Self-Affecting Threading
External Threading
Security Infrastructure
User Interface
"May Leak on Abort"
Using the Host Protection Manager
Host Protection in the Cocoon Deployment Model
Step 1: Obtaining the ICLRHostProtectionManager Interface Pointer
Step 2: Specifying Which Host Protection Categories to Block
Summary
13. Managing How the CLR Uses Memory
Integrating the CLR with Custom Memory Managers
Virtual Memory Management
Heap Management
File Mapping
Reporting Memory Status to the CLR
The GetMemoryLoad Method
The ICLRMemoryNotificationCallback Interface
Configuring the CLR Garbage Collector
Partitioning the Garbage Collector’s Heap
Gathering Garbage Collection Statistics
Initiating Garbage Collections
Receiving Notifications Through the IHostGCManager Interface
Summary
14. Integrating the CLR with Custom Schedulers and Thread Pools
The Task Abstraction
Controlling the Execution of Tasks
The Life Cycle of a Task
Hooking Calls That Enter and Leave the CLR
The Synchronization Manager
Replacing the CLR’s Thread Pool
Summary
About the Author
Index
About the Author
Copyright
Search in book...
Toggle Font Controls
Playlists
Add To
Create new playlist
Name your new playlist
Playlist description (optional)
Cancel
Create playlist
Sign In
Email address
Password
Forgot Password?
Create account
Login
or
Continue with Facebook
Continue with Google
Sign Up
Full Name
Email address
Confirm Email Address
Password
Login
Create account
or
Continue with Facebook
Continue with Google
Prev
Previous Chapter
Index
Next
Next Chapter
Index
A
aborting threads,
DisallowCodeDownload
,
Failure Escalation
activation model settings,
DisallowCodeDownload
ActivationArguments property,
DisallowCodeDownload
add-ins.,
CLR Hosts and Other Extensible Applications
,
CLR Hosts and Other Extensible Applications
,
The CLR Startup Shim
,
Activating Managed Types Through COM Interop
,
Guidelines for Partitioning a Process into Multiple Application Domains
,
Customizing Application Domain Creation Using System.AppDomainManager
,
Loading Assemblies in Extensible Applications
,
Loading Assemblies by Assembly Identity
,
System.Reflection.Assembly and CLR Remote Calls
,
System.Reflection.Assembly and CLR Remote Calls
,
Recommendations for Loading Assemblies in Extensible Applications
,
Recommendations for Loading Assemblies in Extensible Applications
,
Recommendations for Loading Assemblies in Extensible Applications
,
Step 3: The Application Domain Manager in the Target Domain Is Called to Load the Add-In
,
Capturing Assembly Load Events
,
Versioning Considerations for Extensible Applications
,
Determining Which Version of the CLR Was Used to Build an Assembly
,
The Cocoon Deployment Model
,
Application Domain Isolation and Process Lifetimes
,
Step 2: Notify the CLR of Your Implementation Using IHostControl
(see also )
.NET Framework unification,
Determining Which Version of the CLR Was Used to Build an Assembly
application domain manager calling step,
Recommendations for Loading Assemblies in Extensible Applications
application domain partitioning guidelines,
Guidelines for Partitioning a Process into Multiple Application Domains
application domain selection step,
Recommendations for Loading Assemblies in Extensible Applications
assembly loading,
Loading Assemblies in Extensible Applications
,
System.Reflection.Assembly and CLR Remote Calls
availability issues,
Application Domain Isolation and Process Lifetimes
,
Step 2: Notify the CLR of Your Implementation Using IHostControl
configuring domains,
Customizing Application Domain Creation Using System.AppDomainManager
default domain problems,
System.Reflection.Assembly and CLR Remote Calls
determining CLR version used to build,
Versioning Considerations for Extensible Applications
exception handling issues,
The Cocoon Deployment Model
extensible applications as,
CLR Hosts and Other Extensible Applications
loading step,
Step 3: The Application Domain Manager in the Target Domain Is Called to Load the Add-In
making applications aware of,
Recommendations for Loading Assemblies in Extensible Applications
multiple, CLR version selection issues,
Activating Managed Types Through COM Interop
place in extensibility architecture,
CLR Hosts and Other Extensible Applications
startup version matching,
The CLR Startup Shim
versions, effects on,
Capturing Assembly Load Events
administrator policy,
The AssemblyBindInfo Structure
advantages of CLR,
CLR Hosts and Other Extensible Applications
AllowPartiallyTrustedCallers attribute,
Associating Evidence with an Application Domain
AppDomain class.,
Creating Application Domains
,
The CLR Thread Pool
,
Step 3: Running Finalizers
,
Application Domain Configuration Settings
,
Application Domain Configuration Settings
,
Application Domain Configuration Settings
,
Specifying Which Files Are Copied
,
DisallowCodeDownload
,
Customizing Application Domain Creation Using System.AppDomainManager
,
Customizing Application Domain Creation Using System.AppDomainManager
,
System.Reflection.Assembly and CLR Remote Calls
,
Step 3: The Application Domain Manager in the Target Domain Is Called to Load the Add-In
,
Using Assembly.Load and Related Methods
,
Loading Assemblies by Filename
,
The AssemblyResolve Event
(see also )
AssemblyResolve event,
The AssemblyResolve Event
CreateDomain method,
Creating Application Domains
,
Customizing Application Domain Creation Using System.AppDomainManager
,
Customizing Application Domain Creation Using System.AppDomainManager
CreateInstanceFrom method,
Loading Assemblies by Filename
DomainUnload events,
Step 3: Running Finalizers
ExecuteAssemblyByName method,
Using Assembly.Load and Related Methods
Load method,
System.Reflection.Assembly and CLR Remote Calls
,
Step 3: The Application Domain Manager in the Target Domain Is Called to Load the Add-In
properties, editing,
Application Domain Configuration Settings
properties, retrieving,
Application Domain Configuration Settings
SetShadowCopyPath method,
Specifying Which Files Are Copied
SetupInformation property,
Application Domain Configuration Settings
Unload method,
The CLR Thread Pool
AppDomainInitializer property,
DisallowCodeDownload
AppDomainInitializerArguments property,
DisallowCodeDownload
AppDomainManager.,
Customizing Application Domain Creation Using System.AppDomainManager
(see )
AppDomainSetup objects,
Configuring Application Domains
,
Application Domain Configuration Settings
,
Application Domain Configuration Settings
,
Application Domain Configuration Settings
,
Application Domain Configuration Settings
,
Application Domain Configuration Settings
,
Application Domain Configuration Settings
,
Application Domain Configuration Settings
,
Application Domain Configuration Settings
,
Application Domain Configuration Settings
,
Application Domain Configuration Settings
,
Private Assembly Directory Settings
,
Private Assembly Directory Settings
,
Private Assembly Directory Settings
,
Private Assembly Directory Settings
,
Customizing the ApplicationBase Directory Structure
,
Customizing the ApplicationBase Directory Structure
,
Turning Off ApplicationBase Searching
,
Turning Off ApplicationBase Searching
,
Configuration File Settings
,
Configuration File Settings
,
Specifying the Location for the Copied Files
,
Specifying the Location for the Copied Files
,
Specifying the Location for the Copied Files
,
The Shadow Copy Sample
,
The Shadow Copy Sample
,
Assembly Binding Settings
,
Assembly Binding Settings
,
Assembly Binding Settings
,
Miscellaneous Settings
,
Miscellaneous Settings
,
Miscellaneous Settings
,
DynamicBase
,
DisallowCodeDownload
,
DisallowCodeDownload
,
DisallowCodeDownload
,
Step 1: Call AppDomainManager.CreateDomain
,
System.Reflection.Assembly and CLR Remote Calls
,
How the CLR Locates Assemblies
,
How the CLR Locates Assemblies
,
Partially Specified Assembly References
,
Customizing How Assemblies Are Loaded Using Only Managed Code
ActivationArguments property,
DisallowCodeDownload
AppDomainInitializer property,
DisallowCodeDownload
AppDomainInitializerArguments property,
DisallowCodeDownload
application-specific settings,
Application Domain Configuration Settings
ApplicationBase property,
Application Domain Configuration Settings
,
System.Reflection.Assembly and CLR Remote Calls
,
How the CLR Locates Assemblies
,
How the CLR Locates Assemblies
,
Partially Specified Assembly References
ApplicationName property,
Specifying the Location for the Copied Files
,
The Shadow Copy Sample
assembly version binding settings,
Application Domain Configuration Settings
,
Assembly Binding Settings
base directory specification,
Application Domain Configuration Settings
CachePath property,
Specifying the Location for the Copied Files
,
The Shadow Copy Sample
ConfigurationBytes property,
Turning Off ApplicationBase Searching
ConfigurationFile property,
Turning Off ApplicationBase Searching
DisallowApplicationBaseProbing property,
Private Assembly Directory Settings
,
Customizing the ApplicationBase Directory Structure
DisallowBindingRedirects property,
Assembly Binding Settings
DisallowCodeDownload property,
DynamicBase
DisallowPublisher property,
Assembly Binding Settings
DynamicBase property,
Miscellaneous Settings
editing with a manager,
Step 1: Call AppDomainManager.CreateDomain
LicenseFile property,
Miscellaneous Settings
Load(byte[]) method,
Customizing How Assemblies Are Loaded Using Only Managed Code
LoaderOptimization property,
Miscellaneous Settings
private assembly directory settings,
Application Domain Configuration Settings
,
Application Domain Configuration Settings
PrivateBinPath property,
Private Assembly Directory Settings
PrivateBinPathProbe property,
Private Assembly Directory Settings
,
Customizing the ApplicationBase Directory Structure
properties, editing,
Application Domain Configuration Settings
properties, list of,
Configuring Application Domains
properties, retrieving,
Application Domain Configuration Settings
shadow copy settings,
Application Domain Configuration Settings
,
Configuration File Settings
ShadowCopiesDirectory property,
Specifying the Location for the Copied Files
ShadowCopyFiles property,
Configuration File Settings
specifying settings,
Application Domain Configuration Settings
subdirectory settings,
Private Assembly Directory Settings
AppDomainViewer tool,
The AppDomainViewer Tool
application configuration files.,
Turning Off ApplicationBase Searching
(see )
application domain managers.,
CLR Hosts and Other Extensible Applications
,
Loading Code Domain Neutral
,
SQL Server
,
SQL Server
,
Application Domain Managers
,
Application Domain Managers
,
Application Domain Managers
,
Creating an Application Domain Manager
,
Creating an Application Domain Manager
,
Creating an Application Domain Manager
,
Creating an Application Domain Manager
,
Creating an Application Domain Manager
,
Creating an Application Domain Manager
,
Creating an Application Domain Manager
,
Creating an Application Domain Manager
,
Associating an Application Domain Manager with a Process
,
Associating an Application Domain Manager with a Process
,
Associating an Application Domain Manager with a Process
,
Associating an Application Domain Manager with a Process
,
The CLR Hosting APIs
,
The CLR Hosting APIs
,
The CLR Hosting APIs
,
The CLR Hosting APIs
,
Step 1: Setting Initialization Flags to Register With Host
,
Step 2: Implement IHostControl::SetAppDomainManager
,
Step 2: Implement IHostControl::SetAppDomainManager
,
Step 2: Implement IHostControl::SetAppDomainManager
,
Step 2: Implement IHostControl::SetAppDomainManager
,
Step 2: Implement IHostControl::SetAppDomainManager
,
Step 2: Implement IHostControl::SetAppDomainManager
,
Environment Variables
,
Creating Application Domains
,
Creating Application Domains
,
Configuring Application Domains
,
DisallowCodeDownload
,
Customizing Application Domain Creation Using System.AppDomainManager
,
Customizing Application Domain Creation Using System.AppDomainManager
,
Customizing Application Domain Creation Using System.AppDomainManager
,
Customizing Application Domain Creation Using System.AppDomainManager
,
Customizing Application Domain Creation Using System.AppDomainManager
,
Customizing Application Domain Creation Using System.AppDomainManager
,
Customizing Application Domain Creation Using System.AppDomainManager
,
Customizing Application Domain Creation Using System.AppDomainManager
,
Customizing Application Domain Creation Using System.AppDomainManager
,
Customizing Application Domain Creation Using System.AppDomainManager
,
Step 1: Call AppDomainManager.CreateDomain
,
Step 1: Call AppDomainManager.CreateDomain
,
Step 1: Call AppDomainManager.CreateDomain
,
Step 1: Call AppDomainManager.CreateDomain
,
Step 1: Call AppDomainManager.CreateDomain
,
Step 1: Call AppDomainManager.CreateDomain
,
Step 3: Call AppDomainManager.InitializeNewDomain
,
Step 3: Call AppDomainManager.InitializeNewDomain
,
Step 4: Get the ApplicationActivator
,
Step 4: Get the ApplicationActivator
,
Step 4: Get the ApplicationActivator
,
Loading Assemblies by Assembly Identity
,
System.Reflection.Assembly and CLR Remote Calls
,
Recommendations for Loading Assemblies in Extensible Applications
,
Step 3: The Application Domain Manager in the Target Domain Is Called to Load the Add-In
,
Creating the Assembly Loading Manager and Host Control Object
,
Customizing the Code Access Security System Using a HostSecurityManager
(see also )
add-in domain customizing,
Customizing Application Domain Creation Using System.AppDomainManager
advantages of,
SQL Server
,
Configuring Application Domains
ApplicationActivator method,
Creating an Application Domain Manager
ApplicationActivator property,
Customizing Application Domain Creation Using System.AppDomainManager
,
Step 3: Call AppDomainManager.InitializeNewDomain
assemblies, loading with,
Creating Application Domains
assembly loading from within destinations,
Step 3: Call AppDomainManager.InitializeNewDomain
assembly loading recommendations,
System.Reflection.Assembly and CLR Remote Calls
associating with processes,
Associating an Application Domain Manager with a Process
calling for add-in loading,
Recommendations for Loading Assemblies in Extensible Applications
calling managed code example,
Step 2: Implement IHostControl::SetAppDomainManager
classes for,
Creating an Application Domain Manager
CLR hosting APIs for associating with processes,
Associating an Application Domain Manager with a Process
cocoon example,
Creating the Assembly Loading Manager and Host Control Object
compiling,
Associating an Application Domain Manager with a Process
configuring domains after initialization,
Step 1: Call AppDomainManager.CreateDomain
CreateDomain method,
Application Domain Managers
,
Customizing Application Domain Creation Using System.AppDomainManager
CreateDomainHelper method,
Creating an Application Domain Manager
,
Step 1: Call AppDomainManager.CreateDomain
creating application domains,
Creating Application Domains
,
Customizing Application Domain Creation Using System.AppDomainManager
creating managers,
Application Domain Managers
customized domain creation,
Customizing Application Domain Creation Using System.AppDomainManager
defined,
CLR Hosts and Other Extensible Applications
environment variables for process associations,
Environment Variables
example specification,
Creating an Application Domain Manager
extensibility architecture, role in,
Loading Assemblies by Assembly Identity
host runtimes,
SQL Server
HostExecutionContext property,
Customizing Application Domain Creation Using System.AppDomainManager
HostExecutionContextManager,
Step 4: Get the ApplicationActivator
HostExecutionContextManager method,
Creating an Application Domain Manager
HostSecurityManager,
Creating an Application Domain Manager
,
Customizing Application Domain Creation Using System.AppDomainManager
,
Step 4: Get the ApplicationActivator
,
Customizing the Code Access Security System Using a HostSecurityManager
ICLRControl with,
Associating an Application Domain Manager with a Process
identifiers for domains,
Step 2: Implement IHostControl::SetAppDomainManager
InitializationFlags method,
Creating an Application Domain Manager
InitializationFlags property,
The CLR Hosting APIs
InitializeNewDomain method,
Application Domain Managers
,
Step 1: Call AppDomainManager.CreateDomain
initializing the CLR,
The CLR Hosting APIs
instancing,
Customizing Application Domain Creation Using System.AppDomainManager
,
Step 1: Call AppDomainManager.CreateDomain
interception points,
Customizing Application Domain Creation Using System.AppDomainManager
,
Step 4: Get the ApplicationActivator
interface definition generation,
Step 2: Implement IHostControl::SetAppDomainManager
interfaces for,
Creating an Application Domain Manager
listing domains in a process,
Step 2: Implement IHostControl::SetAppDomainManager
loading add-in step,
Step 3: The Application Domain Manager in the Target Domain Is Called to Load the Add-In
pointers to,
The CLR Hosting APIs
populating maps with pointers,
Step 2: Implement IHostControl::SetAppDomainManager
preventing domain creation,
Step 1: Call AppDomainManager.CreateDomain
purpose,
Loading Code Domain Neutral
reusing domains,
Step 1: Call AppDomainManager.CreateDomain
sample IHostControl implementation,
Step 2: Implement IHostControl::SetAppDomainManager
SetAppDomainManager method,
Step 1: Setting Initialization Flags to Register With Host
steps in domain creation,
Customizing Application Domain Creation Using System.AppDomainManager
unmanaged code, calling from,
The CLR Hosting APIs
application domains,
CLR Hosts and Other Extensible Applications
,
Using Application Domains Effectively
,
Using Application Domains Effectively
,
The Role of Application Domains
,
The Role of Application Domains
,
Type Safety and Verification
,
Type Safety and Verification
,
Type Safety and Verification
,
Type Safety and Verification
,
Type Safety and Verification
,
Type Visibility
,
Type Visibility
,
Access to Static Data and Members
,
Access to Static Data and Members
,
Access to Static Data and Members
,
Access to Static Data and Members
,
Runtime Concepts Not Isolated by Application Domains
,
Runtime Concepts Not Isolated by Application Domains
,
Application Domain Structure
,
Application Domain Structure
,
Application Domain Structure
,
Application Domain Structure
,
Statics for Domain-Neutral Assemblies
,
Statics for Domain-Neutral Assemblies
,
The AppDomainViewer Tool
,
Guidelines for Partitioning a Process into Multiple Application Domains
,
Code Unloading
,
Code Unloading
,
Code Unloading
,
Code Unloading
,
Cross-Domain Communication
,
Sample Application Domain Boundaries
,
Sample Application Domain Boundaries
,
SQL Server
,
SQL Server
,
Creating Application Domains
,
Creating Application Domains
,
Creating Application Domains
,
Application Domains and Threads
,
The CLR Thread Pool
,
Step 1: Aborting the Threads Running in the Domain
,
Step 2: Raising an Unload Event
,
Step 2: Raising an Unload Event
,
Step 3: Running Finalizers
,
Step 3: Running Finalizers
,
Receiving Application Domain Unload Events
,
Receiving Application Domain Unload Events
,
Configuring Application Domains
,
Configuring Application Domains
,
Configuring Application Domains
,
Application Domain Configuration Settings
,
Application Domain Configuration Settings
,
Application Domain Configuration Settings
,
Application Domain Configuration Settings
,
Application Domain Configuration Settings
,
Application Domain Configuration Settings
,
Application Domain Configuration Settings
,
Application Domain Configuration Settings
,
Application Domain Configuration Settings
,
Private Assembly Directory Settings
,
Turning Off ApplicationBase Searching
,
Turning Off ApplicationBase Searching
,
Configuration File Settings
,
Shadow Copy Settings
,
The Shadow Copy Sample
,
Assembly Binding Settings
,
Miscellaneous Settings
,
DynamicBase
,
DisallowCodeDownload
,
DisallowCodeDownload
,
DisallowCodeDownload
,
DisallowCodeDownload
,
DisallowCodeDownload
,
DisallowCodeDownload
,
Customizing Application Domain Creation Using System.AppDomainManager
,
Step 1: Call AppDomainManager.CreateDomain
,
Step 1: Call AppDomainManager.CreateDomain
,
Step 1: Call AppDomainManager.CreateDomain
,
Step 3: Call AppDomainManager.InitializeNewDomain
,
Loading Assemblies by Assembly Identity
,
System.Reflection.Assembly and CLR Remote Calls
,
Recommendations for Loading Assemblies in Extensible Applications
,
How the CLR Locates Assemblies
,
How the CLR Locates Assemblies
,
Partially Specified Assembly References
,
The AssemblyResolve Event
,
The AssemblyResolve Event
,
Step 3: Create a Custom Membership Condition
,
Putting It All Together
,
Putting It All Together
,
Associating Evidence with an Application Domain
activation model,
DisallowCodeDownload
advantages of,
Using Application Domains Effectively
,
Configuring Application Domains
AppDomain objects.,
The AssemblyResolve Event
(see )
AppDomainInitializer property,
DisallowCodeDownload
AppDomainInitializerArguments property,
DisallowCodeDownload
AppDomainSetup.,
DisallowCodeDownload
(see )
AppDomainViewer tool,
The AppDomainViewer Tool
application-specific settings,
Application Domain Configuration Settings
ApplicationBase property,
Application Domain Configuration Settings
,
System.Reflection.Assembly and CLR Remote Calls
,
How the CLR Locates Assemblies
,
How the CLR Locates Assemblies
,
Partially Specified Assembly References
ASP.NET use of,
Sample Application Domain Boundaries
assemblies, loading into,
Creating Application Domains
assembly elements,
Application Domain Structure
assembly version binding settings,
Application Domain Configuration Settings
,
Assembly Binding Settings
base directory specification,
Application Domain Configuration Settings
calls across, guidelines for,
Code Unloading
calls across, property for minimizing,
DisallowCodeDownload
CAS.,
Associating Evidence with an Application Domain
(see )
class for.,
The AssemblyResolve Event
(see )
CLR thread pools,
Application Domains and Threads
code unloading guidelines,
Code Unloading
configuration files of,
Type Visibility
,
Turning Off ApplicationBase Searching
configuration properties, list of,
Configuring Application Domains
configuration specification methods,
Application Domain Configuration Settings
configuration with InitializeNewDomain,
Step 1: Call AppDomainManager.CreateDomain
creating,
Creating Application Domains
data structures of,
Runtime Concepts Not Isolated by Application Domains
debugging not isolated by,
Access to Static Data and Members
default domain,
Statics for Domain-Neutral Assemblies
,
Step 3: Call AppDomainManager.InitializeNewDomain
disabling downloading code,
DynamicBase
domain-neutral code static elements,
Application Domain Structure
downloaded files cache,
Shadow Copy Settings
,
The Shadow Copy Sample
dynamic assembly directory property,
Miscellaneous Settings
editing configurations with a manager,
Step 1: Call AppDomainManager.CreateDomain
evidence, associating with,
Putting It All Together
extensibility architecture, goal of,
Loading Assemblies by Assembly Identity
finalizers,
Step 2: Raising an Unload Event
guidelines for partitioning processes into,
Guidelines for Partitioning a Process into Multiple Application Domains
host runtimes,
SQL Server
HostRuntime assemblies,
Cross-Domain Communication
IActionOnCLREvent,
Receiving Application Domain Unload Events
ICLROnEventManager,
Receiving Application Domain Unload Events
Internet Explorer use of,
SQL Server
isolation goal of,
Using Application Domains Effectively
machine.config settings,
Turning Off ApplicationBase Searching
managers for.,
Customizing Application Domain Creation Using System.AppDomainManager
(see )
memory safety benefit of,
The Role of Application Domains
not isolated resources,
Access to Static Data and Members
performance costs,
Code Unloading
permissions for,
Putting It All Together
place in extensibility architecture,
CLR Hosts and Other Extensible Applications
policy tree creation,
Step 3: Create a Custom Membership Condition
private assembly directory settings,
Application Domain Configuration Settings
,
Application Domain Configuration Settings
processes, relationship to,
Type Safety and Verification
properties, list of,
Configuring Application Domains
property elements,
Application Domain Structure
purpose of,
Type Safety and Verification
remote call proxy elements,
Statics for Domain-Neutral Assemblies
representation of,
Runtime Concepts Not Isolated by Application Domains
reusing,
Step 1: Call AppDomainManager.CreateDomain
security policy elements,
Application Domain Structure
security settings,
Type Visibility
selection for add-in loading,
Recommendations for Loading Assemblies in Extensible Applications
settings,
Application Domain Configuration Settings
setup.,
DisallowCodeDownload
(see )
shadow copy settings,
Application Domain Configuration Settings
,
Configuration File Settings
SQL Server use of,
Sample Application Domain Boundaries
static data with,
Access to Static Data and Members
subdirectory settings,
Private Assembly Directory Settings
synchronization privileges with,
Access to Static Data and Members
thread issues,
Creating Application Domains
,
Step 1: Aborting the Threads Running in the Domain
type safety benefit of,
The Role of Application Domains
type visibility,
Type Safety and Verification
unload events,
Step 2: Raising an Unload Event
unload exceptions,
Step 3: Running Finalizers
unloading CLR data,
Step 3: Running Finalizers
unloading code guidelines,
Code Unloading
unloading, overview of,
The CLR Thread Pool
unsafe types,
Type Safety and Verification
verification benefit of,
Type Safety and Verification
ApplicationActivator method,
Creating an Application Domain Manager
ApplicationActivator property,
Customizing Application Domain Creation Using System.AppDomainManager
,
Step 3: Call AppDomainManager.InitializeNewDomain
ApplicationBase property,
Application Domain Configuration Settings
,
System.Reflection.Assembly and CLR Remote Calls
,
How the CLR Locates Assemblies
,
How the CLR Locates Assemblies
,
Partially Specified Assembly References
architecture of extensible applications,
Loading Assemblies by Assembly Identity
ASP.NET,
CLR Hosts and Other Extensible Applications
,
Sample Application Domain Boundaries
,
The CLR Thread Pool
,
Fully Specified and Partially Specified References
application domains with,
Sample Application Domain Boundaries
extensibility of,
CLR Hosts and Other Extensible Applications
loose version binding of,
Fully Specified and Partially Specified References
unloading application domains,
The CLR Thread Pool
assemblies,
CLR Hosts and Other Extensible Applications
,
Version
,
The Side-by-Side Architecture of the .NET Framework
,
The Versioned Installation Directory
,
Defaults for the CLR Startup Options
,
Activating Managed Types Through COM Interop
,
Type Safety and Verification
,
Application Domain Structure
,
Cross-Domain Communication
,
Cross-Domain Communication
,
Cross-Domain Communication
,
Creating Application Domains
,
The CLR Thread Pool
,
Application Domain Configuration Settings
,
Application Domain Configuration Settings
,
Application Domain Configuration Settings
,
Configuration File Settings
,
Specifying Which Files Are Copied
,
Assembly Binding Settings
,
Miscellaneous Settings
,
Step 3: Call AppDomainManager.InitializeNewDomain
,
Loading Assemblies in Extensible Applications
,
Concepts and Terminology
,
Concepts and Terminology
,
Concepts and Terminology
,
Concepts and Terminology
,
Strong and Weak Assembly Names
,
Strong and Weak Assembly Names
,
Strong and Weak Assembly Names
,
Fully Specified and Partially Specified References
,
Fully Specified and Partially Specified References
,
Fully Specified and Partially Specified References
,
Fully Specified and Partially Specified References
,
Version Policy
,
Version Policy
,
System.Reflection.Assembly and CLR Remote Calls
,
System.Reflection.Assembly and CLR Remote Calls
,
Recommendations for Loading Assemblies in Extensible Applications
,
Recommendations for Loading Assemblies in Extensible Applications
,
Step 3: The Application Domain Manager in the Target Domain Is Called to Load the Add-In
,
Using Assembly.Load and Related Methods
,
Using Assembly.Load and Related Methods
,
Specifying Assembly Identities as Strings
,
Specifying Assembly Identities as Strings
,
Specifying Assembly Identities as Strings
,
Specifying Assembly Identities as Strings
,
Specifying Assembly Identities as Strings
,
Specifying Assembly Identities as Strings
,
Specifying Assembly Identities Using System.Reflection.AssemblyName
,
How the CLR Locates Assemblies
,
How the CLR Locates Assemblies with Weak Names
,
How the CLR Locates Assemblies with Strong Names
,
How the CLR Locates Assemblies with Strong Names
,
Using Fuslogvw.exe to Understand How Assemblies Are Located
,
Partially Specified Assembly References
,
Partially Specified Assembly References
,
Loading Assemblies by Filename
,
Subtleties of Assembly.LoadFrom
,
LoadFrom’s Second Bind
,
Capturing Assembly Load Events
,
Versioning Considerations for Extensible Applications
,
Versioning Considerations for Extensible Applications
,
Versioning Considerations for Extensible Applications
,
Customizing How Assemblies Are Loaded
,
Customizing How Assemblies Are Loaded
,
The Cocoon Deployment Model
,
The Cocoon Deployment Model
,
The Cocoon Deployment Model
,
Specifying Non-Host-Loaded Assemblies
,
Specifying Non-Host-Loaded Assemblies
,
The AssemblyBindInfo Structure
,
The EBindPolicyLevels Enumeration
,
Associating Host-Specific Data with an Assembly
,
Resolving Module References
,
Resolving Module References
,
Invoking the Hosted Application
,
The AssemblyResolve Event
,
Supporting Multifile Assemblies
,
Supporting Multifile Assemblies
,
Domain-Neutral Assemblies
,
Domain-Neutral Assemblies
add-ins, of.,
Recommendations for Loading Assemblies in Extensible Applications
(see )
application domain data elements for,
Application Domain Structure
application domains, loading into,
Creating Application Domains
application domains, object calls between,
Cross-Domain Communication
AssemblyName class,
Version Policy
,
Specifying Assembly Identities as Strings
AssemblyResolve event,
The AssemblyResolve Event
binding contexts,
Subtleties of Assembly.LoadFrom
,
LoadFrom’s Second Bind
binding times,
Strong and Weak Assembly Names
blocking loading of,
Specifying Non-Host-Loaded Assemblies
class for.,
Versioning Considerations for Extensible Applications
(see )
CLR base class library,
The Side-by-Side Architecture of the .NET Framework
cocoon model.,
The AssemblyBindInfo Structure
(see )
configuring domains with InitializeNewDomain,
Step 3: Call AppDomainManager.InitializeNewDomain
culture element of,
Specifying Assembly Identities as Strings
customized loading of,
Customizing How Assemblies Are Loaded
(see also )
default rules for,
CLR Hosts and Other Extensible Applications
determining assembly locations on disk,
How the CLR Locates Assemblies with Strong Names
determining CLR version used to build,
Versioning Considerations for Extensible Applications
directory settings for application domains,
Application Domain Configuration Settings
,
Application Domain Configuration Settings
discovery issues,
System.Reflection.Assembly and CLR Remote Calls
domain neutral.,
Domain-Neutral Assemblies
(see )
dynamic, setting directories for,
Miscellaneous Settings
early-bound,
Strong and Weak Assembly Names
exceptions from load failures,
Using Fuslogvw.exe to Understand How Assemblies Are Located
extensibility overview,
Loading Assemblies in Extensible Applications
friendly names of,
Using Assembly.Load and Related Methods
,
Specifying Assembly Identities as Strings
fully specified references,
Fully Specified and Partially Specified References
Global Assembly Cache.,
Specifying Non-Host-Loaded Assemblies
(see )
host-specific data association,
The EBindPolicyLevels Enumeration
HostRuntime.,
Cross-Domain Communication
(see )
identities, assignment by host,
Associating Host-Specific Data with an Assembly
identities, components of,
Concepts and Terminology
identities, string based,
The Cocoon Deployment Model
late-bound,
Strong and Weak Assembly Names
load events, capturing,
Capturing Assembly Load Events
loading APIs.,
Step 3: The Application Domain Manager in the Target Domain Is Called to Load the Add-In
(see )
loading by filename.,
Loading Assemblies by Filename
(see )
loading by identity.,
Recommendations for Loading Assemblies in Extensible Applications
(see )
location by CLR,
Specifying Assembly Identities Using System.Reflection.AssemblyName
managed customized assembly loading,
Invoking the Hosted Application
,
Supporting Multifile Assemblies
manifests,
Resolving Module References
marshaling issues,
System.Reflection.Assembly and CLR Remote Calls
monitoring changes to,
Specifying Which Files Are Copied
multiple file, support for,
Resolving Module References
,
Supporting Multifile Assemblies
multiple, version selection issues,
Activating Managed Types Through COM Interop
naming types,
Concepts and Terminology
naming.,
Version Policy
(see )
partially specified references,
Fully Specified and Partially Specified References
,
Partially Specified Assembly References
public key token of,
Specifying Assembly Identities as Strings
referencing issues,
The Cocoon Deployment Model
runtime data sharing.,
Domain-Neutral Assemblies
(see )
shadow copies of,
Configuration File Settings
shared,
Cross-Domain Communication
side by side existence of,
Version
specification as strings,
Using Assembly.Load and Related Methods
specification of references,
Fully Specified and Partially Specified References
storage format issues,
Customizing How Assemblies Are Loaded
string-based identity issues,
The Cocoon Deployment Model
strong names,
Concepts and Terminology
,
How the CLR Locates Assemblies with Weak Names
System.Reflection.Assembly,
How the CLR Locates Assemblies with Strong Names
System.Reflection.AssemblyName specification of,
Specifying Assembly Identities as Strings
type visibility,
Type Safety and Verification
unloading,
The CLR Thread Pool
version binding settings for application domains,
Application Domain Configuration Settings
,
Assembly Binding Settings
version numbering of,
The Versioned Installation Directory
version of CLR embedded,
Defaults for the CLR Startup Options
version of CLR used to build, determining,
Versioning Considerations for Extensible Applications
version policy overview,
Fully Specified and Partially Specified References
version specification of,
Specifying Assembly Identities as Strings
weak names,
Concepts and Terminology
,
How the CLR Locates Assemblies
,
Partially Specified Assembly References
Assembly Binding Log Viewer,
Using System.Reflection.Assembly to Determine an Assembly’s Location on Disk
Assembly class,
Using Assembly.Load and Related Methods
,
Using Assembly.Load and Related Methods
,
How the CLR Locates Assemblies with Strong Names
,
Loading Assemblies by Filename
,
The Loadfrom Context and Dependencies
,
Versioning Considerations for Extensible Applications
,
Customizing How Assemblies Are Loaded Using Only Managed Code
,
Supporting Multifile Assemblies
ImageRuntimeVersion property,
Versioning Considerations for Extensible Applications
Load method,
Using Assembly.Load and Related Methods
Load(byte[]) method,
Customizing How Assemblies Are Loaded Using Only Managed Code
LoadFile method,
The Loadfrom Context and Dependencies
LoadFrom method,
Loading Assemblies by Filename
LoadWithPartialName method,
Using Assembly.Load and Related Methods
location determination,
How the CLR Locates Assemblies with Strong Names
ResolveModule event,
Supporting Multifile Assemblies
assembly loading APIs,
Version Policy
,
Version Policy
,
Loading Assemblies by Assembly Identity
,
Architecture of an Extensible Application Revisited
,
System.Reflection.Assembly and CLR Remote Calls
,
System.Reflection.Assembly and CLR Remote Calls
,
System.Reflection.Assembly and CLR Remote Calls
,
System.Reflection.Assembly and CLR Remote Calls
,
Step 3: The Application Domain Manager in the Target Domain Is Called to Load the Add-In
,
Using Assembly.Load and Related Methods
,
Using Assembly.Load and Related Methods
,
Using Assembly.Load and Related Methods
,
Using Assembly.Load and Related Methods
,
Using Assembly.Load and Related Methods
,
Using Assembly.Load and Related Methods
,
Using Assembly.Load and Related Methods
,
Specifying Assembly Identities as Strings
,
Specifying Assembly Identities Using System.Reflection.AssemblyName
,
Loading Assemblies by Filename
,
Loading Assemblies by Filename
,
Loading Assemblies by Filename
,
Loading Assemblies by Filename
,
The Loadfrom Context and Dependencies
,
The Loadfrom Context and Dependencies
,
The Loadfrom Context and Dependencies
,
Step 5: Assign Custom Evidence to Assemblies in the Cocoon
add-in loading step,
Step 3: The Application Domain Manager in the Target Domain Is Called to Load the Add-In
architecture of extensible applications,
Loading Assemblies by Assembly Identity
Assembly.LoadFrom,
Loading Assemblies by Filename
AssemblyName class,
Version Policy
,
Specifying Assembly Identities as Strings
assigning evidence with,
Step 5: Assign Custom Evidence to Assemblies in the Cocoon
capabilities of,
Using Assembly.Load and Related Methods
CreateInstanceFrom method,
Loading Assemblies by Filename
defined,
Version Policy
domain to call from, importance of,
System.Reflection.Assembly and CLR Remote Calls
ExecuteAssemblyByName method of AppDomain,
Using Assembly.Load and Related Methods
ExecuteInDefaultAppDomain method,
The Loadfrom Context and Dependencies
filenames, methods for loading by,
Loading Assemblies by Filename
goal for design,
Architecture of an Extensible Application Revisited
Load method of AppDomain,
System.Reflection.Assembly and CLR Remote Calls
,
Using Assembly.Load and Related Methods
Load method of Assembly,
Using Assembly.Load and Related Methods
LoadFile method of Assembly,
The Loadfrom Context and Dependencies
LoadFrom method of Assembly,
Loading Assemblies by Filename
LoadWithPartialName method of Assembly,
Using Assembly.Load and Related Methods
location of assemblies by CLR,
Specifying Assembly Identities Using System.Reflection.AssemblyName
recommendations,
System.Reflection.Assembly and CLR Remote Calls
ReflectionOnly,
The Loadfrom Context and Dependencies
remote calls,
System.Reflection.Assembly and CLR Remote Calls
specification as strings,
Using Assembly.Load and Related Methods
type creation on loading,
Using Assembly.Load and Related Methods
assembly loading managers,
CorBindToRuntimeEx and ICLRRuntimeHost
,
CLR Hosting Managers
,
Obtaining CLR-Implemented Managers
,
Obtaining CLR-Implemented Managers
,
Obtaining CLR-Implemented Managers
,
Assembly Loading
,
Assembly Loading
,
Implementing an Assembly Loading Manager
,
Implementing an Assembly Loading Manager
,
Implementing an Assembly Loading Manager
,
Implementing an Assembly Loading Manager
,
Implementing an Assembly Loading Manager
,
Implementing an Assembly Loading Manager
,
Specifying Non-Host-Loaded Assemblies
,
Specifying Non-Host-Loaded Assemblies
,
Specifying Non-Host-Loaded Assemblies
,
Specifying Non-Host-Loaded Assemblies
,
Specifying Non-Host-Loaded Assemblies
,
Specifying Non-Host-Loaded Assemblies
,
Specifying Non-Host-Loaded Assemblies
,
Implementing the IHostAssemblyStore Interface
,
The AssemblyBindInfo Structure
,
The AssemblyBindInfo Structure
,
The AssemblyBindInfo Structure
,
The AssemblyBindInfo Structure
,
The EBindPolicyLevels Enumeration
,
Associating Host-Specific Data with an Assembly
,
Resolving Module References
,
Initializing the CLR
.NET Framework assembly loading,
Specifying Non-Host-Loaded Assemblies
administrator policy,
The AssemblyBindInfo Structure
application assembly specification,
Specifying Non-Host-Loaded Assemblies
binding process,
Assembly Loading
CLR behavior options,
Specifying Non-Host-Loaded Assemblies
COM interfaces for cocoons,
Implementing an Assembly Loading Manager
creation example,
Initializing the CLR
defined,
CorBindToRuntimeEx and ICLRRuntimeHost
,
CLR Hosting Managers
EBindPolicyLevels enumeration,
The AssemblyBindInfo Structure
GetAssemblyStore method,
Implementing an Assembly Loading Manager
GetHostApplicationPolicy method,
Implementing an Assembly Loading Manager
GetNonHostStoreAssemblies method,
Implementing an Assembly Loading Manager
,
Specifying Non-Host-Loaded Assemblies
host-specific data association,
The EBindPolicyLevels Enumeration
identity assignment,
Associating Host-Specific Data with an Assembly
IHostAssemblyManager implementation,
Implementing an Assembly Loading Manager
IHostAssemblyStore implementation,
Specifying Non-Host-Loaded Assemblies
implementation overview,
Implementing an Assembly Loading Manager
module references, resolving,
Resolving Module References
overview of,
Obtaining CLR-Implemented Managers
publisher policy, preventing application of,
The AssemblyBindInfo Structure
purpose of,
Obtaining CLR-Implemented Managers
resolving assembly references,
Obtaining CLR-Implemented Managers
,
Implementing the IHostAssemblyStore Interface
returning assembly stores,
Specifying Non-Host-Loaded Assemblies
specifying non-host-loaded assemblies,
Specifying Non-Host-Loaded Assemblies
SQL Server with,
Assembly Loading
versioning rule implementation,
The AssemblyBindInfo Structure
AssemblyBindInfo,
Implementing the IHostAssemblyStore Interface
AssemblyLoad event,
Capturing Assembly Load Events
AssemblyName class,
Version Policy
,
Specifying Assembly Identities as Strings
AssemblyResolve event,
The AssemblyResolve Event
asynchronization manager,
Threading and Synchronization
authentication, CAS,
Permissions
authorization, CAS,
Permissions
auto reset events,
The Synchronization Manager
availability,
Writing Highly Available Microsoft .NET Framework Applications
,
Writing Highly Available Microsoft .NET Framework Applications
,
Writing Highly Available Microsoft .NET Framework Applications
,
Writing Highly Available Microsoft .NET Framework Applications
,
Writing Highly Available Microsoft .NET Framework Applications
,
Writing Highly Available Microsoft .NET Framework Applications
,
Application Domain Isolation and Process Lifetimes
,
Application Domain Isolation and Process Lifetimes
,
Application Domain Isolation and Process Lifetimes
,
Application Domain Isolation and Process Lifetimes
,
Failure Escalation
,
Failure Escalation
,
Failure Escalation
,
Failure Escalation
,
Failure Escalation
,
Failure Escalation
,
Failure Escalation
,
Critical Finalization, SafeHandles, and Constrained Execution Regions
,
Critical Finalization, SafeHandles, and Constrained Execution Regions
,
Critical Finalization, SafeHandles, and Constrained Execution Regions
,
Critical Finalization, SafeHandles, and Constrained Execution Regions
,
Specifying Escalation Policy Using the CLR Hosting Interfaces
,
Step 5: Specify Unhandled Exceptions Behavior
,
Step 2: Notify the CLR of Your Implementation Using IHostControl
,
Step 2: Notify the CLR of Your Implementation Using IHostControl
,
Use Only the Synchronization Primitives Provided by the .NET Framework
,
Use Only the Synchronization Primitives Provided by the .NET Framework
,
Annotate Your Libraries with the HostProtectionAttribute
action options for failures,
Failure Escalation
add-ins problem,
Application Domain Isolation and Process Lifetimes
calls to unmanaged code,
Use Only the Synchronization Primitives Provided by the .NET Framework
CERs,
Critical Finalization, SafeHandles, and Constrained Execution Regions
critical regions of code,
Failure Escalation
database server requirements,
Application Domain Isolation and Process Lifetimes
disabling the CLR,
Failure Escalation
escalation policy,
Writing Highly Available Microsoft .NET Framework Applications
exceptions introduced for,
Writing Highly Available Microsoft .NET Framework Applications
failure escalation overview,
Application Domain Isolation and Process Lifetimes
failure types,
Failure Escalation
fatal runtime errors,
Failure Escalation
finalizer issues,
Critical Finalization, SafeHandles, and Constrained Execution Regions
guidelines for,
Step 2: Notify the CLR of Your Implementation Using IHostControl
host protection,
Annotate Your Libraries with the HostProtectionAttribute
ICLRPolicyManager for escalation policy,
Specifying Escalation Policy Using the CLR Hosting Interfaces
managed code exception handling dilemma,
Writing Highly Available Microsoft .NET Framework Applications
memory requirements problem,
Writing Highly Available Microsoft .NET Framework Applications
native handle issues,
Critical Finalization, SafeHandles, and Constrained Execution Regions
need for,
Writing Highly Available Microsoft .NET Framework Applications
new concepts introduced for,
Writing Highly Available Microsoft .NET Framework Applications
notifications of actions,
Step 5: Specify Unhandled Exceptions Behavior
orphaned locks,
Failure Escalation
resource allocation failures,
Failure Escalation
SafeHandles,
Critical Finalization, SafeHandles, and Constrained Execution Regions
,
Step 2: Notify the CLR of Your Implementation Using IHostControl
synchronization primitive guidelines,
Use Only the Synchronization Primitives Provided by the .NET Framework
Web services scenario,
Application Domain Isolation and Process Lifetimes
Add Highlight
No Comment
..................Content has been hidden....................
You can't read the all page of ebook, please click
here
login for view all page.
Day Mode
Cloud Mode
Night Mode
Reset