Microsoft Professional Developers Conference Orlando July 2000

Introduction

My thoughts and musings on the Microsoft PDC. This document does not necessarily represent Microsoft's view in so far as a corporation of disparate individuals can have a view. It is written soon after the PDC, before I have had a chance to actually play with the preview code.

The general feeling, to some extent confirmed by talking to some of the MS developer and attendees, is that the tools group have gone away for a couple of year and rethought the whole approach to developing component based software. Depending on when a particular group picked up, and bought into, the new stuff depends on how integrated their products are with the new framework. Some of these groups seem only to have become aware of the new stuff a few months before the conference.  

The key to the conference, for me, are the new framework and development tools. I believe the tools profoundly affect the approach and productivity of the development cycle and from what I have seen the new stuff looks very good.

The initial general session were pretty tedious except for a good piece by Anders Hejlsberg (Turbo Pascal, Delphi) on the framework and C#. The breakout sessions got into the real meat.

The .net framework

I have always hated COM. The basic idea is pretty good but the hoops you had to jump through to make it work and the shear amount of code you had to generate which is nothing but glue always made me avoid using it if at all possible. Well the good news is that COM is dead - long live .net. Well, no one actual said this and I am sure COM will be around for ages but the framework gives you a seriously easier way to develop reusable components and thoroughly embraces the web (HTTP, XML, SOAP). I think it is fair to say that in the majority of cases COM can be considered a deprecated technology.

The preferred method for component development is the new common run time. The common runtime is the framework of classes, JIT compiler and so forth which is the target for the new suite of compilers and development tools which collectively form Visual Studio dot net. It is possible to import existing COM components, as wrapped up second class citizens, into the framework. It is also possible to expose new components as COM components but it is not something you would want to do unless you absolutely had to work with legacy code.

So what does the .net object model fix:

Other framework features:

The new compilers

Visual studio .net supports three main compilers out of the box:

There are a bunch of third party compilers, which plug into the framework. We saw a demonstration of a COBOL compiler!

C#

This seems to be the new preferred language for pretty much anything. Sort of a cross between C++ and Java without the law suit. I must admit it looks pretty good and I would like to start using it. Some interesting features are:

VB

I am not a VB dude but they seem to have added everything needed to compete with a real programming language such as C++. This included inheritance, exception handling, data structuring etc etc etc. The difference between languages seems to be getting narrower and narrower (bit like the parties in the British political system) now that they all have to conform to a minimum set of features to leverage the common class library. 

Managed C++

It is still possible to compile code with the C++ compiler which generates native Intel code, however the interesting bit is the ability to instruct the compiler to generate managed code. Thru a set of new keywords it is then possible to mark individual objects as garbage collected. Most importantly the full power of the runtime class library can then be used by C++ code. The main reasons for using C++ over C# then become:

The IDE

The new IDE nice features:

Active Server Pages+

The active server team seems to have got on board early with the tools team, and bought in heavily, consequently integration is very tight. So what have they fixed?

XML and ADO+

XML is deeply integrated into all the tools and a lot of the technologies. Some points that come to mind:

Web services

Bill seems to think the next stage for the web is the creation of lots of web services. Web services are components served over the internet for consumption not only by web clients but increasingly, as time goes on, other web service. Applications will be constructed by calling upon these services to perform all the back end work.

Microsoft intend to provide some of the infrastructure web services such as passport, to confirm identity, scheduling for diary maintenance and preference services to store user preferences.

Biztalk is the framework tool that is to the web service word what transaction server is to the distributed database word. It seems to be a bit 'out on its own' however, it doesn't integrate with Visual Studio (it uses Visio) and has the feel of the old (in my opinion useless) 4GL tools. It does have a good XML data description generation tool however.

Win Forms

The Win Forms framework seem to be the merged replacement for:

MFC

Not much seems to have been done to MFC. All the new control in IE are being wrapped for MFC. MFC still seems to be the way to generate a rich standalone client ala Word or Photoshop, however the message from the PDC is that this approach is dated. The idea seems to be to go for a more component based approach to applications in general and run your ad hock combination of components on a universal canvas. IE seems to be the prime candidate for the universal canvas.

Internet explorer 5.5

We received the release version of IE 5.5 at the conference. This release has seen few changes to the UI but has apparently had major changes under the hood. Lots of work has been done to the printing engine although it still seems to chop the right hand edge of documents that contain fixed positioning information.... You can dive deep inside the rendering engine to do advanced custom rendering stuff, but these interfaces seems to be old style COM. We will have to wait for the new version before we see integration into the .net framework.

Other stuff

Links

Photos Journal
Nick's initial Agenda
Nick's first C# program
More C# program (ettes)
Nick's notes about C#
Andrew's comments on the PDC
Microsoft PDC site