Shawn Wildermuth

My Rants and Raves about technology, programming, everything else...

10 Reasons to be Thankful about .NET


via The Serverside .NET!

The ScreenSavers Shuffle Again!


Extending Reporting Services

Virtual + New is Evil? I am convinced...


HL2 and the Future of Game Delivery?


Atlanta Nerd Dinner


I just got back from my first Atlanta Nerd Dinner.  I had a blast and it was great to see everyone there.  I am taking over the Nerd Dinner and holding it monthly (instead of Quarterly).  Tentatively it is scheduled for December 16th!  Look for a location in the next week or so.

ADO.NET Powertoys and GotDotNet Workspace


I've been rated again!


Which File Extension are You?

Somewhat OT: Grats RedSox...4 Games to Go!

Way OT: Ray Charles Lives


I haven't gotten chills listening to an album in over ten years.  Listening to Ray Charles sing with B. B. on this last album of Ray's before he died completely blew me away!

If You're In Chicago in Late October...


Desktop Google...OMFG!


Data Part 2: n-Tier...Gone Tomorrow

Recently I was talking with Rocky Lhotka and he said something interesting:

Just when we got good at Client-Server, they switched things and had us doing n-Tier applications.  Just when we got good at n-Tier development, internet applications took off.

Data Part 1: Business Objects, Messages and DataSets...

I've had time lately to think about the nature of data in development lately.  I've been talking with Rocky Lhotka and Michael Earls about it (as well as number of others) about the issues with dealing with data in applications. 

The first camp is all about writing Business Objects.  In this camp, you write classes that encapsulate the data, the data access and business rules about that data.  This camp was the way to do it for years now.  It proliferated in the Client-Server and n-Tier architecture camps. 

Connections, Command and Transactions...oh my!

I was taking a refresher MCSD test today to get ready to take one of the tests and came upon a question that is wrong.  But it does infer that there is some confusion about how transactions are propogated to commands...or may be evidence that it is a bug.  For example:

SqlConnection conn = null;
SqlTransaction tx = null;
  // Create a new Connection
  conn = new SqlConnection("Server=.;Database=Northwind;Integrated Security=true;");

  // Open the Connection

  // Start a Transaction and create a new Command
  tx = conn.BeginTransaction();
  using (SqlCommand cmd = new SqlCommand())
    // Set the Connection to the command
    cmd.Connection = conn;

    // NOTE: I do not explicitly set the TX to the Command
    //cmd.Transaction = tx;

    // Insert new values and execute it 
    // (within the transaction)
    cmd.CommandText = @"INSERT INTO Customers (CustomerID, CompanyName) 
                        VALUES ('ZZZZY', 'My New Company');";

    // Insert new values, but the table name is wrong
    cmd.CommandText = @"INSERT INTO Companies (CompanyID) VALUES('ANother Company')";

    // We should never get here since the query is wrong
catch (Exception ex)
  // Rollback the tx if error'd
  if (tx != null) tx.Rollback();
  // Close the connection just in case
  if (conn != null)

This code fails because I do not explicitly set the transaction to the command.  Unfortuately, you must set the connection and the transaction.  This seems like a bug because you cannot execute a command on the connection (that has an pending transaction) without throwing an error. 

In Georgia At Last...


After a harrowing couple of weeks we're finally here.  We got into town on Friday, two trips to the airport, three cats, one fiance...check.  Much to my dismay, the apartment we had gotten was nothing like the model.  Frankly, it was a dump.  What to do?

Quoted in e-Week!


Today, I am quoted in e-Week about my opinion of what's happening to Longhorn...specifically about WinFS.  Hope I didn't offend anyone in Redmond ;)

I am going to miss Cairo...sorry...WinFS


After spending hours digging through Longhorn builds to try and understand WinFS, I have to say that I am really bummed that it is getting pushed out.  I think I understand Redmond's approach here, but they've been promising something like WinFS for years now. 

UML/Database Modeler that I actually like!


While trolling the DevelopMentor .NET Lists, William D. Bartholomew mentioned a new UML tool that does round-tripping to and from code.  I've used Rational's (IBM's) XDE before to do this, but it is buggy and hates source code control. 

Doom 3....Lasting Impressions...


After spending a couple evenings with my new friend, Mr. Doom 3, I have to highly recommend the game.  I am especially impressed by the scalability of the graphics engine.  Even on my mediocre system, I could get FSAA 2x and high level detail to work acceptably. 

Doom 3...A First Impression...


I spent an hour with John Carmack's latest creation this evening.  The start of the game is surprisingly lets you walk around and really start to buy into the story.  By the time the monsters started to jump out at me, they had lulled me into a sense of security.  Impressively, the game runs well on my middle of the road system:

Decoupling Interfaces and Number of Assemblies

I have been having a conversation about coupling of objects at the interface level.  While I am not a fan of coupling objects together, I would like to be able to shortcut some factory code to make the interface be more intuitive.  For example, here is code that decouples the interface:

class Foo
  // ...
  Guid _barID;
  public Guid BarID
    get { return _barID; }

Foo foo = new Foo();
Bar bar = Bar.GetBar(foo.BarID);

Whereas I don't want to tie the objects together, but simply call the factory (the GetBar method) within the Foo class to make getting objects easier and more intuitive. For example:

Finding Tim Ewald's Blog


I lost all my NewsGator feeds so I was tracking down my favorite people...and of course Tim's one of them.  It was fun...Here's the trail I followed:

My First Day as a Magenic Consultant


I just joined Magenic Technology as a Consultant and they put me at a client right away.  Its been so long since I commuted to a job that it was kinda wierd getting up at 6am and driving for an hour.  After a couple of years of getting up at the crack of noon and working till late into the night, this is a great change...of course after a couple weeks of this, I may not like it but we'll see.

The Daily WTF


Application Name WilderBlog Environment Name Production
Application Ver Runtime Framework .NETCoreApp,Version=v1.1
App Path D:\home\site\wwwroot Runtime Version .NET Core 4.6.25211.01
Operating System Microsoft Windows 6.2.9200 Runtime Arch X86