Ninject.Extensions.Interception now supports DynamicProxy2

January 23, 2010

Seeing that people wanted to use Castle DynamicProxy2 with Ninject for interception, I ported the support from Ninject 1.5 and we now have support for using DynamicProxy2 built-in for the Ninject 2.0 extension. DynamicProxy2: IKernel kernel = new StandardKernel(new DynamicProxy2Module()); LinFu: IKernel kernel = new StandardKernel(new LinFuModule()); Note: Breaking Change!!! InterceptionModule is now abstract. The [...]

Read the full article →

Long time of Silence

January 18, 2010

It has been quite a while since I last blogged. In usual style, it has been for a reason seen over and over. I changed jobs. I have started my own software company doing contract .NET development as well as partnering with IntelliTechture. It has been very hectic switching from employee to business owner and [...]

Read the full article →

Ninject available via Horn

September 27, 2009

You can now build Ninject for both the 1.X and 2.0 code bases with Horn now. I would like to thank the Horn developers and mailing list for answering my questions and lending a hand. If you haven’t heard of Horn, you should definitely check it out. Taking Horn for a test drive is a [...]

Read the full article →

Mono Tools for Visual Studio

September 26, 2009

I have been waiting for this for a long time. There is a private preview for tools that will allow you to write .NET apps and port your code at the same time. It looks like they integrated the compatibility analyzer, remote Linux debugger, packaging system and local mono debugging into Visual Studio. It is [...]

Read the full article →

Conventions based binding with Ninject 2.0

September 24, 2009

Conventions binding is implemented through extension methods on the IKernel interface. In order to use these extensions, first download or compile a release of the Ninject.Extensions.Conventions project. Once the library is referenced, type: using Ninject.Extensions.Conventions; into the source file you are using to configure your Ninject kernel. This will add two additional methods to the [...]

Read the full article →

Why are there so many extensions in Ninject 2.0?

September 24, 2009

We really wanted to Ninject 2.0 as small as possible. Ninject 1.X was a huge (to us); a monolithic kernel that could do anything. While it was nice to be able to do anything, it came at the cost of file size, memory footprint, complexity, and more. It also presented challenges for extension authors as [...]

Read the full article →

Ninject 1.X has a new home

September 24, 2009

The Ninject 1.X repository has been migrated to GitHub; However, this version is only receiving critical bug fixes, all new development is being done on the Ninject 2.0 codebase. We will be releasing 1.5 pretty soon, so if you need to use Ninject 1.X for compatibility, keep an ear open.

Read the full article →

Extensions for Ninject 2.0

September 24, 2009

We have been hard at work trying to get Ninject 2.0 released. Integral to the release is a set of extensions to help you build your application. Here is a list of of current extensions for Ninject 2.0 that we have hosted on GitHub: Ninject.Extensions.Conventions: Assembly scanning and convention based binding system. Ninject.Extensions.Interception: Proxy/Interception module [...]

Read the full article →

Weak Proxy Factory

August 17, 2009

In the previous article I showed how one could construct a weak proxy object using LinFu. This idea very slick, but it doesn’t do us much good unless there is something built around it. DISCLAIMER: Blocks of this code are taken directly from the Ninject 2.0 source base and re-purposed. All code in this article [...]

Read the full article →

Weak Proxies

July 27, 2009

I wanted my proxy factory to hand out instances, but clean up the instance as soon as the caller no longer needs the service. I also didn’t want the caller running the cleanup code. This allows me to pool proxy instances and clean them up as I see fit. There is an inherent issue with [...]

Read the full article →

Dependency Injection & Inversion of Control Presentation

July 2, 2009

Wednesday, July 15, 2009 at 6:00 PM This session will cover Dependency Injection (DI) and Inversion of Control (IoC) and their relationship to SOLID design principles, techniques, and side effects in statically typed languages. In addition, IoC containers, how they work, their usages, patterns, and role as building blocks for loosely coupled applications will be [...]

Read the full article →

Running an elevated child process

June 30, 2009

If you ever need to run a child process in an elevated state, you can easily set the Verbs property on the ProcessStartInformation to “runas” and the child process will ask for permission when started. You need to watch out the the user denying access however as a Win32Exception will be thrown with its NativeErrorCode [...]

Read the full article →

More on delay loading .Net assemblies

June 27, 2009

You can build off of the previous article and make dealing with the dual libraries much easier using an IoC container. Instead of building an interface that constantly has to check which code path to execute based on the current platform, you can load the services into an IoC container. Once you know what platform [...]

Read the full article →

Delay loading .Net assemblies

June 27, 2009

I had to figure out how to make an application run as its native type while loading only the proper dlls for that platform – when the application runs on x64, load only x64 assemblies so that the application will run fully as x64 and the same for x86. The answer is counterintuitive and not [...]

Read the full article →

Ruby First Impressions

December 28, 2008

I decided to try out Ruby today. I have wanted to try it out for quite a while. Some of my impressions may be inaccurate, but I have done what I can. I have Zero interest in DB and web ‘programming’ so I am going to skip rails and related material. Edit I intially tried [...]

Read the full article →

Continuous Build Systems

December 15, 2008

I have gone through so many tools trying to create the right build environment that it is a bit disheartening. I have set up multiple continuous integration systems and it keeps getting easier, but there is still a bit too much friction. I tried to look into using Team Foundation Server and Team Build, but [...]

Read the full article →

Ninject MessageBroker Update

November 29, 2008

It has been a long time (10 months) since I worked with the Ninject MessageBroker and a couple things have changed since my last post. In the old version you had to connect the MessageBroker as a kernel component by hand. Since then the extension environment has been flushed out a lot more. Now you [...]

Read the full article →

C++ if statement oddity

November 28, 2008

I found that you can do work such as assigning a variable and executing a method outside of the main expression of an if statement. For example: if(hRes = GetApplicationState(), NT_SUCCESS(hRes)) { // Do something }

Read the full article →

Open Source Projects

November 28, 2008

I had two open source projects: Ensurance, and IMAPI.Net. Ensurance did not really fit into any particular group. It was a tool for me while Spec# was still a research project at MS. I wanted to be able to use pre/post conditions, parameter constraints, and tie them into logging and debugging. I don’t think that [...]

Read the full article →

Yet Another Video Update (YAVU)

June 13, 2008

Here is the latest PLAYXPERT video demo. While playing the game the user: Starts playing a song. Searches the web for a video. Web browser AJAX FLASH Opens the Friends widget and initiates an IM session Continues playing the game the whole time. STAY IN GAME!

Read the full article →