Ken Robertson's Blog

Ramblings of a .NET developer
Yet another odd .NET 1.1 and .NET 2.0 quirk

Tonight, we discovered a slight issue when using FeedBurner's click tracking along with Community Server v2.1.  After digging into it, I quickly saw the issue, but then as I went a little deeper, realized it was more deceiving than I'd thought.

There seems to be a slight difference in the Uri class between .NET v1.1 and .NET v2.0.  One new property in 2.0 is the "OriginalString", which gives you the original value that was used to construct the Uri.

FeedBurner's click tracking works by using URLs like this:

The part that gets screwed up is the "%3A%2F%2F", which when url decoded is "://".  In .NET 2.0, the Uri class will collapse this to ":/", which is not the valid url.

To illustrate the issue with a simple, three line code sample, open up both Visual Studio 2003 and Visual Studio 2005, create a console application in both, and paste the following code.  Set breakpoint, and you'll see the difference:

      string orig = @"";
      Uri uri = new Uri(orig);
      string back = uri.ToString();


When you run this code, you'll find the the value of back is as follows:

.NET 1.1 = ""

.NET 2.0 = ""

One of these is not like the other.  So, is this expected behavior?  Common sense tells me no, which leads me to think this is a bug in the .NET 2.0 framework.

So basically, as the code is now, it'll work under ASP.NET v1.1, but not ASP.NET 2.0.  The fix for ASP.NET 2.0 uses a property that isn't in ASP.NET 1.1, the code isn't providerized, and using reflection to handle it could break medium trust compatibility.  Ahh, the joys of version incompatibilities.

Cross-posted from
Tablet PC + 12.1" + SXGA+ (like Toshiba M200)

Anyone have the Toshiba M200 tablet or one like it with a 12.1" screen and SXGA+ resolution?  Trying to decide whether or not it would be too small of a screen.  I want to have at least SXGA+ resolution, and would like to get a tablet, but 12.1" seems a little small.

I am mainly looking at getting the Toshiba M400 one the SXGA+ option is available again, but the M200 is about the same size and only came in SXGA+.

Any feedback?  Too small?  Look ok?  Would definitely be doing a lot of development on it, so feedback on how Visual Studio is on it would be great.

Recommendations for MCAD certification

I'm starting to look into getting my MCAD this year, but don't really know which programs are the best.  For starters, I am still torn between doing like a week long seminar and doing it at home at my own pace.  The seminars cost more and would require more time off work, however it is gets it all taken care of.  While the study-at-home programs code less and I could do them in my free time, they also take a lot longer.  I have looked around some and there are dozens of different training courses and at-home study guide, and all of them say they are the best.

So if you have any recommendations for training programs that offer courses in or around Sacramento, CA or the Bay Area, please let me know.  Also, if you know of any good at-home study programs, then please let me know about those as well.

Finally, anyone know when the programs will be updated for .NET 2.0?  I have heard “early 2006,” but that is kind of general.  I will probably wait and take the certification for 2.0, since it would be more relevant moving ahead.

Posted: Jan 11 2006, 09:09 AM by qgyen | with 9 comment(s)
Filed under:
Media Center getting a little confused?

Windows Media Center seems to get a little confused about what it has scheduled to be recorded sometimes.  Take for instance this little snapshot from tonight.  Not at the top that it is setup to record every time "Law & Order" is on, yet over the next couple of days, it lists "Late Night with Conan O'Brien".  MCE has done this in the past too, and I have to cancel the series for Law & Order, then set it up again, but inevitably, it does it again.  It has done this with other shows too.  Like mistakenly recording "Starting Over" when I have it setup to record "Stargate SG-1".

Anyone else experienced this?  Any sort of solution?  This and a couple other nuances about MCE are starting to get to me and I'd like to get them resolved so I can get back to happy TV viewing.

Why not...

While we're at it, lets bring back Cobol and Pascal!  Why not!?!

