Categories: AOP, Frameworks, Inversion of Control, Miscellaneous, Object-relational mapping
Latest version: 1.0 RC 3Added 2006-01-08Updated 2007-10-11
Framework that aspires to simplify the development of enterprise and web applications. Castle offers a set of tools (working together or independently) and integration with other open source projects.Features include:- Rapid web application development: MonoRail, an MVC web framework inspired by Ruby on Rails' Action Pack.- Object-relational database mapping: ActiveRecord, a data mapping pattern implemented using NHibernate; ActiveRecord Generator, a desktop application to generate ActiveRecord classes based on database schemas.- Inversion of control containers: MicroKernel/Windsor Container.- Proxy generator for interfaces and classes: DynamicProxy.- AOP framework based on dynamic proxies and XML configuration files: Aspect#.- Visual Studio 2003/2005 integration.
Categories: Inversion of Control
Latest version: 0.1b AlphaAdded 2004-10-20
Implementation of Apache Avalon for .NET.Apache Avalon provides a development platform for component and container programming utilizing key design patterns such as Inversion of Control (IoC) and Separation of Concerns.The project team doesn't consider Avalon.Net just a port from the Java version. The framework already has some differences.
Latest version: 1.1Added 2008-02-15Updated 2008-09-16
The Unity Application Block (Unity) is a lightweight extensible dependency injection container with support for constructor, property, and method call injection.
Categories: Frameworks, Inversion of Control
Latest version: 1.1Added 2004-10-12Updated 2008-02-15
Lightweight container with IoC (Inversion of Control) / Dependency Injection functionality comparable to that found in the Java-based Spring framework.Features include:- Constructor and Setter based Dependency Injection- Factory method creation- Inheritance of object definitions- Support for .NET application configuration files- Event wiring- Autowiring of collaborators- Singleton/Prototype creation modes
Latest version: 2.0 Beta 2Added 2004-10-13
Lightweight embeddable container for components that honor Inversion of Control (IoC).Features include:- Dependency Injection: A way of instantiating components and lacing them together with other dependent components.- Components don't have to implement any funny APIs. They can be based on any object.- Lifecycle support is built-in. Components' lifecycle can be managed by PicoContainer. (The default lifecycle is simple, but can be extended)
Latest version: 1.4.4Added 2009-02-05Updated 2009-10-28
IoC container.Features include:- Create components with expressions: In addition to the reflection-based autowiring capabilities found in other .NET containers, Autofac can use expressions to create components- Predictably manage eesources: The dynamic nature of applications built with dependency injection means that determining which components should be disposed of and when is much harder. Autofac takes on this burden by tracking instantiations and dependencies within a specified scope, so that a single Dispose() call can clean up everything that should be cleaned up and nothing more- Components never need to reference Autofac- Module system- Autowiring: Even though you may use expressions to register many components, Autofac can choose constructors and build up instances for you if you need it- XML configuration support- Multiple services per component- No implementation type dependencies: After registration, Autofac needs no knowledge of implementation types so you can vary them however you like - even on a call-by-call basis.
Author: Nate Kohari
Latest version: Release Candidate 1Added 2007-09-05Updated 2008-04-24
Dependency injection framework.Features include:- Core functionality is in a single assembly with no dependencies outside the .NET base class library. This single assembly's footprint is approximately 110KB when compiled for release.- Instead of relying on reflection for invocation, Ninject takes advantage of the lightweight code generation features in version 2.0 of the CLR.- Rather than relying on XML mapping files and string identifiers to wire up components, Ninject provides a domain-specific language. This means that Ninject takes advantage of the capabilities of the language (like type-safety) and the IDE (like IntelliSense and code completion).- Supports contextual binding, in which a different concrete implementation of a service may be injected depending on the context in which it is requested.