Martin asks how would you define .Net to a customer?

Well, a sizeable percentage of my time in `00-`01 was spent doing just that. At the time I was CTO of a consulting firm (~100 people) which began offering .NET solutions based on beta2. From my experience, customers first want generalizations which they can feel comfortable with (”.NET is Microsoft's answer to Java”), only then can you actually get though to them with the information they need to know. My elevator pitch was basically 3 minutes of  TechTV-level bull, but I had a real kick-ass 45 intro which was great for people who knew nothing about .NET.  While some of this is no longer applicable (lots has changed since 2000), here are the main points:

The term .NET is a catch-all phrase which actually encompasses several different concepts:

1. .NET is the “new“ MS marketing slogan which is being branded on to virtually everything. If it was up to them we would be eating McNuggets.NET. [Remember this was back in 2000]

2. .NET is the new name for the MS application server family. These servers are the building blocks of your IT infrastructure today and will be key components of your future .NET solutions.  These include existing servers such as SQL Server, CMS and also new servers such as SPS and AppCenter [Again, that stuff was still new in 2000]

3. .NET is a new application runtime platform. Microsoft developed a new VM (similar to the Java runtime) which leapfrogs over many of the Windows & COM limitations which affect application development such as security models, DLL Hell, memory management. In addition, the new platform includes a huge library which exposes nearly every existing windows API in an intuitive, consistent manner.

4. .NET includes a new development environment (VS.NET). Developers using VS.NET will be able to do most (if not all) of their development from within one comprehensive IDE, as opposed to what happens today where a developer uses InterDev for ASP,  VB6 for COM, Enterprise Manager for stored procedures, etc.  The same IDE supports multiple languages (VB.NET/C#/C++) while providing a consistant programming model which is language independant.

5. .NET is a vision of how applications can and should be developed in the coming years.  Microsoft has incorporated XML and web support as core technologies into the .NET platform (including the runtime platform, development env. and servers ), and has intoduced a new paradigm of service-based computing called XML webservices.  While .NET can be used to develop applications  using today's windows or web architectures (and does so better than the existing technologies !) the real win in adopting .NET is the flexibility and agility which .NET provides going forward.

I would usually end the meeting with one of the MS concept videos - smart phones, laptops, pdas and various backend servers & services participating in a business scenario via XML webservices.  Obviously, there are some generalizations in there as well as some minor inaccuracies, but decision-makers usually came out of the presentation feeling that they have a feel for what .NET is and how it should affect their IT decision.

Looking back, it is interesting to see which of the marketing promises actually materialized and which didn't...  Microsoft backpedaled on the branding (remember Windows.NET?),  many of the webservices initiatives failed (remember .NET My Services anyone?) but alot of the promises made in 2000 still hold true today. Impressive.