Over the past month or so I’ve had the privilege of giving a presentation titled “.NET 3.0 Overview and Key Concepts” to several groups. The main idea of this presentation was to help people get familiar with the capabilities of the new technology and have a better understanding of how it would benefit them in their present and future projects. In preparation for the talks, I assembled a great deal of information that was difficult to find all in one place and organized it in a meaningful way. I found most attendees to be excited about the topic and I certainly learned a great deal in the process as well, which is what leads me to this post. I have decided to do a series based on (and extending) the content of my original presentation. It is my hope that after completing this we will all have a better understanding of .NET 3.0 and be creatively inspired to seek out new solutions to our common (and uncommon) software problems.
Let us begin by asking the fundamental question: What is .NET 3.0? With the plethora of acronyms and name changes coming out of Microsoft lately, the answer to this question can be more difficult than it seems. The following is a standard diagram of .NET 3.0, and should help to explain the answer.
At the bottom of the diagram is the CLR, as you would expect. What is important to note is that it is the same version of the CLR that accompanies .NET 2.0. In fact, .NET 3.0 is a true superset of .NET 2.0, meaning that it also contains the same class libraries (as indicated by the second level of the diagram). What is different in 3.0 is that an additional set of class libraries have been added, mainly in four major areas. These libraries were previously known as WinFX: Windows Presentation Foundation (formerly Avalon) is a new API for building Windows UIs; Windows Communication Foundation (formerly Indigo) is an API that creates a consistent way of authoring connected applications of all sorts; Windows Workflow Foundation enables workflow powered applications; Windows CardSpace (formerly InfoCard) is an identity solution for the internet. We’ll talk about each of these technologies in greater depth in upcoming articles. There are a few other things that are included in the package that don’t necessarily fit into these four boxes neatly: Xaml, the speech API and XPS documents.
In cutting through the confusion of .NET 3.0, it is equally important to know what it is not. Version 3.0 uses the same language compilers as 2.0 and thus does not include C# 3.0 or VB 9.0 language features. This is confusing, but true. It follows then that 3.0 also does not include LINQ, ADO.NET vNext or WinFS, which no longer exists. Many of these technologies are related to a future version of VS and the version of .NET to follow 3.0. So, when we talk about .NET 3.0, we generally mean the four pillars mentioned above.
If you want to work with .NET 3.0 there are a few things you are going to need. First off, 3.0 was designed to work on Vista, XP (SP2) and Server 2003 (SP1). Anyone of these OS’s and the .NET 3.0 runtime will allow you to run applications built with the technology. You can get the current version of the runtime (RC1) here. Installing the runtime will add .NET 2.0 if you don’t have it and if you do, it will just add the new assemblies (marked with a 3.0 version designation). I’m guessing that most of you will want to do some development; for that you will need a few more things. Necessities are a version of VS2005 and the Windows SDK, found here. (Watch out! The download size is rather large.) If you want to have a more pleasant development experience, you should install the VS2005 extensions here and the workflow extensions here. Once you get up and running with these pieces I recommend you explore the official site a little bit.
I hope this adds a bit of clarification as to what .NET 3.0 is. Please post any questions that you have. I anticipate doing at least twenty parts in this series, covering the main ideas from each of the four pillars.
NEXT POST: WPF Intro
09-22-2006 12:47 PM