Monthly Archives: July 2012

Writing the first test for a Real System

So, you've read a book on TDD, a couple of blog posts from the gurus, and maybe even done the Calculator Kata several times. Now it's time to apply your knowledge to a Real Life Project that you are starting today. You probably stare at the empty solution and try to figure out where to start. "Create an instance of the System Under Test".. which system? "Mock or stub the dependencies".. which dependencies?

Sounds familiar?

Let me give you a hand

Right now I'm also...Read more..

Ripple, the utility that saves you from your personal NuGet hell

Managing your dependencies with NuGet can be just fine.

Unless you want some of these be compiled locally.

For example, imagine that you have a complicated dependency graph, and you've just modified a source of one of the assemblies. Or you just want the freshest bits from the source control. Now you want to use the local version in your project, since you don't want to wait till your modification is accepted and released as a NuGet package. At the same time, you want to us...Read more..

Getting started with Jasmine tests in FubuMVC applications

 

Jasmine is one of the most popular BDD-style Javascript testing frameworks. I decided to use it for my new project, Chpokk, built on top of FubuMVC. Here are the steps that I made, together with some for-dummies explanations.

Adding Jasmine to your project

is as easy as adding the FubuMVC.TestRun...Read more..

Custom Asp.Net Model Binders series, part 3: Subclassing your models

This is the third part in the series about custom Asp.Net MVC Model Binders and Value Providers. Part 1 is about two ways of using DateTime.Now as an Action Method parameter for better testability, and Part 2 is about building a Value Provider for the Http Header values. Read on.Read more..

A useless custom Asp.Net value provider (or maybe not that useless after all)

So, following my previous post on implementing a custom Asp.Net Value Provider, here is another one.

Request Header Value Provider

Here is a totally useless requirement: add a Value Provider that would let you use your request headers in your actions without calling HttpContext.Current.Request (or something equally unacceptable). This is actually absurdly simple, because we alread...Read more..

Custom Asp.Net Model Binders series, part 1: Now How

Recently I started a challenge on LinkedIn: let's write blog posts about custom model binders, view results, and other extensible stuff in Asp.Net MVC; let's do it one post a day for a week and see what happens. Presumably, it should benefit everybody, especially Asp.Net MVC newcomers.

Well, I'm two days late already, and I don't feel like doing a big post today, so today's a really simple...Read more..

Fighting AppDomainUnloadedException and the PrivateBinPath problem

Today I'm fighting with two very annoying bugs in Ivonna.

The first one is, when you debug your tests, sometimes you get the AppDomainUnloaded exception ("Attempted to access an unloaded AppDomain"). That one has been annoying me for some time, so I decided to fix it. I have opened the thread list, found the thread that contained a call to AppDomain.Unload, switched to it, and checked the HttpRuntime instance. The _shutDownMessage field told me: "Change Notification for critical di...Read more..

Creating a custom Visual Studio project template for Ivonna

Yesterday I spent the whole day improving the project template for Ivonna, so I thought I might make this world a better place by sharing the details (and some code, too). The main idea is that, in order to make the template smarter than just being able to do some search/replace for you, you should go down the path of Visual Studio extensibility (and return alive). Other than that, you have to put your code in an assembly and throw it into the GAC,  then reference it in the vstemp...Read more..

More secret plans revealed

I've received some shocking news from one of our brave spies in Ivonna Labs.

Yes I know it's a lame joke. But I'll pretend my backspace key is broken, and leave it here.

Anyway, now that you're entertained a little, I'm providing some boring info. The MVC bits in the new Ivonna version will come as a separate assembly.

Actually, three of them. The reason is sim...Read more..

Breaking changes in Ivonna v.3

I've just pushed the 2.1.8 release ready for download.

What a great day!

I hope you're having a good day too, and I don't want you to get any nasty surprises for this release. So, with (fake) regret I must tell you that this release has, as predicted, a couple of breaking changes:

Latest news

Latest blog posts

Powered by FeedBurner