8. • What is an Application Framework
• What makes WordPress an Application
Framework
• How we built the WP Remote web app on
WordPress.
Friday, 17 August 12 8
9. What is an Application Framework
Friday, 17 August 12 9
10. A web application framework is a software
framework that is designed to support the
development of dynamic websites,Web applications
and Web services.The framework aims to alleviate
the overhead associated with common activities
performed in Web development. For example, many
frameworks provide libraries for database access,
templating frameworks and session management,
and often promote code reuse.
http://en.wikipedia.org/wiki/Web_application_framework
Friday, 17 August 12 10
11. That sounds a lot like
WordPress!
Friday, 17 August 12 11
12. A web application framework is a software
framework that is designed to support the
development of dynamic websites,Web applications
and Web services.The framework aims to alleviate
the overhead associated with common activities
performed in Web development. For example, many
frameworks provide libraries for database access,
templating frameworks and session management,
and often promote code reuse.
http://en.wikipedia.org/wiki/Web_application_framework
Friday, 17 August 12 12
13. A web application framework is a software
framework that is designed to support the
development of dynamic websites,Web applications
and Web services.The framework aims to alleviate
the overhead associated with common activities
performed in Web development. For example, many
frameworks provide libraries for database access,
templating frameworks and session management,
and often promote code reuse.
http://en.wikipedia.org/wiki/Web_application_framework
Friday, 17 August 12 13
14. WordPress is web software you can use to
create a beautiful website or blog.
Friday, 17 August 12 14
15. WordPress is an Application Framework that
happens to come with a default app called
“Blog”.
Friday, 17 August 12 15
16. WordPress is web software you can use to
create a beautiful app, website or blog.
Friday, 17 August 12 16
36. 3rd Party API’s
• TLC Transients
• WP Thumb
• Custom Meta Box API
• WordPress Objects
Friday, 17 August 12 36
37. • TLC Transients
https://github.com/markjaquith/WP-TLC-
Transients
• WP Thumb
• Custom Meta Box API
• WordPress Objects
• Term Meta
Friday, 17 August 12 37
38. • TLC Transients
• WP Thumb
https://github.com/humanmade/WPThumb
• Custom Meta Box API
• WordPress Objects
• Term Meta
Friday, 17 August 12 38
39. • TLC Transients
• WP Thumb
• Custom Meta Box API
https://github.com/humanmade/Customs
• WordPress Objects
• Term Meta
Friday, 17 August 12 39
40. • TLC Transients
• WP Thumb
• Custom Meta Box API
• WordPress Objects
https://github.com/humanmade/WordPress-
Objects
• Term Meta
Friday, 17 August 12 40
41. • TLC Transients
• WP Thumb
• Custom Meta Box API
• WordPress Objects
• Term Meta
https://gist.github.com/2953813
Friday, 17 August 12 41
42. All these API’s can be
used without the “Blog”
part of WordPress
Friday, 17 August 12 42
43. Still need convincing?
• Continuously improved.
• Great backwards compatibility support.
• Super easy to jump in and get started.
• Can run on literally any server.
• Widely tested, runs 16.7% of the web, some
of the largest sites in the world.
Friday, 17 August 12 43
44. Why Not
• Some of the core API’s are old and nasty.
• It doesn’t enforce a strict MVC structure.
https://github.com/markjaquith/WordPress-Skeleton/
• People might think your not a real software
engineer if your not using Ruby to build your
web app.
Friday, 17 August 12 44
47. WordPress Knockout.js
JSON
Back-end Front-end
JSON
WordPress Plugin
Client Site
Friday, 17 August 12 47
48. • Users
• Sites
• Site Meta
• Core, Plugin and Theme updates
• Groups
• History
• Backups
• Settings
Friday, 17 August 12 48
49. Users
• Standard WordPress subscriber level users.
• Custom Login, Registration and Lost
Password pages and Change Password
pages.
Friday, 17 August 12 49
50. Sites
• Sites are stored as a custom post_type.
• Each site has the post_author set to the user that owns
the site.
• The site status is set to private to signify that users
sites are private to them.
• Meta information about the site like home_url,
admin_url etc. are stored in post_meta. As are lists of
backups, history items and plugins and themes that
need updating.
Friday, 17 August 12 50
51. Site Groups
• Site Group is a custom taxonomy
• Each group is a new term in that taxonomy
• Doesn’t matter if 2 users unknowingly use the
same group as each user only sees sites that
they own.
• We use a custom term_meta table to store
things like whether a group is collapsed or not.
Friday, 17 August 12 51
52. Plugin
• Installed on each of the users sites
• We use the HTTP API to communicate
between the back-end and Plugin.
• The Plugin hooks into the Core, Plugin &
Theme update API’s to do the actual
updates.
Friday, 17 August 12 52
53. Others
• AMC Story Sync
http://www.amctv.com/shows/breaking-bad/
story-sync
• Bendy Words
http://bendywords.com/demo-board/
• StudioPress
http://www.woothemes.com/2011/07/
supportpress/
Friday, 17 August 12 53