SlideShare a Scribd company logo
1 of 44
Download to read offline
An alternative SilverStripe story: 

Business applications
Andy Adiwidjaja, StripeCon 17
Agenda
• SilverStripe as a website cms
• SilverStripe as a business application
framework
• Side topic: Offline
Andy Adiwidjaja
• Adiwidjaja Teamworks GmbH
• Ahrensburg near Hamburg,
Germany
• Information management,
systems thinking
• Websites since 1999
• SilverStripe since 2009
SilverStripe as a
website cms
Why not…
• Wordpress
• Typo 3
• Joomla
• Jimdo
• …
My SilverStripe-Story
• CMS with mature PHP framework
• Small core with few modules

(SortableGridField, Translatable/Fluid, MultiSite,
UserForm, BetterButtons, Elemental)
• Always individual code
SilverStripe as a business
application framework
Be useful.
Solutions Consulting
Business activities
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
AlternativeTo
Enterprise software
• ERP
• CRM
• Java
• App-Development
Office software
• Excel
• Access
• Sharepoint
• Email
Frameworks
• Laravel (+Backpack!)
• Luba
• Django
• Rails
Rapid Application Development
• Fast results
• Incremental development
• ORM
• Migrations
• Form scaffolding
Silverstripe
• Very fast development
• ORM, /dev/build
• Batteries included
• Stable
• Tree structure
Work items
• Status
• Owner
• Version
• ModificationDate
• Notifications
Basic app structure
Filterable List Detail View
Pages for structure
User centered design
• Admin for admins
• Reduced interfaces for
users
• Frontend-Editing
• Separation of interfaces
• Small use cases can be
very important
There is much more to do
• Reports
• Semantic Versioning
• Approval workflows
• Automatic imports
• Email automation
• Attachments
Useful tools
• Snappy
• PHPExcel
• PHPOffice
• DND Upload
• Offline!
Side topic: Offline
Offline: Three tries
• Presentations with a central CMS: 

iPad App
• Survey tool: 

Cordova React App
• Confidential portfolio database: 

Encrypted offline website
//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)
Neurotest
• Demo
Client App Server
Data
Results
React
IndexedDB
File API (imgcache.js)
JSON SilverStripe
Users Admins
Knowledge Portal
• Demo
Appcache
<html lang="en-gb" manifest=„/offliner/manifest">
<iframe src="/fallback.html?v=15#iframed"
style="position:absolute;top:-999em;visibility:hidden
"></iframe>');
Web SQL
IndexedDB
LocalStorage
So?
• Appcache for static files,
images
• IndexedDB or
LocalStorage for content
storage
• Beware: Limits!
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
Page data
storage
renderPage
Conclusion
• SilverStripe is great as a business application
framework
• Offline applications are tricky, but solvable
• Questions?

More Related Content

What's hot

Codemotion 2013 - Designing complex applications using html5 and knockoutjs
Codemotion 2013 - Designing complex applications using html5 and knockoutjsCodemotion 2013 - Designing complex applications using html5 and knockoutjs
Codemotion 2013 - Designing complex applications using html5 and knockoutjs
Fabio Franzini
 
SoCal Code Camp 2011 - ASP.NET 4.5
SoCal Code Camp 2011 - ASP.NET 4.5SoCal Code Camp 2011 - ASP.NET 4.5
SoCal Code Camp 2011 - ASP.NET 4.5
Jon Galloway
 
Introduction tosinglepageapplications
Introduction tosinglepageapplicationsIntroduction tosinglepageapplications
Introduction tosinglepageapplications
Nabeel Khan
 

What's hot (20)

tTecniche di sviluppo mobile per share point 2013 e office 365
tTecniche di sviluppo mobile per share point 2013 e office 365 tTecniche di sviluppo mobile per share point 2013 e office 365
tTecniche di sviluppo mobile per share point 2013 e office 365
 
Come riprogettare le attuali farm solution di share point con il nuovo modell...
Come riprogettare le attuali farm solution di share point con il nuovo modell...Come riprogettare le attuali farm solution di share point con il nuovo modell...
Come riprogettare le attuali farm solution di share point con il nuovo modell...
 
Docker intro
Docker introDocker intro
Docker intro
 
Website design technology
Website design technologyWebsite design technology
Website design technology
 
