Speeding Up Acrobat Reader's Launch

If you are a regular user of Acrobat Reader, then you are used to the delay associated with the initial launch of the application.  But if you follow this tip from John Roller, the start time can be significantly (and I mean on the order of 80-90%) faster.  John, thanks for adding minutes to every day I'm in front of the computer.

Opening a File by Association

For a simple application, which I hope to share with you shortly, I needed to be able to launch the application associated with a particular file type.  For example, if you had a file called 'test.log' and the '.log' extension was associated with UltraEdit32, I wanted to launch UltraEdit32 and load up test.log.  While I could have located the file association in the registry and launched the application, there is an easier way.  Use the Process class to execute “test.log” as a command and let Windows do the rest.

System.Diagnostics.Process proc = new System.Diagnostics.Process();
proc.EnableRaisingEvents = false;
proc.StartInfo.FileName = “test.log“;

I can't get over how nicely the little things in the .NET Framework fit together.  It's almost like someone...what's the word...designed it ;)

Building Mobile Applications, Metro Toronto .NET Users Group

Tomorrow night I'm presenting at the downtown Toronto .NET users group - topic Pocket PC development with the CE framework. I'll have a new HP 4700 device with a VGA resolution screen for folks to take a look at - courtesy of your friendly neighborhood HP rep. I'll also have my trusty 5650 with the old form factor for you to play around with. Hope to see you there.

Details: http://www.objectsharp.com/oNewsUpdate/ReadingFullStory.aspx?StoryNum=-28

Hiding the Startup Form

As part of my holiday weekend, I created an intray application aimed at tracking the build status in a continuous build environment.  To complete the aesthetics of the app, I wanted my initial form to be hidden immediately upon startup.  A quick Google of the problem found the following MSDN page.


What concerned me is that it mentions that, without using Application.Run, there is the possibility that certain functionality wouldn't work.  I never liked wondering what *might* go wrong with my code (I have too much problem with what *does* go wrong).  With a little bit of experimentation, I found that the following variation gives me the desired result.

public static Main(string[] args)
   YourForm form = new YourForm();

Additionally, when you are exiting the form, it is important to remember that the message pump initiated by Application.Run needs to be shut down.  As a result, you need to include the statement 


as part of the form shutdown process.

It's Here - Visual Studio Team System Arrives

If you have been itching to get your hands onto VSTS, the time is at hand.  It can be downloaded from the Visual Studio 2005 web site here.  For the moment, you have to be an MSDN subscriber.  And as a word of warning, VSTS can only be installed on Windows Server 2003.  So if you don't have a spare 2003 server kicking around, it's time to start building one.  That's how I'm spending my evening.  While I'm waiting for the 3+GB download.

dasBlog Security Patch

Just passing the word along.  If you are running dasBlog, you should be aware of a potential security problem and the appropriate steps to take.  More details are available here.

Shorthorn Longhorn

So this will cause a few blogs. I have just heard that....

  • Longhorn slated for 2006. Longhorn server 2007.
  • Winfx, and Avalon are coming to windows xp in 2006. Indigo as well - and on Windows 2003 as well. These are all part of WinFx that is going to be extremely important for .NET developers and companies wanting to take advantage of these improvements.
  • Winfs is leaving longhorn (post release). So that means ObjectSpaces and the Microsoft Business Framework too.

Wow. Never a dull moment. I'm attending a briefing with Jim Allchin in an hour so I might have more I can tell.

But will we also see a delay of ObjectSpaces or the Microsoft Business Framework until after the longhorn release. Those have been recently tied into WinFs - but no specific announcements about that - and I wouldn't be surprised if that changed soon. 

Avalon and Indigo on Windows XP

If you haven't yet heard the announcement, Microsoft is planning on having Avalon and Indigo running on Windows XP.  This might seem like old news, but until now, there was no confirmation of backwards compatibility.  As well, the target date for the client portion of Longhorn is 2006.  This target date is not new, however news that the server version of Longhorn shipping in 2007 is.  To see the press release, check out the following link:


Flash and Blogging Combined

If you're looking for an interesting combination of Flash and blogging, check out http://www.elusiverealm.com/verbiage/.  Nick is the person behind the look, feel and graphics of www.ObjectSharp.com, as well as someone with a little too much spare time. :)

Wrapping your Hands around the Throat of EnforceConstraints

Do enforced constraints have you down?  They did for me today.  I was getting the following error as I set EnforceConstraints on a freshly filled DataSet to true.

Failed to enable constraints. One or more rows contain values violating non-null, unique, or foreign-key constraints.

I found this to be annoying.  Actually, “annoying “is the polite word that I use when I find error messages to be useless in debugging.  This annoyance continued until I was pointed at this blog entry by my colleague Dave Lloyd.  Since it's his blog, it figures that he would know about it :).  It contains a code snippet can is quite handy in tracking down the source of this particular error message.  Very useful if you too need to tame the enforced constraints beast.