June 4, 2008
@ 11:42 PM

It's incredible how fast things can change if you turn off your developer technology radar for a few months.  I was pretty comfortable with my knowledge of what was out there around fall of '07.  I'd explored pretty much all the different tools and technologies that had tickled my fancy and even though I wasn't an expert in all of them, I knew that I could pick any one of them up pretty quickly if need be.  So down went my radar for awhile.

Holy cow.

Apparently not everyone has been as idle as I have been.  Here is a list that I compiled in a single afternoon of some things (I'm sure there are plenty more) that I'd like to try out in the not-too-distant-future to see if they can assist me in my daily chores.  What follows is not anything near a full review (basically I've pretty much only heard of them at this point), so my descriptions of what they are may be WAY off:

Gallio Unit testing framework agnostic unit test runner
Git Successor to Subversion???
Team City Continuous Integration competitor to CruiseControl.Net from the makers of ReSharper.  And, yes, it's free.
XUnit The "opinionated" unit testing framework
Pex Continuous testing
Spec# C# with built-in specifications - gives the user of a framework a better idea about how a class/method will behave.
ASP.NET 3.5 Dynamic Data Automatic CRUD that may actually work beyond simple scenarios

How about you?  What kind of technologies have you excited right now?


 
February 20, 2008
@ 02:41 PM

I'm not dissing MS Unity, Microsoft's new IoC Container - I'm really going to give it a chance.  Rather, I'm talking about the reaction to it on the Yahoo! [altdotnet] group.

I have just spent most of the morning following a thread on the [altdotnet] mailing list titled "Unity" Ioc from Microsoft has been released in CTP...  And it has.  But in retrospect, based on the thread, "Unity" was a very ironic name choice for the tool.  This is a very long thread that is involving dozens of folks.  It started off by comparing the functionality in Unity to functionality in other IoC containers, mostly Castle Windsor & StructureMap.  The Spring.NET crowd has been strangely silent.

Later in the thread, however, the "altdotnet"ness of the list has begun to show its colors. Passions have arisen and tempered.  Staunch defenders of each "side" (and there are more than two sides to this polygon) have held their ground while alternately being gracious one minute and on-the-attack the next.  It's the ultimate Reality TV... except that it's not TV, of course.

I've wasted too much time trying to follow this thread and I declare that I am DONE with it.  Not that the task wasn't worth it.  I've learned a lot about IoC that I hadn't know before.  I'm familiar with Windsor, and I've downloaded Unity and played around with it as well.  The really great gem that I have just discovered is StructureMap.  I just love the "fluent interface" it has - much like is available in Rhino.Mocks.  Fun, geeky stuff.

I thought it would be a useful exercise to compare "Hello, World!" scenarios between the big-four (and, yes, I'm including Unity as part of that):

Function Castle Windsor StructureMap Unity Spring.NET

Putting an interface and concrete type into the IoC container

WindsorContainer. AddComponent() StructureMapConfiguration. BuildInstancesOf(). TheDefaultIsConcreteType() UnityContainer. Register() N/A - Spring doesn't support XMLless config (that I could find).  Those Java guys just have a love affair with XML, I guess
Getting a concrete type for a given interface Resolve() ObjectFactory. GetInstance() UnityContainer. Get()
Default items are Singleton separate instance separate instances

The fluent-interface of StructureMap is so nice.  Yes, it's longer to type, but hey, that's what IntelliSense is fore, and that will make it easier for new developers to discover.

Incidentally, Unity looks an awful lot like Windsor in its syntax, and it was mentioned in the aforementioned thread that the PM on the Unity project is a big Windsor fan.

Apology: I just couldn't resist the lolcats thing, it was just too apropos.  This is my one (1), lifetime, self-imposed limit.


 
March 4, 2007
@ 04:00 PM

NUnit is my unit testing tool of choice. I remember a few years ago when I was trying to figure out all of this automated unit testing stuff and the problems I had learning without someone to show me how. I hope that this screencast can make the introduction to automated unit testing a little simpler and make testing in particular more prevalent with those who view it.

NUnit Basics


 
February 24, 2007
@ 09:36 AM

Disappointment

The deeper I delve into the Express versions of Visual Studio the more disappointed I become.  I realize they were "hook-ware", and I was ready to do without the frills, but apparently they considered Add-Ins frills, which I can't imagine living without.  I can't use TestDriven.NET (there's a story there, too).  I can't use ReSharper, I know it's not free, but you could remove it before leaving it with the client.  I can't use AnkhSVN - the list goes on and on.  So now I needed to look at alternative IDE's and just maybe I've found something better.

Redemption - SharpDevelop

Why have I never heard of SharpDevelop before?  I'm sure it can't approach VS 2005 Team Suite, but how could it, weighing in at a mere 8.5 MB.  I still have a lot of evaluating to do, but the apparent functionality is pretty impressive.  It looks and acts a lot like VS 2005, so the learning curve shouldn't be too steep.  Here's what I see in version 2.1 Beta 3:
  • Code Completion
  • Forms Designer
  • Code AutoInsert
  • Code Conversion from C# to VB.NET & vice-versa
  • Built in NUnit support
  • Assembly Analyzer (like FxCop)
  • VS.NET Solution Import/Export
  • XML Documentation Preview
  • C# support
  • VB.NET support
  • ASP.NET support
  • .NET 3.0 support
  • very simple refactoring (Rename - but the one that is most used)
  • NCover support
  • Subversion support
  • Debugging
  • Add-in support (most likely only for Sharp-Develop add-ins, not VS2005 add-ins)
  • Database support through a "server explorer" and database explorer
  • Built-in XSL-T functionality
  • NAnt support

Wow!  SharpDevelop, where have you been all my life?


 

It is true – there is no free lunch, especially when it comes to Microsoft software development, but we are going to try to come as close as possible.

Why? Because we want to be able to pick up a "kit" for development when a project begins, do the job, and leave it at the client after we have completed the project for their own use – all without violating any license agreements. The only thing that must be done at the end is to "switch out" your XP volume license number for the client's. This can be done with a simple sysprep utility that is part of the Windows Support Tools.

So what will it cost to have a fully functional Microsoft development environment? How about free? That is unless your customer does not already have a Windows XP volume license. Then it's about $200. That's right. The only non-free software is the operating system. Everything else is freely downloadable. So what do you get for the price of an aging OS?

Component Product License Type Link to download
Virtualization

VMware Workstation 6 Beta 3
(Can be converted to other free versions of VMware)

EMC free software license http://www.vmware.com/download/server/
Operating System Windows XP Professional SP2 Responsibility of Customer  
Development Environment

Visual Web Developer 2005

Visual C# 2005 Express
(or Visual Basic .NET 2005 Express)

Microsoft free software license http://msdn.microsoft.com/vstudio/express/
Database SQL Server 2005 Express Microsoft free software license http://msdn.microsoft.com/vstudio/express/
Source Control Subversion Apache http://subversion.tigris.org/project_packages.html
Source Control Client TortoiseSVN GNU General Public License (GPL) http://tortoisesvn.net/downloads
Unit Testing NUnit zlib/libpng License http://www.nunit.org/index.php?p=download
Code Coverage NCover GNU General Public License (GPL) http://ncover.org/SITE/files/default.aspx
Automated Build NAnt GNU General Public License (GPL) http://nant.sourceforge.net/
Continuous Integration CruiseControl.NET Apache & BSD http://tinyurl.com/3jepz
Automated User Acceptance Testing FitNesse.NET GNU General Public License (GPL) http://fitnesse.org/FitNesse.DotNet
Web Testing – IDE Selenium IDE Apache

http://www.openqa.org/selenium-ide/
Requires Firefox –
http://www.mozilla.com/en-US/firefox/

Web Testing Automation Selenium RC Apache http://www.openqa.org/selenium-rc/

Microsoft Gotcha:
Anything that is an "add-in" to VS2005 will not work with the Express versions, so some of my favorite productivity enhancers are not in the equation, free or otherwise. The jump in price for adding Visual Studio 2005 would be about $275.