Impressions of VS.NET 2005

As I mentioned in my "welcome to my blog" post I've been busy upgrading the software that powers this blog to .NET 2.0.  As a result of this I've had the pleasure of working in VS.NET 2005 for the past several weeks. 

Highlights:

  • Generics - I'm a big fan of generics.  I haven't completely converted the code base, ok I haven't even come close to converting the codebase to take full advantage of Generics but I'm definitely looking forward to getting rid of all the custom collections I have.  Predicates, Actions, Comparison's as well as Converter's are a "way cool" feature that I'll be looking forward to using as I continue the migration of my code to 2.0.
  • MasterPages - Overall I'm a fan of MasterPages.  They aren't that new of a concept to me since I checked out Paul Wilson's 1.1 version of MasterPages a while back.  Regardless, developing templates with MasterPages is an improvement over everything I've tried previously.
  • Intellisense in ASPX - I'm personally a fan of the code-behind model, however, the templates within this CMS have code inline so that it's easy to plug in new templates.  Since the software supports multiple websites running off a single instance of the software I wanted a way to make it relatively painless for people to create new templates.  Requiring a rebuild and re-deployment of a .dll didn't seem to fit the bill so I decided to have my templates use in-line code for binding data to the various controls.  In VS.NET 2003 I always hated updating the templates because I wasn't really sure if things were "right".  Within 2005, and the support of intellisense, the overall development experience for creating templates is much nicer.
  • Partial Classes - I haven't actually taken advantage of this feature as of yet, however, I'm looking forward to leveraging it as I continue the upgrade to .NET 2.0.  A lot of the business objects used by ActiveType (aka the software that powers this site) are generated via CodeSmith.  I've tried a couple different methods for managing these generated files such as creating a "Base" that my "real" object inherits from, however, nothing seems as clean as partial classes.  I haven't looked into the addin support for VS.NET 2005 as of yet but I'm hoping they've exposed the ability to make files dependent on one another via the DependsOn attribute in csproj files.  I'd really like my custom objects to have the generated files appear underneath them like a code behind file appears underneath it's associated aspx.  Anyone know if this is possible in VS.NET 2005?

Lowlights:
Not all of my experiences with VS.NET 2005 have been positive. 

  • SQL Server Tools - I'm not a big fan of the new SQL Server tools that we get integrated into VS.NET 2005.  The table design tools with the funky property grid at the bottom isn't as straight-forward as the tools in 2003.  I don't like the fact that the double click behaviour has been changed.  Previously double clicking opened up the table and displayed the data, now we're presented the design via a la Enterprise Manager.
  • Poor Database Project Support - For all my .NET project I have a database project that I use to manage tables, stored procedures, views, functions, and etc.  In previous versions of VS.NET I was always able to manage the scripts in an intuitive way.  I could right click on a set of objects and say "Generate Create Script...".  Each object that I had selected would have a separate create script created that would be added to my database project.  In 2005 all the database objects selected have a create script created and placed in a single file.  How am I supposed to manage individual object changes if they're all added to a single file.  As far as I can tell the only way to get the behaviour that I desire is to go to every database object individually and click "Generate Create Script...".  No thanks, how bout an option to pick how the scripts for database project are generated.  Disclaimer: I haven't really looked to deep in VS.NET 2005 to see if I have the capability to change this behaviour.  If anyone reading this knows how to change it back to the behaviour in 2003, please let me know!
  • Refactoring is Sloooooowwwww!  - I might just be spoiled by the refactoring support in ReSharper, but, the 2005 refactorings seem flat out unusable.  When I right click a method, or class to rename it I end up with a dialog window that slowly climbs from 0% to 100% as it analyses the various files in the 10+ projects I have in my solution.  I can't wait for the JetBrains guys to get a version of ReSharper EAP 2.0 out for 2005!
  • Vault Integration is Slooooowwww! - I'm not sure who to blame this one on.  In one sense I guess I should be happy that Vault "just worked" when I installed 2005, but on the other end it seems that it's slowed down dramatically.  It's to the point that I'm considering switching back to Subversion (I tried a while ago but missed the nice IDE integration).

So that's my list.  What's you're favourite new feature in VS.NET 2005?  What would you change if you were at the reigns?

# re: Impressions of VS.NET 2005

Thursday, June 09, 2005 7:08 PM by Sean Chase    
Bummer about the slow refactoring. I use JetBrains ReSharper and it is pretty nice. However, I was expecting VS2005 features to be...well...better. I'll have to see how it does when I start porting.

# re: Impressions of VS.NET 2005

Thursday, June 09, 2005 10:24 PM by Steve    
I'm a ReSharper guy myself which is why I had higher expectations. I can't wait for them to release a version of ReSharper for 2005!

# re: Impressions of VS.NET 2005

Thursday, June 23, 2005 8:58 AM by Tim Haines    
I'm a Resharper guy too. Great product. It's interesting what you say about Vault. An MVP told me yesterday that Vault with 2003 is much faster than Team System. Maybe it's not the case with 2005. You can always stick to using the Vault client rather than integration though. ??!?! :-)

# re: Impressions of VS.NET 2005

Tuesday, December 13, 2005 6:46 PM by Mike Higa    
Workaround for "Generate Create Script":

This is not a clean workaround, but it's worth the time. You can create individual object level scripts through the SQL Enterprise Manager. Just drill down and right click on the desired database. From the context menu, click on All Tasks -> Generate SQL Script...

In the Generate SQL Script dialog box, select all the objects which you wish to script. Click on the Options tab and under "Files to Generate", select the "Create one file per object radio" button.

This will generate all of the indidual files, which can be dragged and dropped into your database project.

For me, this was worth doing since I have hundreds of tables, stored procedures and views.

I hope this helps.

# re: Impressions of VS.NET 2005

Tuesday, December 13, 2005 6:56 PM by Mike Higa    
Workaround for "Generate Create Script":

This is not a clean workaround, but it's worth the time. You can create individual object level scripts through the SQL Enterprise Manager. Just drill down and right click on the desired database. From the context menu, click on All Tasks -> Generate SQL Script...

In the Generate SQL Script dialog box, select all the objects which you wish to script. Click on the Options tab and under "Files to Generate", select the "Create one file per object radio" button.

This will generate all of the indidual files, which can be dragged and dropped into your database project.

For me, this was worth doing since I have hundreds of tables, stored procedures and views.

I hope this helps.

Post a Comment

 
 
Prove you're not a spammer: 
6 + 6 =