Where The Code Lives

Where The Code Lives

Since the ALT.NET movement a couple years ago, Microsoft developers have, to varying degrees, embraced open source technology. Many of us can’t imagine planning a project or designing an architecture without leveraging at least some open source tools. What surprised me is where the source for these tools live.

Here’s the skinny:

Where the code lives

A couple notes on my data.

First, there are excellent open source project from Microsoft including Unity, MEF, the Silverlight toolkit, and more hosted on CodePlex, but I have excluded these since they are not community open source projects.

Second, some of these projects are not on created on the .NET stack but I believe they are still relevant to .NET developers so I have included them. Other projects I have left off because they are not relevant to developers, rather consumers.

Finally, this is my subjective list of projects. I’m sure I forgot some.

Based on this data, it’s GitHub by a landslide. The truth is almost every important C# based open source project lives there. And amazingly, Git is only partially supported on Windows using Cygwin. What’s going on?

It turns out that GitHub has turned open source collaboration into a social experience. Contributors can gain status and recognition for participating in GitHub. Projects rank against each other in a fun, competitive manner. It’s easy to search projects by language and to collaborate. In other words, GitHub really is “cool”.

GitHub also revolves around Git which is distributed version control. For SVN or TFS users, this is a completely new and liberating experience. I recently worked on an SVN project where certain folders were only committable by one individual, effectively stopping collaboration. Nothing like this happens with a Git based project. You are encouraged to fork and you can always commit against your own repository,

If you haven’t used Git, there are some good resource to help you get started. I think the best is Rob Conery’s series on TekPub called Mastering Git. It’s not free, but it’s really good and it shows using Git from windows.

Last May my friend Shawn Weisfeld recorded a quality presentation by David O’Hara presenting at the North Dallas .NET User Group on Git. You can see that presentation here.

For me, I think Mercurial is the better distributed version control system for Windows users. It doesn’t require Cygwin and there is a nice Tortoise and command line client. You can also play nice with GitHub using this plugin.

My data set below:

ProjectWhere it Lives
AutofacGitHub
AutomapperGitHub
Caliburn MIcroCodePlex
CastleGitHub
CouchDBSourceForge
CruiseControl.NETSourceForge
Farseer PhysicsCodePlex
Fluent NHibernateGitHub
FluentMigratorGitHub
Fubu MVCGitHub
GitSharpGitHub
JQueryGitHub
KayakGitHub
KnockoutGitHub
Log4netApache
Manos de MonoGitHub
Mass TransitGitHub
MongoDBGitHub
MonoGitHub
MoqGoogle Code
MVVM LightCodePlex
NANTSourceForge
NCQRSGitHub
NHibernateGitHub
NinjectGitHub
NSeviceBusGitHub
NunitLaunchpad
OpenRastaGitHub
OwinGitHub
RavenGitHub
RestSharpGitHub
Rhino MockGitHub
Sparkle View EngineGitHub
SpecFlowGitHub
Spring.NetSourceForge
StructureMapGitHub
SubsonicGitHub
VoldemortGitHub