Magnolia GenUIne Prototyping Overview

bookmarkalikeInternet and Web Development

Dec 14, 2013 (7 years and 10 months ago)

446 views

Version 2.0

3. August 2009 Vivian Steller
Magnolia is a registered trademark used by permission
Magnolia GenUIne Prototyping
Overview
1

Goals & aspects

Proposed technology stack

Implementation ideas

Tasks, time schedule & „responsibilities“
Version 2.0

3. August 2009 Vivian Steller
Magnolia is a registered trademark used by permission
Magnolia GenUIne Prototyping
Goals
2

implement a functional prototype that ...

uses a set of
concrete technologies

is based on a simplified abstraction
of Magnolia to show
key concepts

and consequences
of the technology
in use

however, shows
key integration
points
to see if integration is feasible
at all

score/weight
key factors
of the
technologies in use and their impacts
but ...
don‘t get lost in „we could do
it also with technology XYZ“
don‘t get lost in the complete
complexity of Magnolia
again, roughly implemented,
reduce complexity
decide knock-out criteria
upfront
Version 2.0

3. August 2009 Vivian Steller
Magnolia is a registered trademark used by permission
Magnolia GenUIne Prototyping
Goals (cont.)
3

concrete functionalities implemented

admin central (menu, tree, list)

dialogs (generated forms, validation)

in-place/preview editing (plug into customer website
design)

new functionality: AJAX push support

theming
Version 2.0

3. August 2009 Vivian Steller
Magnolia is a registered trademark used by permission
Magnolia GenUIne Prototyping
Goals (cont.)
4

common understanding

non-functional aspects: consider...

programmer‘s know-how

tool support

testability

maintainability

performance

extensibility (customer additions)
Version 2.0

3. August 2009 Vivian Steller
Magnolia is a registered trademark used by permission
Magnolia 5 Server Webapp
Magnolia 5 Client Standalone Webapp
Magnolia GenUIne Prototyping
Proposed technology stack
5
SERVER
CLIENT
or
or
Version 2.0

3. August 2009 Vivian Steller
Magnolia is a registered trademark used by permission
Magnolia 5 Server Webapp
Magnolia 5 Client Standalone Webapp
Magnolia GenUIne Prototyping
Proposed technology stack
5
SERVER
CLIENT
or
or
HTTP + JSON/XML (JAXB)
Version 2.0

3. August 2009 Vivian Steller
Magnolia is a registered trademark used by permission
Magnolia 5 Server Webapp
Magnolia 5 Client Standalone Webapp
GWT RPC
(Serializable obj.s)
Magnolia GenUIne Prototyping
Proposed technology stack
5
SERVER
CLIENT
or
or
HTTP + JSON/XML (JAXB)
Version 2.0

3. August 2009 Vivian Steller
Magnolia is a registered trademark used by permission
Magnolia 5 Server Webapp
Magnolia 5 Client Standalone Webapp
Java-to-JavaScript
(GWT JSNI)
GWT RPC
(Serializable obj.s)
Magnolia GenUIne Prototyping
Proposed technology stack
5
SERVER
CLIENT
or
or
HTTP + JSON/XML (JAXB)
Version 2.0

3. August 2009 Vivian Steller
Magnolia is a registered trademark used by permission
Magnolia 5 Server Webapp
Magnolia 5 Client Standalone Webapp
Java 5 +
Servlet 2.5 +
Comet
Java-to-JavaScript
(GWT JSNI)
GWT RPC
(Serializable obj.s)
Magnolia GenUIne Prototyping
Proposed technology stack
5
SERVER
CLIENT
or
or
HTTP + JSON/XML (JAXB)
Version 2.0

3. August 2009 Vivian Steller
Magnolia is a registered trademark used by permission
Magnolia 5 Server Webapp
Magnolia 5 Client Standalone Webapp
pure Javascript
Java 5 +
Servlet 2.5 +
Comet
Java-to-JavaScript
(GWT JSNI)
GWT RPC
(Serializable obj.s)
Magnolia GenUIne Prototyping
Proposed technology stack
5
SERVER
CLIENT
or
or
HTTP + JSON/XML (JAXB)
Version 2.0

3. August 2009 Vivian Steller
Magnolia is a registered trademark used by permission
Magnolia 5 Server Webapp
JAX-RS
(Resteasy)
Magnolia 5 Client Standalone Webapp
pure Javascript
Java 5 +
Servlet 2.5 +
Comet
Java-to-JavaScript
(GWT JSNI)
GWT RPC
(Serializable obj.s)
Magnolia GenUIne Prototyping
Proposed technology stack
5
SERVER
CLIENT
or
or
HTTP + JSON/XML (JAXB)
Version 2.0

3. August 2009 Vivian Steller
Magnolia is a registered trademark used by permission
Magnolia 5 Server Webapp
Magnolia 5 Client Standalone Webapp
Magnolia GenUIne Prototyping
Proposed technology stack: focus
6
SERVER
CLIENT
Version 2.0

