This section will introduce you to the Phoenix solution and how it is organized.
This topic contains the following sections.
The Phoenix Solution
Phoenix is written entirely in ASP.NET and C# and includes several components which are all contained in one Visual Studio 2008 solution. Each component can be built seperately as required.
Phoenix Web Application
The web application is a ASP.NET Web Site project which points to http://localhost/Phoenix.
PhoenixServices
The PhoenixServices are a collection of Windows services that are built as one Windows Console application. Once built, they cannot be started directly, and must be installed using the Phoenix installer.
Phoenix Node Configuration Tool
This is Windows form application that is used to create and configure a new Phoenix node on your server. It is installed by the Phoenix installer and can be run anytime after installation is complete.
Prebuild Utility
The prebuild utility is a Windows Console application that is run prior to building the installer project. It's job is to ensure that files required by the Phoenix installer are present and up-to-date. It also compresses the files from the Phoenix web application (pages, images, scripts etc) and secures all stored procedures for storage in the installer.
prebuild itself is not part of the final package.
Phoenix Installer
The installer contains the Phoenix Web application, the PhoenixServices and the Phoenix Node Configuration Tool. It's job is to copy all components to the installation folder, and install the Windows services.
The Projects of the Phoenix Solution
The solution is comprised of twelve projects outlined below:
| Project | Type | Description |
|---|---|---|
| Phoenix.BLL | Class Library | Contains the business logic layer classes. |
| Phoenix.DAL | Class Library | Contains the data access classes. |
| Phoenix.Utilities | Class Library | Contains low-level utilites and common code. |
| Phoenix.Database | Database | Sql scripts (sprocs, functions, tables and views). |
| NodeConfigTool | Windows Forms Application | The Phoenix Node Config Tool that is run after installation to create a node. It customizes the Sql scripts and runs them to create a database. It creates a web folder and a content folder, and extracts all required files. It creates the ENVIRONMENT variables needed by MapServer. Finally, it starts the Phoenix services. |
| PhoenixWeb | Web Deployment Project | Precompiles the web application and merges the output to form a single assembly. |
| Prebuild | Console Application | A utility that is run prior to building the installer. It ensures all Sql scripts are up to date and compressed, and removes all uneeded files from the precompiled web folder before zipping it up. |
| Phoenix.Installer | Setup | The installer checks for system prerequistes and creates and extracts all files into the installation folder. It then installs the Phoenix services. |
| http://localhost/Phoenix | Web Application | Contains the web pages, web services and static images that make up Phoenix. |
| Phoenix.Services | Console Application | The Phoenix Services are installed as Windows services by the installer and provide additional support to the Phoenix web application. |
| Phoenix.Resources | Class Library | Contains all the localized text and the code required to provide global access to the resource information. |
| Phoenix.UI | Class Library | Contains the server controls and support code for the user interface. |
The screenshot below shows the Phoenix solution loaded in Visual Studio. Notice how the projects are grouped into solution folders which roughly correspond to the application tiers.