Build your WordPress page fast and clean
Build your WordPress page fast and cleanBuild your WordPress page fast and clean
Build your WordPress page fast and clean
 
Single Page Apps
Single Page AppsSingle Page Apps
Single Page Apps
 
Building high performance
Building high performanceBuilding high performance
Building high performance
 
Bayt training
Bayt trainingBayt training
Bayt training
 
Wufoo presentation
Wufoo presentationWufoo presentation
Wufoo presentation
 
Codemotion 2013 - Designing complex applications using html5 and knockoutjs
Codemotion 2013 - Designing complex applications using html5 and knockoutjsCodemotion 2013 - Designing complex applications using html5 and knockoutjs
Codemotion 2013 - Designing complex applications using html5 and knockoutjs
 
Sviluppare app per office
Sviluppare app per officeSviluppare app per office
Sviluppare app per office
 
Single page applications with backbone js
Single page applications with backbone jsSingle page applications with backbone js
Single page applications with backbone js
 
SoCal Code Camp 2011 - ASP.NET 4.5
SoCal Code Camp 2011 - ASP.NET 4.5SoCal Code Camp 2011 - ASP.NET 4.5
SoCal Code Camp 2011 - ASP.NET 4.5
 
APEX 5 Demo and Best Practices
APEX 5 Demo and Best PracticesAPEX 5 Demo and Best Practices
APEX 5 Demo and Best Practices
 
Introduction tosinglepageapplications
Introduction tosinglepageapplicationsIntroduction tosinglepageapplications
Introduction tosinglepageapplications
 
seamless – Object Oriented CMS System
seamless – Object Oriented CMS Systemseamless – Object Oriented CMS System
seamless – Object Oriented CMS System
 
Single Page Web Applications with WordPress REST API
Single Page Web Applications with WordPress REST APISingle Page Web Applications with WordPress REST API
Single Page Web Applications with WordPress REST API
 
Creating a Data Driven UI Framework
Creating a Data Driven UI FrameworkCreating a Data Driven UI Framework
Creating a Data Driven UI Framework
 
Aduivo – the intuitive CMS
Aduivo – the intuitive CMSAduivo – the intuitive CMS
Aduivo – the intuitive CMS
 
Amazon.com's Web Services Opportunity
Amazon.com's Web Services OpportunityAmazon.com's Web Services Opportunity
Amazon.com's Web Services Opportunity
 

Similar to An alternative SilverStripe story: Business applications

Feature driven agile oriented web applications
Feature driven agile oriented web applicationsFeature driven agile oriented web applications
Feature driven agile oriented web applications
Ram G Athreya
 
Click here to download my CV in Word format.doc
Click here to download my CV in Word format.docClick here to download my CV in Word format.doc
Click here to download my CV in Word format.doc
butest
 
Armedia: FOIA Request solution Pattern
Armedia: FOIA Request solution PatternArmedia: FOIA Request solution Pattern
Armedia: FOIA Request solution Pattern
Alfresco Software
 

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

Extend IBM Enterprise Content Management Solutions with Content Navigator
Extend IBM Enterprise Content Management Solutions with Content NavigatorExtend IBM Enterprise Content Management Solutions with Content Navigator
Extend IBM Enterprise Content Management Solutions with Content Navigator
 
Microservices
MicroservicesMicroservices
Microservices
 
Code first in the cloud: going serverless with Azure
Code first in the cloud: going serverless with AzureCode first in the cloud: going serverless with Azure
Code first in the cloud: going serverless with Azure
 
Joomla as a mobile App backend - ideas, examples and experiences
Joomla as a mobile App backend - ideas, examples and experiencesJoomla as a mobile App backend - ideas, examples and experiences
Joomla as a mobile App backend - ideas, examples and experiences
 
Feature driven agile oriented web applications
Feature driven agile oriented web applicationsFeature driven agile oriented web applications
Feature driven agile oriented web applications
 
Owd multi repo-v2
Owd multi repo-v2Owd multi repo-v2
Owd multi repo-v2
 
Proud to be polyglot
Proud to be polyglotProud to be polyglot
Proud to be polyglot
 
Metadata & Interoperability: Free Tools
Metadata & Interoperability: Free ToolsMetadata & Interoperability: Free Tools
Metadata & Interoperability: Free Tools
 
