I really had a lot of high hopes for Visual Studio 2005, and I still do. But to me it’s a little unsettling that as much as Microsoft clamors the party line of reliability, integration, and security, not a single one of the presentations that Microsoft offered that day went without some sort of software glitch or lock up. In the seminar on Smart Clients, for instance, a simple “Hello World” application was corrupted entirely, merely by changing the name of a simple Windows Forms control. In another presentation, The Visual Team System managed to lock up completely, displaying the dreaded End Program dialog box, and once again while attempting to expand a Tree control on one of the Visual Studio IDE windows. And just when we thought we’d see the last of it, the ASP.NET presentation threw a SQL time-out exception during its membership and user management demonstration.
What’s more appalling is that these errors were not the fault of the presenters; stuck between a rock and a hard place, they did everything they were supposed to do in a pre-planned, pre-written application. While enthusiastic on-stage, Magenic consultants lamented off-stage at the incredulity of the situation. “It’s ridiculous that so-called production software should fail on a simple presentation,” commented one Magenic consultant.
I tend to agree. Michael Earls, Developer Evangelist at Microsoft, eagerly talks about their billions of dollars in research and development. Perhaps they should instead spend that billion in testing before shipping a buggy product out the door. If you’re going to tout reliability, at least make sure your projects work in the demo.
On a positive note, the presentation on ASP.NET 2.0 was a spectacular one, demonstrating many of the features that we’ve long been asking for. Indeed, Whidbey does rock. While I’m not going to go as far as to say that it’s completely innovative, the changes are much needed improvements to the ASP framework. Master Pages, for examples, have finally arrived as a competitor to Apache Struts Tiles. Other lower-level features include session and cache enhancements, much like those found in ORM tools like Hibernate, though ASP.NET appears to prefer the use of intelligent data source controls and Datasets in its place. Both techniques, of course, have their ups and downs. Additionally, an improved provider-based model allows for third-party enhancements, such as substituting Oracle in place of SQL Server, a feature already present in most J2EE models. Additionally, the new security and user management system is impressive when placed side-by-side to J2EE solutions like Acegi. And the icing of the cake: ASP.NET 2.0 can generate XHTML valid code.
Bugs aside, the features present in Visual Studio 2005 are light-years ahead of what we’re seeing in the Java world. Sure, we’ve got tools like AspectJ for aspect-oriented programming, but Visual Studio’s life cycle management integration — from project management to architecture, and from development to deployment — makes open source tools like Eclipse pale in comparison. It’s certainly a huge step up from our current development models, in my opinion. This, and Microsoft’s other efforts towards its Dynamic Systems Initiative, will be a huge step in formalizing the software development process, if successful. With an industry leader like Microsoft, I I hope that we can finally put the engineer back in software engineering.