Hello,

The conference is now officially one day old and it is time for the second issue of the newsletter - this one chock full of wonderful information. Welcome to our new subscribers (4 more since yesterday).

This year the conference has 6000 attendees and the general session room uses 8 giant video screens - up a few from last time. Unlike other years, the first day is composed entirely of General Sessions giving an overview of the entire .NET initiative so that people will have a better idea what drill down sessions they wish to attend for the rest of the week.

The Conference Intro

(If you shun frivolity, skip ahead to the next section where there is real information)

The opening of these conferences are usually interesting, but this one was over the top. When we walked in there was a live band playing (playing background music at 7:30 in the morning for a bunch of sleepy programmers has got to be one of the lamest gigs in show business). They were kind of a R&B Lounge act - some of the songs they played were Flip, Flop, Fly, Choo-Choo Ch-Boogie and It Had to Be You. I liked them alot (even with 6,000 people it's all about me!). During their set I saw the first person I knew, Rob Warthen of Nasdaq. Then there was the required Clockwork Orange style Microsoft indoctrination video shown on the big screen while Microsoft was projected on each wall in spinning letters about 15 feet tall. This immediately segued into a music video that told us that as developers we were part of the dot-Net set. The video suggested through old movie clips that the dot-Net set was a natural sociological progression from cool people through history such as Elvis, the Rat Pack, James Dean, Jack Nicholson, Paul Newman, Steve McQueen, Audrey Hepburn and Gary Cooper. Hmmm - didn't see a lot of people around here that reminded me of Jack Nicholson. Finally they brought out the PDC Emcee (also a first for me), comedian Richard Jeni (of HBO and the Mask fame). He was pretty funny, but stand up comedy at 8:00 in the morning is tough (see earlier quote about lame gigs). I was going to write about how hot it is here in Orlando in July, but he said it much better - "Last week I was sitting in a sauna with my body wrapped in saran wrap eating hot chili peppers and I thought to myself, 'Where can I go to feel this way all the time' ". Lots of cracks by many speakers about a current bit of news in the industry - once again I will quote Richard Jeni who had the best one - "During that last break I was backstage looking through my notes and the Microsoft guys were looking through their presentations and Larry Ellison was back in your hotel looking through your garbage."

The Unacknowledged Presence

Needless to say, no one from Microsoft has mentioned the Justice department (not even the comedian). Alot of the things being talked about are sure to be driving Ms Reno and Mr. Klein absolutely nuts. I'm not going to get into the whole area of discussion in these newsletters, leaving you to form your own opinions about the reactions of our intrepid government servants to the events of the week.

The Sessions

The day consisted of about 5 general sessions. I took notes madly the entire time I was awake, so now I have 8 pages of illegible scrawl. Rather than trying to summarize each talk (6.5 hours total, plus more Powerpoint slides than I ever want to see again), I will pick the main themes of the day and organize the plethora of knowledge along those lines (Three Amigos reference intended!). Some of the next few paragraphs may be a tad jumpy, mainly because they have been assembled from information related throughout the entire day (hey, Directions on Microsoft costs $1000/year and this is free!).

The .NET Platform

Like we said yesterday, the overall concept of .NET is Microsoft's new way of developing applications for the web - developing distributed applications across the Internet based on open standards. As such it addresses 4 different areas-

  • Tools - Visual Studio .NET - we will cover these in a later section
  • OS Features - the .NET Framework
  • Provided Functionality - .NET Building Blocks (services provided by Microsoft over the next 18 months)
  • Devices - .NET device software

The distributed nature of the whole thing is based on Web Services. Web Services are application functionality provided to the Internet, not through a browser UI, but through an object-like interface. It looks to a client developer alot like a COM library. For instance, suppose Motley Fool exposes a Web Service that provides quotes for various stocks. You would register the Motley Fool Web Service in your develop environment (just like a reference only based on a URL). In VB you could then define a new object of that service and call the methods to get price quotes just like a COM object. It is all based on SOAP (Simple Object Access Protocol - kind of an XML version of RPC). What is actually going on under the covers is this-

  1. A call is made via SOAP (XML) to the service URL asking if you have any Web Services. This is called SOAP Discovery and any Web Services available are listed in XML and returned.
  2. A second call is made to the URL asking for specifics on a service. The answer comes back in UML and has similar information to a type library. This XML based type information is called SOAP Contract Language (SCL)
  3. This type information is then used to package up a call and get the response, all via XML

If you hit web service (at least one in .NET) with a browser, you get a browser based help file for the Web Service. All this SOAP stuff can be done now with the SOAP toolkit, but exposing methods of an object as Web Services is essentially automatic with the new .NET tools.

Microsoft's vision is that thousands of these Web Services will be exposed by many vendors. They are providing some general ones themselves, including Microsoft Passport - a security and identity service. Since SOAP makes these truly implementation neutral, they may see this vision realized.

A new feature of .NET is ASP+. Although current ASP should work under ASP+, there is alot of new functionality. Any .NET language can be included in ASP, and it can be compiled. There was talk about how it separates code from UI, although I didn't catch the details. They talk about .NET making use of "Smart Clients" and I think this is one of those situations - ASP+ has directives like runat = Server that cause a connection between client side buttons and server side code. Also ASP+ can create web controls, details to come later. Finally, you can download ASP+ to your local machine, along with required data in XML, so you can run a Web Application locally while offline, then synchronize your work later. This stuff all looked really cool, but looks like it all requires the client to be IE 5.5 or above. This may go the way of other Microsoft client specific stuff like ActiveX controls in the browser.

Languages and the Common Language Runtime

All languages under .NET are built upon a new .NET framework called the Common Language Runtime (CLR). This is tough to describe in a short paragraph, but I will try. Currently when you write COM objects, all the housekeeping is up to the COM object, whether the author does it explicitly, like in C++, or it is included by the development language, like in VB. This includes things like lifetime management, IUnknown implementation, HRESULT interpretation, etc. The Common Language Runtime moves all this common stuff into the .NET framework. It also provides a common implementation across languages fro Registration, GUID's, exceptions and more. Objects using the Common Language Runtime are now called .NET classes (any current COM class can be imported as a .NET class).

In addition to legal implications, moving so much stuff into the operating system has huge technical implications, including reducing the headaches of versioning, security, deployment. Multiple versions of one object can exist on the same machine, or in the same process (this got applause, but it kind of scared me, imagine trying to figure out which version is loaded if it can vary within one process...yuk).

Random individual notes-

  • .NET classes provide implementation inheritance.
  • No more variants or BSTR's, all strings are the same type (this got more applause and this time I joined in)
  • This appears to finally be the COM+ language extensions that have been talked about for years
  • All registration, typelib, etc is stored in the metadata - XML descriptive information packaged in the code executable.

Microsoft will implement 4 languages on CLR: C++, C#, VB and JScript. Note that VBScript is not listed - since it is compiled in ASP+ it has been promoted to full VB (its mother is very proud). Third parties have committed to implementing many more languages on the CLR, including COBOL, APL, Pascal, Python, Perl and Smalltalk. It's the year 2000 and we're writing for the Internet, yet COBOL refuses to die - it is the cockroach of languages.

Visual Studio .NET

It's getting late, this section is going to just be a list of interesting tidbits-

  • VB will now be a full language built on CLR - VBRUN is replaced by .NET
  • VB will now have Implementation Inheritance, this is because all .NET classes have implementation inheritance. This means that a VB can inherit from a C++ .NET class or vice versa.
  • VB has polymorphism, overrides and overloads
  • VB - all assignments the same - no more Let's and Set's
  • VB - full exception handling through try/catch (thanks to .NET exception handling). No more On Error... statements
  • VB - Perfmon counters are easily available to set
  • C++ - Accesses .NET framework with "Managed" code.
  • C++ - "Managed" code can coexist with native code for gradual migration
  • Debugging is end-to-end, from client side DHTML to middle tier code to database, regardless of language. This seemed cool, but died on the demo so we haven't seen it yet.
  • Any method can be exposed as a Web Service automatically in any language
  • Intellisense implemented for XML - shows the valid tags available at any point (this was pretty cool)
Operational Issues

There was some cool stuff about deployment I will rush through here, but it is getting late. Because of metadata, installation is just copying files, no registration required. We watched them install a whole Web Site/App just by copying around 30 files into an empty directory and, BOOM, it worked (they didn't really say BOOM, I added that). Then removing an application is "del *.*" Pretty Cool.

Say, don't I know that guy in the Qwest Shirt?

John Intihar, Plural DC, is here as a booth rep for Qwest. Qwest is his current client and a sponsor of the PDC (Qwest should not be confused with the defunct breakfast cereal - Quisp). While the exhibit hall is open, every so often the Qwest team will grab 6 people who happen to be walking by and make them sit down to view John's presentation. John says his technical talk on a very specific area of functionality is usually then met with empty gazes (perhaps John can commiserate with the band and comedian about lousy show-biz gigs). Anyway, the Qwest team met a magician at a restaurant while they were down here in Orlando, hired him for the booth and now John doesn't have to give his talk any more.

Letters, we get Letters

SH from San Francisco asks - "What is C#? I assume it is pronounced C Sharp"

SH - You are correct, it is pronounced C Sharp (or its harmonic equivalent D Flat). This is a new language introduced by Microsoft for the .NET Platform. It is object oriented and strongly resembles C++. The main differences are-

  • It is built on the Common Language Runtime
  • It compiles to Intermediate Language
  • It has no pointers
  • It has Garbage collection
  • It is not owned by one company, but has been submitted to a governing committee (wait - that's how it is different than Java)
  • Declarations and Implementations are in the same place

Sure it looks like Java and smells like Java, but Microsoft says it is not Java and that is good enough for a newsletter with the journalistic integrity of this one. Supposedly search.microsoft.com has all been reimplemented in C# and is now Beta in Production (whatever that means). MSFT claims it is twice as fast, three times more scalable and exposed as a web service. Thanks and congratulations to SH for reading all the way to the bottom of yesterday's newsletter.

Til next time-

Biff Gaut
Ombudsman, Biff's PDC Newsletter