In Vista world, application type selection is based of security requirement and deployment method but not on user interface requirements. By security and deployment point of view, there are two types of application in Avalon:
- 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 typical web application but can have rich user interface by utilizing Avalon elements.
- Installed Application: This application can be deployed from web server using ClickOnce technology or installed using Windows Installer. Like a typical desktop application, they are hosted in their own window and can't be executed in web-browser.
Express or "Web" Application
In pre-vista world, before starting application development, typically application designer has to decide on type of application depending upon user interface and deployment model. If application required complex UI, designer usually goes for Windows Application and if ease of deployment is required, Web Application is normally preferred.
With 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 application ends. These applications can use all "safe" Windows User Interface controls such as TabControl, menus, toolbars and can use advanced windows technique such as 3D graphics, animations, and transformations.
How to create...
To create express application, select "Express Application" project type in Visual Studio.NET 2005. On building this project, complier creates three files. The name depends on the project, but they have the following extensions:
- xapp. The deployment manifest. This is used by ClickOnce to deploy the application.
- exe.manifest. The application manifest. This contains the standard application metadata that is created for any managed application.
- exe. The application's executable code.
User can deploy express application by navigating to XAPP file upon which ClickOnce will download and deploy application binaries on user's machine. When user navigates to XAPP file next time, ClickOne validates for any application update and if not available, runs already downloaded version.
Restrictions
It has very fewer access rights than a typical desktop application but permission level can be elevated by user's permission. Needless to say that Express application can not use unmanaged code or perform "unsafe" operations like accessing registry. Even some part of WinFX API is inaccessible in these applications and will throw security exception on use.
Summary
This hosting model may be considered if:
- Application does not need to be used offline.
- Avoid dialog box requesting permission for the deployment to proceed.
- Providing users to have a seamless Web-like experience, including the ability to navigate from the application to a web page and back.
- Application can run with Internet Security Zone permissions, which provide only limited access to system resources such as the file system.
- Application does not require any "Avalon" elements that are not allowed in the Internet zone.
Installed Application
This application is similar to typical desktop applications which can have complex and rich User interface and can be installed on user's machine using ClickOnce or MSI installer.
User Interface
Installed applications can use all features of "Avalon" sub-system.
How to create...
To create express application, select "Avalon Application" project type in Visual Studio.NET 2005. On building this project, complier creates three files. The name depends on the project, but they have the following extensions:
- application. The deployment manifest. This is used by ClickOnce to deploy the application.
- exe.manifest. The application manifest. This contains the standard application metadata that is created for any managed application.
- .exe. The application's executable code.
User can deploy application by navigating to APPLICATION file upon which ClickOnce will prompt user to download and deploy application binaries on user's machine. Other way is to create MSI installer to install application, create shortcuts and list 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:
- Application requires full access to system resources such as the file system or registry.
- It is acceptable to have dialog box request permission from the user before the application can be deployed.
- Application need to use "Avalon" elements that are not allowed for express applications.
- Application to needs to run in a standalone window.
- Ability to use the application offline.
Switching between Express and Installed Application
Installed and Express applications are created in almost similar way and they differ mostly by project type's compiler settings. If application only contains code which can be executed in Internet security zone, application can be converted any time from express to installed (or vice versa) just by changing compiler settings and recompiling the project.