Wiki source for CategoryWikkaArchitecture


Show raw source

=====Wikka Architecture Category=====
//This subcategory is intended to gather **development and idea documents** about Wikka's (future) architecture. Actual development for a new or improved architecture belongs in the parent CategoryDevelopmentArchitecture.//

===What architecture is===
Architecture (of an application, and Wikka specifically) has a number of aspects:
~-Structure
~-Data model
~-Mechanism

==Structure==
With the term "structure" we refer to how the application is structured in different files, how they are organised in a directory structure, and how they cooperate together.
~//See also: [[WikkaCodeStructure | Wikka Code Structure]] and [[Docs:WikkaSystemFiles | Wikka Files]]//

==Data model==
The data model describes structure of the data for the application, whether in files and / or a database. With respect to the database it refers to the //logical// model as well as the //physical// model described in the DDL (data description language) that (to the extent possible) implements that logical structure. Since (depending on the type of database used) it is not always possible to completely implement the logical structure into the physical database, some of it may have to be implemented as program code instead.
~//See also: [[Docs:WikkaTableStructure | Wikka Tables]] (partial description, physical model only)//

==Mechanism==
"Mechanism" refers to the set of programs (files, classes and functions) that work with the "back-end" data and files and make these available for "front end" functionality that is seen by the end user. In short, it forms the API (application programming interface) that "front-end" functionality makes use of.
~//See also: [[Docs:WikkaCore | Wikka Core]].//

===The function of architecture===
Architecture (in particular Wikka's architecture) should enable creating "core" functionality, as well as provide a platform on which extensions can easily be built making use of the API for functionality and of the application structure for organizing files. A well-designed architecture provides easy extensibility and standards that developers can follow to reliably change functionality or build extensions.

===What architecture is not===
The functionality that is exposed to the end user (whether WikiUser or WikiAdmin) is **not** architecture: instead this functionality //makes use// of the underlying architecture for accessing data and functions. Only the developer sees (and uses or extends) the architecture; through the developer's work the user only sees the user interface and the data it presents.


{{category col="4"}}

----
CategoryDevelopmentArchitecture
Valid XHTML :: Valid CSS: :: Powered by WikkaWiki