silverstripe meetup 03/03/2011

Download SilverStripe Meetup 03/03/2011

If you can't read please download the document

Upload: wearegpmd

Post on 17-May-2015

1.189 views

Category:

Technology


4 download

DESCRIPTION

Slides from the SilverStripe meetup held in Central London on 03/03/2011

TRANSCRIPT

  • 1. SilverStripe 3.0 Roadmap SilverStripe UK Meetup, London 3rd March 2011 Jamie Neil

2. Schedule

    • SilverStripe history
  • 3. Vision for 3.0

4. Development process 5. Highlights 6. Timeline 7. Questions 8. Beer 9. SilverStripe History

    • Originally commerciallylicensed
  • 10. First open source version2.0 released in 2007
  • BSD licence

New minor release every year since

  • ModelAdmin

11. Modularisation 12. Caching 13. i18n Current stable version is 2.4.5

  • Management interface is still basically the same as original release

14. Vision for 3.0

    • Could you build Twitter on Sapphire?
    • Emphasison Sapphire as a standalone framework

Improve and stabilise core features 15. Admin interface facelift, but not a revolution

  • Extensive customer feedback

16. Lots of work on UX Facilitate creation of custom user interfaces

  • Plans for inline editing as primary method dropped

17. Development Process

    • Agile
    • Being run as an internal project
  • 18. Short iterations, measurable goals

Transparency

  • Backlog and status will be available on Trac
  • http://open.silverstripe.org/

API drafts published on development mailing list

  • http://groups.google.com/group/silverstripe-dev

19. Git

    • Modules and themes have been moved to github
    • https://github.com/silverstripe/
  • 20. Allows decentraliseddevelopment

21. Encourage more community contributions to core Old subversion repos are now frozen

  • Community members are providing svn mirrors

Git doesn't have externals

  • Does have submodules

22. SilverStripe is recommending piston as a replacement

  • Supports links to git andsvn

23. Highlights*

  • Flexible Object Relational Mapper (ORM)

24. Separating CMS and Sapphire 25. jQuery UI 26. Flexible templating 27. Performance 28. Configuration 29. Data integrity 30. Module management 31. Versioned assets 32. Data grid 33. Social * Many things still being actively discussed, so all subject to changes 34. Object Relational Mapper (ORM)

    • Core differentiating feature
  • 35. Move to more expressive object based queries
  • Existing ORM exposes too much SQL

Improve performance

  • Optimise database queries

36. Less joining Database abstraction

  • PHP Data Objects (PDO)

37. Non SQL data sources 38. MySQL to remain core due to module management 39. Separating CMS and Sapphire

    • Sapphire difficult to use as a stand alone framework
    • Admin interface all in CMS
  • 40. Need to be able to create pageless applications

Plan is to bundle basic admin framework with Sapphire

  • Security

41. ModelAdmin? 42. Similar to Django 43. jQuery

    • jQuery to replace (customised) Prototype
    • Already used in places, but admin interface still largely based on Prototype

jQuery.entwine to replace behavior.js

  • Progressive enhancement

44. https://github.com/hafriedlander/jquery.entwine jQuery UI will provide standard interface library

  • Familiar to many developers

45. Will make custom themes easier to implement 46. 47. 48. 49. 50. Flexible Templating

    • Regexspaghettito be replaced with a proper syntax parser
    • Will removearbitraryrestrictions on template args
    • e.g. More than two args on an block

String quoting 51. Inclusion 52. $Up 53. Negation Decouple from SSViewer (AJShort)

  • Will allow alternative templating systems

54. Performance

    • Improvements to startup time
    • Will make AJAX calls more responsive

Efficient queries

  • Less joins

Smaller memory footprint (hopefully) 55. Configuration

    • Currently very dependent on static variables
    • Global state

Move towards dependency injection

  • Control inversion

56. Reduced coupling 57. Easier testing 58. https://groups.google.com/d/topic/silverstripe-dev/Lxj8QN-6Glk/discussion Configuration still by code

  • No plans for database storage or web interface

59. DependencyInjection Example

  • classMyClass{
  • + public $dataService; // Dependency defined by convention
  • public function getWidgets() { - return DataObject::get('Widget');
  • + return $this->dataService->get('Widget');

60. } 61. }

  • DataService is registered with the injector (container), which then used to create the object:
  • Injector::inst()->instantiate('MyClass');

62. Data Integrity

    • Foreign keys
    • Native database FKs not currently used

Constraints

  • Existing arrangement can result in orphaned data

63. Module Management

    • Addition of metadata to modules
  • 64. Dependencies
  • Currently relies on developer knowledge

Tools could allow installation of modules along with their dependencies

  • Debian APT?

No plans for web interface 65. Versioned Assets

    • Files and images are currently not versioned controlled
  • 66. Aim to provide a workflow similar to SiteTree pages
  • Could possibly be extended to relationships (which are also currently not versioned)

67. Data Grid

    • ComplexTableField needs replacing
    • Has evolved organically
  • 68. Hard for users and developers to use

69. DataObject Manager has become the defacto choice New Data Grid will take advantage of plannedimprovementsto ORM

  • Should make it more efficient

70. Social

    • Integration with popular third party services
    • Facebook
  • 71. Twitter

Tools to make integration with other data services easier 72. Other Potential Targets

    • ModelAdmin
  • 73. Permissions model

74. Command line tools (sake) 75. Generic requirements checker for installer

  • Can be usedafter installation

Static publisher rewrite 76. Device independence 77. Better REST api 78. Compatibility

    • Backwardscompatibilityis important
    • Good upgrade docs will be needed

Templating language will have minimal changes

  • Edge cases will be documented

Backwards compatibility layers may be added where appropriate 79. Some features may be moved to legacy modules

  • e.g. ComplexTableField

80. Avoids bloat Code which was deprecated in 2.4 will be removed 81. Timeline

    • Alpha
    • Mid 2011

Beta

  • Late 2011

82. API should be stable here Stable

  • End 2011

83. Community

  • Move to github intended to permit greater community participation
  • Makes accepting patches to core easier

How can we help?

  • Modules
  • Even simple or unpolished ones

Tickets in Trac

  • Easy ones are tagged

Contribute your opinions on the mailing list 84. Testing

  • Once alphas are released in the summer

85. Links

  • Wellington presentation
  • Video:http://vimeo.com/20075840

86. Slides:http://prezi.com/lr3lmrgdhlgj/silverstripe-3-roadmap-preview/ Roadmap:http://silverstripe.org/roadmap 87. Planning:http://open.silverstripe.org/wiki/planning 88. Mailing List:http://groups.google.com/group/silverstripe-dev 89. Designs:https://github.com/silverstripe/silverstripe-design 90. These slides (and video) will be uploaded by next week

  • http://www.gpmd.co.uk/