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-
- 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.
- 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)
- 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