Recent Events

It has been a few days since my last post and a lot has been going on. Over the past week I have:

  • Found a host and launched a web site for Springfield Publications
  • Attended an MSDN event in Greenwood, Indiana
  • Attended the year-end/holiday event for my organization
  • Started my holiday shopping

The event most relevant to this blog is the MSDN event, of course! This event focused on object oriented (oo) concepts, the Microsoft MapPoint Web Services, optimizing ASP.NET applications, and ASP.NET 2.0 Membership and Personalization. Overall, I really didn’t get much out of the event. To me, the most valuable session was the one about optimizing ASP.NET applications.

The OO session focused on the concepts as they related to VB.NET and were presented in a simplistic manner. In all honesty, I found it a little hard to believe that in a theatre full of .NET developers, there were plenty of people that were unfamiliar with the pillars of OO development. It also seemed as though much of the emphasis was placed on abstraction and encapsulation as opposed to inheritance and polymorphism, the main principles on which the .NET framework is based!

The MapPoint Web Services session seemed kind of pointless and seemed like even more of a sales pitch than anything else. Are there applications for the Web Services? Sure, but the many applications that need some mapping functinality will be better served by linking to MapQuest. The bottom line from this session is that MapPoint is expensive, has inflexible licensing, and, although powerful, is probably overkill for many applications.

As I mentioned earlier, the best session (and actually the reason I attended this event) was the session regarding ASP.NET application optimization. At first, I was disappointed with this session since much of the first 45 minutes focused on the tools and how to use them. I am a programmer and, naturally, a tinkerer. I want to figure out the tools on my own (and trust me, they’re not that complicated to use), not have every feature demonstrated. Some nice tips such as running the tools on a separate box than where the site is hosted were covered but I was looking for tips on how to actually improve performance.

Fortunately some tips were eventually discussed. Unfortunately most of them were ones that could be found in any ASP.NET book. Optimizations discussed included:

  • Using caching
  • Using connection pooling
  • Open late/close early technique for database connections

All of the suggestions were nice but again, most of them could be found in any ASP.NET book. As always, the thing to keep in mind with these is that they are only as useful as your application allows them to be. If your application uses frequently changing data for instance, caching won’t be of much use to you for improving the performance of your application.

A positive note about this session is that the presenter (Jacob Cynamon) continually emphasized the importance of designing performance into the application from the start. Poor performance should not be acceptable for any application. Applications should be tweaked to ensure the most efficient execution path is executed rather than a method that is simply easier to maintain. I am not arguing that maintainabilityis not important but I am arguing that usability is and performance directly impacts usability. Making users wait on your application because of poorly written, inefficient code is unacceptable. Of course, the amount of acceptible wait time varies by task but making users wait longer than necessary is a sign of low quality.

Moving on from my side rant, I did not stay for the final session. I originally intended on sticking around but decided that I will look into ASP.NET 2.0 on my test workstation when I get around to setting it up rather than sit through a presentation on beta software. I’m sure that many of the new features in ASP.NET 2.0 will make my life easier but for now, I am not interested. When the next version is closer to release, I’ll look into this in more detail.

That really seems to wrap it up for the overview of the MSDN Event. Until next time, happy coding!