Editor's Note

Visual Studio 2005 Guided Tour

Code download available at:EditorsNote.exe(119 KB)

2005 was a truly exciting year for us here at MSDN Magazine. We launched a new magazine. We covered all sorts of amazing advances for the programmer, courtesy of Visual Studio 2005. We lost a couple of weeks, because of that dodgy falafel cart on 49th Street. (Who knew that health inspection certificates weren't normally written with a Sharpie on a piece of torn cardboard?) One could assume that our plates were full, right?

Wait, don't answer that just yet. We've been covering Visual Studio 2005 and the .NET Framework 2.0 since its early beta incarnations, and as with all intricate software, features and specifications tend to change somewhat before the final release. That's what betas and community previews are for: gathering information about what works well, what's not as important to users, and what needs a bit more polish.

In some instances, we covered technologies and techniques that later saw some modification before reaching the shrink-wrap stage. Some people might be a bit annoyed if this happened, but not us. Watching products improve and evolve is part of the thrill of getting your hands on an early version. Many readers found bugs that were fixed, benefiting thousands of your peers.

But all this change begs the question of how we keep MSDN Magazine readers updated with the most current information on the final release of Visual Studio 2005. That's where this special edition comes in. We decided that no matter how busy we are, our first priority should be to make sure you have the most timely information. This issue contains the best of our Visual Studio 2005 coverage from the past two years, updated for the final release.

This release is huge, and well worth the wait. Comparing the assemblies in the framework directories for versions 1.1 and 2.0, almost 4,500 new classes have been added for 2.0, and the number of public members has grown to over 400,000! (You can download the code used to determine these numbers from the MSDN Magazine Web site.) But listing large numbers won't do justice to the wealth of functionality added. For every type of application that can be developed with Visual Studio, there are improvements that make developing such applications simpler and faster, resulting in higher quality products developed in a fraction of the time it previously would have taken (and that's saying something, given the productivity gains already available with managed code).

The base class libraries have been flushed out with significant improvements to the Console class, better EventLog functionality, significant improvements to support globalization, support for GZIP compression, easier manipulation of files, serial I/O device support, version-tolerant serialization, multithreading improvements, enhanced tracing support, strongly typed resources, a wide variety of enhancements to the System.Xml namespace, and a whole lot more. The common language runtime itself has also taken leaps and bounds, with garbage collection enhancements, marshaling advances, support for generics, major performance improvements, new hosting APIs, dynamic methods, much improved NGEN support, and a plethora of low-level improvements too numerous to mention.

ADO.NET brings support for server enumeration, asynchronous processing, multiple active resultsets, bulk copy operations, support for new SQL Server functionality (such as notifications and user-defined types), provider statistics, integration with the new System.Transactions namespace (which allows for easier and more efficient transaction management), connection pooling control, built-in tracing, batch processing improvements, DataSet and DataTable enhancements, and provider-independent APIs.

Distributed programming has been improved dramatically with an amazing set of new functionality in the System.Net namespace. The new System.Net.NetworkInformation namespace provides applications with statistics on IP, IPv4, IPv6, TCP, and UDP network traffic, while the new Ping class allows an application to determine whether a remote computer is accessible over the network. Much improved SMTP support has been provided, HttpListener allows any of your applications to host a Web server within its process and respond to and process requests as they arrive, and the NetworkChange event allows your applications to respond to events raised when the computer's IP address changes. The namespace has also been flushed out with FTP support, caching of HTTP resources, automatic proxy discovery, tracing instrumentation for debugging and diagnostic purposes, and security and performance improvements to the Socket and Uri classes. In the same vein, .NET remoting now supports IPv6 as well as authentication and encryption using the Security Support Provider Interface (SSPI). It sports a new named pipes channel for fast inter-process communication as well as improved support and performance for network load-balanced remote clusters. Web services in ASP.NET have also been improved, supporting SOAP 1.2 and the WS-I Basic Profile 1.0. Additionally, client proxies generated for multiple Web services that define a shared type can pass instances of that type from one service to another; proxies also support the same new asynchronous event-based programming pattern that is supported in other areas of the Framework.

Visual Studio sports much improved IntelliSense, support for code snippets, improved application publishing capabilities, and a variety of code analysis tools—not to mention all of the functionality, designers, tools, and integration possibilities provided by Team System. With Visual Studio 2005, you can compile your application to run on a 64-bit operating system, either as a native application or under WOW64. And debugging support has also had a dramatic facelift, with support for edit-and-continue, debugger visualizers and debugger display attributes, and a whole lot more.

Not to be left behind, Visual Studio Tools for Office has come a long way for version 2.0. It now sports support for Outlook add-ins as well as new project templates for Word and Excel. A visual designer is included so that documents and templates open inside Visual Studio as a design surface (you can drag and drop Toolbox controls). Action panes and smart tags are a cinch to incorporate, and a new set of host controls have been provided to extend some of the built-in Office objects. But the piece de resistance? You can access and manipulate the data inside an Office document on a server without running the relevant Office application.

Do you do development for mobile devices? The new version allows you to target Pocket PC 2003, Smartphone 2003, and custom Windows CE 5.0-based SDKs. The Device Emulator runs code compiled for ARM processors, allowing you to run, test, and debug a run-time image. Visual Studio supports CAB file generation using Visual Studio Setup and Deployment projects, and it includes filtered IntelliSense and the ability to convert unsupported controls. The list goes on.

Dizzy yet? Well, that's just the tip of the iceberg. We offer a guided tour of what's new in C#, C++, Visual Basic, Windows Forms, ASP.NET, Team System, security, and generic types. This special issue of MSDN Magazine should provide you with plenty of reasons to enjoy the winter season while basking in the warmth and glow of your monitor.

—S.T. and J.T.

Thanks to the following Microsoft technical experts for their help with this issue: Scott Berry, Anson Horton, Shawn Burke, Rob Caron, Yves Dolce, Shawn Farkas, Rob Howard, Frank Redmond, Grant Richins, and Herb Sutter.

Active Directory, Excel, IntelliSense, Microsoft, MSDN, SharePoint, Visual Basic, Visual C++, Visual C#, Visual SourceSafe, Visual Studio, Windows and Win32 are either registered trademarks or trademarks of Microsoft Corporation. Other trademarks or tradenames mentioned herein are the property of their respective owners.

MSDN Magazine does not make any representation or warranty, express or implied with respect to any code or other information herein. MSDN Magazine disclaims any liability whatsoever for any use of such code or other information.