incubator-cvs mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From c..@incubator.apache.org
Subject [Incubator Wiki] Updated: CastleProposal
Date Fri, 22 Oct 2004 18:28:04 GMT
   Date: 2004-10-22T11:28:04
   Editor: HamiltonVerissimo <hammett@apache.org>
   Wiki: Incubator Wiki
   Page: CastleProposal
   URL: http://wiki.apache.org/incubator/CastleProposal

   no comment

Change Log:

------------------------------------------------------------------------------
@@ -1,166 +1,4 @@
 ''' Proposal for new project Castle '''
 
-''01 Oct 2004, Hamilton Verissimo (hammett at apache dot org)''
-
-----
-
-== 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 ===
-
-A empty space lies in the open source community for those who happens to use CLI 
-running on Windows (.Net Framework from MS) and|or Linux (Mono). This empty space refers
to a model which set the example, as reference of how to build a Good Application (tm) from
the developer's point of view.
-
-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 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
- * ManagedExtensions
- * Castle Microkernel
-
-And the container
-
- * Windsor
-
-
-'''Aspect#'''
-
-http://aspectsharp.sourceforge.net/
-
-Aspect# is an AOP framework for CLI. It uses dynamic proxies to generate new types on the
fly which implements your aspect rules. Aspect# gained attention since the first day it was
released. It's easy to say why: its based on simplicity. We don't rely on creepy xml configuration
files, instead a simple configuration language (inspired by Ruby) was conceived. 
-Aspect# extends an application providing mixins and method interceptors easily. Within a
few months of existence, Aspect# had more than one thousand downloads.
-
-
-'''DynamicProxy'''
-
-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 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. 
-
-We should verify if its worth to have it comparing to standard WMI API.
-
-'''Castle Microkernel'''
-
-http://avalon.apache.org/central/laboratory/castle/microkernel/index.html
-
-If one only wants a very simple - almost naive - Inversion of Control container to set up
and assemble his application he can rely on Castle Microkernel to do so. 
-The microkernel is easily extensible orthogonally, which means that features can be plugged
and transparently combined to achieve a major goal.
-
-'''Castle Windsor '''
-
-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.
-
------
-
-'''More Orthogonal extensions'''
-
-We're are concern to not reinvent the wheel, so we plan to offer adapters to existent open
source solutions provided that licenses are compatible with ASF. We plan to support, for instance:
-
-'' PersistenceLayer ''
-
- * Ibatis.Net
- * NHibernate
- * OJB.Net
- * Prevayler
-
-'' SecurityLayer''
-
- * To be studied
-
-'' PresentationLayer''
-
- * Maverick.Net
- * NVelocity
- * ASP.Net (possibly not available due to Microsoft license, to be analyzed)
-
-
-'''Mission'''
-
-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 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 =====
-We've been using our projects in commercial applications to practice the eat-your-own-dog-food
and consequently improve the design and features as needed. However this is not enough and
this incubation process is exactly to make our community stronger.
-
-===== Inexperience with open source =====
-Only one committer is new to open source project environment, the others are involved with
open source for more than one year. Hamilton is a committer of with Apache Avalon, a PMC member
of Excalibur project and in the spare time browses the Geronimo source code looking for bugs.
-
-===== Homogenous developers =====
-Two of the developers share a common employer, but are not working on the project as salaried
employees. The other one had worked with them but only communicates by email nowadays.
-
-
-===== Reliance on salaried developers =====
-Developers work on a volunteer basis. The project does not rely on salaried developers.
-
-===== No ties to other Apache products =====
-We plan to use Log4Net available in the Logging project. This is just the first CLI project
available in the ASF. 
-
-
-===== A fascination with the Apache brand =====
-We're fascinated by the Apache-Way, the meritocracy and community dynamics. We know that
being a committer ASF is guarantee of learning, not only how to develop software properly,
but how to grow a healthful community.
-
-
-=== 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 ===
-
-==== mailing list(s) ====
-castle-ppmc via incubator.apache.org (with moderated subscriptions) 
-castle-dev via incubator.apache.org 
-castle-commits via incubator.apache.org 
-
-==== Subversion repositories ====
-incubator/castle
-
-==== Jira ====
-Castle - We're going to add each tool/layer as components.
-
-=== Identify the initial set of committers ===
-
- * Hamilton Verissimo
- * Rafael Steil
- * Henry Conceicao
-
-=== Identify Apache sponsoring individual ===
-
-Leo Simons, champion and mentor for the project, (as defined in http://incubator.apache.org/incubation/Roles_and_Responsibilities.html)

+''22 Oct 2004, Hamilton Verissimo (hammett at apache dot org)''
+''Removed''

---------------------------------------------------------------------
To unsubscribe, e-mail: cvs-unsubscribe@incubator.apache.org
For additional commands, e-mail: cvs-help@incubator.apache.org


Mime
View raw message