Tech Blog

Jay's Technical blog

Review: pdDataWatch

26 April 2005
Jay Kimble

[WARNING! This is an archived post and as such there may be things broken/missing here.. you have been warned.]

I love addins!  I can't help it... I just love seeing my Visual Studio get more powerful doing more for me.  pdDataWatch is a tool that I've needed for awhile.  It's an addin that lets me view the data in datasets/datareaders at debug time.

So enough copywriting (somehow I got in that mode.. sorry).  Is it cool or what?  Yeah, I think it's cool.  Is it a must have?  I dunno it depends.  It definitely makes life easier when you are trying to track down a data issue.  BTW, it's more than just an addin; In standalone mode, you can connect it to any datasource and run sql against the data that is returned.  It definitely gets a thumbs up as a product.

Documentation
I had no problems getting the product up and running.  I did have to view a few minutes of their tutorial to figure it out.  When I do this part of the review I try to get up and running as fast as I can.  I was up and running fairly quickly with this product.  So thumbs up.

Install
Install was seamless.  No glitches.  Nothing is squawking at me when I launch Visual Studio. It gets an easy thumbs up.

Functionality
Functionality is way cool when you think about it.  I know I can't possibly be the only person perplexed with a problem only to realize that the issue was bad data.  This makes it easy to view the data.  The standalone mode is cool (but I haven't found it compelling).  It is a natural addition to the main product and it does support any datasource.  Overall Thumbs up.

BTW, the price is right.  You can get it over at Xtras.Net for$98.

[sorry that most of my reviews are thumbs up.  When I find a bad product, I never really want to review it unless I'm doing a public service].


TechEd Sold out??

21 April 2005
Jay Kimble

[WARNING! This is an archived post and as such there may be things broken/missing here.. you have been warned.]I guess I might not be at TechEd.  Chris Wallace reports that it is sold out.  This really sucks!  I wasted a little time on this but it has taken my employer even longer... I have yet to get a confirmation from my employer (it wasn't a done deal as of yesterday... so you can bet it's not done today).  With everything else going on with my employer right now, I think I really need to work more on my exit plan ... <sigh>

VB.Net 2005 gets refactoring...

21 April 2005
Jay Kimble

[WARNING! This is an archived post and as such there may be things broken/missing here.. you have been warned.]Hurrray!  VB'ers get Refactoring in Vs 2005!  It's the community edition of Refactor! (which appears to have a better feature set than C# refactoring that will be built-in). Download is here.   My understanding is that Microsoft heard our cries, and made arrangements with Developer Express!
[Via Duncan Mackenzie's Blog which points to Cory Smith's blog.]
BTW, I'm actually excited about VB.Net 2005 again (sort of). Now if we could only turn off Default instances...
[Sorry so short, but this news has to get out!]

I don't always do this.. but what does the Dev Theologian speak?

18 April 2005
Jay Kimble

[WARNING! This is an archived post and as such there may be things broken/missing here.. you have been warned.]I'm all confused... can ya tell?

Your Linguistic Profile:

70% General American English
10% Midwestern
10% Upper Midwestern
5% Dixie
5% Yankee

Adventures in C#: Why the 'optional' keyword is evil...

18 April 2005
Jay Kimble

[WARNING! This is an archived post and as such there may be things broken/missing here.. you have been warned.][I've begun to do a few more C# projects and so I bought a couple books on the subject.  I'm going to start writing down a few observations along the way].

About a year ago I had someone tell me that the optional keyword in VB (used to define optional parameters) is something that really shouldn't be used.  The advice I got was "don't use it!"  I hate advice like this, because I don't really learn anything... it always begs the question "why?"  When there is no answer to the "why?' I figure that either: 1) there is a reason, but the person doesn't know it, or 2) the person is blowing smoke and wants to act like they know all.

After a year and a half, I now know that the answer is that you shouldn't use optional.  So here's some code (since I'm usually prone to not showing any):

' VB.Net
' Code that implements an optional method
Public Class MyClass
     Public Shared Sub MyMethod(ByVal x as String, Optional y as Integer = -1)
          ' Do something with the data
     End Sub
End Class

Public Class SomeOtherClass
     Public Shared Sub CallCode()
          MyClass.MyMethod("Some String value") ' y is optional so we don't need it
     End Sub
End Class

All that is fine and dandy if you are using only VB.Net.  C# forces you to pass all parameters (whether they are optional or not).  Interestingly enough, there is an optional attribute [it looks like this in C#: "[optional]" ;-) ] that will make a parameter optional for VB.Net when VB is calling C# assemblies, but C# calling the method will still need to pass all parameters (regardless of whether it was created in VB or C#).

I was wrong in what I thought was going on behind the scenes... I guess they (the MS compiler guys) are accounting for some old school VB methods (compatibility).  Anyway, what I thought was going on behind the scenes appears to be the correct way if you want to work in both languages.  It uses overloaded methods (same function name different parameters -- number and type).  Here's the example again using overloaded methods:

' VB.Net
' Code that implements overloaded methods
Public Class MyClass
     Public Shared Sub MyMethod(ByVal x as String) ' implements the Optional y param with a default of -1
         MyMethod(x, -1)
     End Sub

     Public Shared Sub MyMethod(ByVal x as String, y as Integer)

          ' Do something with the data
     End Sub
  
End Class

Public Class SomeOtherClass
     Public Shared Sub CallCode()
          MyClass.MyMethod("Some String value") ' y is now truly optional and the method is callable from C#
     End Sub
End Class

[Wow, I did the post mentioned Adventures in C#, but there's no C# code... the rebel in me is satisfied... Now as long as someone doesn't find and error -- I didn't run this through VS.Net before posting... BTW, Sahil, I managed to use somewhat good form in my code... OK, my param names suck, but beyond that what do ya think?]