This was a good training session from Rich McKnight that covered steps to think about when implementing a new custom project in Alfresco. He based the discussion on something IT people have direct experience with – a client support ticketing system. As a group we discussed the content and users of the the system, and how they would map into Alfresco from information architecture, security/role and lifecycle/operation perspective. Rich led the discussion into different implementation options and discussed why he would choose one over another.
He also offered lots of nuggets of knowledge about Alfresco, e.g.,recommended: no more than 5000 direct descendents of a folder; consider using a ContentPolicy instead of rules/actions for global actions on content plus the ContentPolicy is transactional; consider using AttributeService to help enforce unique meta-data
The AttributeService offers a key-value mapped to the database. It allows up-to-3 segment for the key (e.g., application-ticket-number) and one value (e.g., node ref).
And these are some development best practices, Rich offered.
- Think deliberately about namespacing, extensions package names to prevent conflict; guidelines to prevent conflicts
- Use AMPs (share and repo): no way to uninstall AMPS – point of time, not progression; go back in time to previous WAR; careful – AMPs change repository
- Use Tomcat shared area for configuration type issues; AMP for application (ContentModels, WebScripts)
- Automated build with Ant (in dev mode; no backups and force no version number)
Rich also provided some code samples for the whole support ticket system.