RSS
 

Archive for February, 2011

GDI+ Architect is Finally Open Source!

26 Feb

I’ve been meaning to tackle this for awhile. GDI+ Architect is a designer I created for GDI+ code under the DBA name (The Modern Renaissance Group (Mrgsoft). It lets you draw objects on a canvas and generate SVG or GDI+ source code. I had moved it a while back from .NET 1.1 to 2.0, but there was a proprietary icon set which prevented me from releasing the source.  I decided to just remove the icons and keep my ugly ones I created in instead.

logoMy reason for open sourcing it is want to make sure if anyone had legacy code from the .NET 1.1 time frame that used this product, they could still get at it. While I don’t expect a lot of new development on this project, if you need help with it please contact me. It’s also interesting code you ever need to do anything with snapping, drawing, text wrapping, or anything of that sort regardless of your target platform. Even though this code is geared toward .NET GDI+, the concepts are universal. Warning though – it’s in VB.NET instead of C# as this was once my primary language.

It’s rough to look at your own code from 8 years ago. It’s missing clear separations of concerns. It’s got some “mammoth methods” that need to be torn apart and refactored. It’s littered with somewhat useless comments because I thought code wasn’t “done” until it was commented ad nauseam. Also since it’s from the 1.1 timeframe there is no use of generics, Linq, etc. In fact checking it into BitBucket today was the first time it ever saw a source control repository! My how things change.

All that aside, it shipped, was fairly bug free, and made me a decent return on investment and received positive feedback from customers.

If you are interested, you can get the source from BitBucket.

 
No Comments

Posted in Blogging

 

Where the code lives

24 Feb

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:

image

A couple note 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 sort of 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.

Project Where it Lives
Autofac GitHub
Automapper GitHub
Caliburn MIcro CodePlex
Castle GitHub
CouchDB SourceForge
CruiseControl.NET SourceForge
Farseer Physics CodePlex
Fluent NHibernate GitHub
FluentMigrator GitHub
Fubu MVC GitHub
GitSharp GitHub
JQuery GitHub
Kayak  GitHub
Knockout GitHub
Log4net Apache
Manos de Mono GitHub
Mass Transit GitHub
MongoDB GitHub
Mono GitHub
Moq Google Code
MVVM Light CodePlex
NANT SourceForge
NCQRS GitHub
NHibernate GitHub
Ninject GitHub
NSeviceBus GitHub
Nunit Launchpad
OpenRasta GitHub
Owin GitHub
Raven GitHub
RestSharp GitHub
Rhino Mock GitHub
Sparkle View Engine GitHub
SpecFlow GitHub
Spring.Net SourceForge
StructureMap GitHub
Subsonic GitHub
Voldemort GitHub
 
No Comments

Posted in Blogging

 

Comic #7

22 Feb

strip7

 
No Comments

Posted in Comics