Game Development Reference
There are problems and limitations with web applications, especially when it
comes to performance, security, and browser limitations. The biggest limitation
with a web application is the lack of offline support. Additionally, user interface
functionality is quite poor; things like drag and drop support is very hard or even
impossible to do. Web applications also consume a lot of server resources and
bandwidth because things have to be done with a round trip to the server, followed
by a waiting period. Applications that require print support are limited to “print
screen” with hardly any formatting control. There are some plugins and ActiveX
controls that help to alleviate these problems, but they tend to suffer from the same
deployment problems that a lot of the desktop applications have. The ideal solu-
tion would be to find a balance between web and desktop application deployment.
There have been some past attempts to remove these burdens from configuration
and deployment managers, but no single solution has presented itself that could
solve all the problems. Aside from traditional deployment methods like MSI pack-
ages, the initial release of the .NET 1.0 Framework provided the ability to launch
applications directly from a web site such as http://localhost/application.exe (also
known as href-exes), but this method usually required security policy changes on
the client, which meant that an MSI package had to be run first. This method does
not support the idea of an offline mode.
Recently, a couple of managed libraries were made available that aided in the
updating of application versions. Both the Updater Application Block (UAB) and
Jamie Cool's AppUpdater libraries support the ability to download new versions
of a product to the desktop, eliminating the security and performance concerns of
href-exes. The downloaded applications are stored on the local disk, so offline
mode was supported.
Version 2.0 of the Microsoft Visual Studio .NET and the Microsoft .NET
Framework provide a new technology called ClickOnce, which allows us to devel-
op desktop applications that are deployed using a safe, system-controlled and
secure installation process, and are updated automatically from a centralized server
location. This is all made possible because .NET applications are designed for
application isolation and zero-impact deployment (also known as xcopy deployment).
This chapter will cover the creation, deployment, launching, and updating of a
ClickOnce application using the Visual Studio 2005 IDE. ClickOnce deployment
can be done manually by copying the files, the application manifest, and the
deployment manifest to the deployment location, but the manual creation of the two
manifest files is beyond the scope of this text.