Some of you might already know but I wanted to announce that Remo Gloor and I are currently actively involved in pushing the next major release (namely 4.0.0) of NServiceBus further. This is the first blog post of an upcoming series of blog posts about exciting stuff which will be available in NServiceBus in the next release. I will start describing some mini features and then move to a major new feature in which Remo and I took the main contributor role. Before I start with the blog posts I want to thank Andreas Öhlund, Johns Simons, Samuel Camhi and also Udi Dahan from NServiceBus. These guys are just amazing! They are pushing forward a pretty good product by making it more open and feature rich from release to release. You guys rock! Continue reading
These are the slides with comments of my conference talk at MedConf 2012 in Lucerne:
Software development without using open source software (OSS) is unthinkable in today’s world. This holds also for medical technical projects.
This presentation is split into three parts. First we take a look at some myths and facts about open source software. Then at how to integrate an OSS into your project so it can be validated against regulatory requirements. And finally, we’ll see what is important when selecting open source software.
Unfortunately, ASP.NET providers like the MembershipProvider and RolesProvider aren’t designed for dependency injection. Many users have problems to assign dependencies to them. In this blog post I’ll show a way to how this can be done using Ninject.Web.Common 3.0.0. This solution works for MVC and WebForms. Continue reading
The new release of Ninject 3.0 comes with a new extension that adds support for factories to Ninject. It supports factory interfaces, Func and Lazy. In this blog post I will explain how they are used.
Why using factories?
The recommended way to use IoC containers is that the composition root of the application is the only place where the container is accessed. Unfortunately many application can’t create everything at once during the application start or at the beginning of a web/wcf request because not everything is known at this moment. Therefore these applications need a way to create new instances using the kernel at a later point. Preferably we want to do this without introducing a reference to the container. This is where factories come into play. Instead of injecting the kernel into classes that need to create new instances we inject a factory. This factory is responsible to create the new instances using the kernel. There are two ways to implement such a factory: A factory interface and as a Func or Lazy.
Ninject 3.0 release candidate has gone live. This release introduces some new feature and some changes in its behavior. This blog post will give you detailed information what has changed. It covers mainly Ninject core. Other blog posts that describe the changes and the new extensions will follow soon.
In my projects, we use a lot of open source libraries like Ninject, xUnit, Machine.Specifications, FluentAssertions, StyleCop, Moq, statLight, AgUnit and of course the project I lead myself: bbv.Common.
These projects are really cool. But sometimes of course, we need something that they do not (yet) provide. Like adding Machine.Specification support in FluentAssertions or a faster runner for xUnit unit tests under silverlight with AgUnit and statLight.
Therfore, we download the source code and try to contribute the features we need. And we try to follow the coding style of the existing code so that the project owners are willing to merge our changes into their code base. But this is almost impossible!
We use a lot of open source libraries and components in our daily business. Open source libraries provide us a big advantage regarding time to market with our products. Every time when we are facing a problem in our software (problem is related to business domain to implementation domain difficulties) we first look into the open source world if someone has already solved that problem or even parts of it. Sourceforge, codeplex and google code (to name a few) are often the first pages we visit to look for code samples, libraries and frameworks. But how can we find the needle in the haystack?