Continual movement is the way of the tech industry.  Out with the old, in with the new.  You must keep up, not begging for the old technologies to be around past their time.

(Note: I know Cobol isn't dead, but the people who use it are getting older/fewer and the job opportunities aren't the same as in the newer markets.)

Posted: Mar 09 2005, 09:42 PM by qgyen | with 3 comment(s)
Filed under: ,
Blog has moved!

I'm permanently moving my blog to its new home, on my website.  I've finally gotten around to updating my site to Community Server v1.0 (was on RC3... took me a while to do it, been busy) and will be continuing my blogging there.  This time, posting more actively.

So feel free to venture on over to or subscribe to my RSS feed at

nGallery to CS::Gallery conversion tool released!

To download the tool, you can get it from:

Simply download the tool and extract it.  To run it, use the GalleryConverter.exe.  The source is also included with the tool.

Use the following steps below to use the converter:

  1. Edit the GalleryConverter.exe.config and set the SiteSqlServer and SiteSqlServerOwner settings.  This file is actually exactly the same as the web.config that ships with CS.  The converter uses the regular CS data providers, so it needs the connection string in relatively the same place.
  2. Run it.  It will connect, get a list of your Application Names.  Select one, and then log into the site.
  3. You must have your entire nGallery application local to your computer (or run the program on your server).  If you are using a web host, you’ll need to download your site.
  4. Select which gallery you want to import your nGallery data into.
  5. Select the location of your nGallery installation.
  6. If you want to use file system storage, click the checkbox and chose the location to store your pictures.  Normally, this would be the web/photos/storage location, or whatever you picked in your communityserver.config.
  7. Click “Go!”

If you are using a webhost, you can easily use the tool so long as you can connect directly to your SQL Server over the internet.  Also, if you want to use file system storage, simply select a folder on your computer and then FTP it up to your webhost after doing the conversion.

For more discussion on using the conversion tool, please see

Posted: Mar 03 2005, 10:59 PM by qgyen | with 3 comment(s)
Filed under:
Embedding assemblies?

Is there any way to embed an assembly at all?

Working on a project and we want to embed one of our assemblies inside the application, but don't want to have to use reflection to load it from the resource file.  It would be nice if I could use it as I normally would when coding, and then when building, have it place it inside the current assembly and not link to the external assembly.

Tried searching the Visual Studio help to see if it was possible, searched Google and the ASP.NET Forums, but haven't found anything.  Is this possible, or is it just wishful thinking?

Posted: Feb 23 2005, 12:47 PM by qgyen | with 2 comment(s)
Filed under:
Community Server v1.0!

As you may have heard from either Scott, Rob, or the Community Server message boards, Community Server v1.0 is out!  It is truly a great honor to have been able to work on it.  The team of people working on it are absolutely awesome and it is great to be able to bounce ideas back and forth off of them.  Definitely looking forward to continuing to come up with new ideas to add to it to make it even better.

Also, I’m glad to welcome Alex Lowe to the Telligent team.  He will be Project Manager on the website project, so if you have any ideas on what you’d like to see there, go and drop him a line.

Posted: Feb 19 2005, 10:30 AM by qgyen | with 1 comment(s)
Filed under: ,
FTP server and Windows 2003 firewall

Does anyone know how to setup the firewall on Windows Server 2003 (Administrative Tool | Routing and Remote Access) to allow an FTP server to be run on a port other than 21 and to still support passive FTP?

I can't use active FTP, since at home I am behind a cable router.  Using passive FTP only works as long as I have the FTP server running on port 21.  If I change the server to run on another port and allow that port through on the firewall, I can connect, but no passive transfer work.  The default "FTP Server" entry in the firewall services list is fixed to port 21.  So it seems it knows when to open ports for an FTP server, but I cannot find a way to get it to do that if the FTP server is on another port.

Anyone know how to change this?

Posted: Feb 17 2005, 02:57 PM by qgyen | with 14 comment(s)
Filed under:
More Posts Next page »