In-Depth

Realize New Functionality in .NET 3.0

The .NET Framework 3.0 represents a major set of functionality in .NET, and yet doesn't change any existing .NET Framework 2.0 libraries, compilers, or features.

Just this past week, Microsoft announced that what was known as WinFX will now be known as the .NET Framework 3.0. So what is the .NET Framework 3.0, and what does it mean to you? In a nutshell, .NET 3.0 includes:

  • .NET Framework 2.0:
    • The 2.0 Common Language Runtime (CLR)
    • The 2.0 Base Class Library
    • ADO.NET 2.0, ASP.NET 2.0, Windows Forms 2.0
    • VB 8.0 and C# 2.0
  • WinFX:
    • Windows Communication Foundation (WCF)
    • Windows Presentation Foundation (WPF)
    • Windows Workflow Foundation (WF)
  • InfoCard:
    • Renamed to Windows CardSpace (WCS)

One conclusion you should draw from this is that .NET 3.0 is really .NET 2.0 plus more functionality. In other words, the existing .NET 2.0 Framework and compilers are unchanged, so your existing code will continue to run as it exists today. All that .NET 3.0 does is add new functionality in four key areas.

Windows Communication Foundation is essentially the next generation of Web Services (asmx), Web Services Extensions (WSE), .NET Remoting, Enterprise Services, and Microsoft Message Queue (MSMQ). This is a lot to absorb, and it is important to recognize two key things. First, none of these existing technologies is going away anytime soon; WCF is merely another alternative to them. Second, in its first release, WCF often uses these existing technologies behind the scenes. WCF is a new API to access various concepts, but it doesn't necessarily replace the existing technologies, and it sometimes consumes them.

If you build distributed systems using n-tier, client/server, or service-oriented architectures, then WCF will be of interest to you.

Windows Presentation Foundation is the first major new graphic UI framework to come out of Microsoft in more than a decade. At its core, WPF is the replacement for GDI and GDI+, which are the graphics foundation for the entire Windows platform. At a higher level, WPF is an object-oriented framework on which you can build forms-based 2D and 3D interfaces. In the short term, WPF is an alternative to DHTML and JavaScript for Web development and to Windows Forms for Windows development. In the long term, WPF is the logical successor to both Windows Forms and any sort of interactive Web development.

If you build rich, interactive user interfaces and find DHTML, Ajax, or Windows Forms limiting from a graphics perspective, then WPF will be of interest to you.

Windows Workflow Foundation is often characterized as being a subset of BizTalk Orchestration that you can host within your own process. It is a workflow engine that runs within your Windows client, Windows server, or ASP.NET Web application, allowing you to use a visual designer to define how your various workflow tasks interact.

If you have ever thought that using a workflow or a state machine would be useful, but BizTalk Server seemed like overkill, then this technology should be of great interest to you.

Windows CardSpace, which was code-named InfoCard, is Microsoft's implementation of a standards-based solution for a global identity management technology for the Internet. In other words, WCS is a way of managing your identities on the Internet in a way that is easier and more secure than today's reliance on usernames and passwords. And unlike previous attempts at a unified sign-on, such as Microsoft Passport, with WCS the credentials are managed entirely by the user and the application with which they are connecting.

For example, you might have a casual identity for blogging or posting on Web forums, in which case you'll manage your credentials directly. But you might also do online banking, in which case your bank will likely manage your banking credentials. In any case, Microsoft isn't managing your credentials.

WCS is integrated directly into Windows Vista, so this technology promises to become important to any of us who develop or use Web applications.

The .NET Framework 3.0 is unique in that it represents a major set of functionality in .NET, and yet doesn't change any existing .NET Framework 2.0 libraries, compilers, or functionality. This new framework represents the future of .NET development, and whether you have immediate need for the new functionality or not, it is important to be aware of these new features because they will define the shape of applications in the long run.

About the Author

Rockford Lhotka is the author of several books, including the Expert VB and C# 2005 Business Objects books and related CSLA .NET framework. He is a Microsoft Regional Director, MVP and INETA speaker. Rockford is the Principal Technology Evangelist for Magenic, a Microsoft Gold Certified Partner.

comments powered by Disqus

Featured

  • Compare New GitHub Copilot Free Plan for Visual Studio/VS Code to Paid Plans

    The free plan restricts the number of completions, chat requests and access to AI models, being suitable for occasional users and small projects.

  • Diving Deep into .NET MAUI

    Ever since someone figured out that fiddling bits results in source code, developers have sought one codebase for all types of apps on all platforms, with Microsoft's latest attempt to further that effort being .NET MAUI.

  • Copilot AI Boosts Abound in New VS Code v1.96

    Microsoft improved on its new "Copilot Edit" functionality in the latest release of Visual Studio Code, v1.96, its open-source based code editor that has become the most popular in the world according to many surveys.

  • AdaBoost Regression Using C#

    Dr. James McCaffrey from Microsoft Research presents a complete end-to-end demonstration of the AdaBoost.R2 algorithm for regression problems (where the goal is to predict a single numeric value). The implementation follows the original source research paper closely, so you can use it as a guide for customization for specific scenarios.

  • Versioning and Documenting ASP.NET Core Services

    Building an API with ASP.NET Core is only half the job. If your API is going to live more than one release cycle, you're going to need to version it. If you have other people building clients for it, you're going to need to document it.

Subscribe on YouTube