1. Magnolia 5 - Under The Hood
Philipp Bärfuss, Head of Product Development 05.03.2013 at Miami Amplify
1 Version 1.0 Magnolia is a registered trademark owned by Magnolia International Ltd.
2. The Map
The Me
The Story
The Approach
The Result
The Takeaways
2 Version 1.0 Magnolia is a registered trademark owned by Magnolia International Ltd.
3. The Me
Philipp Bärfuss
36 years, Swiss
3 Version 1.0 Magnolia is a registered trademark owned by Magnolia International Ltd.
4. The legacy is me
for 8 years working on the Magnolia CMS
4 Version 1.0 Magnolia is a registered trademark owned by Magnolia International Ltd.
5. One must still have chaos in oneself to
be able to give birth to a dancing star.
[Friedrich Nietzsche]
5 Version 1.0 Magnolia is a registered trademark owned by Magnolia International Ltd.
6. The Story
6 Version 1.0 Magnolia is a registered trademark owned by Magnolia International Ltd.
7. Where are we coming from
longing for a better UI for years
7 Version 1.0 Magnolia is a registered trademark owned by Magnolia International Ltd.
8. Bill Gates is a very rich man today... and
do you want to know why? The answer
is one word: versions. [Dave Barry]
8 Version 1.0 Magnolia is a registered trademark owned by Magnolia International Ltd.
9. History of Versions
Text
9 Version 1.0 Magnolia is a registered trademark owned by Magnolia International Ltd.
10. History of Versions
Text
9 Version 1.0 Magnolia is a registered trademark owned by Magnolia International Ltd.
11. History of Versions
Text
ili g
ab din
ty
us an
t
ts
ou
9 Version 1.0 Magnolia is a registered trademark owned by Magnolia International Ltd.
12. History of Versions
Text
ili g
M ,
D n
ab din
, io
ty
S
w t
us an
lo iza
t
kf ar
ts
ou
or l
w odu
m
9 Version 1.0 Magnolia is a registered trademark owned by Magnolia International Ltd.
13. History of Versions
Text
ili g
M ,
8n ,
D n
I1 re
ab din
, io
ty
S
s, tu
w t
us an
lo iza
te ec
t
da hit
kf ar
ts
ou
or l
up c
w odu
ar
m
9 Version 1.0 Magnolia is a registered trademark owned by Magnolia International Ltd.
14. 9
ou
ts
t
us an
Version 1.0
ab din
ili g
m ty
w odu
or l
kf ar
lo iza
w t
, io
D n
M ,
ar S
up c
da hit
te ec
s, tu
I1 re
History of Versions
en 8n ,
te p
rp er
ris fo
e rm
fe a
Text
at nc
ur e,
es
Magnolia is a registered trademark owned by Magnolia International Ltd.
15. 9
ou
ts
t
us an
Version 1.0
ab din
ili g
m ty
w odu
or l
kf ar
lo iza
w t
, io
D n
M ,
ar S
up c
da hit
te ec
s, tu
I1 re
History of Versions
en 8n ,
te p
rp er
ris fo
e rm
fe a
Text
at nc
ur e,
es
te
m
pl
at
in
g
ki
t
Magnolia is a registered trademark owned by Magnolia International Ltd.
16. 9
ou
ts
t
us an
Version 1.0
ab din
ili g
m ty
w odu
or l
kf ar
lo iza
w t
, io
D n
M ,
ar S
up c
da hit
te ec
s, tu
I1 re
History of Versions
en 8n ,
te p
rp er
ris fo
e rm
fe a
Text
at nc
ur e,
es
te
m
pl
at
in
g
ki
t
in
te u
ro s a
pe b
ra ilit
bi y
lit &
y
Magnolia is a registered trademark owned by Magnolia International Ltd.
17. 9
ou
ts
t
us an
Version 1.0
ab din
ili g
m ty
w odu
or l
kf ar
lo iza
w t
, io
D n
M ,
ar S
up c
da hit
te ec
s, tu
I1 re
History of Versions
en 8n ,
te p
rp er
ris fo
e rm
fe a
Text
at nc
ur e,
es
te
m
pl
at
in
g
ki
t
in
te u
ro s a
pe b
ra ilit
bi y
lit &
y
Magnolia is a registered trademark owned by Magnolia International Ltd.
18. 9
ou
ts
t
us an
Version 1.0
ab din
ili g
m ty
w odu
or l
kf ar
lo iza
w t
, io
D n
M ,
ar S
up c
da hit
te ec
s, tu
I1 re
History of Versions
en 8n ,
te p
rp er
ris fo
e rm
fe a
Text
at nc
ur e,
es
te
m
pl
at
in
g
ki
t
in
te u
ro s a
pe b
4.5
ra ilit
bi y
lit &
y
Magnolia is a registered trademark owned by Magnolia International Ltd.
19. First Attempt
You never know until you try
10 Version 1.0 Magnolia is a registered trademark owned by Magnolia International Ltd.
20. ExtGWT and GWT
To heavy, monolithic compilations
11 Version 1.0 Magnolia is a registered trademark owned by Magnolia International Ltd.
21. Second Attempt
You never know until you try again
12 Version 1.0 Magnolia is a registered trademark owned by Magnolia International Ltd.
22. Vaadin
13 Version 1.0 Magnolia is a registered trademark owned by Magnolia International Ltd.
23. Why Vaadin
Rich widget framework
Out-of-the-box theming
Java developer friendly
• Close to Swing
• GWT based (Java -> Javascript)
• Can integrate any GWT-components
• Rare GWT-compiles (compared to plain GWT)
Testing with pure JUnit
Apache License
Well documented
14 Version 1.0 Magnolia is a registered trademark owned by Magnolia International Ltd.
24. When I am working on a problem, I never think about
beauty but when I have finished, if the solution is not
beautiful, I know it is wrong.
[R. Buckminster Fuller]
15 Version 1.0 Magnolia is a registered trademark owned by Magnolia International Ltd.
25. 16 Version 1.0 Magnolia is a registered trademark owned by Magnolia International Ltd.
26. The Failing - Conference 2011
17 Version 1.0 Magnolia is a registered trademark owned by Magnolia International Ltd.
27. The Failing - Conference 2011
were too late anyway
had overloaded the wagon
• we tried do solve everything
too much enterprise too little fun
17 Version 1.0 Magnolia is a registered trademark owned by Magnolia International Ltd.
28. Divide and Conquer
Shipped the Backend as 4.5
18 Version 1.0 Magnolia is a registered trademark owned by Magnolia International Ltd.
29. Phoenix out of the ashes
We know now what we want to do
19 Version 1.0 Magnolia is a registered trademark owned by Magnolia International Ltd.
30. 1) be developers best friend
use Vaadin, quick customizations
20 Version 1.0 Magnolia is a registered trademark owned by Magnolia International Ltd.
31. 2) mobile revolution
be touchy, be iPad
21 Version 1.0 Magnolia is a registered trademark owned by Magnolia International Ltd.
32. 3) be user oriented
apps, communication, favorites
22 Version 1.0 Magnolia is a registered trademark owned by Magnolia International Ltd.
33. 4) be a CMS
focus on content management
23 Version 1.0 Magnolia is a registered trademark owned by Magnolia International Ltd.
34. 24 Version 1.0 Magnolia is a registered trademark owned by Magnolia International Ltd.
35. The Approach
24 Version 1.0 Magnolia is a registered trademark owned by Magnolia International Ltd.
36. However beautiful the strategy, you
should occasionally look at the results.
[Winston Churchill]
25 Version 1.0 Magnolia is a registered trademark owned by Magnolia International Ltd.
37. Retrospection is everything
no team is perfect but it can get better
26 Version 1.0 Magnolia is a registered trademark owned by Magnolia International Ltd.
38. Obstacle Driven Development
obstacles first, features later
27 Version 1.0 Magnolia is a registered trademark owned by Magnolia International Ltd.
39. Innovation flows naturally once the
obstacles are removed.
[Me]
28 Version 1.0 Magnolia is a registered trademark owned by Magnolia International Ltd.
40. Three techniques
controlled innovation
29 Version 1.0 Magnolia is a registered trademark owned by Magnolia International Ltd.
41. 1) 6 Thinking Hats
30 Version 1.0 Magnolia is a registered trademark owned by Magnolia International Ltd.
42. 2) Osborne’s Checklist
Other uses Substitute
• New ways to use as is? • Who else instead? What else
Adapt instead?
• What else is like this? Rearrange
• What could I copy? • Interchange components?
Modify Other pattern?
• New twist? Reverse
• Turn it backward, upside
Magnify
down, inside out?
• What to add? More time?
Combine
Minify
• How about a blend, an alloy,
• What to subtract? Smaller?
an assortment, an
31 Version 1.0 Magnolia is a registered trademark owned by Magnolia International Ltd.
43. 3) Negative Brainstorming
understanding what to do by knowing what not to do
32 Version 1.0 Magnolia is a registered trademark owned by Magnolia International Ltd.
44. The perfect is the enemy of the good.
[Voltaire]
33 Version 1.0 Magnolia is a registered trademark owned by Magnolia International Ltd.
45. User Experience Design
34 Version 1.0 Magnolia is a registered trademark owned by Magnolia International Ltd.
46. Design is not just what it looks like and
feels like. Design is how it works.
[Steve Jobs]
35 Version 1.0 Magnolia is a registered trademark owned by Magnolia International Ltd.
47. Trinity Icons
36 Version 1.0 Magnolia is a registered trademark owned by Magnolia International Ltd.
48. Desktop
37 Version 1.0 Magnolia is a registered trademark owned by Magnolia International Ltd.
49. Touch it or leave it
38 Version 1.0 Magnolia is a registered trademark owned by Magnolia International Ltd.
50. The Result
39 Version 1.0 Magnolia is a registered trademark owned by Magnolia International Ltd.
51. The Result
Main Architecture
Configuration
App-lification
Actions & Commands
Forms & Dialogs
Content App
DAM
Communication
40 Version 1.0 Magnolia is a registered trademark owned by Magnolia International Ltd.
52. Main Architecture
41 Version 1.0 Magnolia is a registered trademark owned by Magnolia International Ltd.
53. Technology Stack
42 Version 1.0 Magnolia is a registered trademark owned by Magnolia International Ltd.
54. Communication Layer
43 Version 1.0 Magnolia is a registered trademark owned by Magnolia International Ltd.
55. Dependency Injection - Dev Drugs
scopes
• main, app, subapp
injection of
• context, modules, configuration
customizing
• nearly every component can be replaced
standard
• standard annotations
transparent
• constructors declare what is needed
44 Version 1.0 Magnolia is a registered trademark owned by Magnolia International Ltd.
56. From Spaghetti
45 Version 1.0 Magnolia is a registered trademark owned by Magnolia International Ltd.
57. From Spaghetti
45 Version 1.0 Magnolia is a registered trademark owned by Magnolia International Ltd.
58. To Lasagne
Magnolia Core
46 Version 1.0 Magnolia is a registered trademark owned by Magnolia International Ltd.
59. To Lasagne
Vaadin
Magnolia Core
46 Version 1.0 Magnolia is a registered trademark owned by Magnolia International Ltd.
60. To Lasagne
Widgets
Vaadin
Magnolia Core
46 Version 1.0 Magnolia is a registered trademark owned by Magnolia International Ltd.
61. To Lasagne
UI Framework
Widgets
Vaadin
Magnolia Core
46 Version 1.0 Magnolia is a registered trademark owned by Magnolia International Ltd.
62. To Lasagne
Apps
UI Framework
Widgets
Vaadin
Magnolia Core
46 Version 1.0 Magnolia is a registered trademark owned by Magnolia International Ltd.
63. Packages - Widgets
Magnolia Widgets & Components
47 Version 1.0 Magnolia is a registered trademark owned by Magnolia International Ltd.
64. Packages - Widgets
Workbench
Actionbar
Dialogs
Editor
Form
Shell
Magnolia Widgets & Components
47 Version 1.0 Magnolia is a registered trademark owned by Magnolia International Ltd.
65. Packages - AdminCentral
UI Framework - Apps, Locations, Messages, Actions
48 Version 1.0 Magnolia is a registered trademark owned by Magnolia International Ltd.
66. Packages - AdminCentral
AdminCentral
& Shell Apps
UI Framework - Apps, Locations, Messages, Actions
48 Version 1.0 Magnolia is a registered trademark owned by Magnolia International Ltd.
67. Packages - AdminCentral
AdminCentral
App
& Shell Apps
UI Framework - Apps, Locations, Messages, Actions
48 Version 1.0 Magnolia is a registered trademark owned by Magnolia International Ltd.
68. Packages - AdminCentral
AdminCentral
App App
& Shell Apps
UI Framework - Apps, Locations, Messages, Actions
48 Version 1.0 Magnolia is a registered trademark owned by Magnolia International Ltd.
69. Packages - AdminCentral
AdminCentral
App App
& Shell Apps
Content App
UI Framework - Apps, Locations, Messages, Actions
48 Version 1.0 Magnolia is a registered trademark owned by Magnolia International Ltd.
70. Packages - AdminCentral
App
AdminCentral
App App
& Shell Apps
Content App
UI Framework - Apps, Locations, Messages, Actions
48 Version 1.0 Magnolia is a registered trademark owned by Magnolia International Ltd.
71. Packages - AdminCentral
App App
AdminCentral
App App
& Shell Apps
Content App
UI Framework - Apps, Locations, Messages, Actions
48 Version 1.0 Magnolia is a registered trademark owned by Magnolia International Ltd.
72. The Content Structure
Proper Node Types
• mgnl:page, mgnl:component, ...
Proper Mixins for Extensions
• mgnl:renderable, mgnl:activatable
Leaner content structure
• no meta data sub nodes
Binaries are nt:resources nodes
49 Version 1.0 Magnolia is a registered trademark owned by Magnolia International Ltd.
73. Presenters and Views
50 Version 1.0 Magnolia is a registered trademark owned by Magnolia International Ltd.
74. The Result
Main Architecture
Configuration
App-lification
Actions & Commands
Forms & Dialogs
Content App
DAM
Communication
51 Version 1.0 Magnolia is a registered trademark owned by Magnolia International Ltd.
75. UI Model - Definitions
52 Version 1.0 Magnolia is a registered trademark owned by Magnolia International Ltd.
76. Registries, Definitions and Providers
53 Version 1.0 Magnolia is a registered trademark owned by Magnolia International Ltd.
77. Configuration by Code - DSL
1. apps().content().workspace("data").root("/contacts")
2. .types(
3. type("contact").icon("/xxx").dialog(
4. dialog("contact").title("Group").tabs(
5. tab("base").title("Contact").fields(
6. field("firstname").text().title("Name"),
7. field("lastname").text().title("Lastname")))),
8.
9. type("group").icon("/xxx").dialog(
10. dialog("group").title("Group").tabs(
11. tab("group").title("Group").fields(
12. field("name").text().title("Group Name")))
13. .subTypes("contact"))
14.
15. .columns(
16. column("name").text().title("Name").bindings(
17. binding().type("group").to("name")
18. binding().type("contact").to("firstname")),
19. column("modDate").text().title("Modification Date").bindings(
20. binding().allTypes().metaData("modificationDate")))
54 Version 1.0 Magnolia is a registered trademark owned by Magnolia International Ltd.
78. Configuration by Code - Annotations
55 Version 1.0 Magnolia is a registered trademark owned by Magnolia International Ltd.
79. The Result
Main Architecture
Configuration
App-lification
Actions & Commands
Forms & Dialogs
Content App
DAM
Communication
56 Version 1.0 Magnolia is a registered trademark owned by Magnolia International Ltd.
80. It’s a UI Component
has its own context and lifecycle
57 Version 1.0 Magnolia is a registered trademark owned by Magnolia International Ltd.
81. Launch it
58 Version 1.0 Magnolia is a registered trademark owned by Magnolia International Ltd.
82. App API - UML
59 Version 1.0 Magnolia is a registered trademark owned by Magnolia International Ltd.
83. Location, Location, Location
URL Anchor
• #app:<appName>:<subAppId>:<parameter>
In App navigation
• main, app, subapp
Bookmarks
• save URL, send them to other users, ...
History
• back and forward buttons
60 Version 1.0 Magnolia is a registered trademark owned by Magnolia International Ltd.
84. Developer’s View
61 Version 1.0 Magnolia is a registered trademark owned by Magnolia International Ltd.
85. It’s the Context
62 Version 1.0 Magnolia is a registered trademark owned by Magnolia International Ltd.
86. Take the Bus - In App communication
63 Version 1.0 Magnolia is a registered trademark owned by Magnolia International Ltd.
87. Apps vs. Modules
App is a UI component
Module can have
• Apps
• Templates
• Extensions
64 Version 1.0 Magnolia is a registered trademark owned by Magnolia International Ltd.
88. Are you following me ....
65 Version 1.0 Magnolia is a registered trademark owned by Magnolia International Ltd.
89. Are you following me ....
65 Version 1.0 Magnolia is a registered trademark owned by Magnolia International Ltd.
90. The Result
Main Architecture
Configuration
App-lification
Actions & Commands
Forms & Dialogs
Content App
DAM
Communication
66 Version 1.0 Magnolia is a registered trademark owned by Magnolia International Ltd.
91. Actions and Commands
67 Version 1.0 Magnolia is a registered trademark owned by Magnolia International Ltd.
92. Actions
The UI event handling
Open Dialog
Call Command
Show message to user
Change location
68 Version 1.0 Magnolia is a registered trademark owned by Magnolia International Ltd.
93. Commands
Backend executable
No UI
Invoked by
• UI
• WebServices
• Workflow
69 Version 1.0 Magnolia is a registered trademark owned by Magnolia International Ltd.
94. Action Bar
Configured
• Customize the App
• Add Actions by Module
Independent
• Content Apps
• Page Editor
• Messages
Preview
Sensitive
• Content type
70 Version 1.0 Magnolia is a registered trademark owned by Magnolia International Ltd.
95. The Result
Main Architecture
Configuration
App-lification
Actions & Commands
Forms & Dialogs
Content App
DAM
Communication
71 Version 1.0 Magnolia is a registered trademark owned by Magnolia International Ltd.
96. Form, Fields and Tabs
Configured
• no coding needed
Independent
• used in Apps
• used in Dialogs
Data binding
• Items not Nodes
72 Version 1.0 Magnolia is a registered trademark owned by Magnolia International Ltd.
97. Forms vs. Dialogs
Form Dialog
73 Version 1.0 Magnolia is a registered trademark owned by Magnolia International Ltd.
98. Forms vs. Dialogs
Form Dialog
73 Version 1.0 Magnolia is a registered trademark owned by Magnolia International Ltd.
99. Forms vs. Dialogs
Form Dialog
73 Version 1.0 Magnolia is a registered trademark owned by Magnolia International Ltd.
100. Forms vs. Dialogs
Form Dialog
73 Version 1.0 Magnolia is a registered trademark owned by Magnolia International Ltd.
101. Forms vs. Dialogs
Form Dialog
73 Version 1.0 Magnolia is a registered trademark owned by Magnolia International Ltd.
102. Form in an App
74 Version 1.0 Magnolia is a registered trademark owned by Magnolia International Ltd.
103. Form in a Dialog
75 Version 1.0 Magnolia is a registered trademark owned by Magnolia International Ltd.
104. Validation, Errors and Warnings
76 Version 1.0 Magnolia is a registered trademark owned by Magnolia International Ltd.
105. The Result
Main Architecture
Configuration
App-lification
Actions & Commands
Forms & Dialogs
Content Apps
DAM
Communication
77 Version 1.0 Magnolia is a registered trademark owned by Magnolia International Ltd.
106. We want to reinvent the phone. What's the killer app?
The killer app is making calls! It's amazing how hard
it is to make calls on most phones.
[Steve Jobs]
78 Version 1.0 Magnolia is a registered trademark owned by Magnolia International Ltd.
107. CMS it
make content management easy
79 Version 1.0 Magnolia is a registered trademark owned by Magnolia International Ltd.
108. Contacts, Pages, DAM
all based on the same fundament
80 Version 1.0 Magnolia is a registered trademark owned by Magnolia International Ltd.
109. Workbench - The entry point
81 Version 1.0 Magnolia is a registered trademark owned by Magnolia International Ltd.
110. Content App - Item Tab Sheets
82 Version 1.0 Magnolia is a registered trademark owned by Magnolia International Ltd.
111. Just configure it
node types
• icons
tree, list, columns
forms
• to edit the content
actions
83 Version 1.0 Magnolia is a registered trademark owned by Magnolia International Ltd.
112. The Result
Main Architecture
Configuration
App-lification
Actions & Commands
Forms & Dialogs
Content App
DAM
Communication
84 Version 1.0 Magnolia is a registered trademark owned by Magnolia International Ltd.
113. Digital Asset Management
85 Version 1.0 Magnolia is a registered trademark owned by Magnolia International Ltd.
114. DAM - API
Providers
• to access other sources
Renditions
• thumbnails, sizes, formats
Metadata
• Dublin Core
86 Version 1.0 Magnolia is a registered trademark owned by Magnolia International Ltd.
115. Media Editors - Images
87 Version 1.0 Magnolia is a registered trademark owned by Magnolia International Ltd.
116. Content Structure
Standard JCR node types
Ready for WebDAV
88 Version 1.0 Magnolia is a registered trademark owned by Magnolia International Ltd.
117. The Result
Main Architecture
Configuration
App-lification
Actions & Commands
Forms & Dialogs
Content App
DAM
Communication
89 Version 1.0 Magnolia is a registered trademark owned by Magnolia International Ltd.
118. Things don't have to change the world
to be important.
[Steve Jobs]
90 Version 1.0 Magnolia is a registered trademark owned by Magnolia International Ltd.
119. The Pulse - Communication Center
91 Version 1.0 Magnolia is a registered trademark owned by Magnolia International Ltd.
120. Message View
be individual
• define screen per
message
• configure the form
don’t talk, act!
• define actions
• workflow steps
92 Version 1.0 Magnolia is a registered trademark owned by Magnolia International Ltd.
121. Build Processes
combine Apps, Messages and Workflow
93 Version 1.0 Magnolia is a registered trademark owned by Magnolia International Ltd.
122. Workflow Engine - JBPM
Well known
Visual Tools available
• Eclipse workflow editor
Execute Commands
• activation, versioning, ...
Define Message Screen for Human Tasks
94 Version 1.0 Magnolia is a registered trademark owned by Magnolia International Ltd.
123. The Takeaways
95 Version 1.0 Magnolia is a registered trademark owned by Magnolia International Ltd.
124. 1) have the courage to fail
then do it better
96 Version 1.0 Magnolia is a registered trademark owned by Magnolia International Ltd.
125. 2) follow the vision
don’t break it by the wrong compromises
97 Version 1.0 Magnolia is a registered trademark owned by Magnolia International Ltd.
126. Imagination is more important than
knowledge.
[Albert Einstein]
98 Version 1.0 Magnolia is a registered trademark owned by Magnolia International Ltd.
127. 3) next steps follows naturally
once the current step is done
99 Version 1.0 Magnolia is a registered trademark owned by Magnolia International Ltd.
128. The best thing about the future is that it
comes one day at a time.
[Abraham Lincoln]
100 Version 1.0 Magnolia is a registered trademark owned by Magnolia International Ltd.
129. 4) no projects over half a year
split bigger projects
101 Version 1.0 Magnolia is a registered trademark owned by Magnolia International Ltd.
130. And now?
102 Version 1.0 Magnolia is a registered trademark owned by Magnolia International Ltd.
131. download, try it
alpha 3 is ready
103 Version 1.0 Magnolia is a registered trademark owned by Magnolia International Ltd.
132. follow the blog
http://dev.magnolia-cms.com/blog/
104 Version 1.0 Magnolia is a registered trademark owned by Magnolia International Ltd.
133. read documentation
http://wiki.magnolia-cms.com/display/DOCS
105 Version 1.0 Magnolia is a registered trademark owned by Magnolia International Ltd.
134. Ready on 20th of June 2013
106 Version 1.0 Magnolia is a registered trademark owned by Magnolia International Ltd.
135. Q&A
107 Version 1.0 Magnolia is a registered trademark owned by Magnolia International Ltd.
136. Resources
St. Gotthard:http (The Approach)://www.flickr.com/photos/giackx/3832338005/sizes/l/in/
photostream/
Math (The Result): http://www.flickr.com/photos/dullhunk/358365339/sizes/l/in/photostream/
Münster Basel (Under the Hood):http://www.flickr.com/photos/kwloo/5398685216/
Spirale - Architecture:http://www.flickr.com/photos/hom26/6941069435/
Helvetia in Basel:http://www.flickr.com/photos/boobook48/4728751130/
108 Version 1.0 Magnolia is a registered trademark owned by Magnolia International Ltd.