16 January 2013

.NET Mocking Framework Survey Results

Two weeks ago, I posted a survey (using Excel Surveys available in SkyDrive) asking you what your preferred/primary .NET mocking framework was. We plan to use this data to help drive out which frameworks we want to evaluate further.

The survey closed yesterday and, out of 147 responses, here is how everything shook out:



147 responses may not seem like a lot and, in the grand scheme of all .NET developers across the world, it’s not.  There are several ways you can look at this number:  Out of everyone that viewed the survey request, the majority of them didn’t want to take the time to give their input; they don’t use .NET-based technologies and/or mocking frameworks; I just didn’t reach a wide enough audience and/or provide enough time to get the word out about the survey; or there was some other reason they didn’t bother with the survey that I’m just not thinking of at the moment.

In regards to this penultimate point above, here was my general approach for getting the survey link out:

  • Posted to my blog – just over 225 page views (as of a few moments ago) – not a huge number by any stretch
  • Posted to my twitter feed – roughly 250 followers – again, not a huge number. This one is a little harder to judge because I don’t know how many times it was re-tweeted, copied and tweeted, etc.
  • Posted to Google+ – don’t know the impact – likely very, very small
  • Posted on my LinkedIn timeline – 279 connections
  • Posted on two separate LinkedIn groups: .NET Developers & .NET Professional with .NET Developers having a membership of about 148,000
  • Various e-mail distribution lists – not sure of the count

Click here to view the full survey results.

[Updated: Fixed broken survey link]

14 January 2013

Omaha ALM User Group–Inaugural Meeting

The Omaha ALM User Group, formerly known as the Omaha Team System User Group, is having its inaugural meeting tomorrow night, Tuesday, January 15th, 2013.  The Omaha ALM User Group is a technology agnostic group focused on utilizing tools and automation to support the people and processes across the complete application lifecycle.  The group is co-lead by Jeff Bramwell and Mike Douglas.

Our first talk is Creating a deployment framework with TFS and custom PowerShell Cmdlets by Andy Bayer:

As testing and release cycles continue to shorten for developers, automating application deployments becomes almost a necessity.  TFS and WebDeploy provide some very powerful tools to simplify application deployments, but have limits to what can be done.  An excellent way to extend the out-of-the-box deployment tools is with PowerShell, but that can carry a learning curve and become a maintenance headache very quickly.  Enter custom PowerShell Cmdlets - a way to hide all of that 'evil' PowerShell scripting and deployment logic from view, and at the same time, provide one location to maintain for any number of deployments.  If done correctly, this can result in a fairly simple, yet very extensible deployment framework for any organization.

If you would like to join us as we kick off our first session then bounce on over and RSVP.  This meeting is being hosted and sponsored by Farm Credit Services of America and is located at:

4979 South 118th St.
Omaha, NE 68137

You can enter at the north building on the west side.  The meeting will begin at 6:00pm with the food (pizza :-) arriving around 5:45pm.

For more information:

We look forward to seeing you there!

02 January 2013

Which .NET Mocking Framework Do You Prefer?

We are preparing to evaluate mocking frameworks that support .NET to determine if our current mocking framework is still the best solution for us.  Before we actually start the evaluation, we’d like to get a general idea of which .NET mocking frameworks are popular amongst developers out in the rest of the world.

To aid in this endeavor, we have created a simple survey with two questions (or three, depending on how you answer the first question).  Essentially, the survey asks which of the following .NET mocking frameworks is your primary (or preferred) framework.  The list of frameworks is comprised of the following:

  • EasyMock.NET
  • FakeItEasy
  • JustMock (Telerik)
  • Microsoft Fakes
  • Moq
  • NMock2
  • NMock3
  • NSubstitute
  • Rhino Mocks
  • Simple.Mocking
  • Typemock
  • Other (list in comments)

If you select “Other” then the second question is there to list the name.  The third and final question is simply for any general comments you’d like to make.

We plan to keep the survey open until Tuesday, January 15th.  Once the survey has closed, I will post the results back to this blog.  So, please help us determine what the preferred mocking frameworks are that are in use today.  The survey should (literally) take less than 30 seconds.  Your contribution will be greatly appreciated!

This Survey is Now Closed.  Click Here to view the final results.

Also, please take a moment and pass the word by tweeting, blogging, etc. the above survey link (or the link to this post).  The more responses we get, the better.

01 January 2013

A Backup Strategy

Anyone using computers for any amount of time knows that backups are a must.  We’ve all heard or read that it’s not if your hard drive fails but rather when your hard drive fails you’ll wish you had backed up your files.  However, history has taught me that it’s not always a failed hard drive that makes me run to my backups but the more likely catalyst is my own actions.  For example, have you ever re-imaged a computer, thinking you’ve backed up everything you considered important, only to realize five minutes after installing the operating system that you forgot to include something really important in the backup set?  I have! :-)

