Don't return Action Result (if you can help it)

A while ago I was looking into dynamic languages (in particular Iron Python) and an idea presented in a talk stuck with me. I wish I could remember who it was to credit them. In essence it was that in dynamic languages unit tests verify what the compiler can’t enforce and that we can think of the compiler as simply another unit test in the system. This was obviously framed in a way that meant that the type safety wasn’t necessary but lets approach it from a different direction.

Refactor your CSS with dot LESS

We all try and maintain clean code, removing redundant and repetitive code, sometimes we even try it with our HTML (I often think of User Controls as Extract Method for ASP.NET) but one area that constantly lets us down is CSS. There’s a lot of repetition of constant values, its hard to structure a file well and given the very simple nature of it can be awkward to develop good conventions.

Rebuilding Compiled Experience: Introduction

It’s been a long time since my last post and for that I apologise, my work and personal lives got the better of me. I find I’m a more regular post when I have a series of posts in mind and a clear direction for my writing so I’ll be trying to do more of that.

Silverlight 4 and Behaviors

I was pleasantly surprised to see in the Silverlight 4 feature list that it will be possibly to setup Bindings on DependencyObjects (as opposed to FrameworkElements) in the same way you can with WPF. This greatly affects in my opinion the benefits of Blend Triggers, Actions and Behaviors, being able to bind them to other elements or a ViewModel (if using the MVVM pattern) lets you set up some really cool stuff.

ASP.NET MVC: A Framework done right

Lately I’ve been doing a lot of miscellaneous work in ASP.NET MVC, Silverlight and WPF and some of the differences in approach by their respective development teams is infuriating. The MVC libraries have some of the best examples of how to build a solid library while still allowing developers to override granular pieces of behavior. The amount of extensiblity currently available is amazing (with more coming for validation in the next release).