Click here to download my CV in Word format.doc
Click here to download my CV in Word format.docClick here to download my CV in Word format.doc
Click here to download my CV in Word format.doc
 
USG Summit - September 2014 - Web Management using Drupal
USG Summit - September 2014 - Web Management using DrupalUSG Summit - September 2014 - Web Management using Drupal
USG Summit - September 2014 - Web Management using Drupal
 
Building your first android app using xamarin (Gill Cleeren)
Building your first android app using xamarin (Gill Cleeren)Building your first android app using xamarin (Gill Cleeren)
Building your first android app using xamarin (Gill Cleeren)
 
SharePoint Custom Development
SharePoint Custom DevelopmentSharePoint Custom Development
SharePoint Custom Development
 
Angular mobile angular_u
Angular mobile angular_uAngular mobile angular_u
Angular mobile angular_u
 
Cool Tools for Technical Writers
Cool Tools for Technical WritersCool Tools for Technical Writers
Cool Tools for Technical Writers
 
Creating a Documentation Portal
Creating a Documentation PortalCreating a Documentation Portal
Creating a Documentation Portal
 
Debugging the Web with Fiddler
Debugging the Web with FiddlerDebugging the Web with Fiddler
Debugging the Web with Fiddler
 
Armedia: FOIA Request solution Pattern
Armedia: FOIA Request solution PatternArmedia: FOIA Request solution Pattern
Armedia: FOIA Request solution Pattern
 
Forge - DevCon 2016: Free your BIM data
Forge - DevCon 2016: Free your BIM dataForge - DevCon 2016: Free your BIM data
Forge - DevCon 2016: Free your BIM data
 
WordPress as an Application Framework
WordPress as an Application FrameworkWordPress as an Application Framework
WordPress as an Application Framework
 
Headless cms architecture
Headless cms architectureHeadless cms architecture
Headless cms architecture
 

Recently uploaded

Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 

Recently uploaded (20)

Less Is More: Utilizing Ballerina to Architect a Cloud Data Platform
Less Is More: Utilizing Ballerina to Architect a Cloud Data PlatformLess Is More: Utilizing Ballerina to Architect a Cloud Data Platform
Less Is More: Utilizing Ballerina to Architect a Cloud Data Platform
 
JohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptxJohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptx
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
Choreo: Empowering the Future of Enterprise Software Engineering
Choreo: Empowering the Future of Enterprise Software EngineeringChoreo: Empowering the Future of Enterprise Software Engineering
Choreo: Empowering the Future of Enterprise Software Engineering
 
الأمن السيبراني - ما لا يسع للمستخدم جهله
الأمن السيبراني - ما لا يسع للمستخدم جهلهالأمن السيبراني - ما لا يسع للمستخدم جهله
الأمن السيبراني - ما لا يسع للمستخدم جهله
 
Simplifying Mobile A11y Presentation.pptx
Simplifying Mobile A11y Presentation.pptxSimplifying Mobile A11y Presentation.pptx
Simplifying Mobile A11y Presentation.pptx
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Navigating Identity and Access Management in the Modern Enterprise
Navigating Identity and Access Management in the Modern EnterpriseNavigating Identity and Access Management in the Modern Enterprise
Navigating Identity and Access Management in the Modern Enterprise
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
ChatGPT and Beyond - Elevating DevOps Productivity
ChatGPT and Beyond - Elevating DevOps ProductivityChatGPT and Beyond - Elevating DevOps Productivity
ChatGPT and Beyond - Elevating DevOps Productivity
 
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
JavaScript Usage Statistics 2024 - The Ultimate Guide
JavaScript Usage Statistics 2024 - The Ultimate GuideJavaScript Usage Statistics 2024 - The Ultimate Guide
JavaScript Usage Statistics 2024 - The Ultimate Guide
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
TEST BANK For Principles of Anatomy and Physiology, 16th Edition by Gerard J....
TEST BANK For Principles of Anatomy and Physiology, 16th Edition by Gerard J....TEST BANK For Principles of Anatomy and Physiology, 16th Edition by Gerard J....
TEST BANK For Principles of Anatomy and Physiology, 16th Edition by Gerard J....
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 

An alternative SilverStripe story: Business applications