iiFramework Overview
Let’s begin this overview by defining what we mean by an "application framework." An application framework for e-business applications accomplishes the following:
- Manages resources such as users, security, pages, site-wide look and feel.
- Frees the programmer from implementing any of the above mentioned features.
- Allows for quick and robust delivery of new applications.
- Changes as little as possible about how a programmer uses a programming language.
- Allows for customization as necessary to implement the specifications of the application.
iiFramework is a collection of custom tags and application templates which form a complete web-based system for creating websites and managing the following:
- Group and User Security
- Content
- Navigation / Graphics
- Error Management and Reporting
- Site Variables
- Presentation Layer
- Site Creation
- Plug and Play Modules
This article will discuss some of the key elements of a good application framework and how iiFramework implements these features.
User Management and Page Access
How do you manage access to any given page of your website? NTFS security, or a collection of CFIF statements? Imagine a system where you can define an infinite number of "user groups" and the web application pages associated with these user groups. This means the "system" enforces access security.
iiFramework enables this at a "system level" which completely eliminates the need for a programmer to know "who" can have access to a page. There is NO coding necessary in the CFM file to enforce security. The design of the application, and each page, dictates the functionality and data available on the page. The administrator of the site can then declare and change access to each page of the system, without ANY programmer intervention. This saves a significant amount of time and provides support for those customers who change their mind or redefine the "users" of their system along the way to the finished product.
If you are familiar with the way NT manages NTFS security, iiFramework utilizes a very similar architecture. The system automatically enforces user login for access to a secured page. It also handles midstream user authentication as in form posts, links to other pages in the site, as well as, user timeouts. The security system builds its own user session tracking system which can be configured to disallow duplicate logins among different ip addresses. The security system is scalable across multiple web servers.
Content Management
So here’s another question – What is content management and what would be the requirements of a content "management" system? If you take away the logo, header bars, navigation bars and buttons, and any custom programmed dynamic data, you would be left with content. This content can be simple text or rich HTML, including photos and the like. The content management system should address the following requirements.
- Allow a content manager to add new pages to a site and allow the definition of access to the page without programmer intervention.
- Allow a content manager to edit content on any page of the system without the knowledge of HTML programming.
iiFramework implements these two requirements simply and elegantly. Soon, we will be adding Content Availability Scheduling, something Spectra currently provides. With this kind of control, the administrator is not dependent on the programmer to manage this.
Our content management system allows a user, with appropriate access to the content management pages, (iiFramework uses iiFramework security to define access to its own administrative pages) to quickly access the content management area for the page that is currently displayed by simply adding a URL parameter: "?EDIT" or "&EDIT." If these URL parameters are used, and the user isn't logged into the system, the user will be prompted with a login screen. Upon successful authentication the user is taken to our WYSiWYG editor where the content, for that page, can be edited.
Navigation Management
All navigational links are controlled by the system. You will not see a link in the left navigation bar if your user group does not have access. The Navigation system also categorizes all links by Section and then Page Category. Sections, Page Categories and Page Links can be easily sorted.
Graphics Management
The system defaults to providing customization of three graphical elements: logo, top header bar and background graphic. You may override these settings with your own custom "header" file, which can include any valid HTML, Javascript, etc. You can also provide your own custom footer. These settings are managed from the Site Settings Page (Site Variables).
Exception Management and Reporting
The system will automatically notify you, via email (a configurable site variable), of any exceptions that occur during operation of the website. You will receive all details of the ColdFusion exception directly in your email so you can fix the problem quickly, and maybe before the client even knows there is a problem.
The user will not feel so "error jarred" because instead of seeing an ugly white error page, a nicely formatted error page that retains the look, feel and navigational elements of the rest of the site, will be displayed.
Site Variable Management
Each website has its own set of site-wide variables. The variables that can be managed from the administrative area are site default meta keywords, graphics, look and feel "style," email addresses and more.
Presentation Layer Management
Using the Custom Tags included in iiFramework you can provide visual feedback to a user, while allowing the system to manage the color scheme and table formatting style used by the site. Additionally, you can update the documented "style" variables to include the same colors in your custom output. This allows the code to be reused without concern for changing color schemes on other sites.
Site Creation Management
This feature provides for the creation of many websites within the same physical database. This means you can easily support the creation of many small websites without incurring the overhead or the time to set up a new database for each small website. This feature makes iiFramework a perfect system for managing many small or large websites collectively. Also, this allows common backup and database maintenance operations, and easier database mirroring and scalability for future growth and stability of all your web applications, whether small or large.
Plug and Play Module Management
This feature of iiFramework supports the creation of a new "module" in one site and then easy propagation of the "pages" necessary to define that module, across one or more iiFramework sites. The process is easy and robust. It "learns" about the security profile, content and code used to create the module and then "copies" these features into the target site(s). Of course you can then modify any of these attributes once they are installed in the new site.
Summary
Everyone should be using iiFramework. It will save you time and money, make you a better resource for your clients, and make your business more PROFITABLE! iiFramework eliminates most of the production issues associated with "post-install" syndrome, by providing you a firm foundation for your development project.