.NET 3.5 SP1 and VS 2008 SP1 contain major performance,
deployment, and feature improvements for building client applications.
Tim Sneath has a great blog post that talks about some of
the client improvements here. Below are more details on them:
Application Startup and Working Set Performance
Improvements
.NET 3.5 SP1 includes significant performance improvements
to the CLR that enable much faster application startup times - in particular
with "cold start" scenarios (where no .NET application is already
running). Much of these gains were achieved by changing the layout of
blocks within CLR NGEN images, and by significantly optimizing disk IO access
patterns. We also made some nice optimizations to our JIT code generator
that allow much better inlining of methods that utilize structs.
We are today measuring up to 40% faster application startup
improvements for large .NET client applications with SP1 installed. These
optimizations also have the nice side-effect of improving ASP.NET application
request per second throughput by up to 10% in some cases.
New .NET Framework Client Profile Setup Package
.NET 3.5 SP1 introduces a new setup package option for
developers building .NET client applications called the ".NET Framework
Client Profile". This provides a new setup installer that enables a
smaller, faster, and simpler installation experience for .NET client applications
on machines that do not already have the .NET Framework installed.
The .NET Framework Client Profile setup contains just those
assemblies and files in the .NET Framework that are typically used for client
application scenarios. For example: it includes Windows Forms, WPF, and
WCF. It does not include ASP.NET and those libraries and components used
primarily for server scenarios. We expect this setup package to be about
26MB in size, and it can be downloaded and installed much quicker than the full
.NET Framework setup package.
The assemblies and APIs in the .NET Framework Client setup
package are 100% identical to those in the full .NET Framework setup package
(they are literally the same binaries). This means that applications can
target both the client profile and full profile of .NET 3.5 SP1 (no
recompilation required). All .NET applications that work using the .NET
Client Profile setup automatically work with the full .NET Framework.
A developer can indicate that the client application they
are building supports both the .NET Framework Client Profile and the full .NET
Framework by pulling up the project properties page for a client application
within VS 2008 SP1. Within the project properties page they can select a
new checkbox that indicates it only requires those assemblies included in the
.NET Framework Client Profile:
Figure 5
VS 2008 will then ensure that the project can
only reference those assemblies shipped in the client profile setup package
(and it will generate a compile error if you try and use a type in an assembly
not included in the client redist). The compiled client application will
then run on machines that have both the full .NET Framework installed, as well
as machines that only have the .NET Framework Client Profile installed.
If you have a machine that only has the .NET
Framework Client Profile installed, and you try and run a .NET application on
it that did not mark itself as supporting the .NET Framework Client Profile,
then the CLR will refuse to run the application - and will instead prompt the
end-user to upgrade to the full .NET Framework package. This ensures that
applications always run correctly - and that developers do not need to worry
about missing assembly exceptions at runtime if a user tries to run an
application that requires the full .NET Framework on a machine that only has
the .NET Framework Client Profile installed.
We believe that a large class of .NET client
applications will be able to use this new .NET Client Profile setup to
significantly speed up their installation, and enable a much more consumer
friendly experience.
New .NET Framework Setup Bootstrapper for
Client Applications
.NET 3.5 SP1 introduces a new
"bootstrapper" component that you can use with client applications to
help automate making sure that the right version of the .NET Framework is
installed.
The bootstrapper component can handle
automatically downloading and installing either the .NET Framework Client
Profile or the full .NET Framework Setup Package from the Internet if your
machine doesn't have either of them installed. The boostrapper can also
automatically handle upgrading machines that have a previous version of the
.NET Framework installed. For example, if your machine already has .NET
3.0 installed, and your application requires .NET 3.5, the bootstrapper can
optionally download just the update files needed to upgrade it to .NET 3.5 (and
avoid having to download the full .NET Framework setup download).
The setup bootstrapper component can be used
with both ClickOnce based setup packages, as well as with third party installer
products (like Installshield). The boostrapper optionally enables fully
customized setup branding experiences (splash screens, custom setup wizard
steps, etc) and should make it much easier to build optimized client setup
experiences.
ClickOnce Client Application Deployment
Improvements
.NET 3.5 SP1 includes several improvements for
ClickOnce deployment of both Windows Forms and WPF applications. Some of
these improvements include:
·
Support for the .NET Framework Client Profile (all
ClickOnce features are supported with it)
·
ClickOnce applications can now be programmatically
installed through a ‘Setup.exe’ while displaying a customized, branded install
UX
·
ClickOnce improvements for generating MSI +
ClickOnce application packages
·
ClickOnce error dialog boxes now support links to application specific support sites on the Web
·
ClickOnce now has design-time support for setting up file associations
·
ClickOnce application publishers can now decide to
opt out of signing and hashing the ClickOnce manifests as they see appropriate
for their scenarios.
·
Enterprises can now choose to run only Clickonce
Applications Authenticode signed by ‘Known Publishers’ and block anything else
from running
·
FireFox browser extension to support Clickonce
installations using FireFox browsers
Windows Forms Controls
SP1 adds several new Windows Forms controls -
including new vector shape, Printing, and DataRepeater controls:
Figure 6