Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
dev:fk_requirements [2009/04/18 01:45] gavintreadgold few little tweaks |
dev:fk_requirements [2010/03/24 17:47] (current) charlesw |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | This page is designed to capture ongoing discussion about possible moves to a new framework on which to base the next version of Sahana. The intention will be to construct a matrix of identified requirements and capabilities against the frameworks to better assess the choices in an objective manner. Please add anything that you feel require. | + | ====== |
- | ===== Goal ===== | ||
- | To identify the most suitable underlying framework upon which the next version of Sahana should be built. | ||
- | ===== Requirements ===== | + | **//This page has been reformatted. |
- | The requirements section is designed to capture the high-level requirements as well as more detailed capabilities. | + | |
- | ==== High Level ==== | + | ====== Introduction ====== |
- | Following is a list of requirements we look for in a new framework. | + | Throughout early 2010 the Sahana Community has engaged in an open discussion |
- | ==== Detailed Capabilities ==== | + | We invite anyone with relevant information |
- | (intended | + | |
- | If possible, please link to a Wikipedia page that describes | + | |
- | === Database === | + | If you would like to provide details on a framework that has already been introduced to the discussion, please see the Potential Frameworks category below. |
- | * [[http://en.wikipedia.org/ | + | |
- | * [[http:// | + | |
- | * Data versioning | + | |
- | * Audit trail support | + | |
- | * Database abstraction | + | |
- | === Quality Assurance | + | ====== Goal ====== |
- | * Form Validation | + | Host a structured discussion within the Sahana community to evaluate PHP frameworks for future Sahana development. |
- | * Error and Exception Handling | + | |
+ | ====== Framework Requirements ====== | ||
+ | This section is intended to document high level requirements for potential frameworks. | ||
+ | |||
+ | **Wiki Best Practises** | ||
+ | Please keep these tips in mind when adding new criteria: | ||
+ | * Categorize the requirement | ||
+ | * Link to an external site for additional information if relevant or necessary | ||
+ | * Add additional details for any generic or easily mis-interpreted terms. | ||
+ | |||
+ | Feel free to copy this text and use it to add any new categories: | ||
+ | < | ||
+ | ===== Category Header (name your new category here) ===== | ||
+ | * Describe the essentials of this category using two spaces and a bullet point | ||
+ | * For bullets with more detail just use two additional spaces at the beginning | ||
+ | </ | ||
+ | |||
+ | ===== Data/ORM ===== | ||
+ | * Database Engine Support | ||
+ | * ORM Engine Support | ||
+ | * Object Views | ||
+ | * Transaction History with rollback | ||
+ | * Auditing and Statistics | ||
+ | * Custom Data Types | ||
+ | * Triggers and constraints | ||
+ | |||
+ | ===== Development ===== | ||
+ | * Error Handling/Exception Handling | ||
+ | * Uniform Exception Framework | ||
+ | * Proper/ | ||
+ | * Transparency | ||
+ | * Verbosity easily transfigurable | ||
+ | * QA/ | ||
+ | * Usability/ | ||
+ | * Custom test definition | ||
+ | * Integration (automation) | ||
+ | |||
+ | ===== Documentation ===== | ||
+ | * External (by the framework' | ||
+ | * Quality | ||
+ | * Depth/ | ||
+ | * Are their published reference texts? | ||
+ | * How current is the documentation? | ||
+ | * Integration on framework developers site | ||
+ | * Wiki generation | ||
+ | * Internal (within the framework itself) | ||
+ | * Function/ | ||
+ | * Generated code has meaningful in line documentation | ||
+ | |||
+ | ===== Administration ===== | ||
* Security | * Security | ||
- | | + | |
- | * Logging | + | * Long term support and highly stable framework versions offered |
- | * Backup | + | * Framework' |
- | * Unit Testing | + | * Testing |
+ | * Support for 3rd party validation tools | ||
+ | * Built in code validation (ex. pen testing) | ||
+ | * ACL support/ | ||
+ | * Server security integration with 3rd party authorization (ex. Apache) | ||
+ | ===== Features ===== | ||
+ | *Standards Validation Library | ||
+ | *ISO | ||
+ | *IEEE | ||
+ | *W3C compliance | ||
+ | *XML | ||
+ | *XHTML (version & strictness) | ||
+ | *WCAG | ||
+ | *Other | ||
+ | *Other standards bodies | ||
+ | *Custom validation library support (eg, Regex) | ||
+ | *Code sanitation | ||
+ | *Modularity | ||
+ | *Ease of development of modular applications | ||
+ | *Supports template modules for rapid development of additional modules | ||
+ | *Ability enable / disable independent of removal | ||
+ | *Versioning & compatibility support (eg, works with Sahana v 1.0 --> 1.5.x) | ||
+ | *Upgradability | ||
+ | *Client support | ||
+ | *Browser support | ||
+ | *Graceful Degradation (ex: browser with no javascript or other libraries) | ||
+ | *Not dependent on AJAX | ||
+ | *Web Services | ||
+ | *SOAP | ||
+ | *JSON | ||
+ | *ATOM | ||
+ | *REST | ||
+ | *Community support & interest in RESTful services & API | ||
+ | *RSS | ||
+ | *Custom | ||
+ | *Geospacial Capabilities | ||
+ | *Standards | ||
+ | *Engines | ||
+ | *Modular data abstraction (multiple dbs for different purposes) | ||
+ | *3rd party data provider support | ||
+ | *Database Migration/ | ||
+ | *Features | ||
+ | *How does it compare to Rails RAKE? | ||
+ | *Templating | ||
+ | *Support for multiple template engines | ||
+ | *Support for a number of pre-defined template styles within a single app | ||
+ | *Ease of development of templates | ||
+ | *Template inheritance (do changes to parent templates reflect in the children) | ||
+ | *Template flexibility | ||
+ | *Performance | ||
+ | *Statistics & conclusions | ||
+ | *Test bed specification | ||
+ | *Relevant software versions | ||
+ | *Date of testing | ||
+ | *Tester / reporter | ||
+ | *Scalability | ||
+ | *Statistics & conclusions | ||
+ | *Test bed specification | ||
+ | *Relevant software versions | ||
+ | *Date of testing | ||
+ | *Tester / report | ||
+ | |||
+ | ===== Optimization/ | ||
+ | *Caching features | ||
+ | *Indexing | ||
+ | *Automatic / trained index features | ||
+ | *Manual tuning | ||
+ | *Options for pre-computing data | ||
+ | *Other efficiency features | ||
+ | ===== Installation ===== | ||
+ | *Requirements | ||
+ | *Resource requirements | ||
+ | *Complexity/ | ||
+ | *Tools / libraries needed for installation | ||
+ | *Packaging | ||
+ | *How are updates handled? | ||
+ | *Language Support | ||
+ | *Out-of-box OS support | ||
+ | *Red-Hat | ||
+ | *Ubuntu Server LTS | ||
+ | *Suse Linux Enterprise Server | ||
+ | *Windows Server 2008 | ||
+ | *Licensing | ||
+ | ====== Potential Frameworks ====== | ||
+ | Each of these pages links to a potential frameworks evaluation page stub. Please feel free to flesh out the page for any framework | ||
+ | |||
+ | If you would like to add an additional framework | ||
- | ==== Working List ==== | + | |
- | (this is a working list that we will try and categorise and move into sections above) | + | * [[dev: |
- | | + | * [[dev: |
- | * Strong Web2.0 Support (Builtin JQuery, Mochikit, Xajax etc etc) | + | * [[dev: |
- | * Easily integratable with existing Portal Frameworks, such as Yahoo Pipes, iGoogle. ( I think this would go with web services & REST) (Optional) | + | * [[dev: |
- | * Mobile Device Support (Optional) | + | * [[dev: |
- | * Easy installation and deployability, | + | ====== Discussion ====== |
- | * Less bulky. | + | Please feel free to use this section for discussion |
- | * More modularity with low coupling. | + | |
- | * MVC ? | + | |
- | * Should we go with SOA ? | + | |
- | * Scalability | + | |
- | * Large developer ecosystem - e.g. choose a well supported framework | + | |
- | * Less complex framework, so that the learning curve is minimized, hence will reduce | + | |
- | * Strong geospatial capabilities | + | |
- | ===== Framework Options ===== | ||
- | These are sorted alphabetically. | ||
- | * [[http:// | ||
- | * Drupal 7 (PHP, no decent web link yet) | ||
- | * [[http:// | ||
- | * [[http:// | ||
- | * [[http:// | ||
- | * [[http:// | ||
- | * [[http:// |