Three Is It

Because two isn't enough and four is just too many

The definition of insanity is doing the same thing over and over and expecting different results.
Benjamin Franklin
Home Blogs Genealogy Brad's Bookshelf Subscriptions Contact Sign in
 

About the author

Brad Butts is a .NET developer and architect. He is married with children and enjoys reading, working out, and genealogy is his five minutes of spare time.
E-mail me Send mail
National Debt Clock

Recent comments

Authors

Disclaimer

The opinions expressed herein are my own personal opinions and do not represent my employer's view in anyway.

© Copyright 2010

Problems with WCF tools

So, a few weeks ago, I was working on a WCF service and decided I was ready to test it.  My first inclination was to write a few unit tests.  Sorry, TDD folks--I know that should have been the first thing I did.  Well, I didn't get very far with my unit tests, which will probably be the subject of a later blog post.  So, on to Plan B.

Many months ago, I attended a session on WCF.  During the course of the session, the presenter brought up--as an aside--the WCF Test Client.  Instead of writing our lame console or winform apps to test our WCF services, Microsoft has provided us a tool to do all that work for us.  All we have to do is point the WCF Test Client at our service and it will generate a proxy and present us with a GUI where we can select whatever method we're interested in to test.  Easy, right?  What could possibly go wrong?

So, I fire the thing up by pointing it to my service and the first thing I get is this error: Unrecognized option "targetclientversion" specified.  Hmm.  What's going on here?

Well, a little digging around and I find out that WCF Test Client is trying to run the svcutil.exe utility and pass it some switch called "targetclientversion".  Ok.  Let's take a look at svcutil and see what it has to say.  By the way, where is svcutil anyway? 

So, looking at wcftestclient.exe in .NET Reflector, I can see that the tool is looking in the Registry for the filepath to a Microsoft SDK which should include the svcutil utility.  If no SDK filepath is present in the Registry, the tool will default to the v6.0 filepath.  [Credit to this forum post for walking me through this.]

So, what SDK version of svcutil is WCF Test Client trying to use?  Well, v6.0, of course (see the picture of my Registry)!  That must be the problem: I know there's a new version of the SDK out there, I installed it not long ago.  [Why did I install a 1.5 Gb SDK?  Because I needed the 100k ASP.NET merge utility contained therein.  No, I'm not bitter about that.]

Ok.  Let's change that Registry filepath to the new SDK and fire up the Test Client again.  It's gonna work this time, right? 

Wrong.  Enter in the next error: System.IO.FileLoadException: Could not load file or assembly 'svcutil, blah, blah, blah.'  I give you Exhibit A and Exhibit B.  It seems svcutil.exe in SDK v6.1 comes with added security features that didn't exist for svcutil in SDK v6.0.  This feature was reported during the Orcas beta, but I haven't seen it reported for SDK v6.1.  Fortunately, when I ran the fix suggested in that blog entry, I was able to resolve the problem and at least make svcutil viable again.

Ok, now where was I?  Let's see...I:

  1. Discovered that my older SDK install (v6.0) was being used for various Visual Studio operations.
  2. Fixed my Registry entry so that wcfTestClient, and presumably other tools, will point to the most recent version of the SDK installed on my machine (in this case, v6.1)
  3. Discovered that svcutil in SDK v6.1 has permission problems that have to be relaxed via sn.exe

Ah.  I'm ready to try the tool again...oh great.  Guess what?  I'm back to my original "targetclientversion" specified error.  Now what gives?  Well, some more digging with Reflector reveals that, indeed, wcfTestClient is trying to call svcutil with the command line switch "targetclientversion".  The bad news is, it doesn't appear that svcutil--neither the version in SDK v6.1 nor the one in SDK v6.0--support a switch called "targetclientversion".  (At least, I went to the command line and looked at the command line help and didn't see this switch listed for either version.)

I have no idea where this targetclientversion switch came from but it seems to me that, so long as it's not supported by a version of svcutil, the wcfTestClient tool is useless.  So, I guess it's back to our lame console apps to test our WCF services.  Sweet.

 

Update:
The plot thickens...I was looking at my Vista machine which runs Visual Studio 2008 and noticed that I have Windows SDK v6.0a installed on it.  The svcutil.exe utility in that SDK is called version 3.0.4506.648.  Looking at its command line help, I saw that it does include an argument named targetclientversion.  Ah-ha!  This version number is greater than the one found in SDK v6.1, even though one would assume that v6.1 is greater than v6.0a.  I haven't actually tried running wcfTestClient on my Vista machine, but I'm sure it will work now that it can find a svcutil that supports the targetclientversion switch.

 

Currently rated 3.0 by 1 people

  • Currently 3/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags: ,
Categories: Technology Blog
Posted by Brad on Thursday, May 22, 2008 9:46 PM
Permalink | Comments (14) | Post RSSRSS comment feed

Partying with Palermo

