This is the place to collect thought for the future of egroupware
motivation / overall goals
- Get rid of massive session overhead
- performance
- stability
- codeability
- usability
design constrains
| eGW 1.x codeline | eGW 2 codeline |
| HTML GUI | JS GUI |
| nothing | exception management |
| tight coupled layers | loose coupled objects (data, persistency, properties ...) |
| various entry points | single entry point (dispatcher / handler) |
| almost nothing | interfaces, abstract base classes all over eGW (everything is an object) |
| no / own patterns | standart patterns like singleton / factory ... |
| adodb | pdo |
| much own stuff | framework like eZC or Zend |
| homebrew UI's | Usability enhanced / improoved UIs |
| nothing | concurency management |
| nothing | unit-testing |
migration / way to go
soft migration
- define milestones
- Choose framework(s)
- Adapt egwapi
- app_skeleton - Whatever the directory structure works out to, we can save ourselves some effort by putting in a minimal structure
- addressbook - It's becoming integral to everything, and makes a really good example for the rest of us to follow.
- new Code Corner - The current one has helped out so much
- fast release cycles
start second codeline
- allways upgrade from 1.x to 2 possible
- customers can switch when 2x codeline sweets there need
Frameworks / Components
The question ezc / Zend / Pear is not necessary an "or" question, as components can be combined from different sources. However some core decisions must be taken: Error Handling / Autoloading / Directory Structure / ..?
| Zend | eZ Components | PEAR 2 |
| Zend_Acl | .. |
| Zend_Auth | Authentication |
| Zend_Cache | Cache |
| Zend_Config | Configuration |
| Zend_Console_Getopt | ConsoleTools |
| Zend_Controller | .. |
| Zend_Date |
| Zend_Db | Database |
| Zend_Debug | Debug |
| Zend_Exception |
| Zend_Feed | Feed |
| Zend_Filter | .. |
| Zend_Filter_Input | UserInput |
| Zend_Gdata | .. |
| Zend_Http | .. |
| Zend_Json | .. |
| Zend_Loader | Base |
| Zend_Locale | .. |
| Zend_Log | EventLog |
| Zend_Mail | Mail |
| Zend_Measure | .. |
| Zend_Memory | .. |
| Zend_Mime | Mail |
| Zend_Pdf | .. |
| Zend_Registry | .. |
| Zend_Rest | Alpha: WebService? |
| Zend_Search_Lucene | .. |
| Zend_Server_Reflection | ..planned.. |
| Zend_Service_Akismet | .. |
| Zend_Service_Amazon | .. |
| Zend_Service_Audioscrobbler | .. |
| Zend_Service_Delicious | .. |
| Zend_Service_Flickr | .. |
| Zend_Service_Simpy | .. |
| Zend_Service_StrikeIron | .. |
| Zend_Service_Yahoo | .. |
| Zend_Session | .. |
| Zend_Translate | Translation |
| Zend_Uri | Url |
| Zend_Validate | .. |
| Zend_Version | Base |
| Zend_View | Template |
| Zend_XmlRpc | Alpha: WebService? |
| .. | Archive |
| .. | DatabaseSchema |
| .. | Execution |
| .. | File |
| .. | Graph |
| .. | ImageAnalysis |
| .. | ImageConversion |
| .. | PersistentObject |
| .. | PhpGenerator |
| .. | SignalSlot |
| .. | SystemInformation |
| .. | Workflow |