Introduction :

There is an enormous amount of generic code and other resources in the public domain for Notes developers to apply to their own applications. The .Domino Framework has been developed as a way of leveraging this code by providing a extendable framework into which code can be placed and easily shared across multiple applications. A lot of the functionality provided in the framework is not unique - much of it is readily available in the public domain. The power of the framework comes in the way the code is structured and implemented.



Using well established principles for software design the .Domino Framework encourages developers to separate the business logic from the presentation of the data. The .Domino Framework provides Lotus Notes developers with an Object Oriented architecture for rapidly developing and deploying highly quality applications. The framework attempts to provide a practical balance between good software design and Rapid Application Development (RAD). Because the LotusScript scripting language is very similar to Visual Basic, the framework seeks to take many of the good ideas developed for the VB.Net framework developed my Microsoft. These have been adapted into a Lotus Notes context.





Benefits:

Code Reuse: The framework seeks to improve the productivity of Notes Developers by facilitating the reuse of code. This is done by separating out functionality that is common across multiple applications and code specific to a single application.



Application Interaction: The process of applications interacting is simplified (as per Se vices Oriented Architecture) by having each application define how it can be accessed/manipulated within class libraries it controls. It becomes possible to implement the concepts of SOA even without utilizing Web Services. The advent of new capabilities such as Composite Applications will make this an important capability moving forward.



A standard UI for applications making applications easier to use (less training) and providing a consistent UI for integration into portals/mash-ups.



Developer Toolkit: A series of Notes Developer tools are also included in the Framework database as an aid to Notes application development.



Requirements:

The .Domino Framework has been design to work with Notes 6.0 or later. Over time fetaures will be added that exploits the power of Notes 8.0, especially Composite Applications. The current release targets Notes client applications but Web client functionality will be progressively added over time.



Key Principles:

A significant proportion of code developed for most applications is not unique to that one application. If an effort is made to take the generic components and separate them from application specific components it is possible to build components that can then be used by other applications with little or no additional programming effort.



Wherever possible adopt commonly accepted object oriented programming practices.



Where possible, adopt standards from existing Lotus Notes best practices e.g. the field Categories is commonly used in many standard Notes template to categorize/tag documents.



Where possible, adopt standards adopted by the .Net Framework (e.g. namespaces, class names, method names, property names etc)



Don't get too hung up on theories. Notes differentiates itself from most other development alternatives because of the speed with which Notes applications can be developed. It is important to retain that edge by ensuring a practical approach is taken.



In attempting to be All things to All people there is a danger of becoming Nothing for Everyone. The .Domino Framework recognizes that need for it to be customized to meet the specific needs of organizations or even individual departments. Every effort is made to design the .Domino Framework in such a way as it can be asily customized to meet those needs whilst maintaining the ability to leverage new release of the framework.



Key Components:

Presentation Layer: A standard UI for applications is provided with common UI components that can be shared across multiple applications. The standard UI implements IBM's user experience guidelines for IBM Lotus rich client applications.

Business Logic Layer: As far as practical the business logic layer is separated from the presentation layer via a series of classes that are consolidated into namespaces (LotusScript libraries)

Developer Tools: A series of tools and resources are also made available within the .Domino Framework database.