I'll be off to Orlando in June for TechEd 2008 (Developer edition) and, now that I know what the Party with Palermo meme is all about, I'll be partying with him! This will be the second TechEd I've ever attended and the second Microsoft conference (of the pay variety) that I've ever attended, too. Hopefully, I'll come back with a head full of knowledge to fill many a blog entry. Party with Palermo

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags:
Categories: Technology Blog
Posted by Brad on Thursday, May 15, 2008 10:22 PM
Permalink | Comments (0) | Post RSSRSS comment feed

BlogEngine.NET Extensions

I've known for a while that BlogEngine.NET included a concept called "extensions" where you may bolt on various widgets, but as I read this account of a BlogEngine.NET experience (via DotNetKicks), I decided to take a look at the full list of extensions.  Wow.  I see that perhaps some of the work I did to customize my implementation may have already been solved via an extension.  Guess it pays to google before you build.

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Categories: Technology Blog
Posted by Brad on Thursday, May 15, 2008 10:16 PM
Permalink | Comments (14) | Post RSSRSS comment feed

BlogEngine.NET

Well, after months of messing around looking at dasBlog, Subtext, DotNetNuke, and others, I finally landed on BlogEngine.NET v1.3.0.0 on which to build my website.  The thing is, though, I really don't want this site to be exclusively about blogging: if I did, I'd probably go really simple and do something with wordpress or blogger.  Ideally, I'd like some portion of my site to host some as-of-yet-unknown genealogy application and maybe dedicate other portions for other purposes (maybe a code garage sale).  The other thing is, I'm lazy and don't necessarily want to start a website from scratch--plus, I've been eager to explore some of these much-talked-about starter kits.  

Microsoft has a great list of starter kits, but none of them have blog engine components quite like those mentioned above.  Oh...one more thing...I'm pretty cheap and bought a pretty basic hosting package--i.e. no SQL server database package.  So, not wishing to persist my blog content to the mighty MS Access database, that seems to narrow my choices down to the XML file based BlogEngine.NET.  Not that that in any way diminishes the power of that platform.  I do like BlogEngine.NET for the most part.  I like how it leverages many aspects of the ASP.NET 2.0 framework including extending the membership provider model, http handlers and modules (for url rewriting), generics/predicates, and so forth.

Here's some modifications I made:
1. Added code to the XML membership provider to hash and salt passwords (I did add the fix for the recent security issue, too, not that it hurt me too badly since my passwords were already hashed)
2. Wrote a quote control so that I can display a favorite quote with every page request
3. Wrote a dynamic menu control so I can dynamically build my top menu from an XML file
4. Fixed a bug with the gravatar display
5. Added support for Silverlight 1.0

I think that's about all the changes I made to my current deployment of BlogEngine.NET, but my real goal was to create a site that could support multiple, distinct blogs.   There's been some discussion on how to make BlogEngine.NET appear to support multiple blogs--namely, by placing multiple instances of BlogEngine.NET in different sub-directories or subdomains.  I was hoping I could do the same by creating a few subdomains and hosting a new instance of the code in each, but my hosting provider doesn't appear to be able to support more than one ASP.NET 2.0 application per domain, so I begrudgling put up a single instance of the platform (what you're seeing now) and pretend I'm hosting multiple blogs by calling each category a blog.  Incidentally, is it common for a host provider to allow me to have only one ASP.NET application under my domain name?  It seems to me that if IIS 5.1 can support N number of ASP.NET applications under a single localhost site, surely my host provider could do the same.  

Anyway, a while back, I started drammatically extending BlogEngine.NET to support multiple blogs.  I got pretty far along, but I stopped when I started working on the controls.  If I'm looking at Blog X, I want all the controls in the sidebar to only show me content from Blog X: recent posts, comments, archive, authors, tags, categories--these should all be filtered to show just Blog X content.  It appeared to be a lot of work to remediate these controls, so I stopped--thinking it would be quicker to deploy multiple instances of BlogEngine.NET to my domain--only later to find out that my host provider wouldn't support such a thing.  So, in the near or far future, I'll probably resume my efforts to extend the platform for multiple blogs.  Either that or look into other people's work in this space.

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Categories: Technology Blog
Posted by Brad on Wednesday, May 14, 2008 11:31 PM
Permalink | Comments (18) | Post RSSRSS comment feed

My motivation

Previously, I posted about an article deriding the subject of genealogical research.  I took issue with the few points presented in the article, but it did get me thinking again about my own motivations to research my family tree.  These sayings usually come to mind:

I met a traveler from an antique land
Who said: Two vast and trunkless legs of stone
Stand in the desert...Near them, on the sand,
Half sunk, a shattered visage lies, whose frown,
And wrinkled lip, and sneer of cold command,
Tell that its sculptor well those passions read
Which yet survive, stamped on these lifeless things,
The hand that mocked them, and the heart that fed:
And on the pedestal these words appear:
“My name is Ozymandias, king of kings:
Look on my works, ye Mighty, and despair!”
Nothing beside remains.  Round the decay
Of that colossal wreck, boundless and bare
The lone and level sands stretch far away.
Ozymandias by Percy Bysshe Shelley

