Integrando Plone con cualquier cosa

45
Integrando Plone con cuAlqu ier cosa Roberto Allende [email protected] http://robertoallende.com http://twitter.com/robertoallende http://menttes.com menttes

description

Charla presentada en el Simposio Sudamericano de Plone 2009 donde se presentan distintos enfoques para integrar Plone con otras aplicaciones y frameworks desde las capas: modelo y vista por medio de contentmirror y deliverance respectivamente.

Transcript of Integrando Plone con cualquier cosa

Page 1: Integrando Plone con cualquier cosa

Integrando Plone con

cuAlquier cosa

Roberto [email protected]

http://robertoallende.comhttp://twitter.com/robertoallendehttp://menttes.com

menttes

Page 2: Integrando Plone con cualquier cosa

Ustedes

Page 3: Integrando Plone con cualquier cosa

Operating System Wars

LinuxMac

WindowsWindows

Page 4: Integrando Plone con cualquier cosa

Plone OS Way

Linux + PloneMac + Plone

Windows + Plone

Page 5: Integrando Plone con cualquier cosa

Text Editor Wars

VimEmacsEclipse

Windows

Page 6: Integrando Plone con cualquier cosa

Plone text editor Way

Vim + PloneEmacs + PloneEclipse + Plone

Page 7: Integrando Plone con cualquier cosa

Browser Wars

FirefoxSafariOpera

ChromeIE

Page 8: Integrando Plone con cualquier cosa

Plone Browser Way

Firefox + PloneSafari + PloneOpera + Plone

Chrome + PloneIE + Plone

Page 9: Integrando Plone con cualquier cosa

Cómo integramos Plonecon otras aplicaciones o tecnologías

?Windows

Page 10: Integrando Plone con cualquier cosa

Integrar Plone con cualquier cosa

Matt HamiltonCarlos de la Guardia

Roberto Allende → (integrador)

Windows

Page 11: Integrando Plone con cualquier cosa

Windows

Presentación

Model / Datos

Page 12: Integrando Plone con cualquier cosa

Windows

Presentación

Caso 1: Moodle + .Net + Plone

Page 13: Integrando Plone con cualquier cosa

xdvtheme.inventions

PLONERecusos Estaticos

HTML / CSS

Deliverance / Collective.XDV

Page 14: Integrando Plone con cualquier cosa

Pintandole los labios al puerco

Dynamically re-skinning a legacy .NET portal with python

Matt [email protected]

Page 15: Integrando Plone con cualquier cosa

Introduction

Dynamically re-skinning a .NET portal site Can't name the client Portal for teachers in the UK Aggregating content across legacy portal,

Plone and Moodle

Page 16: Integrando Plone con cualquier cosa

Existing Portal (1.0)

Five years old by November 2009 User registrations: 46,681 Course enrolments: 33,664 Resource Bank views: 247,911

Page 17: Integrando Plone con cualquier cosa

Existing Portal (1.0)

Page 18: Integrando Plone con cualquier cosa

Problems with Current Portal Look-and-feel

→ Not very compelling Usability

→ Challenging in places A poor content management system

→ Can't really edit general content, so use a separate FTP server and Dreamweaver

Vendor lock-in→ Even small changes, very expensive

Page 19: Integrando Plone con cualquier cosa

The Future - Portal 2.0

Usability, Design and Content Review April 2008

Strategic Review August 2008 Feasibility Studies Jan 2009 Pilot Demonstrator (“Portal V1.5”) March 2009

Page 20: Integrando Plone con cualquier cosa

Design Review

Page 21: Integrando Plone con cualquier cosa

Architecture Review

Portal 1.0 - Monolithic, tightly coupled, poor separation of skin

Page 22: Integrando Plone con cualquier cosa

Architecture Review

Portal 2.0 - Extensible, loosely coupled, good separation of skin

Page 23: Integrando Plone con cualquier cosa

How Do We Get There?

Remember: We Can't Touch the Existing System!

Page 24: Integrando Plone con cualquier cosa

The Cunning Plan

Skin 1.0

Portal 1.0

ExistingPortal Module

of functionality e.g. portfolio

Browser

Page 25: Integrando Plone con cualquier cosa

Total Skin Graft!

Portal 1.5

New skin via xpath and xslt

transformation.

Web server

needs to handle

SSL.

Together they give us nice URLs.

Skin 1.0

web server

transformation proxy

Skin 2.0

Browser

Page 26: Integrando Plone con cualquier cosa

Deliverance

Several Different Projects→ xdv→ Deliverance 0.3

To learn more on specifics of Deliverance go to http://deliverance.openplans.org

Page 27: Integrando Plone con cualquier cosa

Result

Old→ 70kb of HTML→ 120 Validation errors, 61 warnings

New→ 40Kb of HTML→ 27 Errors, 1 warning (mainly xhtml/html conflicts)→ No significant performance impact

Page 28: Integrando Plone con cualquier cosa

Putting all togetherComposite:main

pipeline:portal pipeline:plone pipeline:moodle

theme.content

navmerger

plonecontent

source.plone

theme.content

xslt

linkrewrite

htmlcleaner

theme.content

navmerger

moodlecontent

source.moodle

source.portal

Page 29: Integrando Plone con cualquier cosa

End ResultNew Style

Portal content

Page 30: Integrando Plone con cualquier cosa

Caso 2: Coactivate

Page 31: Integrando Plone con cualquier cosa

Coactivate: Plone

Page 32: Integrando Plone con cualquier cosa

Coactivate: Wordpress

Page 33: Integrando Plone con cualquier cosa

xdvtheme.inventions

<proxy path="/news" class="inner"> <dest href="http://localhost:55000/VirtualHostBase/

{wsgi.url_scheme}/{HTTP_HOST}/mysite/news/VirtualHostRoot" /> </proxy>

<rule class="inner" suppress-standard="1"> <theme href="/static/inner.html" />

Page 34: Integrando Plone con cualquier cosa

Caso 3: collective XDV

Page 35: Integrando Plone con cualquier cosa

xdvtheme.inventions

Page 36: Integrando Plone con cualquier cosa

xdvtheme.inventions

<rules xmlns="http://openplans.org/deliverance"> <!-- title --> <replace content='/html/head/title' theme='/html/head/title' />

<!-- content area -->

<copy content='//*[@id="content"]' theme='//*[@id="leftcolumn"]' /> <copy content='//*[@id="portal-globalnav"]' theme='//*[@id="links"]' />

<!-- Portlets --> <copy content='//*[@id="portal-column-two"]' theme='//*[@id="rightcolumn"]' /> <drop content='//*/dl/dd/a/img' /> </rules>

Page 37: Integrando Plone con cualquier cosa

xdvtheme.inventions

Page 38: Integrando Plone con cualquier cosa

xdvtheme.inventions

Page 39: Integrando Plone con cualquier cosa

http://plone.org/products/xdvtheme.inventions/

Page 40: Integrando Plone con cualquier cosa

Windows

Presentación

Model / Datos

Deliverance

ContentMirror

Page 41: Integrando Plone con cualquier cosa

Plone + salesforce ?

Page 42: Integrando Plone con cualquier cosa

Plone + jython + java ?

Page 43: Integrando Plone con cualquier cosa

Plone + ironpython ?

Page 44: Integrando Plone con cualquier cosa

Plone + ironpython + mono ?

Page 45: Integrando Plone con cualquier cosa

Muchas gracias

Roberto Allendementtes

[email protected]

http://robertoallende.com

http://twitter.com/robertoallende

http://menttes.com