A Few of My Favorite Things...in Visual Studio 2010

Since my last post I've switched from Visual Studio 2008/.Net 3.5 to VS 2010/.Net 4.0 for most of my day-to-day work.  I haven't had time to explore them thoroughly, but there are a couple of things that I really like.

The first is that optional parameters have been added to C#.  There haven't been many concepts that I've missed in the move from C++ to C# but optional parameters was one of them.  No longer do I have to have to write a series of functions to supply default parameters like this:

 public void foo(){    foo(false);}public void foo(boolean onOffSwitch){    ...}

I can now achieve the same result like this:

 public void foo(boolean onOffSwitch = false){    ...}

The second is the historical debugger.  This feature allows you to step back through the events that have occurred in your application to find the context for a failure.  There is an episode of the 10-4 show on Channel 9 gives a nice, concise explanation of how to use the feature, so I won't go into details.

A third feature that I find useful is the ability to generate a database from an entity model.  I find it much easier to think about the data I need to manipulate as business objects rather than data tables, particularly when I need to model many-to-many relationships.  With this feature, I create a new ADO.NET Entity Data Model, design the entities that I need conceptually, and Visual Studio will generate the DDL for creating the database.  Now, I'm not a database analyst by profession, so I can't speak to the quality of the generated database; however, for the type of databases I usually need, it works great.  Take a look at the Model-First Development with the Entity Framework 4.0 episode of 10-4 on Channel9 or Julie Lerman's tutorial on MSDN.

If you've found features that you like (or don't) in VS 2010, leave a comment to let me know what they are.

CheersDan

DISCLAIMER: The information in this weblog is provided "AS IS" with no warranties, and confers no rights. This weblog does not represent the thoughts, intentions, plans or strategies of my employer.