Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

An alternative SilverStripe story: 
Business applications

82 views

Published on

Talk at stripecon 2017, Malta

Published in: Technology
  • Be the first to comment

  • Be the first to like this

An alternative SilverStripe story: 
Business applications

  1. 1. An alternative SilverStripe story: 
 Business applications Andy Adiwidjaja, StripeCon 17
  2. 2. Agenda • SilverStripe as a website cms • SilverStripe as a business application framework • Side topic: Offline
  3. 3. Andy Adiwidjaja • Adiwidjaja Teamworks GmbH • Ahrensburg near Hamburg, Germany • Information management, systems thinking • Websites since 1999 • SilverStripe since 2009
  4. 4. SilverStripe as a website cms
  5. 5. Why not… • Wordpress • Typo 3 • Joomla • Jimdo • …
  6. 6. My SilverStripe-Story • CMS with mature PHP framework • Small core with few modules
 (SortableGridField, Translatable/Fluid, MultiSite, UserForm, BetterButtons, Elemental) • Always individual code
  7. 7. SilverStripe as a business application framework
  8. 8. Be useful.
  9. 9. Solutions Consulting
  10. 10. Business activities
  11. 11. Look for Excel! • If someone regularly sends an Excel document via email • If the CEO has an Excel document on his laptop which he prints every morning. • If there is a photo of a wall with sticky notes on it in the intranet which someone manually copies into an Excel document on a daily basis then you can probably help
  12. 12. AlternativeTo Enterprise software • ERP • CRM • Java • App-Development Office software • Excel • Access • Sharepoint • Email Frameworks • Laravel (+Backpack!) • Luba • Django • Rails
  13. 13. Rapid Application Development • Fast results • Incremental development • ORM • Migrations • Form scaffolding
  14. 14. Silverstripe • Very fast development • ORM, /dev/build • Batteries included • Stable • Tree structure
  15. 15. Work items • Status • Owner • Version • ModificationDate • Notifications
  16. 16. Basic app structure Filterable List Detail View
  17. 17. Pages for structure
  18. 18. User centered design • Admin for admins • Reduced interfaces for users • Frontend-Editing • Separation of interfaces • Small use cases can be very important
  19. 19. There is much more to do • Reports • Semantic Versioning • Approval workflows • Automatic imports • Email automation • Attachments
  20. 20. Useful tools • Snappy • PHPExcel • PHPOffice • DND Upload • Offline!
  21. 21. Side topic: Offline
  22. 22. Offline: Three tries • Presentations with a central CMS: 
 iPad App • Survey tool: 
 Cordova React App • Confidential portfolio database: 
 Encrypted offline website
  23. 23. //Fetch files var filedata = json["Files"].arrayValue var configuration = NSURLSessionConfiguration.backgroundSessionConfigurationWithIdentifier(Sess ionProperties.identifier) var delegate = DownloadSessionDelegate.sharedInstance delegate.completeHandler = { Void -> Void in success(pagesdata) } delegate.updateHandler = update var backgroundSession = NSURLSession(configuration: configuration, delegate: delegate, delegateQueue: nil) let cachePolicy = NSURLRequestCachePolicy.ReloadIgnoringLocalCacheData for url in filedata { var stringUrl = base+url.stringValue var req = NSURLRequest(URL: NSURL(string:stringUrl)!, cachePolicy: cachePolicy, timeoutInterval: 100) var downloadTask = backgroundSession.downloadTaskWithRequest(req) delegate.addTask(downloadTask) } delegate.resumeAll() iPad App (Swift)
  24. 24. Neurotest • Demo
  25. 25. Client App Server Data Results React IndexedDB File API (imgcache.js) JSON SilverStripe Users Admins
  26. 26. Knowledge Portal • Demo
  27. 27. Appcache <html lang="en-gb" manifest=„/offliner/manifest"> <iframe src="/fallback.html?v=15#iframed" style="position:absolute;top:-999em;visibility:hidden "></iframe>');
  28. 28. Web SQL
  29. 29. IndexedDB
  30. 30. LocalStorage
  31. 31. So? • Appcache for static files, images • IndexedDB or LocalStorage for content storage • Beware: Limits!
  32. 32. CACHE MANIFEST # 2015-12-08 16:17:37 /fallback.html /offliner/js/jquery.js /offliner/js/sjcl.js /offliner/js/offliner.js … /mysite/img/logo.png /mysite/img/logout.png /mysite/img/reload.png /mysite/img/search.png /assets/Uploads/dummy-320x240-Monkey1.jpg /assets/Uploads/logo.png NETWORK: * FALLBACK: / /fallback.html Appcache:
 Static files
  33. 33. Page data
  34. 34. storage
  35. 35. renderPage
  36. 36. Conclusion • SilverStripe is great as a business application framework • Offline applications are tricky, but solvable • Questions?

×