Date: 2004-10-12T21:24:12 Editor: HamiltonVerissimo Wiki: Incubator Wiki Page: CastleProposal URL: http://wiki.apache.org/incubator/CastleProposal no comment Change Log: ------------------------------------------------------------------------------ @@ -1,12 +1,13 @@ -''' Proposal for new project Castle (Draft 1) ''' +''' Proposal for new project Castle ''' ''01 Oct 2004, Hamilton Verissimo (hammett at apache dot org)'' ---- -== Castle or Realm == -Temporary name. +== Castle == +A vote should be issue to define a name all members agree with. +Castle's mission is to serve as an umbrella for some problem-resolution stardards and default implementation of these standards - for the CLI world. Meanwhile it will provide a simple yet powerfull inversion of control container. === Rationale === @@ -15,7 +16,7 @@ Of course there are several aspects that contribute to create a Good Application, and from our standpoint one them is Inversion of Control, which deserves attention. However the usage of Inversion of Control is a matter of taste, and people should not feel obligate to use, or might disagree with the benefits. -Castle's goal is to provide a set of standalone tools and an Inversion of Control implementation that provide a rendezvous point for these tools - and possible other - although they are totally independent. Initially our set of tools will consist of: +Castle's goal is to provide a set of standalone tools and an Inversion of Control container implementation which provides a rendezvous for these tools - and possibly others - although they are totally independent. Initially our set of tools will consist of: * Aspect# * DynamicProxy @@ -40,13 +41,15 @@ http://avalon.apache.org/central/laboratory/castle/dynamicproxy/index.html DynamicProxy generates proxies for interfaces or classes on the fly through the generation of IL code, just like Java proxies, which is unavailable in CLI. -It's been used by Aspect#, NHibernate project and Castle and we already had some nice testemonials and some suggestions for the next version. +It's been used by Aspect#, NHibernate project and Castle and we already had some nice testemonials and suggestions for the next versions. '''ManagedExtensions''' http://avalon.apache.org/central/laboratory/castle/managedextensions/index.html -ManagedExtensions is an application extension inspired by Java Management Extensions. As JMX it directs the overall application architecture but simplify some other aspect like remoting access to applications, configuration and service invocation. +ManagedExtensions is an application extension inspired by Java Management Extensions. As JMX it directs the overall application architecture but simplify some other aspect like remoting access to applications, configuration and service invocation. + +We should verify if its worth to have it comparing to standard WMI API. '''Castle Microkernel''' @@ -59,8 +62,6 @@ If one wants a more complex container it can uses the Windsor container which extends the Microkernel to provide a more complex solution. It aims to provide external configuration, configuration overriding, subcontainers and a profile concept that will allow the user to switch to different configurations modes, ie 'production', 'development', 'profiling'. The profile only defines a set of service implementation and facilities configurations. -Castle's goal is to serve as an umbrella for some problem-resolution stardards and default implementation of these standards - for the CLI world. Meanwhile it will provide a simple yet powerfull inversion of control container. - ----- '''More Orthogonal extensions''' @@ -85,33 +86,33 @@ * ASP.Net (possibly not available due to Microsoft license, to be analyzed) -'''Plans for the future''' +'''Mission''' -Inspired by Ruby language and concepts we're going to provide a more easily way of configure and use applications, in an attempt to avoid XML descriptors, complex deployments, complex setup and steep learning curve. This is subject to research, but should be constantly in our minds when planning and coding. +Inspired by Ruby language and concepts we're going to provide a more easily way to configure and use applications, in an attempt to avoid XML descriptors, complex deployments, complex setup and steep learning curve. This is subject to research, but should be constantly in our minds when planning and coding. + +Basicaly we can state: +- Attributes instead of XML ==== Criteria ==== ===== Meritocracy ===== -We've been living in meritocracy environment with the project we've been involved to and even from our work environment. We plan to support meritocracy by all means, setting the example with every message posted to the list. +We've been living in meritocracy environment within the project we've been involved to and even from our work environment. We plan to support meritocracy by all means, setting the example with every message posted to the list. ===== Community ===== The Aspect# project have three developers involved, and the Castle container has only one. This incubation process has the objective of attract more contributors, new ideas, new perceptions and even new use cases that will drive our roadmap. - ===== Core Developers ===== Currently only the people that are already involved with these projects. People that are involved with this project as user may be invited to join our efforts as well. - ===== Alignment ===== We're concern in not delivering only Microsoft CLI compatible code so the project must be tested against Mono before being release. For logging purposes we're going to use log4net available through the ASF Logging TLP. For building purposes we're currently using NAnt, which is a port of Apache ANT, but its licensed as GPL. Test cases are implemented using NUnit, a port of JUnit, another standard and is currently licensed under zlib/libpng License. - ==== Warning Signs ==== ===== Orphaned products ===== @@ -138,10 +139,8 @@ === Scope of the subprojects === Castle Container and Tools are the main subprojects. - === Identify the initial source from which the subproject is to be populated === All Castle related code, DynamicProxy and ManagedExtension are on Avalon SVN repository. The Aspect# code is on the sourceforge and is already licensed under Apache License 2.0 - === Identify the ASF resources to be created === --------------------------------------------------------------------- To unsubscribe, e-mail: cvs-unsubscribe@incubator.apache.org For additional commands, e-mail: cvs-help@incubator.apache.org