Castle Project
Encyclopedia
The Castle Project is an open source
Open source
The term open source describes practices in production and development that promote access to the end product's source materials. Some consider open source a philosophy, others consider it a pragmatic methodology...

 application framework
Application framework
In computer programming, an application framework consists of a software framework used by software developers to implement the standard structure of an application for a specific development environment ....

 for the .NET platform.

History

The project was founded by Hamilton Verissimo de Oliveira (Hammett), who was a member of the Apache Avalon
Apache Avalon
Apache Avalon is a computer software framework developed in 1999 as a project to provide a reusable component framework for container applications...

 and the Apache Excalibur
Apache Excalibur
Apache Excalibur project produces a set of libraries for component based programming in the Java language. Its main products include the Inversion of Control framework Avalon, an Avalon based container named Fortress, and a set of Avalon compatible software components.Excalibur spun out of the...

 projects. Keenly interested in the development of an inversion of control
Inversion of Control
In software engineering, Inversion of Control is an abstract principle describing an aspect of some software architecture designs in which the flow of control of a system is inverted in comparison to procedural programming....

 container, after he resigned from Avalon and became disillusioned with Excalibur, he went on to develop and release his own for the .NET platform.

Hammett was joined by other developers, after the publishing of a series of articles
on The Code Project
The Code Project
The Code Project is a website that contains articles for an audience of computer programmers. Articles can be related to general programming, GUI design, algorithms or collaboration. Most of the articles have been uploaded by visitors and have not been extracted from an external source. Nearly...

 and the Castle Project eventually expanded its mission "to provide a simple set of tools to speed up the development of common enterprise and web applications while promoting good architecture".

The Castle Project still continues to gain acceptance and mind-share from the .NET community, including recognition from Microsoft thought leaders as a framework to assist with building "robust, extensible, working software".

In 2006 Hammett started his own company to offer commercial support for the Castle Project and for the applications developed using the framework. In August 2008 he joined Microsoft as a Program Manager on the MEF team.

On October 31, 2008 Hamilton announced http://hammett.castleproject.org/?p=329 on his blog that Castle Project has been split, and all subprojects will be maintained and released independently since that date.

The first project to be released after the split was DynamicProxy, on May 4, 2009 http://jonorossi.com/blog/archive/2009/05/04/castle-dynamicproxy-2.1-rtm-is-now-available.aspx.

Features

  • MicroKernel
    Microkernel
    In computer science, a microkernel is the near-minimum amount of software that can provide the mechanisms needed to implement an operating system . These mechanisms include low-level address space management, thread management, and inter-process communication...

    , a core lightweight Inversion of Control
    Inversion of Control
    In software engineering, Inversion of Control is an abstract principle describing an aspect of some software architecture designs in which the flow of control of a system is inverted in comparison to procedural programming....

     container.
  • Windsor, a flexible and powerful configurable Inversion of Control container suitable for enterprise requirements.
  • MonoRail, a MVC
    Model-view-controller
    Model–view–controller is a software architecture, currently considered an architectural pattern used in software engineering. The pattern isolates "domain logic" from the user interface , permitting independent development, testing and maintenance of each .Model View Controller...

     web application
    World Wide Web
    The World Wide Web is a system of interlinked hypertext documents accessed via the Internet...

     framework, inspired by Ruby on Rails
    Ruby on Rails
    Ruby on Rails, often shortened to Rails or RoR, is an open source web application framework for the Ruby programming language.-History:...

  • ActiveRecord, an implementation of the active record pattern
    Active record pattern
    In software engineering, the active record pattern is an architectural pattern found in software that stores its data in relational databases. It was named by Martin Fowler in his 2003 book Patterns of Enterprise Application Architecture...

     built on top of NHibernate
    NHibernate
    - External links :*** *NuGet...

    .
  • Aspect#, a simple aspect-oriented programming
    Aspect-oriented programming
    In computing, aspect-oriented programming is a programming paradigm which aims to increase modularity by allowing the separation of cross-cutting concerns...

     framework compliant with AOP Alliance recommendations.
  • DynamicProxy, a popular lightweight proxy generator for interfaces and concrete classes.
  • NVelocity, an improved fork from the official port of the Velocity template engine
    Template engine
    A template engine is software that is designed to process web templates and content information to produce output web documents. It runs in the context of a template system.-Types:...

    .

External links

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK