Differences

This shows you the differences between two versions of the page.

Link to this comparison view

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.+====== Sahana Framework Evaluation ======
  
-===== 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 previous discussion was [[dev:fk_requirements_previouspage|archived here for reference]].//**
-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 new framework+Throughout early 2010 the Sahana Community has engaged in an open discussion of potential frameworks for future program development.  To facilitate and document this discussion group of pages has been created.
  
-==== Detailed Capabilities ==== +We invite anyone with relevant information to share it with the Community.  To ensure documentation that is both detailed and easy to readwe ask you to use the [[dev:FrameworkEvalTemplate|Framework Evaluation Template]] for any new framework pages 
-(intended to provide more detailed capabilities that link back to the high-level requirements eventually) +
-If possibleplease link to a Wikipedia page that describes the capability.+
  
-=== 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/wiki/Object-relational_mapping|Object relational mapping]] +
-  * [[http://en.wikipedia.org/wiki/Connection_pool|Connection pooling]] - for more efficient database access +
-  * 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.  They are organized by relevant categories and you're encouraged to add your own. 
 + 
 +**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: 
 +<code> 
 +===== 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 
 +</code> 
 + 
 +===== 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/Standard Error Codes 
 +      * Transparency 
 +      * Verbosity easily transfigurable 
 +  * QA/Testing 
 +    * Usability/integration testing 
 +    * Custom test definition 
 +    * Integration (automation) 
 + 
 +===== Documentation ===== 
 +  * External (by the framework's community) 
 +    * Quality 
 +    * Depth/Expansiveness (How detailed is it?) 
 +    * Are their published reference texts? 
 +    * How current is the documentation? 
 +      * Integration on framework developers site 
 +    * Wiki generation 
 +  * Internal (within the framework itself) 
 +    * Function/API documentation auto-generation 
 +    * Generated code has meaningful in line documentation 
 + 
 +===== Administration =====
   * Security   * Security
-  Auditing +    Framework's community supports an independent security team 
-  * Logging +    * Long term support and highly stable framework versions offered 
-  * Backup +    * Framework's security patches offered without requiring version upgrades or breaking API 
-  * Unit Testing underlying framework should have unit testing for QA purposes+  * Testing 
 +    * Support for 3rd party validation tools 
 +    * Built in code validation (ex. pen testing) 
 +    * ACL support/library 
 +    * 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/Upgrade 
 +    *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/Efficiency ===== 
 +  *Caching features 
 +  *Indexing 
 +    *Automatic / trained index features 
 +    *Manual tuning 
 +  *Options for pre-computing data 
 +  *Other efficiency features 
 +===== Installation ===== 
 +  *Requirements 
 +    *Resource requirements 
 +    *Complexity/Skill level required 
 +    *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 that you have tested or have knowledge of to facilitate conversation with the rest of the Community. 
 + 
 +If you would like to add an additional framework for discussion, please use [[dev:FrameworkEvalTemplate|this template]] to ensure consistency.
  
-==== Working List ==== +  [[dev:CakePHPFrameworkEval|CakePHP]] 
-(this is a working list that we will try and categorise and move into sections above) +  * [[dev:Drupal7FrameworkEval|Drupal 7]] 
-  Web Services SOAP/ RSS / REST +  * [[dev:ezComponentsFrameworkEval|ezComponents]] 
-  * Strong Web2.0 Support (Builtin JQuery, Mochikit, Xajax etc etc) +  * [[dev:KohanaFrameworkEval|Kohana]] 
-  * Easily integratable with existing Portal Frameworks, such as Yahoo Pipes, iGoogle. ( I think this would go with web services & REST) (Optional) +  * [[dev:SymfonyFrameworkEval|Symfony]] 
-  * Mobile Device Support (Optional) +  * [[dev:ZendFrameworkEval|Zend]] 
-  * Easy installation and deployability, easy to customize +====== Discussion ====== 
-  * Less bulky. +Please feel free to use this section for discussion and commentsBe sure to sign your post using the button all the way to the right on the menu above. Also, please do not remove anyone else's relevant comments.
-  * More modularity with low coupling. +
-  * MVC ? +
-  * Should we go with SOA ? +
-  * Scalability and performance. +
-  * Large developer ecosystem - e.g. choose a well supported framework +
-  * Less complex framework, so that the learning curve is minimized, hence will reduce the customization time by new users/developers in immediate deployments. +
-  * Strong geospatial capabilities+
  
-===== Framework Options ===== 
-These are sorted alphabetically. 
-  * [[http://www.djangoproject.com/|Django]] (Python) 
-  * Drupal 7 (PHP, no decent web link yet) 
-  * [[http://ez.no/ezcomponents|ezComponents]] (PHP) 
-  * [[http://geodjango.org/|GeoDjango]] (Python) 
-  * [[http://www.symfony-project.org/|Symfony]] (PHP) 
-  * [[http://www.web2py.com/|web2py]] (Python) 
-  * [[http://framework.zend.com/|Zend Framework]] (PHP) 

Navigation
QR Code
QR Code dev:fk_requirements (generated for current page)