BuildSharepoint has designed a custom framework. The objective is to create a structure which is highly maintainable and scales across hundreds of applications which any organization would like to put in the framework.
The core objective of the framework is to create and shift a large part of GUI and business logic into simple XML files.
This has the following advantages
- A large part of the application will get standardized allowing changes in one place to get reflected across the application. Imagine the XML file as a css file for controls. Like a css file standardizes the styles across the application, the XML file standardizes the controls across the application.
- The application does not need to be recompiled for minor changes. This reduces the headache of DLL versioning, reinstalling, recompiling and restarting the IIS.
- Future applications can be developed on the same architecture allowing a consistent approach across all applications.
- Specific styles of individual coders do not impact every application as the development team follows a standardized approach across applications
- The approach opens up the possibility of easier porting of application to Sharepoint 2010 or making the application bilingual.
Basic Flow of the Framework
Application first looks at the specific page and picks up any custom controls on the page. It then merges that with all the standard controls from the relevant XML file and builds the complete GUI.
The relevant queries are picked up from the XML file and fired against the Data Access Layer. The controls are populated and bound as required. Any custom logic is written in the code behind pages.
The Data Access Layer provides standard queries to fire queries for record set or create/update/delete queries. The DAL is accessed using Web Services.
Rendering a page
- The application loads the XML file corresponding to the page. The XML files will be stored in the application allowing the pages to be rendered quickly.
- It fires any queries which are relevant to populate the controls for the page
- It then loads all the relevant controls for rendering the page. The XML defines all the controls which are required to render the page. The application also loads specific controls from the aspx page.
- The application then populates the controls with the appropriate content. The logic for populating the controls is also mentioned in the XML file.
- The application then renders any page specific java script and renders the page to the client