Before diving into the classes that make up the Phoenix class library, it might be helpful to understand how the the classes are organized into assemblies.
The assemblies that comprise Phoenix are loosely mapped to a logical tier. There are three main tiers as follows:
- User Interface Layer: Phoenix.UI.dll and Phoenix.dll, contains controls and common code that is used to present information to the user. Phoenix.dll is generated by a WebDeployment project that merges all page and usercontrol code and content into a single assembly. It is not part of the Phoenix class library and therefore is not documented.
- Business Logic Layer: Phoenix.BLL.dll, contains the classes needed to model business objects, relationships and rules. The BLL contains the core classes of the system, such as User, Workspace, PhoenixFolder and PhoenixObject. It provides a bridge between the user interface tier and the data access tier, and is where you as the developer will probably be spending most of your time.
- Data Access Layer: Phoenix.DAL.dll, contains all the code needed to communicate with the data storage.
In addition, there are two assemblies that can be referenced globally and used by all tiers. These assemblies have no dependancies.
- Phoenix.Utilities.dll, contains mainly low-level, commonly used routines. The Module system is also housed in this assembly which explains why every assembly references Phoenix.Utilities.dll.
- Phoenix.Resources.dll, contains all localizable text and phrases used through out the system. Since the methods in this assembly are auto-generated by Visual Studio from the .resx files, this assembly is not part of the Phoenix class library.
Finally, the Phoenix services are compiled into a single assembly independant from the rest of the library.
- Phoenix Services: Phoenix.Services.dll, contains the code that runs as a seperate process inside a Windows service. This assembly references both the BLL and DAL tier.
Assemblies and contained namespaces
| Phoenix.dll |
|---|
| ASP |
| Phoenix.UI.dll |
|---|
| Phoenix.HttpHandlers |
| Phoenix.UI |
| Phoenix.BLL.dll |
|---|
| Phoenix.BLL.ImportExport |
| Phoenix.BLL.Library |
| Phoenix.BLL.Registry |
| Phoenix.BLL.Search |
| Phoenix.MapEngine |
| Phoenix.Saga |
| Phoenix.DAL.dll |
|---|
| Phoenix.Admin |
| Phoenix.DAL |
| Phoenix.Providers |
| Phoenix.Utilities.dll |
|---|
| Phoenix.Utilities |
| Phoenix.Modules |
| Phoenix.Setup |
| Phoenix.Services.dll |
|---|
| Phoenix.Services |
| Phoenix.Services.Email |
| Phoenix.Services.File |
| Phoenix.Services.Search |
| Phoenix.Resources.dll |
|---|
| Resources |
Namespaces
| Namespace | Description |
|---|---|
| Phoenix.Admin | Contains various classes to provide access to the file system. |
| Phoenix.BLL.ImportExport | Workspaces are exported and imported using the classes in this namespace. |
| Phoenix.BLL.Library | Classes that manage all the various modules within Phoenix. |
| Phoenix.BLL.Registry | Classes in this namespace are responsible for managing the Phoenix node registry. |
| Phoenix.BLL.Search | This namespace provides local and remote search operations. |
| Phoenix.DAL | This namespace houses the Phoenix data access layer. |
| Phoenix.HttpHandlers | The namespace contains all the classes that directly implement custom HttpHandlers. Some examples include GetObjects and GetKML. |
| Phoenix.MapEngine | All operations that relate to the OGC standards and all mapping functions in general are found in this namespace. |
| Phoenix.Modules | The Phoenix.Modules namespace is the interface to the plug-in architecture. Each page in Phoenix can be mapped to a Module. The ManagedPages class is responsible for finding the appropiate page based on a given Module Code. |
| Phoenix.Providers | This namespace contain customized implementations of the profile provider, role provider, and membership providers that are native to ASP.NET2.0. |
| Phoenix.Saga | The Saga sub-system operates as a self-contained set of operations. |
| Phoenix.Services | The Phoenix services and code used by the installer are implemented in this namespace. |
| Phoenix.Services.Email | The PhoenixEmail service is implemeneted in this namespace. |
| Phoenix.Services.File | The PhoenixFile service is implemeneted in this namespace. |
| Phoenix.Services.Search | The PhoenixSearch service is implemeneted in this namespace. |
| Phoenix.Setup | Classes useb by the installer and configuration tool. |
| Phoenix.UI | Classes in this namespace are used by the web layer. Their main function is to extend and customize existing server controls. |
| Phoenix.Utilities | This namespace contains various low-level, housekeeping classes. |
