NET Framework 3.0 and Beyond with Many Video Illustrations

by: Wade Harvey

The .NET framework is a software component that is included with Microsoft Windows operating system, or it can be downloaded separately and added to it. NET Framework 3.0 was originally called . It is the current version of the , and it is more of an add-on to NET Framework 2.0 than a whole new framework, as the major components of the 2.0 version are included within 3.0.

There were two main components of the Net Framework 2.0.

1. Framework Class Library – contains the building blocks (bricks) that are used to build all other classes.

2. Common Language Runtime (CLR) – This is similar to Java’s Virtual Machine, in that is unique to each operating system and acts as middle person between an intermediate language and the language that the operating system speaks.

In general, the acts as an intermediary between .NET applications and the operating systems that they execute on. It is as if .NET application languages are written in English (Visual Basic.NET), Spanish (C#), and French (J#) and the operating systems are written in Greek (Windows), Hebrew (Linux), and Latin (Mac). In order for the hardware to understand what the applications are trying to do, the modern languages (English, Spanish, and French) are first translated (compiled) into assemblies (or executables) in a common language of the Middle Ages, say Middle English. This common language(Middle English) is called the Common Intermediate Language (CIL) in the Microsoft world.

Common Intermediate Language Architecture

The Common Language Runtime (CLR) component of the NET Framework takes this intermediate language and translates it into the corresponding words that each of the operating system understands. Thus, there is a different Common Language Runtime Component for each operating system. At the present time, the only operating system that has a complete Common Language Runtime component for it is Windows, but there is a project called Mono that is attempting create an open source common language runtime component for Linux, Solaris, Mac OS, and Windows. When that occurs, .NET applications will truly become “platform independent.”

The .NET Framework is used to:

1. Provide Huge Chunks of Pre-written Routines – The principle advantage of the NET framework is that it takes many of the operations(security, memory management, exception handling, etc.) that are performed over and over again, and allows them to only be coded once.

2. Provide Platform Independence – .NET languages (Visual Basic, C#, J#) are compiled to an intermediate state (Common Intermediate Language), and then, the Common Language Runtime component translates that into a language that the specific operating system can understand. This allows one to code in the high-level language of Visual Basic or whatever without having to worry about what machine it will end up executing on.

3. Provide Language Independence The Common Type System (CTS) is used to insure that all .NET langauges use the same types for descriptions for fields. These languages also have access to the Base Class Library (BCL) to reduce the amount of low-level coding that must be done in each language.

4. Provide Simplified Deployment – Special care must be taken to make sure that new installations of software do not interfere with previously installed versions. The .NET Framework is designed to help avoid these types of problems from occurring.

Four New Components Added With NET Framework 3.0

NET Framework 3.0 Architecture

1. Windows Presentation Foundation (WPF – code-named Avalon) – As the name implies, this component deals with the “presentation” layer of net applications. This the coolest new feature for most users. It uses XML and vector graphics to present 3-D images, allowing rotation, panning, etc.

2. Windows Communication Foundation (WCF – code-named Indigo) – This component provides a service-oriented messaging system which allows programs to interoperate locally or remotely similar to web services.

3. Windows Workflow Foundation (WWF – Workflow) – Allows one to use workflows to automate business tasks by connecting code to business model diagrams.

4. Windows CardSpace (WCS – code-named InfoCard) – This component stores a person’s digital identities to help integrate the user’s experience as they go from one web site or application to another. This helps to eliminate the need for so many user ids and passwords so that a person can seemlessly move from one task to another.

.NET 3.0 – A “View from space”…-NetFX…

Here is a 4-minute video that gives a high-level introduction to NET Framework 3.0. It gives an interesting overview of the four new components (November 16, 2006).

Chris Bowen: Introduction to the .NET Framework

Here is a hour and twenty-five minute in depth look at the four new components of NET 3.0 by Chris Bowen (Apr 18, 2007). Unfortunately, you cannot see much of the whiteboard on the video, but you can hear what he has to say if you are interested in getting into more of the details.

WinFX in Financial Services

Here is an six-minute video example where Lab49 founder Daniel Chait demonstrates how they have used the 3-D features of Windows Presentation Foundation to help them understand the financial markets.

WPF Controlled by external sensors

Here is a six-minute video of how Brian Warner demonstrates that external sensors can be used to control WPF (February 05, 2007).

Ink Features in WPF

Here is a five-minute video demonstration of how WPF enhances Inking with tablet PCs (September 12, 2006).

Intro to WPF Part 1: XamlPad

A five-minute tutorial that introduces you to XAML (Mar 30, 2006).

My First Workflow

This 15-minute video by Stephen Thomas is an excellent introduction to workflows.

NET Framework 3.5

The next version of the NET Framework will be NET Framework 3.5. It is currently in beta testing. NET Framework 3.5 includes a entirely new version of the CLR. The CLR will be 3.0, as opposed to the 2.0 version that was used with NET Framework 3.0. Other new features will be LINQ queries, extension methods, and anonymous types with static type inference.

Final Note: If you would like to try to use some of the NET Framework 3.0 features, you must first download the NET Framework 3.0 software from Microsoft. Then, if you are using Visual Studio 2005 or the Express Editions of 2005, you have to download Visual Studio 2005 extensions for .NET Framework 3.0 (WCF & WPF)

Further Reading

Introducing the .NET Framework 3.0 – Excellent, and in depth (29 printed pages), article by Microsoft’s David Chappell in July of 2006.

Microsoft’s Webcast Series on NET Framework 3.0

Microsoft has an in depth series of webcasts at www.msdn.com that explain the details of using NET Framework 3.0. The series is broken down into a “Getting Started” section, and then one section for each of the 4 major components of NET Framework 3.0. Here is the information on the overview webcast that is contained in the “Getting Started” section.

MSDN Webcast: .NET Framework 3.0 End-to-End: Putting the Pieces Together (Level 300)

75 Minutes – June 5, 2007

Do you build Microsoft .NET applications? In this session, learn how to use .NET Framework to build better end-to-end solutions using the DinnerNow.net sample application. From a Windows Presentation Foundation client to a Windows Communication Foundation service tier driven by Windows Workflow Foundation, walk through a solution from whiteboard to Windows PowerShell script, and everything in between. We highlight management, security, workflow, services, and mobile applications, in different areas of the DinnerNow solution. Come to this session to see how one piece fits into a bigger solution, or how the .NET Framework can be leveraged to increase agility in application development.

Presenters: Matthew Winkler, Architect, Microsoft Corporation, and David Aiken, Architect Evangelist, Microsoft Corporation