Visual Studio 2008 SP1 Ships
By now, I'm sure you've heard that Service Pack 1 is out for Visual Studio 2008
and the .NET Framework 3.5. The arrival of SP1 for a development tool is often a
sign that it is the moment that it is safe to start working with the product; so
if you've been holding off, it's time to take another look at 2008.
As with any service pack, the majority of the fixes clean up leftover bugs and problems
with the application. This service pack includes a great number of fixes to both
the core framework, and Visual Studio. Two of the areas that I know that have received
a lot of attention are WCF (Windows Communication Foundation) and WPF (Windows Presentation
Foundation). Performance of these two technologies has obviously been a major issue
with the product teams. They now speak of 5-10x improvements in WCF communication,
and 40% startup time improvements for WPF applications. Startup time is often a
major sticking point with users, so getting some speedup there is definitely useful.
has done a great analysis using the NDepend tool. Based on his findings, it looks like over 6,000 methods were changed
(along with other changes). This support page describes many of the fixes that have been
This service pack is a little different though. In addition to the usual collection
of bug fixes, it includes a few new features. (Yes, Microsoft people I spoke with
remember the promise to never include new features in service packs again. However,
that was all the way back in 1997. Last century!) Microsoft is using the release
of this service pack to integrate a number of features that previously were available
as separate downloads. This means that those downloads are now 'blessed', with full
support and a path forward (at least until the next shiny thing comes along, anyway).
Generally, these new tools are targeted at Web and data developers, but there is
some nice news for desktop developers as well. Some of these new features are described
- Entity FrameworkEntity Framework
This framework provides object-relational mapping (ORM) support. It allows you to
define a conceptual model of your data, then map it to the underlying database(s).
ORMs are useful – especially in larger systems – to reduce the dependancies on the
database, and to shield the business layer developers from having to change their
classes whenever the database is changed (for optimization as one example). I'll
be looking at this framework and comparing to nHibernate and Subsonic (my current
favourite ORM) over the next little while. It should be noted that the Entity Framework
works well with LINQ, for those who prefer that coding style.
- ADO.NET Data Services
One of the terms you will hear frequently lately with many of the Web 2.0 sites
is APP, or the Atom Publishing Protocol. This has rapidly become a fairly standard
model for communicating with a Web site using a REST interface. That is, rather
than expose a number of Web services from your Web site, you recognize the standard
HTTP verbs and 'sensible URLs' to carry out standard CRUD functionality. Need to
view a list of customers? Do a GET on the URL /Customers. Need to update a customer?
Do a POST to /Customers(5). ADO.NET Data Services provides an easy way of adding
this functionality using the standard APP model. Behind the scenes, it uses Windows
Communication Foundation (WCF) to do the work, so adding this API to your site is
- ASP.NET Dynamic DataASP.NET Dynamic Data
Now that you have this fancy data access method, you still need to create a site
around it. This is where ASP.NET Dynamic Data steps in. This provides a set of templates
and code to generate a number of the scaffolding pages. You know, all those pages
that you need to update your tables, but don't really want to write for the 50th
time. You can select just what tables are scaffolded, and the end result is a fairly
handsome (see Figure) set of pages for maintaining your database tables. This is
especially useful for administrative tables, where a simple grid-form model of maintaining
the data is acceptable.
- .NET Framework Client Profile
.NET has been growing, we can all see that. In addition, a number of server-side
technologies have been integrated into it (Windows Workflow Foundation as one example)
that you just don't need on every machine. Enter the Client Profile. This is a single
26MB download that strips out all of the server-side functionality, and is ideal
for those clients who will just need to run WPF/Windows Forms applications.
just as ASP.NET AJAX, prototype or jQuery – Web developers find they need to edit
it more and more often. Having the Intellisense provided by Visual Studio makes
this a much more bearable experience.
There is more – much more – in this service pack, but the main message the release
is: if you've been waiting, VS2008 is worth the upgrade.