Successfully reported this slideshow.
Your SlideShare is downloading. ×

An alternative SilverStripe story: Business applications

Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad

Check these out next

1 of 44 Ad
Advertisement

More Related Content

Slideshows for you (20)

Similar to An alternative SilverStripe story: Business applications (20)

Advertisement

Recently uploaded (20)

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?

×