Author: hammett Date: Thu Nov 18 20:46:16 2004 New Revision: 104062 Modified: avalon/site/central/laboratory/castle/dynamicproxy/index.html avalon/site/central/laboratory/castle/index.html avalon/site/central/laboratory/castle/managedextensions/index.html avalon/site/central/laboratory/castle/microkernel/index.html Log:
Modified: avalon/site/central/laboratory/castle/dynamicproxy/index.html ============================================================================== --- avalon/site/central/laboratory/castle/dynamicproxy/index.html (original) +++ avalon/site/central/laboratory/castle/dynamicproxy/index.html Thu Nov 18 20:46:16 2004 @@ -1,124 +1,16 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Avalon Castle - DynamicProxy</title><link type="text/css" rel="stylesheet" href="../../../../styles/style.css" /><meta content="text/html; charset=UTF-8" http-equiv="Content-type" /></head><body><table class="logobar"><tr><td class="panelleft"><img alt="link" src="../../../../images/feather.jpg" /></td><td class="panelmiddle"><div class="project">Avalon</div><div class="title">Avalon Castle - DynamicProxy</div></td><td class="panelright" /></tr></table><div class="categorybar" dir="/central/laboratory/castle/dynamicproxy"><a class="homecategory" href="../../../../index.html"> - Home - </a><a class="category" href="../../../../planet/components/index.html">Planet</a><a class="category" href="../../../../products/runtime/index.html">Products</a><a class="category-selected" href="../../../../central/about/index.html">Central</a></div><div class="menubar"><div class="no-border"><span class="dummy" /><div class="menu"><div class="menu"><div class="menu"><a class="menuitem" href="../../../about/index.html">Welcome</a><a class="menuitem" href="../../../community/index.html">Community</a><a class="menuitem" href="../../../cop/index.html">Concepts</a><a class="menuitem" href="../../../resources/index.html">Resources</a><a class="menuitem" href="../../../tools/index.html">Developer Tools</a><a class="menuitem-selected" href="../../../laboratory/index.html">Avalon Laboratory</a><a class="menuitem" href="../../../legacy/index.html">Legacy Content</a><a class="menuitem" href="../../../dpml/index.html">DPML</a></div><a class="menuitem" href="../../studio/index.html">Studio</a><a class="menuitem" href="../../discovery/index.html">Discovery</a><a class="menuitem-selected" href="../../castle/index.html">Castle</a></div><a class="menuitem" href="../microkernel/index.html">Microkernel</a><a class="menuitem" href="../managedextensions/index.html">Managed Extensions</a><a class="menuitem-selected" href="../dynamicproxy/index.html">DynamicProxy</a></div></div></div><div class="content"> - - <div class="section"><span class="section-header">The project</span> - <p> - The DynamicProxy project was created to overcome the CLR's proxy (in)capabilities. - There are proxies in the CLR world, but they can be considered a bit - intrusive as it forces one to extend MarshalByRefObject or ContextBoundObject. - </p> - <p> - You can use DynamicProxy to generate proxies on the fly for one or more interfaces - (supporting concrete classes is on the plans as well) - </p> - </div> - - <div class="section"><span class="section-header">Source code</span> - <p> - The lastest version of source can be obtained from - <a class="doclink" href="https://svn.apache.org/repos/asf/avalon/trunk/central/laboratory/avalon-net/DynamicProxy">Avalon Subversion repository</a>. - </p> - </div> - - <div class="section"><span class="section-header">Usage</span> - <p> - The DynamicProxy relies on Reflection.Emit to generate new classes that implements - the specified interfaces and delegates to your implementation of IInvocationHandler. - The usage is very simple. You only need to invoke ProxyGenerator.CreateProxy - specifying the interfaces that will be behind the proxy and your implementation of - IInvocationHandler: - </p> -<pre class="source"> -using Apache.Avalon.DynamicProxy; - -public interface IMyInterface -{ - String Name - { - get; - set; - } - - void DoSomething(int x, int y); -} - -public class YourProxyInvocationHandler : IInvocationHandler -{ - public object Invoke(object proxy, MethodInfo method, params object[] arguments) - { - // do something before - - object returnVal = method.Invoke( realInstance, arguments ); - - // do something after... - - return returnVal; - } -} - -object proxy = ProxyGenerator.CreateProxy( - typeof(IMyInterface), - new YourProxyInvocationHandler( new MyInterfaceImpl() ) ); - -// proxy can be safely casted to IMyInterface - -IMyInterface inter = proxy as IMyInterface; - -</pre><div class="source-title"><span class="source-title" /></div> - <p> - You can also overrides the implementation of StandardInvocationHandler. - </p> -<pre class="source"> -public class YourProxyInvocationHandler : StandardInvocationHandler -{ - protected override void PreInvoke(object proxy, - MethodInfo method, params object[] arguments) - { - } - - protected override void PostInvoke(object proxy, - MethodInfo method, ref object returnValue, params object[] arguments) - { - } -} -</pre><div class="source-title"><span class="source-title" /></div> - - <div class="subsection"><span class="subsection-header">Useful links</span> - <p> - If you'd like to learn more about proxies in .Net and other similar solutions - to generate proxies on the fly, please follow these links: - </p> - <ul> - <li> - <a class="doclink" href="http://opensource.atlassian.com/confluence/spring/display/NET/Dynamic+Proxy?showComments=true">Dynamic Proxies in .NET</a>: - Discussions and explanation about the possibilities of proxies. - </li> - <li> - <a class="doclink" href="http://jroller.com/comments/hammett?anchor=java_like_proxies_in_net">Java like proxies in .Net</a>: - Explanation of the problems which leaded to development of Avalon DynamicProxy. - </li> - </ul> - </div> - - <div class="subsection"><span class="subsection-header">Thanks to</span> - <ul> - <li> - Stefan Zobel - for his suggestion of using ldtoken - </li> - <li> - <a class="doclink" href="http://www.springframework.net/">SpringFramework.Net</a> - guys - for their interest and willingness to help - </li> - <li> - <a class="doclink" href="http://aspectsharp.sourceforge.net/">AspectSharp project</a> - - for sticking with it - </li> - </ul> - </div> - - </div> - +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Avalon Castle - DynamicProxy</title><link type="text/css" rel="stylesheet" href="../../../../styles/style.css" /><meta content="text/html; charset=UTF-8" http-equiv="Content-type" /></head><body><table class="logobar"><tr><td class="panelleft"><img alt="link" src="../../../../images/feather.jpg" /></td><td class="panelmiddle"><div class="project">Avalon</div><div class="title">Avalon Castle - DynamicProxy</div></td><td class="panelright" /></tr></table><div class="categorybar" dir="/central/laboratory/castle/dynamicproxy"><a class="homecategory" href="../../../../index.html"> + Home + </a><a class="category" href="../../../../planet/components/index.html">Planet</a><a class="category" href="../../../../products/runtime/index.html">Products</a><a class="category-selected" href="../../../../central/about/index.html">Central</a></div><div class="menubar"><div class="no-border"><span class="dummy" /><div class="menu"><div class="menu"><div class="menu"><a class="menuitem" href="../../../about/index.html">Welcome</a><a class="menuitem" href="../../../community/index.html">Community</a><a class="menuitem" href="../../../cop/index.html">Concepts</a><a class="menuitem" href="../../../resources/index.html">Resources</a><a class="menuitem" href="../../../tools/index.html">Developer Tools</a><a class="menuitem-selected" href="../../../laboratory/index.html">Avalon Laboratory</a><a class="menuitem" href="../../../legacy/index.html">Legacy Content</a><a class="menuitem" href="../../../dpml/index.html">DPML</a></div><a class="menuitem" href="../../studio/index.html">Studio</a><a class="menuitem" href="../../discovery/index.html">Discovery</a><a class="menuitem-selected" href="../../castle/index.html">Castle</a></div><a class="menuitem" href="../microkernel/index.html">Microkernel</a><a class="menuitem" href="../managedextensions/index.html">Managed Extensions</a><a class="menuitem-selected" href="../dynamicproxy/index.html">DynamicProxy</a></div></div></div><div class="content"> + + <div class="section"><span class="section-header">The project</span> + <p> + The DynamicProxy project was created to overcome the CLR's proxy (in)capabilities. + There are proxies in the CLR world, but they can be considered a bit + intrusive as it forces one to extend MarshalByRefObject or ContextBoundObject. + </p> + <p>DynamicProxy has moved to <a href="http://www.castleproject.org">http://www.castleproject.org</a></p> + </div> + </div><div class="footer"><span class="copyright">Copyright 2004, The Apache Software Foundation All rights reserved.</span><div class="views"><a class="viewlink" id="xmllink" href=""><img src="../../../../images/xml.gif" /></a></div></div></body></html> Modified: avalon/site/central/laboratory/castle/index.html ============================================================================== --- avalon/site/central/laboratory/castle/index.html (original) +++ avalon/site/central/laboratory/castle/index.html Thu Nov 18 20:46:16 2004 @@ -1,42 +1,15 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Avalon Castle Container</title><link type="text/css" rel="stylesheet" href="../../../styles/style.css" /><meta content="text/html; charset=UTF-8" http-equiv="Content-type" /></head><body><table class="logobar"><tr><td class="panelleft"><img alt="link" src="../../../images/feather.jpg" /></td><td class="panelmiddle"><div class="project">Avalon</div><div class="title">Avalon Castle Container</div></td><td class="panelright" /></tr></table><div class="categorybar" dir="/central/laboratory/castle"><a class="homecategory" href="../../../index.html"> - Home - </a><a class="category" href="../../../planet/components/index.html">Planet</a><a class="category" href="../../../products/runtime/index.html">Products</a><a class="category-selected" href="../../../central/about/index.html">Central</a></div><div class="menubar"><div class="menu"><div class="menu"><div class="menu"><a class="menuitem" href="../../about/index.html">Welcome</a><a class="menuitem" href="../../community/index.html">Community</a><a class="menuitem" href="../../cop/index.html">Concepts</a><a class="menuitem" href="../../resources/index.html">Resources</a><a class="menuitem" href="../../tools/index.html">Developer Tools</a><a class="menuitem-selected" href="../../laboratory/index.html">Avalon Laboratory</a><a class="menuitem" href="../../legacy/index.html">Legacy Content</a><a class="menuitem" href="../../dpml/index.html">DPML</a></div><a class="menuitem" href="../studio/index.html">Studio</a><a class="menuitem" href="../discovery/index.html">Discovery</a><a class="menuitem-selected" href="../castle/index.html">Castle</a></div><a class="menuitem" href="microkernel/index.html">Microkernel</a><a class="menuitem" href="managedextensions/index.html">Managed Extensions</a><a class="menuitem" href="dynamicproxy/index.html">DynamicProxy</a></div></div><div class="content"> - - <div class="section"><span class="section-header">A container for CLI</span> - <p>Avalon Castle is a lightweight - container for the CLI (.Net and Mono) world. Although it can be viewed as - a port of Avalon, it benefits from several features offered by the - CLR.</p> - - <p>Other important difference of Castle container is its simplicity. - Based on Microkernel pattern, the user can easily modify, extend or - adapt it to match his requirements. No hard contracts, no obligations. - Just good and old Inversion of Control and stills Avalon.</p> - </div> - - <div class="section"><span class="section-header">Microkernel</span> - <p> - The Microkernel pattern allowed us to focus on a simple set of classes - which constitutes the environment for managed components. - </p> - </div> - - <div class="section"><span class="section-header">DynamicProxy</span> - <p> - To overcome some limitations of CLR we had to develop common tools used - by Avalon Castle. DynamicProxy is a simple implementation that act as the - Java proxies - through Invocation handlers. - </p> - </div> - - <div class="section"><span class="section-header">ManagedExtensions</span> - <p> - If one needs a more powerfull container, allowing him to managed his components - through some remote interface, he can use the managed extensions. - In fact the ManagedExtensions can be viewed as a port of JMX for CLI. - </p> - </div> - +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Avalon Castle Container</title><link type="text/css" rel="stylesheet" href="../../../styles/style.css" /><meta content="text/html; charset=UTF-8" http-equiv="Content-type" /></head><body><table class="logobar"><tr><td class="panelleft"><img alt="link" src="../../../images/feather.jpg" /></td><td class="panelmiddle"><div class="project">Avalon</div><div class="title">Avalon Castle Container</div></td><td class="panelright" /></tr></table><div class="categorybar" dir="/central/laboratory/castle"><a class="homecategory" href="../../../index.html"> + Home + </a><a class="category" href="../../../planet/components/index.html">Planet</a><a class="category" href="../../../products/runtime/index.html">Products</a><a class="category-selected" href="../../../central/about/index.html">Central</a></div><div class="menubar"><div class="menu"><div class="menu"><div class="menu"><a class="menuitem" href="../../about/index.html">Welcome</a><a class="menuitem" href="../../community/index.html">Community</a><a class="menuitem" href="../../cop/index.html">Concepts</a><a class="menuitem" href="../../resources/index.html">Resources</a><a class="menuitem" href="../../tools/index.html">Developer Tools</a><a class="menuitem-selected" href="../../laboratory/index.html">Avalon Laboratory</a><a class="menuitem" href="../../legacy/index.html">Legacy Content</a><a class="menuitem" href="../../dpml/index.html">DPML</a></div><a class="menuitem" href="../studio/index.html">Studio</a><a class="menuitem" href="../discovery/index.html">Discovery</a><a class="menuitem-selected" href="../castle/index.html">Castle</a></div><a class="menuitem" href="microkernel/index.html">Microkernel</a><a class="menuitem" href="managedextensions/index.html">Managed Extensions</a><a class="menuitem" href="dynamicproxy/index.html">DynamicProxy</a></div></div><div class="content"> + + <div class="section"><span class="section-header">A container for CLI</span> + <p>Avalon Castle is a lightweight + container for the CLI (.Net and Mono) world. Although it can be viewed as + a port of Avalon, it benefits from several features offered by the + CLR.</p> + + <p>Castle has moved to <a href="http://www.castleproject.org">http://www.castleproject.org</a></p> + </div><div class="footer"><span class="copyright">Copyright 2004, The Apache Software Foundation All rights reserved.</span><div class="views"><a class="viewlink" id="xmllink" href=""><img src="../../../images/xml.gif" /></a></div></div></body></html> Modified: avalon/site/central/laboratory/castle/managedextensions/index.html ============================================================================== --- avalon/site/central/laboratory/castle/managedextensions/index.html (original) +++ avalon/site/central/laboratory/castle/managedextensions/index.html Thu Nov 18 20:46:16 2004 @@ -1,130 +1,16 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Avalon Castle - Managed Extensions</title><link type="text/css" rel="stylesheet" href="../../../../styles/style.css" /><meta content="text/html; charset=UTF-8" http-equiv="Content-type" /></head><body><table class="logobar"><tr><td class="panelleft"><img alt="link" src="../../../../images/feather.jpg" /></td><td class="panelmiddle"><div class="project">Avalon</div><div class="title">Avalon Castle - Managed Extensions</div></td><td class="panelright" /></tr></table><div class="categorybar" dir="/central/laboratory/castle/managedextensions"><a class="homecategory" href="../../../../index.html"> - Home - </a><a class="category" href="../../../../planet/components/index.html">Planet</a><a class="category" href="../../../../products/runtime/index.html">Products</a><a class="category-selected" href="../../../../central/about/index.html">Central</a></div><div class="menubar"><div class="menu"><div class="menu"><div class="menu"><div class="menu"><a class="menuitem" href="../../../about/index.html">Welcome</a><a class="menuitem" href="../../../community/index.html">Community</a><a class="menuitem" href="../../../cop/index.html">Concepts</a><a class="menuitem" href="../../../resources/index.html">Resources</a><a class="menuitem" href="../../../tools/index.html">Developer Tools</a><a class="menuitem-selected" href="../../../laboratory/index.html">Avalon Laboratory</a><a class="menuitem" href="../../../legacy/index.html">Legacy Content</a><a class="menuitem" href="../../../dpml/index.html">DPML</a></div><a class="menuitem" href="../../studio/index.html">Studio</a><a class="menuitem" href="../../discovery/index.html">Discovery</a><a class="menuitem-selected" href="../../castle/index.html">Castle</a></div><a class="menuitem" href="../microkernel/index.html">Microkernel</a><a class="menuitem-selected" href="../managedextensions/index.html">Managed Extensions</a><a class="menuitem" href="../dynamicproxy/index.html">DynamicProxy</a></div><a class="menuitem" href="lifecycle.html">Lifecycle</a><a class="menuitem" href="remoting.html">Remoting</a><a class="menuitem" href="invokers.html">Invokers</a></div></div><div class="content"> - - <div class="section"><span class="section-header">The project</span> - <p> - ManagedExtensions is an attempt to give management capabilities to applications. - Its relation to Castle Container is yet to be developed. - </p> - <p> - Basically you have to approaches to choose: the server approach and the passive - approach. - </p> - </div> - - <div class="section"><span class="section-header">Building a server</span> - <p> - If your application will be used to host others components, then you - may build it as a server application. Just create a MServer concrete instance - and register your managed components on it (or use it to create your components - instances) - </p> -<pre class="source"> -using Apache.Avalon.Castle.ManagementExtensions; - - -bool createNewAppDomain = false; -MServer server = MServerFactory.CreateServer("logicaldomainname", createNewAppDomain); - -</pre><div class="source-title"><span class="source-title" /></div> - - <p> - After setting up a MServer instance you can use it to register component instances, - or create instances from it: - </p> -<pre class="source"> -/// <summary> -/// Registers the specified managed object instance. -/// </summary> -/// <exception cref="InvalidDomainException">If domain name is not found.</exception> -ManagedInstance RegisterManagedObject(Object instance, ManagedObjectName name); - -/// <summary> -/// Instantiates the specified type using the server domain. -/// </summary> -Object Instantiate(String assemblyName, String typeName); -</pre><div class="source-title"><span class="source-title" /></div> - </div> - - <div class="section"><span class="section-header">Managed Components</span> - <p> - To expose your components as managed components you have two choices: - <ul> - <li> - Use the ManagedComponent attribute - </li> - <li> - Implement the MDynamicSupport interface - </li> - </ul> - </p> -<pre class="source"> -using Apache.Avalon.Castle.ManagementExtensions; - -<b>[ManagedComponent]</b> -public class DummyHttpServer -{ - protected bool started = false; - - public DummyHttpServer() - { - } - - <b>[ManagedAttribute]</b> - public bool Started - { - get - { - return started; - } - set - { - started = value; - } - } - - <b>[ManagedOperation]</b> - public void Start() - { - Started = true; - } - - <b>[ManagedOperation]</b> - public void StartAt(int time) - { - } - - <b>[ManagedOperation]</b> - public void Stop() - { - Started = false; - } -} -</pre><div class="source-title"><span class="source-title" /></div> - </div> - - <div class="section"><span class="section-header">Source code</span> - <p> - The lastest version of source can be obtained from - <a class="doclink" href="https://svn.apache.org/repos/asf/avalon/trunk/central/laboratory/avalon-net/Castle/CastleManagementExtensions">Avalon Subversion repository</a> - (Test cases can be found <a class="doclink" href="https://svn.apache.org/repos/asf/avalon/trunk/central/laboratory/avalon-net/Castle/CastleManagementExtensionsTest">here</a>). - </p> - </div> - - <div class="section"><span class="section-header">Useful links</span> - <p> - If you'd like to learn more about Managed Extensions, please refer to: - </p> - <ul> - <li> - <a class="doclink" href="http://jroller.com/comments/hammett?anchor=management_extensions_for_net"> - Management Extensions for .Net</a>: - Full explanation of what driven the development of Castle Managed Extensions. - </li> - </ul> - </div> - +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Avalon Castle - Managed Extensions</title><link type="text/css" rel="stylesheet" href="../../../../styles/style.css" /><meta content="text/html; charset=UTF-8" http-equiv="Content-type" /></head><body><table class="logobar"><tr><td class="panelleft"><img alt="link" src="../../../../images/feather.jpg" /></td><td class="panelmiddle"><div class="project">Avalon</div><div class="title">Avalon Castle - Managed Extensions</div></td><td class="panelright" /></tr></table><div class="categorybar" dir="/central/laboratory/castle/managedextensions"><a class="homecategory" href="../../../../index.html"> + Home + </a><a class="category" href="../../../../planet/components/index.html">Planet</a><a class="category" href="../../../../products/runtime/index.html">Products</a><a class="category-selected" href="../../../../central/about/index.html">Central</a></div><div class="menubar"><div class="menu"><div class="menu"><div class="menu"><div class="menu"><a class="menuitem" href="../../../about/index.html">Welcome</a><a class="menuitem" href="../../../community/index.html">Community</a><a class="menuitem" href="../../../cop/index.html">Concepts</a><a class="menuitem" href="../../../resources/index.html">Resources</a><a class="menuitem" href="../../../tools/index.html">Developer Tools</a><a class="menuitem-selected" href="../../../laboratory/index.html">Avalon Laboratory</a><a class="menuitem" href="../../../legacy/index.html">Legacy Content</a><a class="menuitem" href="../../../dpml/index.html">DPML</a></div><a class="menuitem" href="../../studio/index.html">Studio</a><a class="menuitem" href="../../discovery/index.html">Discovery</a><a class="menuitem-selected" href="../../castle/index.html">Castle</a></div><a class="menuitem" href="../microkernel/index.html">Microkernel</a><a class="menuitem-selected" href="../managedextensions/index.html">Managed Extensions</a><a class="menuitem" href="../dynamicproxy/index.html">DynamicProxy</a></div><a class="menuitem" href="lifecycle.html">Lifecycle</a><a class="menuitem" href="remoting.html">Remoting</a><a class="menuitem" href="invokers.html">Invokers</a></div></div><div class="content"> + + <div class="section"><span class="section-header">The project</span> + <p> + Management Extensions is an attempt to give management capabilities to applications. + </p> + <p>Management Extensions has moved to <a href="http://www.castleproject.org">http://www.castleproject.org</a></p> + </div> + + </div> + </div><div class="footer"><span class="copyright">Copyright 2004, The Apache Software Foundation All rights reserved.</span><div class="views"><a class="viewlink" id="xmllink" href=""><img src="../../../../images/xml.gif" /></a></div></div></body></html> Modified: avalon/site/central/laboratory/castle/microkernel/index.html ============================================================================== --- avalon/site/central/laboratory/castle/microkernel/index.html (original) +++ avalon/site/central/laboratory/castle/microkernel/index.html Thu Nov 18 20:46:16 2004 @@ -1,40 +1,17 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Avalon Castle - DynamicProxy</title><link type="text/css" rel="stylesheet" href="../../../../styles/style.css" /><meta content="text/html; charset=UTF-8" http-equiv="Content-type" /></head><body><table class="logobar"><tr><td class="panelleft"><img alt="link" src="../../../../images/feather.jpg" /></td><td class="panelmiddle"><div class="project">Avalon</div><div class="title">Avalon Castle - DynamicProxy</div></td><td class="panelright" /></tr></table><div class="categorybar" dir="/central/laboratory/castle/microkernel"><a class="homecategory" href="../../../../index.html"> - Home - </a><a class="category" href="../../../../planet/components/index.html">Planet</a><a class="category" href="../../../../products/runtime/index.html">Products</a><a class="category-selected" href="../../../../central/about/index.html">Central</a></div><div class="menubar"><div class="no-border"><span class="dummy" /><div class="menu"><div class="menu"><div class="menu"><a class="menuitem" href="../../../about/index.html">Welcome</a><a class="menuitem" href="../../../community/index.html">Community</a><a class="menuitem" href="../../../cop/index.html">Concepts</a><a class="menuitem" href="../../../resources/index.html">Resources</a><a class="menuitem" href="../../../tools/index.html">Developer Tools</a><a class="menuitem-selected" href="../../../laboratory/index.html">Avalon Laboratory</a><a class="menuitem" href="../../../legacy/index.html">Legacy Content</a><a class="menuitem" href="../../../dpml/index.html">DPML</a></div><a class="menuitem" href="../../studio/index.html">Studio</a><a class="menuitem" href="../../discovery/index.html">Discovery</a><a class="menuitem-selected" href="../../castle/index.html">Castle</a></div><a class="menuitem-selected" href="../microkernel/index.html">Microkernel</a><a class="menuitem" href="../managedextensions/index.html">Managed Extensions</a><a class="menuitem" href="../dynamicproxy/index.html">DynamicProxy</a></div></div></div><div class="content"> - - <div class="section"><span class="section-header">A container for CLI</span> - <p>Avalon Castle is a lightweight - container for the CLI (.Net and Mono) world. Although it can be viewed as - a port of Avalon, it benefits from several features offered by the - CLR.</p> - - <p>Other important difference of Castle container is its simplicity. - Based on Microkernel pattern, the user can easily modify, extend or - adapt it to match his requirements. No hard contracts, no obligations. - Just good and old Inversion of Control and stills Avalon.</p> - </div> - - <div class="section"><span class="section-header">More references</span> - <p> - There are plenty of documents, articles and blog entries about .Net and proxies, - its benefits, its cons and its differences when compared to java implementation. - </p> - <div class="subsection"><span class="subsection-header">Useful links</span> - <ul> - <li> - <a class="doclink" href="../../cop/index.html">Developing With Avalon</a>: - An excellent white paper on the Avalon framework. - Recommended reading! - </li> - <li> - <a class="doclink" href="../../cop/index.html">An Introduction to COP</a>: - An introduction to Component Oriented Programming and the - core Avalon Framework. - </li> - </ul> - </div> - </div> - +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Avalon Castle - DynamicProxy</title><link type="text/css" rel="stylesheet" href="../../../../styles/style.css" /><meta content="text/html; charset=UTF-8" http-equiv="Content-type" /></head><body><table class="logobar"><tr><td class="panelleft"><img alt="link" src="../../../../images/feather.jpg" /></td><td class="panelmiddle"><div class="project">Avalon</div><div class="title">Avalon Castle - DynamicProxy</div></td><td class="panelright" /></tr></table><div class="categorybar" dir="/central/laboratory/castle/microkernel"><a class="homecategory" href="../../../../index.html"> + Home + </a><a class="category" href="../../../../planet/components/index.html">Planet</a><a class="category" href="../../../../products/runtime/index.html">Products</a><a class="category-selected" href="../../../../central/about/index.html">Central</a></div><div class="menubar"><div class="no-border"><span class="dummy" /><div class="menu"><div class="menu"><div class="menu"><a class="menuitem" href="../../../about/index.html">Welcome</a><a class="menuitem" href="../../../community/index.html">Community</a><a class="menuitem" href="../../../cop/index.html">Concepts</a><a class="menuitem" href="../../../resources/index.html">Resources</a><a class="menuitem" href="../../../tools/index.html">Developer Tools</a><a class="menuitem-selected" href="../../../laboratory/index.html">Avalon Laboratory</a><a class="menuitem" href="../../../legacy/index.html">Legacy Content</a><a class="menuitem" href="../../../dpml/index.html">DPML</a></div><a class="menuitem" href="../../studio/index.html">Studio</a><a class="menuitem" href="../../discovery/index.html">Discovery</a><a class="menuitem-selected" href="../../castle/index.html">Castle</a></div><a class="menuitem-selected" href="../microkernel/index.html">Microkernel</a><a class="menuitem" href="../managedextensions/index.html">Managed Extensions</a><a class="menuitem" href="../dynamicproxy/index.html">DynamicProxy</a></div></div></div><div class="content"> + + <div class="section"><span class="section-header">A container for CLI</span> + <p>Avalon Castle is a lightweight + container for the CLI (.Net and Mono) world. Although it can be viewed as + a port of Avalon, it benefits from several features offered by the + CLR.</p> + + <p>Castle has moved to <a href="http://www.castleproject.org">http://www.castleproject.org</a></p> + + </div> + </div><div class="footer"><span class="copyright">Copyright 2004, The Apache Software Foundation All rights reserved.</span><div class="views"><a class="viewlink" id="xmllink" href=""><img src="../../../../images/xml.gif" /></a></div></div></body></html> --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]