Although I missed most of the TechEd 2004 in Amsterdam, I did get to spent two days over there. The Ask-The-Experts stand were manned with MVP’s and there weren’t that many (famous) Microsoft guys present at the VS.NET stand. I spotted Dino Esposito for a moment.
The one talk that interested me most was the one by Clemens Vasters. He talked about Proseware, a (yet another) bookstore sample that Newtelligence wrote. This one is a lot better than Duwamish (included as an enterprise sample with VS.NET 2002/3), which Clemens described as “a toy application“.
I was going to write a review of the session, but Benjamin Mitchell beat me to it. He did a pretty good job, but doesn’t mention one noteworthy thing though: the IProcessInitializer interface from System.EnterpriseServices. Once implemented (Shutdown() and Startup(object)) in a ServicedComponent derived class, it gives you a hook into the starting and stopping of your Server application, i.e. whenever dllhost.exe starts and stops for your COM+ app. Of course, this doesn’t work for Library applications. If it is implemented, the registration process of your ServicedComponent will set the InitializesServerApplication parameter for the Components collection of your app to true. The COM+ runtime will pick the classes with that parameter to query for the COM interface and call Startup and Shutdown if present. More info to be found here and even more here.
Also, I finally got to meet Frans Bouma and has a pleasant two hour plus talk with him over lunch and afterwards. He gave me a demo of his LLBLGen Pro O/R Mapper, which looked totally impressing. He has been working fulltime on that for a year and a half. Such discipline. Amazing to say the least.