Category Archives: Just Rambling

latest Whidbey bits

I need to see something that is in the latest ctp of the beta. However, I don’t have a good setup on any of my machines for VPC, and therefore I can’t download and install the VB.NET Express AND C# Express and wipe out my current full beta bits. I need to see both language implementations of this function which I know has changed.

My other option is to download the full app CTP from MSDN which then also requires the latest SQL 2005 Beta. Sam Gentile said it took him two days to install this. I don’t have that kind of time to mess around.

I have about 5 minutes of research I need to do in the ctp right now so I’m kind of bummed. I was excited to see my MSDN universal disks arrive today but alas – the bits weren’t in there.

Posted from BLInk!

.net misunderstanding

I was sad to hear today someone say that they did not switch their applications to .NET because of the poor U.I. They were actually talking about an ASP.NET application, but just kept saying  “.NET application“. And seemed to be unaware of the smart client with a web back end option.

In the long run they ended up keeping with their current app (a fantastically architected VB6 application) and distributing it via Citrix ($$$) but are happy not to have to tax their thousands of non-technical end users with the requirements of a machine to run a desktop app. I never really knew very much about Citrix. The capablities that he was describing blew me away.

Posted from BLInk!

My final thoughts for today on the Application Updater Block

I realize I made a bad design decision for using this method. (previous post)

I did not want the application constantly polling for a new version so I just check once before I start up the app. Unfortunately, the process of checking (not even downloading) takes about 8 seconds (on my fast client machine). So everytime they start the app they have to wait. Which is why you want it to happen in the background. Maybe the polling isn’t so bad after all.

I don’t like the options. I would like to find a happy medium. But for now because I have spent so much time trying to get this worked out (was it even worth it) and my client needs me to move on to other projects, I’m going to have to leave it. So all in all I’m very unhappy that I went this route. I wish I had known enough about the process to realize this problem in advance.

I never really discussed this part of my design with Chris Kinsman when he offered to work out the other issue I was having. I probably should have. He knows this stuff better than almost anyone.

The people who are in-house hitting the web server locally are going to be the big losers with this solution. The people who are using this application over the web (the back end is a web service) will definitely benefit since we couldn’t figure out how to push out updates to them. So I may end up modifying this again to handle local connections differently.

Posted from BLInk!

Complex deployment

I have a very complicated application to deploy and update. I mentioned a while ago that Chris Kinsman helped me overcome a limitation of the application updater block. After that I had to work pretty hard to get it to work with an insane set of rules and layers of applications. A few things I had to deal with:

1) I did not want to download complete applications (including all dll’s) for every update. THerefore I needed to have a special folder to dump updates into and launch my application from.
2) I have three different related applications to launch and wanted them all to be responsible for downloading the same bits. Therefore, they each had to have knowledge of the latest version downloaded even if that was from a different application
3) My webserver location is dynamic
4) complicated configuration issues abounded
5) I had to do a lot of customization of the updater block to get it to work my way.

When all of that was said and done I still had a huge task ahead of me: creating an MSI that would install this whole crazy mess. I have been working on this all day and am near the end. I just learned how to use the launch conditions to force WSE2 to be installed as well.

It is amazing how entire days get soaked up with things like this. However, now I have a very intimate understanding of the Application Updater Block. I have not looked at ClickOnce, but I sure hope I’ll have as much access to make changes I want as I do with the raw code supplied with the AUB.

I miss weekends.

Posted from BLInk!