If you would not be forgotten
As soon as you are dead and rotten,
Either write things worth reading,
Or do things worth the writing.
Benjamin Franklin

Shelley's poem notes that monuments don't last to tell your story; Franklin, however, alludes to the fact that one's progeny can tell your story--provided that the written testament is interesting enough to persist over time.

I'm interested in providing that written testament of my family.  As far as I know, there are no famous or infamous individuals in my family tree: I don't need there to be in order to find my ancestors interesting.  How did my Hohlt, Bott, and Drollinger relatives experience life under the tyrants of Prussia and 1800s Germany?  What sort of fear and despair did Carl and Hermann Hohlt--then 16 and 14, respectively--feel when sailing to the United States, alone, to live with strangers because their family could no longer provide for them?  (Carl got off the train at Indianapolis and waved goodbye to his brother who would travel to a family "out west."  Carl never saw his brother again.)  How did the "Bott" surname become "Butt" and later "Butts"?  My Grandfather Butts always theorized that it was probably due to bad penmanship--for all the school-time laughter and ridicule, bad handwriting be damned!!!

Anyway, it is to these and others in my family tree that I would like to give voice.  And, perhaps by giving them voice, I will have secured my voice in history for at least a little while after I'm gone.

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Categories: Genealogy Blog
Posted by Brad on Sunday, May 11, 2008 8:50 PM
Permalink | Comments (1) | Post RSSRSS comment feed

Family History is Bunk

Via Genea-Musings comes an interesting post regarding an article in the UK magazine The Spectator entitled, "Sorry, But Family History Really is Bunk".  

The author seems to take issue with the acculturation of genealogical research into the mainstream, with certain televisions shows coming online that focus on the subject.  He goes on to highlight his own personal annoyance with family history researchers--I guess they were being just too loud in the library.  Paradoxical to his claim of pop culture assimilation, he accuses researchers of being elitist or snobbish.  I find it strange how an interest once reserved for the aristocracy can have the rest of us feeling uppity.  Refigerators and air conditioning were once reserved for the upper class, too, but I don't feel especially elite for using these products today.  The writer went on to say genealogical researchers were somehow sacrificing their knowledge of national history in favor of their personal family history.  That is most certainly bunk: it's almost an imperative to understand the historical context around our ancestors to gain a better understanding on our ancestors' decisions and migration patterns.

All in all, it sounds like the author just needs a hug.  To some, genealogy is a profession; to others (like me), it's a hobby.  People also make beer professionally and as a hobby.  I don't say "beer making is bunk."  If you'd like to spend your spare time making beer, have at it--I hope it makes you happy (and tastes good).  I enjoy the challenge of genealogical research and I don't think I do it for pretentious reasons.  Benjamin Franklin once said, "Beer is living proof that God loves us and wants us to be happy."  Well, it might be pushing it to say the same thing about family history research, but I don't see any need to disparage either interest.

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Categories: Genealogy Blog
Posted by Brad on Sunday, May 11, 2008 8:15 PM
Permalink | Comments (1) | Post RSSRSS comment feed

The obligatory inaugural post...post (miscellany edition)

There are many other things I enjoy besides technology and genealogy: I love books, am forever frustrated by politics, am totally addicted to podcasts, oh...and there's that parenting challenge, too.  So, with this space, as time permits, I intend to brain dump other topics on my mind that don't fit nicely in the other sections of this blog.

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags:
Categories: Miscellany
Posted by Brad on Tuesday, May 06, 2008 11:23 PM
Permalink | Comments (0) | Post RSSRSS comment feed

The obligatory inaugural post...post (genealogy edition)

Hi, there.  I'm Brad and I'm a genealogy addict.  I've been working on my family history for over 10 years now and have recorded over 3500 individuals in my tree with some lines going back to the early 1500s.  I also love technology and software development.  Hopefully, you'll get an indication of that over at my Technology Blog.  So, in addition to discussing general genealogy topics, I also intend to use this space to discuss the place where genealogy and technology intersect--how technology can make our research and recording efforts more effective.  Stay tuned!

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags:
Categories: Genealogy Blog
Posted by Brad on Tuesday, May 06, 2008 11:14 PM
Permalink | Comments (0) | Post RSSRSS comment feed

The obligatory inaugural post...post

Who am I and what am I doing here?

I am Brad Butts--software developer, architect, occasional project manager, expert at flushing stray birds from my garage (are they really that dumb that they can't find their way out?), designated trash taker-outer for my family, etc.  I have been developing with Microsoft technologies (predominantly but not exclusively) for 15 years.  In this space, I intend to discuss software development matters.  Hopefully, you will find some of these posts relevant.  If not, they will at least serve as memory dumps for me. 

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags:
Categories: Technology Blog
Posted by Brad on Tuesday, May 06, 2008 10:58 PM
Permalink | Comments (0) | Post RSSRSS comment feed