Monday, September 24, 2007

Castle

Castle is an open source project for .net that is to simplify the development of enterprise and web applications, offering a set of tools (working together or independently) and integration with other open source projects.

Castle has similar capabilities as Spring [Spring.NET for .NET].Following link direct you to a good comparison on the subject: http://wiki.cuyahoga-project.org/wiki/index.php/Castle_vs_Spring.NET
Following tools/frameworks are integrated with Castle.

1. ActiveRecord

This is an implementation of Active Record Design Pattern.

This adds the ORM capability on top of NHibernate.

Unlike, NHibernate – in ActiveRecord we need not to maintain .hbm files to map the Object properties to database table columns. ActiveRecord avoid this through attribute based programming.

External Articles on the concept: Martin Fowler on Active Record

Getting Started Link: http://www.castleproject.org/activerecord/gettingstarted/index.html

2. MonoRail

MonoRail differs from the standard WebForms way of development as it enforces separation of concerns; controllers just handle application flow, models represent the data and the view is just concerned about presentation logic.

Getting Started Link: http://www.castleproject.org/monorail/gettingstarted/index.html

How to configure MonoRail on IIS is available here…

Documentation: http://www.castleproject.org/monorail/documentation/v1rc2/index.html

3. Castle MicroKernel/Windsor

The Castle MicroKernel is an inversion of control container that was designed for extensibility.

This concept facilitates to create a highly decoupled application to fit into the design concept ‘design to an interface not to an implementation’.

With this, we load the concrete types dynamically during the runtime.

External Articles on the concept: Martin Fowler on: Inversion of Control Containers and the Dependency Injection pattern
Getting Started Link: http://www.castleproject.org/container/gettingstarted/index.html

No comments:

Post a Comment