Contact Us
Refresh Software Corp.
313 Speen Street
Natick, MA 01760
U.S.A.
Tel: + 1-508-318-4480
Fax: + 1-508-318-4481
Applying the Object-Oriented Philosophy to Content Management and Web Development
Read how Refresh Software has applied the principles of Object Oriented programming to the problem of Content Management
Utilizing SR2 to Apply Objected-Oriented Web Development
At the heart of SiteRefresh is the abstraction of the content layer based on the OO model. Essentially this results in any page now potentially being viewed as several or many content "chunks" or content assets that makes up that page. This is a huge departure from the way most CMS approach page management today. By dividing the page up into its represented pieces or content asset objects we can now give them all special attributes. This is how we are now able to take advantage of one of the core concepts of the OO paradigm which is "Polymorphism", every content asset can be consumed at a minimum by using their Core Content Asset interface (common fields).
SR2 applies the concept of defining content through asset types. An asset type is analogous to an OOP class and allows you to define attributes or data fields for each content item. A content asset is similar to an instance of an object of that class. In order to incorporate this OOP type of model into an "enterprise content context" the current candidate objects and their associated relationships and work flows must be exposed and organized through the application of information architecture (IA). Information architecture creates the foundation that allows for further decomposition of the content into objects. It is in the analysis of those objects that patterns emerge to help us define AssetTypes.
The OO approach to enterprise content essentially abstracts the content layer from the presentation format. This promotes the ability for easy content reuse across multiple "views" of the content. For example, a press release content asset may appear in the full text version on a page for presenting press releases while just the title and teaser appears on the home page as a listing of recent press releases. So in this example, the title and teaser may be used in one part of a web site (home page under recent announcements) and the whole body of the document can be used in two other places (the product section and the new release section). This one-to-many relationship for consumption is a key factor in managing and organizing your content for adroit use.
Additionally, the abstraction of the content layer also allows for a clean "separation of concern" between the authoring process and the developing process, i.e. content authors and web developers. This decoupling the content authoring process from the development process frees both groups from the needless corporate interdependencies and in other cases unnecessary entanglements that exist in most corporations today. In other words, the 'template development' responsibilities can be delegated to engineering while 'content development' is the purview of marketing and product stakeholders. This clean "separation of concern" allows both lifecycles (web page template, and content asset) to progress independent of each other.
This separation is only possible though a well understood definition of how the page template and the content object will interact when brought together (defining role and responsibility of the Asset Type). The asset type definition constructs the relationship and the rules of interaction between the content object and the template.
The business benefit when utilizing Object-Oriented Programming
The main advantage of utilizing an object-oriented programming technique over a linear programming technique is that OOP enables programmers to segment programs into modular objects such that when a new module is created, the pre-existing modules do not require modification. Additionally, programmers can simply create a new object, based on an existing object model. In doing so, the new object inherits features from existing objects, making object-oriented programs easier to modify, more cost effective, and providing a quicker time to market. In summary, fast prototyping, easy migration to strongly typed objects, content reuse, separation of roles and responsibility for creating content, dedicated / specific toolset for the task at hand. SR2 - design for success from the bottom up.
