Castle built for .Net

22.11.2006
, which is an open source project to ease development on Microsoft's .Net platform, is nearing its general release.

Spawned out of the defunct object-oriented framework, Castle is built as a set of programming libraries. In addition to .Net, it also will work with , an open source implementation of .Net.

"Castle's goals are avoid code repetition, use convention instead of configuration whenever it's possible, and handle common tasks on the programmer's behalf," said project creator Hamilton Verissimo, founder of the Castle Stronghold consultancy in Brazil.

A second release candidate of Castle 1.0 is available as of several weeks ago. A general release is targeted for January.

Castle can be used for enterprise and Web application development. It features tools including MonoRail, which is a Web framework inspired by Ruby on Rails. MonoRail uses the MVC (Model-View-Controller) pattern for application flow, data, and views. AJAX (Asynchronous JavaScript and XML) is featured as well.

Also in Castle are ActiveRecord, for mapping objects to databases, and Windsor, which is an object lifecycle container for making code more maintainable.

"[Castle is] a collection of many different tools and features primarily designed for easing development and reducing development time," said Kevin Williams, who is a developer involved in Castle.

Ease of use and intuitiveness are the primary draws of Castle, Williams said.

"Of all the software that I've used over the years in .Net, I've never seen anything as easy to use or powerful as the Castle tools," Williams said.

"It's very intuitive to use and you have a lot of control over things and it's very extensible," Williams said. Users can mold Castle to their environment or use it with the Visual Studio IDE.

"Probably the best thing I can say is that as developers improve their practices and learn about new methodologies and techniques and design patterns and all these things, sometimes it's difficult to put all these tool together and make it work," Williams said. "Castle fits all those pieces together for you and gives you a jumpstart in what you want to build."

Castle began as an attempt to bridge Avalon to .Net. Planning already is under way for version 2.0 of Castle. The MonoRail component in version 2.0 may be enabled to work with many view engines at the same time. A domain language to generate JavaScript also is eyed, as is a better template engine in the vein of Ruby. Performance improvements also are planned for MonoRail.

Initialization and mapping improvements are expected for ActiveRecord in Castle 2.0. The IoC (Inversion of Control) microkernel in Castle may be more configurable as well.