Click here to Skip to main content
65,938 articles
CodeProject is changing. Read more.
Articles
(untagged)

Avalon Application Type (By Deployment)

0.00/5 (No votes)
23 Aug 2005 1  
In the Vista world, application type selection is based on security requirement and deployment method but not on user interface requirements. This article describes various application types supported by Avalon sub-system of the Vista operating system.

Introduction

In the Vista world, application type selection is based on security requirement and deployment method but not on user interface requirements. From the security and deployment point of view, there are two types of applications in Avalon:

  1. Express Application: This application is deployed from a Web server and can be executed only from a Web-browser with limited security rights. This application is similar to a typical Web application, but can have a rich user interface by utilizing Avalon elements.
  2. Installed Application: This application can be deployed from a Web server using ClickOnce technology or installed using Windows Installer. Like a typical desktop application, it is hosted in its own window and can't be executed in a Web browser.

Express or "Web" Application

In the pre-Vista world, before starting application development, typically the application designer had to decide on the type of application depending upon user interface and deployment model. If the application required a complex UI, the designer usually went in for a Windows Application and if ease of deployment was required, a Web Application was normally preferred.

With the introduction of Vista, that decision will be hardly required as Vista supports express application type which supports complex user interface but yet supports ease of deployment.

User Interface

In terms of user interface and user experience, Express applications start from where typical Web applications end. These applications can use all "safe" Windows User Interface controls such as TabControl, menus, toolbars and can use advanced Windows techniques such as 3D graphics, animations, and transformations.

How to Create

To create an express application, select "Express Application" project type in Visual Studio.NET 2005.

Sample image

On building this project, the compiler creates three files. The name depends on the project, but they have the following extensions:

  1. XAPP: The deployment manifest. This is used by ClickOnce to deploy the application.
  2. exe.manifest: The application manifest. This contains the standard application metadata that is created for any managed application.
  3. EXE: The application's executable code.

The user can deploy an express application by navigating to an XAPP file upon which ClickOnce will download and deploy the application binaries on the user's machine. When the user navigates to the XAPP file next time, ClickOnce validates for any application update and if not available, runs the already downloaded version.

Restrictions

It has much fewer access rights than a typical desktop application but permission level can be elevated by the user's permission. Needless to say, Express application cannot use unmanaged code or perform "unsafe" operations like accessing the registry. Even some parts of WinFX API are inaccessible in these applications and will throw security exception on use.

Summary

This hosting model may be considered if:

  1. Application does not need to be used offline.
  2. Avoid dialog box requesting permission for the deployment to proceed.
  3. Providing users to have a seamless Web-like experience, including the ability to navigate from the application to a Web page and back.
  4. Application can run with Internet Security Zone permissions, which provide only limited access to system resources such as the file system.
  5. Application does not require any "Avalon" elements that are not allowed in the Internet zone.

Installed Application

This application is similar to a typical desktop application which can have a complex and rich user interface and can be installed on the user’s machine using ClickOnce or MSI installer.

User Interface

Installed applications can use all features of the "Avalon" sub-system.

How to Create...

To create an express application, select "Avalon Application" project type in Visual Studio.NET 2005. On building this project, the compiler creates three files. The name depends on the project, but they have the following extensions:

  1. APPLICATION: The deployment manifest. This is used by ClickOnce to deploy the application.
  2. exe.manifest: The application manifest. This contains the standard application metadata that is created for any managed application.
  3. EXE: The application's executable code.

The user can deploy the application by navigating to APPLICATION file upon which ClickOnce will prompt the user to download and deploy the application binaries on the user's machine. The other way is to create an MSI installer to install the application, create shortcuts and list the application in Add/Remove program files.

Restrictions

This application can perform operations and access resources which are permitted for the current user using the application.

Summary

This hosting model may be considered if:

  1. Application requires full access to system resources such as the file system or registry.
  2. It is acceptable to have dialog box request permission from the user before the application can be deployed.
  3. Application needs to use "Avalon" elements that are not allowed for express applications.
  4. Application needs to run in a standalone window.
  5. Ability to use the application offline.

Switching between Express and Installed Application

Installed and Express applications are created in a very similar way and they differ mostly by project type's compiler settings. If an application only contains code which can be executed in Internet security zone, the application can be converted any time from express to installed (or vice versa) just by changing compiler settings and recompiling the project.

History

  • 23rd August, 2005: Initial post

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here