April 2012
1 post
covariance in c#
So I’ve been messing around building a Dependency Injection container in my spare time. Mainly for my own amusement, but also to practice designing DSLs and to play with some C# 4 features like anonymous objects.
One of the first problems I came across was with requesting an interface that had been registered with a more specific generic type.
We have a representation of the registration...
February 2012
1 post
swisscom 3g dongles
Those cheeky little devils at Swisscom have found a novel way of restricting wifi sharing of their 3G dongles, resulting in the following error message when attempting to connect to a network in Windows 7:
“Your network administrator has blocked you from connecting to this network”
With a little searching I came across this solution, which allows you to fix it via an Administrators...
January 2012
1 post
.net project structure and build times part 3
(continued from Part 2)
Test 2
This was centred around the choice of disk drive. We’re building a slightly different project from before, but similar size (about 100k LOC) and structure (about 55 projects). This main difference this time was that MsBuild was being executed with the following property:
OutDir=c:\A\Single\Output\Directory
So we are cutting out a LOT of I/O. Every...
December 2011
3 posts
.net project structure and build time statistics...
(Continued from Part 1)
So, nothing like some hard figures to help sharpen the mind…
Test 1
This test was centred around project structure… that is, the number of csproj’s and the type of references each held to each other.
Our test machine was an i7 with 8 gigs of RAM and a 7200pm HDD, each run was held after a fresh reboot, no other programs running (save a terminal...
.net project structure and build time statistics...
So, my current role has us dealing with a build, deployment and integration test cycle of about 2 hours. Given the 50-odd developers spread across 6-7 teams, this is not a particularly nice situation. Apart from it being a PITA, a feedback loop of this length results in plenty of negative consequences, a selection of which include:
feature branching (esp to mitigate cross team dependencies during...
portable .net development
I’ve had to setup my dev environment on a few different machines recently. Quite a simple, but repetitive exercise, so I decided to see if I could make it completely portable. The TL;DR of it is that you can’t completely - but you can to a certain extent.
Here’s what I’ve managed to do so far:
a) File sync
I’m using SpiderOak currently. DropBox only lets you...
November 2011
4 posts
sonar for c# on windows
Sonar is a shiny dashboard for code quality that provides an integration point for various quality frameworks (FxCop, StyleCop, NCover, Gallio, Gendarme etc). Unfortunately (like most awesome tools), its native to the JVM but there are actively maintained plugins for .NET.
So here’s a quick rundown for how I got it running on my local machine:
Install Sonar...
less common git techniques
I’ve had to solve some interesting problems over the last few weeks, and although it doesn’t really surprise me, git has come to the rescue in every single case.
Merging two git repositories
Say you were working on a spike of some independent code in its’ own repo, and you’ve decided you want to merge it into your main repository. Easy:
...
git on windows
Some little gems from my .gitconfig…
p4merge with git
[diff]
tool = p4merge
guitool = p4merge
[difftool "p4merge"]
path = C:/Program Files/Perforce/p4merge.exe
cmd = \"C:/Program Files/Perforce/p4merge.exe\" \"$LOCAL\" \"$REMOTE\"
[merge]
summary = true
tool = p4merge
[mergetool "p4merge"]
path = C:/Program Files/Perforce/p4merge.exe
keepBackup = false
cmd = \"c:/Program...
coming soon...