By the time the PDC kicked off with Bill Gates' keynote address to the many
thousand software professionals seated expectantly before the modest yet sleek
stage and four giant screens, I had already secured a new development
engagement, booked three top-notch speakers for the Austin .NET User's Group,
made inroads for some speaking engagements for myself outside of the US, lined
up some writing work, and solved a unit testing conundrum I had been facing by
sitting down with Jamie Cansdale of NUnit fame to talk about some
aspect-oriented testing approaches.
One of the most striking things about the PDC is the sheer brain
power that you're surrounded with at almost all times. Sitting down at a table in
a bar with half dozen contemporary software luminaries seems almost like
a non-event at the PDC. I can't tell you how that kind of informal meeting
can expediate the resolution of the latest implementation challenge you've been
wrestling with, let alone how effective it is for re-calibrating your ego. PDC
is a place to go to realize that you really don't know as much as you thought
you did and yet still be thoroughly inspired by what you have left to learn.
This is where the software that is going to
define Microsoft computing for the next couple of years is being unveiled,
walked-through, and tutored by the masterminds who created it.
PDC is about software and about the future, and there are few people more
qualified to deliver the opening talk at such a conference other than Bill
Gates.
It was clear right from the beginning of his keynote that for Bill, PDC 2003 is
about platform, and the particular platform incarnation in question is the
yet-to-be-released version of Windows codenamed "Longhorn". I had heard some
folks say that Longhorn is going to be to Windows XP what Windows 95 was to
Windows 3.11. Brother, they weren't kidding.
Longhorn is not just Windows XP with pretty face lift. In Longhorn's case, it
was more like a face transplant. The UI layer is so significant to Longhorn that
it has its own codename: "Avalon". you'll probably hear much about what Avalon
can do in the near term, but you really should see it for yourself to appreciate
its aesthetic values and its processing capabilities. Avalon renders in real
time what Windows XP could only dream of. Previously static visual elements of
applications come to life on Longhorn. You won't believe what Longhorn does to
Word's vertical scrollbar. The best I could do to describe it would be to say
that it's nothing I've ever seen before, and it's a really smart feature.
On its own, Avalon is just highly charged graphics engine. Big deal, right?
We've all seen powerful graphics engines on all but the piddliest game consoles.
The power of Avalon begins to make sense when it's presented in context with
WinFS, Longhorn's new file system.
WinFS, as Bill puts it, is "unified storage". WinFS is a file system built
upon XML and database technology, which means meta-data, relationships,
categorization, querying, and content management are baked into the file system
layer. When Avalon and WinFS are working together, the result is a media and
content aggregation and presentation experience that is just unreal at first
glance.
The out-of-the box experience with Longhorn is something that is unprecedented
in mainstream computing. It's clear that Longhorn is the expression of a
decade-old vision for personal computing that has been tirelessly labored after
and beautifully executed.
The Longhorn experience, of course, is not just a great experience for the end
user; it's also a great experience for the software developer. As a developer,
watching the demos of the end user experience during the keynote, the software
development experience begins to emerge and the possibilities begin to present
themselves.
The file system is a robust content container that is built on top of technologies that
I am already well-versed in and that are supported by a set of .NET APIs that
are built into the platform, which I already have a couple of years of solid
experience with. Queuing, transactions, and publish and subscribe are built into
the platform. And, as Jim Allchin mentioned in his keynote, low-touch
deployment, or "Click-Once", has been further improved with Longhorn. So much so
that Allchin suggests that reboots are a thing that he is "on a campaign to get
rid of".
We've
been hearing the WinForms smart client message for a couple of years now, "Browser
based apps are not as important now that we have smart clients and messaging".
True, we've been hearing this message, yet who but for a minority has
really bought into it whole-hog? Most of us are still riding high on the browser-based
development wave. After all, we have barely just begun the era of browser-based
development compared to all those years of client server and file server
development going all the way back to MS-DOS and character-mode apps. Surely
the thought leaders can't still be suggesting is that we give up this new
wave for a step back into Windows forms-based apps?
Longhorn certainly makes the case that with the right client platform all this
browser-based stuff is perhaps anachronistic software dogma that may require
some re-consideration. It really is starting to look like there's light at the
end of the HTML-based application user interface tunnel. I'm almost ready to say
"Hallelujah". We're still a ways out from ubiquitous Longhorn adoption just yet.
But just be aware that when it finally happens, the .NET framework, Avalon, and
WinFS along with the Indigo messaging services are going to be right there at
your fingertips. Oh yeah, I almost forgot. XAML.
XAML is an XML-based user interface description language for WinForms for
Longhorn. With XAML, you can (if you were so inclined) build UIs using any old
text editor just like editing an XML document. Forms behaviors are added with
what is essentially a codebehind file for XAML WinForms. I'm certain that you
will hear endless commentary on XAML over the coming days, weeks, and months, so
I'm electing to not get any deeper into the subject. Suffice to say, that it is
an impressive way to build UIs for Longhorn and the fact that it is based on XML
means that it matches up well with Longhorn's XML-based approach to
serialization, persistence, content management, messaging, and presentation.
I attended one breakout session today on SQL Server Yukon and spent the rest of
the time in the Hands-On-Lab.
SQL CLR is the branding for the CLR capabilities hosted in the SQL Server
engine. I'm more than a little impressed with this capability and my head has
been swimming with the possibilities all day. I'm going to spend some more time
with Yukon this week in the lab before I even dare to explain exactly how it
works, but I'll venture a five-cent tour just to set the stage.
With SQL CLR, SQL Server has gained the capability of using types defined in a
.NET language. For example, if you have a "Person" object coded in C#, SQL
Server could use that object in its server code (stored procedures, etc). With
SQL Server Yukon, business objects can be passed to stored procedures as the
Value property of a SqlParameter instance. Yukon can work with those business
objects in stored procedures, including executing T-SQL persistence commands or
ADO .NET API persistence commands. Business objects can also be returned from
stored procedures to middle tier components and services.
Previously, SQL stored procedures would accept scalar variables and simply use
those values to perform inserts, updates, deletes, retrieval operations, and
other processing. This imposes what the object-relational persistence
enthusiasts call the "impedance mismatch". Solving the impedance mismatch
usually meant coming up with some sort of custom mapping mechanisms or using
third party persistence frameworks like Norpheme, EntityBroker, or even
Microsoft's own ObjectSpaces framework to be released with Whidbey. It's unclear
to me at this early point in the Yukon learning curve what the ultimate impact
will be on the architecture of databased apps, but I am fairly convinced that
Yukon has the potential to cause many great changes in the way we go about
developing object oriented applications that use SQL Server as durable storage.
There is a hall at the PDC called "Hands-On-Labs" where a couple of thousand PCs
are setup with all the technologies unveiled at the conference will be offered
up for attendees to experience. The lab is divided into sections where certain
machines are used to experience specific technologies. Beside each PC there is a
book of step-by-step tutorials that conference goers use to go through
self-paced training. There were many people in the lab this afternoon getting
knee-deep into the Yukon labs. I think it's clear to many folks that SQL CLR is
an exiting technology that really demands to be understood.
The folks at Microsoft have always gone out of their way to create stellar
content for keynote presentations. Microsoft execs have been making irreverent
videos starring themselves for years. They have always been willing to poke a
bit of fun at themselves and poke a lot of fun at their competitors. This year
is no exception, except that there was a palpably different tone to the short
film that was a part of Bill's keynote, and I think this difference is something
that deserves a nod. It seems to mark a turning point.
This year's video content was not only funny and irreverent, but it also
seemed to be almost buoyant, as if some of the weight of the adversity that we had all
become used to had begun to recede. The video was a retrospective of Microsoft
platform product, people and experiences that stretched back to the days before
Windows when DOS came with hard, cloth covered three-ring bound manuals. There
was archive footage of Steve Balmer doing his thing, and there were even clips
from Silicon Valley Pirates followed by a quick cameo by Anthony Michael hall
talking about how difficult it was to play such a geek, followed immediately by
a shot of Bill complaining of how bad Anthony Michael Hall was as Bill Gates
since Hall is such a geek. Even Bill Clinton and Sean Combs made comical on
camera appearances. Heck, Bill even took shoots at himself for having missed the
boat on the Internet in the first place, and there were more than enough
appearances of Microsoft "Bob" throughout the video.
The surprising appearances were from folks like Marc Andreessen, former Chief
Architect at Netscape, who invented the Web browser in 1993 and John Scully,
former CEO of Apple, who brought the Newton PDA to market in 1992.
With Netscape, Andreessen created a product had an installed user base of 65
million. Andreessen and Netscape were one half of the browser war with Microsoft
that dragged through the courts and through the media until Internet Explorer
finally ended up dominating the market. Netscape was ultimately sold to AOL and
the sources for the browser were turned over to the Mozilla project. Andreessen
spoke comically and indirectly on camera about that time and hilariously the
titling on the screen showed him as a "Browser Enthusiast"! Brilliant!
Scully brought the Newton to market in 1992. The Newton was the pen-based hand
held computer made by Apple that was far ahead of not only the Pocket PC, but
probably far ahead of its own time. Scully's segment on camera was simply
hilarious. Here was a man, a visionary in his own right, who could do nothing as
the Steve Jobs during his wacky iCEO period axed the revolutionary product in
1998. Even with protests staged by Newton loyalists in the Apple parking lot,
the product still got the boot. Although Microsoft is essentially stealing the
thunder with the realization of the Tablet PC and the Pocket PC, Scully was
still a good enough sport to sit for this filming and be absolutely comical in
spite of himself and his experiences.
I just don't think these folks would have been willing to have fun at their own
expense in this way two or three years ago. Something has changed.
Looking at Longhorn for the first time the one thought that struck me first was,
"Wow, we've really come a long way. Damn, I'VE come a long way!" I never thought
an operating system would make me feel sentimental, but there you have it. I
guess watching Bill Gates deliver the platform product that finally delivers on
some of those long-term visions that we've been hearing about for so long might
give anyone pause to reflect. Maybe even Mark Andreessen and John Scully have
gained perspective from Longhorn. Hmm. Perhaps that's a bit of a stretch.
One final note. Now that we've seen Longhorn, perhaps it's time we finally let
Bill off the hook for MS Bob.
Congrats Microsoft!
About the Author
About the Author
Scott Bellware is consultant and mentor with developerLabs. Scott is the
Director of Operations and co-founder of the Austin NET User Group, Director
of Technology and co-founder of the Austin Software Architecture User Group,
and the Chairman of the International .NET Association (INETA) Speaker
Committee. He is the Architect and Developer of the Norpheme
object-relational persistence framework for .NET. He has given talks for
central-Texas groups on software quality, reuse, and object relational
mapping, and recently spoke at the DevTeach conference in Montreal Canada.
In this article, Thiru Thangarathinam demonstrates the different classes and features available through the My namespace. By providing a speed-dial that allows you to more quickly and effectively utilize .NET framework functionalities in your application, the My feature provides huge productivity improvements for .NET developers. [Read This Article][Top]
Thiru Thangarathinam discusses taking advantage of the integation between
the .NET CLR and SQL Server 2005 in order to do things like create triggers
using managed code. [Read This Article][Top]
Developers often use brute force coding to marshal data between the GUI and application objects. In this article, Luther Stanton explains how to use .NET's out-of-the box data-binding functionality to make this job much easier. [Read This Article][Top]
Ambrose Little provides the complete source code for his 'Perfect Service'
and explains how the .NET Service Manager enables features such as drag-n-drop deployment. [Read This Article][Top]
There is broad-reaching debate about remoting, Web services, Enterprise Services, and DCOM. In short, it is a debate about the best technology to use when implementing client/server communication in .NET. Rocky Lhotka shares his thoughts on the issue while offering clear explanations of basic application architecture terminology. [Read This Article][Top]
This article provides and excellent foundation for COM Interop. It reviews COM's background, explains how VB6 interacts with COM, and then shows how to design .NET components to smoothly interact with COM. [Read This Article][Top]
The first article in this two-part series shows how to get Ambrose Little's .NET Service Manager running and then how to add plug-n-play services to it using drag-n-drop or XCOPY. [Read This Article][Top]
Although generics are extremely useful, they also seem to have a certain mystique that cannot be readily explained. This article hopes to remove that aura of mystery by showing just how easy it is to use generics and how useful they can be in many common situations. [Read This Article][Top]
When implementing custom components that require access to restricted resources, implicit impersonation must be used. Jay Nathan shows how to create a class that makes using .NET Impersonation a snap. [Read This Article][Top]
Tony Arslan shows how to use VS .NET's custom deployment feature to create configuration files on the target machine during installation. [Read This Article][Top]
Mailing List Want to receive email when the next article is published? Just Click Here to sign up.