So, with the new year starting, now is a great time to think about a backup strategy.  Even if you have a backup strategy, it’s still a good idea to review your backup process to ensure everything that needs backing up is actually getting backed up.

If you have ever researched backup strategies it’s no doubt that you have heard of the “backup rule of three” also known as the “backup 3-2-1” rule.  I have no idea how long this rule has been around as I can’t seem to locate the origin.  It essentially states the following when creating data backups:

3. Keep three copies of everything you intend on backing up.
2. Maintain your backups in at least two different formats (e.g. hard drive and memory stick, cloud storage and DVD, etc.).
1. Ensure at least one copy is kept off-site (e.g. in case of a disaster such as a flood or fire).

Based on these rules I have made use of the following technologies to satisfy my backup needs:

  1. SkyDrive – If you are not familiar with Microsoft’s SkyDrive service, you should definitely check it out.  You are provided with 7 GB of on-line storage space for free – 25 GB if you happened to get in on an upgrade deal that was offered a few months back (plus another 100 GB if you happened to attend this year’s //Build/ conference).  SkyDrive also comes with free use of Microsoft’s web-based Office products including Word, PowerPoint, OneNote, Excel, and Excel Surveys.  If 7 or 25 GB is not enough space, you can pay to upgrade your space.  There are also mobile clients available for Windows Phone, iPhone/iPad, and Android-based devices.  For more information regarding SkyDrive and its features, click here.

    In my case, I use SkyDrive to store my various documents including Word and PowerPoint files, all my photos and music, and miscellaneous other files.  Pretty much anything that I would like to have easy access to from any device I may be using.  I do not store my videos on SkyDrive, however, due to their large size.

  2. Windows 8 Storage Spaces – Used in conjunction with a local machine running Windows 8 Pro (the only “tower” PC on my home network), Storage Spaces provides added protection through mirroring or parity.  In my case, I have three physical hard drives tied together via Storage Spaces using parity (~RAID 5).  If any of the three drives fail, I can replace the malfunctioning drive and the missing data will be restored automatically.  Also, if I need to add more storage to my server, I can simply install a new hard drive and add it to the Storage Spaces pool.

    This server is used as a central location for all backups on my home network as well as the primary storage location for all photos, music, and videos.

  3. Carbonite – Similar to SkyDrive, Carbonite offers cloud-based storage.  However, Carbonite is designed and built from the ground up for backup purposes.  Carbonite’s pricing plans are very attractive as well, starting at only $59/year for unlimited storage space (for one PC).  One of the best features of Carbonite is its simplicity.  For the most part, you simply install it, sign in to Carbonite, and forget it.  However, by default, video files are not backed up (note that videos are automatically backed up with the Home Premier service).  However, it’s a simple matter of right-clicking the video files and telling Carbonite to back them up.

    I use Carbonite to backup my Windows 8 Pro machine – which contains all the documents and files that I care about.  Depending on how many files you have to backup, it can literally take days (weeks?) to perform the initial backup.  However, once the initial backup has been completed, new files or modifications to existing files are backed up quickly.  In the case you ever need to restore lost or damaged files the restore process can also take an extended amount of time based upon the overall size of data that needs to be restored.  If you anticipate the need to restore large amounts of data, Carbonite offers a courier service as part of their Home Premier plan in which case they will mail you a copy of your data on physical media.

The following diagram provides a general overview of how the above technologies are tied together:


With all that said, does my approach satisfy the “Backup 3-2-1” rule?  Let’s see…

3. Keep three copies of everything you intend on backing up.  Yes.  I have copies on my local file server, in SkyDrive (with the exception of videos), and within Carbonite.  I suppose I’m skimping a little bit here with videos but I am also banking on Carbonite to take reasonable steps to ensure they don’t lose my backups on their end.
2. Maintain your backups in at least two different formats (e.g. hard drive and memory stick, cloud storage and DVD, etc.).  Yes.  I have backups on local hard drives as well as two separate cloud services.
1. Ensure at least one copy is kept off-site (e.g. in case of a disaster such as a flood or fire).  Yes.  I am utilizing two separate cloud services.

So far this backup approach is working for me.  Although I believe it is a good approach it is by no means the only approach or even necessarily the best approach.  As with most processes out there, use what works for you and throw the rest out :-)  If nothing else, hopefully this post will at least get you thinking about backups and implementing a solution before you actually need it.

What backup strategy are you using?  If you have some great ideas, please let us know in the comments below.