3. August 2009 Vivian Steller
Magnolia is a registered trademark used by permission
Magnolia 5 Server Webapp
Magnolia 5 Client Standalone Webapp
Magnolia GenUIne Prototyping
Proposed technology stack: focus
6
SERVER
CLIENT
HTTP + JSON/XML (JAXB)
Version 2.0

3. August 2009 Vivian Steller
Magnolia is a registered trademark used by permission
Magnolia 5 Server Webapp
Magnolia 5 Client Standalone Webapp
Magnolia GenUIne Prototyping
Proposed technology stack: focus
6
SERVER
CLIENT
HTTP + JSON/XML (JAXB)
Version 2.0

3. August 2009 Vivian Steller
Magnolia is a registered trademark used by permission
Magnolia 5 Server Webapp
Magnolia 5 Client Standalone Webapp
Java-to-JavaScript
(GWT JSNI)
Magnolia GenUIne Prototyping
Proposed technology stack: focus
6
SERVER
CLIENT
HTTP + JSON/XML (JAXB)
Version 2.0

3. August 2009 Vivian Steller
Magnolia is a registered trademark used by permission
Magnolia 5 Server Webapp
Magnolia 5 Client Standalone Webapp
Java 5 +
Servlet 2.5 +
Comet
Java-to-JavaScript
(GWT JSNI)
Magnolia GenUIne Prototyping
Proposed technology stack: focus
6
SERVER
CLIENT
HTTP + JSON/XML (JAXB)
Version 2.0

3. August 2009 Vivian Steller
Magnolia is a registered trademark used by permission
Magnolia 5 Server Webapp
Magnolia 5 Client Standalone Webapp
Java 5 +
Servlet 2.5 +
Comet
Java-to-JavaScript
(GWT JSNI)
Magnolia GenUIne Prototyping
Proposed technology stack: focus
6
SERVER
CLIENT
HTTP + JSON/XML (JAXB)
Version 2.0

3. August 2009 Vivian Steller
Magnolia is a registered trademark used by permission
Magnolia 5 Server Webapp
JAX-RS
(Resteasy)
Magnolia 5 Client Standalone Webapp
Java 5 +
Servlet 2.5 +
Comet
Java-to-JavaScript
(GWT JSNI)
Magnolia GenUIne Prototyping
Proposed technology stack: focus
6
SERVER
CLIENT
HTTP + JSON/XML (JAXB)
Version 2.0

3. August 2009 Vivian Steller
Magnolia is a registered trademark used by permission
Magnolia 5 Client Standalone Webapp
Magnolia GenUIne Prototyping
Implementation ideas: Magnolia as JCR UI
7
SERVER
CLIENT
1.
path
2.
template
3.
node type
4.
dialog properties
Version 2.0

3. August 2009 Vivian Steller
Magnolia is a registered trademark used by permission
Magnolia 5 Client Standalone Webapp
Magnolia GenUIne Prototyping
Implementation ideas: Magnolia as JCR UI
7
SERVER
CLIENT
REST: HTTP + JSON
1.
path
2.
template
3.
node type
4.
dialog properties
Version 2.0

3. August 2009 Vivian Steller
Magnolia is a registered trademark used by permission
Magnolia GenUIne Prototyping
Implementation ideas: inline editing
8

templaters: write plain HTML with Magnolia specific additions

in-line editing elements/dialogs are
hooked in by GWT/Ext JS/jQuery

Magnolia supports GETing content of a
specific paragraph (by path or UUID) in
various formates (HTML rendered, JSON, XML)
<h1
mgnl:edit=“inline“
>Title of My Page (editable inline)</h1>
<div
mgnl:edit=“dialog“ mgnl:uuid=“123CONTENTUUIDGOESHERE456“
>
Paragraph generated markup goes here
</div>
<button
mgnl:edit=“dialog“ mgnl:dialog=“/dialogs/dialogName“
mgnl:reload=“true|false“/
>
GET /repo:website/path/to/content
Accept: text/json
GET /repo:website/uuid:123CONTENTUUIDGOESHERE456
Accept: text/json
Advantage
:
supports AJAX for Magnolia
built websites
Requires:
standardized RESTful
interface à la Sling Cheat
Sheet
Version 2.0

3. August 2009 Vivian Steller
Magnolia is a registered trademark used by permission
9
Version 2.0

3. August 2009 Vivian Steller
Magnolia is a registered trademark used by permission
Magnolia GenUIne Prototyping
Tasks, time schedule & responsibilities
10

Concrete tasks:

implement concrete functionalities, one by one

try integration of each technology

checkout non-functional capabilities („how about testing XYZ?“
etc.)

time schedule & responsibilities

resources: who does what, in what time frame?

BTW: what about a dedicated (private) Magnolia GenUIne mailing
list? Or use magnolia-dev? What about SVN, branch/trunk?