Inversion of Control and AOP

Facebook Twitter
AOP - Aspect Oriented Programming

I started doing some compare and contrast code on well-known .Net Inversion Of Control containers some time in 2009, in order to better convince my colleagues that they should be using a good one. I haven't succeeded yet, but I have reworked the code into a simple and practical survey that may be of use to anyone interested in picking an Inversion of Control Container for .Net code. In general I'm only looking at basic features, and the syntax used to access them, but I hope it's enough to get a feel for each one's strengths and weaknesses. This article isn't aimed at teaching what an IoC container is or why you would want one; but in brief, Dependency Injection is the pattern of supplying an object's dependencies to it, usually via the constructor. Anthony Steele's Blog - Comparing .Net IoC containers, part zero: Groundwork Anthony Steele's Blog - Comparing .Net IoC containers, part zero: Groundwork
Sep IoC is not a new concept, however. It has been around for several years now. Using object-oriented design principles and features such as interface, inheritance, and polymorphism, the IoC pattern enables better software design that facilitates reuse, loose coupling, and easy testing of software components. This article discusses IoC and demonstrates how to use this pattern in your software design without having to implement any of the open source frameworks. Inversion of Control is not a new term in computer science. Inversion of control (IOC containers) .NET IOC patterns Inversion of control (IOC containers) .NET IOC patterns
Simple Injector is an easy, flexible, and fast dependency injection framework, that uses best practices to steers developers towards the pit of success. Overview The goal of Simple Injector is to provide .NET application developers with an easy, flexible, and fast Inversion of Control library, that uses best practices to steer developers towards the pit of success. Simple Injector Simple Injector
Simple Injector - Performance In this post I will do a performance comparison of the most popular IoC containers.Of course performance is not the only criteria when choosing a container for a project. Perhaps you need features like interception, then not all containers are suited. But if the container is "only" used for wiring up dependencies, why not choose the fastest one? The test setup The contestants You probably have heard of most of the frameworks, but one of them is quite new and works differently: HiroThe author, Philip Laureano, names it an "inversion of control container compiler framework". Simple Injector - Performance
Simple Injector Simple Injector Introduction The Simple Injector is an easy-to-use Inversion of Control (IoC) library for .NET and Silverlight. It solely supports code-based configuration, and is an ideal starting point for both developers unfamiliar with larger IoC / DI libraries and for developers who seek to apply the SOLID design principles to their applications. Many development teams are already using Simple Injector in their production environments today with great satisfaction.
dependency injection - Simple Injector vs Hiro vs Autofac dependency injection - Simple Injector vs Hiro vs Autofac Let me start by saying that I'm the lead developer behind the Simple Injector. I agree with Mark that in most cases performance of a container isn't a problem. Still, some containers perform very poor at some points and it can be hard to intuitively sense what parts of the configuration can be problematic from a performance perspective. Most performance problems can be fixed by changing the configuration (changing registrations to singleton, adding caching, etc), no matter which container you use. At that point however it can get really complicated to configure a container. It's this complexity that I tried to solve with the Simple Injector.
Dependency Injection with Spring.Net Introduction Spring.Net is a framework aimed at providing comprehensive infrastructural support for .Net enterprise applications. At the core of Spring.Net is the concept of Dependency Injection, otherwise known as Inversion of Control. With the example code provided, you can follow along as you take a look at Spring.Net and how it implements this powerful concept. Dependency Injection with Spring.Net
Version 1.1.3 is released! Grab it here: 1.1.3 - It comes with initializer method support (many thanks to Graham Nash) and object configuration inheritance (many thanks to Maxim Klyuchnikov) Contribution Feedback and even contribution are both very much welcome, as they are the only way to make Recoil better. If you have ideas, objections or comments, feel free to stop by at the Discussion. spring-recoil - Fluent configuraton API for Spring.NET spring-recoil - Fluent configuraton API for Spring.NET
Fluent-API-for-Spring.Net Wiki Fluent API for Spring.Net is an extension to the Spring.Net framework. This extension allows you to configure your dependency injects from within code instead of XML files. This library is an extension, and thus it supports both XML and code base configuration. To get yourself up and running when using this library: Getting Started To view the list of changes made to FluentSpring between version: Fluent-API-for-Spring.Net Wiki
Welcome to the home of Spring.NET. Spring.NET is an open source application framework that makes building enterprise .NET applications easier. Providing components based on proven design patterns that can be integrated into all tiers of your application architecture, Spring helps increase development productivity and improve application quality and performance.

Spring.NET - Application Framework

Spring.NET - Application Framework
IoC Container Benchmark - Performance comparison -
Inversion of Control (IoC) is a software design principle that describes inverting the flow of control in a system, so execution flow is not controlled by a central piece of code. This means that components should only depend on abstractions of other components and are not be responsible for handling the creation of dependent objects. Instead, object instances are supplied at runtime by an IoC container through Dependency Injection (DI). IoC enables better software design that facilitates reuse, loose coupling, and easy testing of software components. Creating a Simple IoC Container « Tim Ross – Software Developer