Application Domain

Application Domain

A Common Language Runtime application domain is a mechanism (similar to an operating system process), used to isolate executed software applications from one another so that they do not affect each other. This is achieved by making any unique virtual address space run exactly one application and scopes the resources for the process or application domain using that address space.

A Common Language Runtime (CLR) application domain is contained within an operating system process. A process may contain many application domains. This carries major advantages:

* There is lower system cost.
* Multiple threads can exist within a single AppDomain.
* The application in a domain can be stopped without affecting the state of another domain in the same process.
* A fault or exception in one domain does not affect an application in another domain or crash the entire process that hosts the domains.
* Configuration information is part of a domain's scope, not the scope of the process.
* Each domain can be assigned different security access levels, all within a single process.
* Code in one domain cannot directly access code in another (see below).

In this sense, the CLR is like a mini-operating system. It runs a single process that contains a number of sub-processes, or application domains.

Direct communication cannot be achieved across application domains. However, application domains can still talk to each other by passing objects via marshaling by value (unbound objects), marshaling by reference through a proxy (AppDomain-bound objects). There is a third type of object called a context-bound object which can be marshalled by reference across domains and also within the context of its own application domain. Because of the verifiable type-safety of managed code, the CLR can provide fault isolation between domains at a much lower cost than an operating system process can. The static type verification used for isolation does not require the same process switches or hardware ring transitions that an operating system process requires.

References

http://codebetter.com/blogs/raymond.lewallen/archive/2005/04/03/61190.aspx

domain is a logicalpart


Wikimedia Foundation. 2010.

Игры ⚽ Поможем решить контрольную работу

Look at other dictionaries:

  • application domain — noun An isolated context, with its own virtual address space, in which an application runs, analogous to a process in an operating system. Next we create a new thread, and that thread creates a new application domain, loads, and executes an… …   Wiktionary

  • Application domain — A domain in software engineering is a set of related software systems that share common design features. Domains in this contexthave been defined as:*An application area *A business area *A software business area *A software intensive application …   Wikipedia

  • Domain engineering — Domain engineering, also called product line engineering, is the entire process of reusing domain knowledge in the production of new software systems. It is a key concept in systematic software reuse. A key idea in systematic software reuse is… …   Wikipedia

  • Domain — may refer to: General Territory (administrative division), a non sovereign geographic area which has come under the authority of another government Public domain, a body of works and knowledge without proprietary interest Eminent domain, the… …   Wikipedia

  • Domain-specific language — Programming paradigms Agent oriented Automata based Component based Flow based Pipelined Concatenative Concurrent computing …   Wikipedia

  • Domain-driven design — (DDD) is an approach to developing software for complex needs by deeply connecting the implementation to an evolving model of the core business concepts.[1] The premise of domain driven design is the following: Placing the project s primary focus …   Wikipedia

  • Domain-specific multimodeling — Domain specific multimodeling[1] is a software development paradigm where each view is made explicit as a separate domain specific language (DSL). Successful development of a modern enterprise system requires the convergence of multiple views.… …   Wikipedia

  • Domain Name Server — Domain Name System Pour les articles homonymes, voir DNS. Pile de protocoles 7 • Application 6 • …   Wikipédia en Français

  • Domain Name Service — Domain Name System Pour les articles homonymes, voir DNS. Pile de protocoles 7 • Application 6 • …   Wikipédia en Français

  • Domain name system — Pour les articles homonymes, voir DNS. Pile de protocoles 7 • Application 6 • …   Wikipédia en Français

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”