Visual Studio "Whidbey" is a 2.0 release. Some of the new features include: generics, iterators, partial types, operator overloading, C++ templates, code refactoring and expansions, XML documentation in VB, edit and continue, data tips and data visualiser, a .NET implementation of STL (STL.NET), OpenMP.

Smart Clients
One of the key goals is productivity enhancements: from site membership to data access, Whidbey reduces the amount of code that needs to be written. The DataSource Fields tool window allows you to easily create data-bound controls. The documentation now includes more code samples and links to community sites and annotations.

New set of My. classes in VB to make simple code easier. For example:

   With My.Computer.Printers.DefaultPrinter
      .OutputType = PC.OutputType.Preview
      .PrintLine ("Here is some text...")
      .PrintLine ("Below is some ink from a Tablet PC:")
      .PaintPicture (Me.InkPicture.BackgroundImage, 35, 300)
      .EndDoc()
   End With
    

SmartTags automate common forms tasks (for example, a button can be easily anchored). A new Publish Wizard can be used to create a URL-based deployment location using ClickOnce.

ASP.NET
For web development, you can now open and work with web sites using FTP directly as an alternative to FrontPage Server Extensions. ASP.NET can now generate XHTML, and there are validators to help verify that a page can be viewed by different browser types.

ASP.NET includes a Master Page designer for template-based visual inheritance; you can use this to generate the generic furniture that should be displayed on each page. Master pages are stored with a .master file extension, and then other .aspx pages can be based on this master page. New controls include the ZoneBar control, which provides a web part-style container that can be minimised, moved and deleted automatically.

Site membership is dramatically easier - there's a series of login controls (Login, PasswordRecovery, LoginStatus etc.) which automate the process of creating a personalised site. ASP.NET does more than just providing login / password services, however - once a user has been logged in their progress through the site can be tracked based on their details.

The new GridView control automatically handles paging, sorting, editing and deletion of data; a wizard allows it to be automatically configured using a web service.

Page layouts containing ZoneBars can be personalised with just a single line of code:

   PagePersonalization.SetDisplayMode(WebPartDisplayMode.Catalog)

This information is persisted across sessions.

Mobile Devices
PDC attendees will receive a Tablet PC SDK Update that will enable context tagging for controls (so that a numeric-only text box can be set up to only recognise numeric device).

There are plenty of new features emerging on mobile devices for developers to support. Demonstrated were a number of new innovative devices that have recently released:

  • A Pocket PC from Toshiba with 640x480 resolution
  • A new Pocket PC Phone Edition 2003 device with a built in webcam
  • A new SmartPhone with a built-in keyboard
  • A HP iPAQ 4155 Pocket PC with built-in Bluetooth and WiFi in a very small form factor.

Here's a sample of how the .NET Compact Framework will enable developers to build really complex SmartPhone applications using .NET (the demo was actually done on Everett: VS.NET 2003, rather than Whidbey):

   // Grab a picture
   Camera c = new Camera();
   pictureBox1.Text = c.GetImageFile();
   pictureBox1.Image = new Bitmap(pictureBox1.Text);

   // Find the current phone location from the mobile operator
   Sensor s = new Sensor();
   Report report = s.CurrentLocation(typeof(AddressReport));
   string zipCode = 
      ((AddressReport)report.ReportData).PostalRegion.ToString();

   // Get the weather at the current location
   WS.WeatherServices ws = new myClaim.WS.WeatherServices();
   WS.WeatherForecast forecast = ws.GetWeather(zipCode);

Whitehorse
Whitehorse is part of Microsoft's Dynamic Systems Initiative. It builds into Whidbey to provides designers to help visualise a service-orientated architecture. You can create service bindings to enable logical to physical architecture mappings. From a Component View tool window, you can drag and drop services to the relevant zones and tiers and validate that they match enterprise policies (for example, impersonation must be enabled).

Prefast (a tool used internally within Microsoft to detect buffer overruns) will be included within Whidbey.