Integrity Over Profit
Atomic Web Development
Atomic Web Development (AWD) is a manner of developing web-based software that focuses on componentization and standardization. Componentization allows for loose-coupling of parts of the application so that changing a part of the application has little to no effect on other parts of the application. Standardization brings order to what will inevitably be hundreds, or even thousands of components working in unison.
The business advantages
Ultimately the use of AWD is about improving the bottom line for the host business. AWD provides the following business advantages over traditional script-based or object-oriented programming web development:
- Drastically reduces development personnel requirements
- Drastically reduces development time
- Drastically reduces maintenance
- Greatly increases flexibility
- Greatly increases performance
- Greatly increases scalability
- Greatly increases ease of integration
Implementation overview
Atomic Web Development consists of the following main components, each made up of many smaller components.
Database Component
Where all application data is stored and stored procedures for accessing the data reside. I implement this component as a database in Sql Server.
Platform Services Component
Contains generic classes that are used ubiquitously throughout the web application. I implement this component as a namespace in .NET
Data Access Component
Contains classes that utilize the Platform Services Component classes to create, update, delete, and retrieve data in the database. This Component also contains classes that return Xml that is built by utilizing a class I wrote named HierarchicalXml. HierarchicalXml allows me to transform denormalized recordsets retrieved from the database into whatever hierarchical Xml structure I define. I implement this component as a namespace in .NET.
Xslt Component
Contains the Xslt files used to transform the Xml retrieved from the Data Access Component into whatever text-based format is needed by the requesting call – usually Html. I implement this component as a collection of Xslt files in a directory named Xslt under the web application root.
Web Component
Contains the web pages, javascript files, images, and any other assets that make up the web application. I implement this component as a namespace in .NET.
Atomic AJAX Component
Contains the implementation for executing asynchronous XmlHttp requests and is the backbone of drastically reducing page reloads throughout the application. I implement this component using Javascript.
Servers Component
Contains the web pages that are used solely for retrieving data that is only meant to fill out a portion of a page or be used for specific functionality – I refer to this type of data as Atomic data. This could mean executing requests from the Atomic AJAX Component that return Html, executing requests from a flash object that return Xml, an API implementation that returns Xml, or any other atomic request meant to retrieve only the necessary data in the necessary format. I implement this component as a collection of .aspx web pages in a directory named Servers under the web application root.
Atomic componentization and standardization
Those are the main components, each comprised of many, smaller components, which in turn are comprised of even smaller components and so on down to an atomic level wherein each component is comprised of only a few lines of code. This means that the application can grow to contain thousands of atomic component implementations, which brings me to the linchpin of AWD. Standardization through the use of strict naming conventions and development practices is the linchpin of AWD because standardization brings order to what would surely devolve into chaos in its absence.