Portal UI Architecture

Portal UI Layers

The figure below shows the major portal UI projects and how they depend on each other. (For an introduction to the portal page design, see Portal Page Layout.)

Open Foundation

Open Foundation provides a common library of objects used to automatically convert code to C#. Written in both Java and C#, this layer wraps the Java JDK and the .NET SDK and abstracts the differences between them. It provides a common interface and a common implementation of the base classes. All portal UI projects are written in Java using Open Foundation and converted ("jumped") to C#. For a list of interfaces and methods, see the Open Foundation API documentation.

UI Infrastructure

UI Infrastructure contains the majority of the portal infrastructure code and a number of frameworks. The project includes the following modules: HTML Elements and Constructs, Activity Space, Warmup Servlet, Editor Framework, Tree Control. These components are independent from the Portal Server and are implemented as a generic infrastructure that works with any Web application. All portal UI projects use UI Infrastructure. For a list of interfaces and methods, see the  uiinfrastructure API documentation.

Portal UI Infrastructure

Portal UI Infrastructure is another level of infrastructure and frameworks that mirrors UI Infrastructure and contains the implementation that depends on the Portal Server API. For example, the implementation of the tree in the UI Infrastructure project is a generic tree of items, whereas the version of the tree in Portal UI Infrastructure is a tree of PTObjects (i.e., Users, Groups, Content Crawlers, etc.).

Portal Pages

Portal Pages contains the source code for most of the portal's end-user pages. This project is divided into three main categories: admin pages (pages under Administration), browsing pages (end-user pages that do not appear under Administration) and common pages (pages common to both Administration and end-user browsing). Within these three categories, packages are separated into feature groups, e.g., browsing.login, admin.editors.group , common.search.

There are many reasons the portal UI is built using a layered approach: