Submit Search
Upload
Boosting productivity with "Plone-driven Plone development"
•
Download as PPT, PDF
•
0 likes
•
594 views
Henning Rietz
Follow
Slides of my talk at the Plone conference 2010 in Bristol, Okt 28th
Read less
Read more
Technology
Report
Share
Report
Share
1 of 24
Download now
Recommended
اوسلووووووووووو
اوسلووووووووووو
ammar
õPilaskodduse Suunamine
õPilaskodduse Suunamine
annett19
Toursurvey Focus Revised Publd
Toursurvey Focus Revised Publd
guest9f15e30
Garda
Garda
annett19
ช้างเผือกคู่พระบารมี
ช้างเผือกคู่พระบารมี
smonklin
Plone-driven Plone development (PD2)
Plone-driven Plone development (PD2)
Henning Rietz
Am I Agile An Introspection Of Our Life
Am I Agile An Introspection Of Our Life
Albert Arul Prakash Rajendran
5 steps to enhance your social media scope
5 steps to enhance your social media scope
marinemaingot
Recommended
اوسلووووووووووو
اوسلووووووووووو
ammar
õPilaskodduse Suunamine
õPilaskodduse Suunamine
annett19
Toursurvey Focus Revised Publd
Toursurvey Focus Revised Publd
guest9f15e30
Garda
Garda
annett19
ช้างเผือกคู่พระบารมี
ช้างเผือกคู่พระบารมี
smonklin
Plone-driven Plone development (PD2)
Plone-driven Plone development (PD2)
Henning Rietz
Am I Agile An Introspection Of Our Life
Am I Agile An Introspection Of Our Life
Albert Arul Prakash Rajendran
5 steps to enhance your social media scope
5 steps to enhance your social media scope
marinemaingot
Fungsi Pie (Program Input Equipment) Dalam
Fungsi Pie (Program Input Equipment) Dalam
Universitas Diponegoro
Islandreferaatvalmis
Islandreferaatvalmis
annett19
Big Data at Twitter, Chirp 2010
Big Data at Twitter, Chirp 2010
Kevin Weil
Hadoop summit 2010 frameworks panel elephant bird
Hadoop summit 2010 frameworks panel elephant bird
Kevin Weil
Hadoop at Twitter (Hadoop Summit 2010)
Hadoop at Twitter (Hadoop Summit 2010)
Kevin Weil
Bluetooth 4.0 specification
Bluetooth 4.0 specification
abhiamanchopra
Sortida biblio 4t
Sortida biblio 4t
elenatorren
Hadoop and pig at twitter (oscon 2010)
Hadoop and pig at twitter (oscon 2010)
Kevin Weil
Spatial Analytics, Where 2.0 2010
Spatial Analytics, Where 2.0 2010
Kevin Weil
Ens visita el
Ens visita el
elenatorren
SPRI février 2017 - Stratégie médias sociaux
SPRI février 2017 - Stratégie médias sociaux
Yan Luong
NoSQL at Twitter (NoSQL EU 2010)
NoSQL at Twitter (NoSQL EU 2010)
Kevin Weil
Ecandidature
Ecandidature
Odile Dupont
Sioux Hot-or-Not: Model Driven Software Development (Markus Voelter)
Sioux Hot-or-Not: Model Driven Software Development (Markus Voelter)
siouxhotornot
SodiusCassidianmdday2010 101129081449-phpapp02
SodiusCassidianmdday2010 101129081449-phpapp02
SodiusWillert
Pragmatic Model Driven Development using openArchitectureWare
Pragmatic Model Driven Development using openArchitectureWare
Michael Vorburger
Android crash course
Android crash course
Showmax Engineering
ER 2015 EMFViews
ER 2015 EMFViews
Jokin García Pérez
EMF Views: A View Mechanism for Integrating Heterogeneous Models - ER 2015 @ ...
EMF Views: A View Mechanism for Integrating Heterogeneous Models - ER 2015 @ ...
Hugo Bruneliere
How to reduce DTP and translation costs with FrameMaker
How to reduce DTP and translation costs with FrameMaker
Globalization Partners International
Jmp108
Jmp108
John Head
eTrice: a proposed Eclipse project for embedded MDSD based on ROOM
eTrice: a proposed Eclipse project for embedded MDSD based on ROOM
Henrik Rentz-Reichert
More Related Content
Viewers also liked
Fungsi Pie (Program Input Equipment) Dalam
Fungsi Pie (Program Input Equipment) Dalam
Universitas Diponegoro
Islandreferaatvalmis
Islandreferaatvalmis
annett19
Big Data at Twitter, Chirp 2010
Big Data at Twitter, Chirp 2010
Kevin Weil
Hadoop summit 2010 frameworks panel elephant bird
Hadoop summit 2010 frameworks panel elephant bird
Kevin Weil
Hadoop at Twitter (Hadoop Summit 2010)
Hadoop at Twitter (Hadoop Summit 2010)
Kevin Weil
Bluetooth 4.0 specification
Bluetooth 4.0 specification
abhiamanchopra
Sortida biblio 4t
Sortida biblio 4t
elenatorren
Hadoop and pig at twitter (oscon 2010)
Hadoop and pig at twitter (oscon 2010)
Kevin Weil
Spatial Analytics, Where 2.0 2010
Spatial Analytics, Where 2.0 2010
Kevin Weil
Ens visita el
Ens visita el
elenatorren
SPRI février 2017 - Stratégie médias sociaux
SPRI février 2017 - Stratégie médias sociaux
Yan Luong
NoSQL at Twitter (NoSQL EU 2010)
NoSQL at Twitter (NoSQL EU 2010)
Kevin Weil
Ecandidature
Ecandidature
Odile Dupont
Viewers also liked
(13)
Fungsi Pie (Program Input Equipment) Dalam
Fungsi Pie (Program Input Equipment) Dalam
Islandreferaatvalmis
Islandreferaatvalmis
Big Data at Twitter, Chirp 2010
Big Data at Twitter, Chirp 2010
Hadoop summit 2010 frameworks panel elephant bird
Hadoop summit 2010 frameworks panel elephant bird
Hadoop at Twitter (Hadoop Summit 2010)
Hadoop at Twitter (Hadoop Summit 2010)
Bluetooth 4.0 specification
Bluetooth 4.0 specification
Sortida biblio 4t
Sortida biblio 4t
Hadoop and pig at twitter (oscon 2010)
Hadoop and pig at twitter (oscon 2010)
Spatial Analytics, Where 2.0 2010
Spatial Analytics, Where 2.0 2010
Ens visita el
Ens visita el
SPRI février 2017 - Stratégie médias sociaux
SPRI février 2017 - Stratégie médias sociaux
NoSQL at Twitter (NoSQL EU 2010)
NoSQL at Twitter (NoSQL EU 2010)
Ecandidature
Ecandidature
Similar to Boosting productivity with "Plone-driven Plone development"
Sioux Hot-or-Not: Model Driven Software Development (Markus Voelter)
Sioux Hot-or-Not: Model Driven Software Development (Markus Voelter)
siouxhotornot
SodiusCassidianmdday2010 101129081449-phpapp02
SodiusCassidianmdday2010 101129081449-phpapp02
SodiusWillert
Pragmatic Model Driven Development using openArchitectureWare
Pragmatic Model Driven Development using openArchitectureWare
Michael Vorburger
Android crash course
Android crash course
Showmax Engineering
ER 2015 EMFViews
ER 2015 EMFViews
Jokin García Pérez
EMF Views: A View Mechanism for Integrating Heterogeneous Models - ER 2015 @ ...
EMF Views: A View Mechanism for Integrating Heterogeneous Models - ER 2015 @ ...
Hugo Bruneliere
How to reduce DTP and translation costs with FrameMaker
How to reduce DTP and translation costs with FrameMaker
Globalization Partners International
Jmp108
Jmp108
John Head
eTrice: a proposed Eclipse project for embedded MDSD based on ROOM
eTrice: a proposed Eclipse project for embedded MDSD based on ROOM
Henrik Rentz-Reichert
Code generation
Code generation
Doug Holland
Smalltalk speaks dot net
Smalltalk speaks dot net
ESUG
ALT
ALT
frolikat
MobiCloud: Towards Cloud Mobile Hybrid Application Generation using Semantica...
MobiCloud: Towards Cloud Mobile Hybrid Application Generation using Semantica...
Amit Sheth
[SiriusCon 2018] A Bird's Eye View on Eclipse Sirius
[SiriusCon 2018] A Bird's Eye View on Eclipse Sirius
Obeo
Composite C1 Presentaion
Composite C1 Presentaion
jakobbartholdy
Sodius cassidian mdday2010
Sodius cassidian mdday2010
MD DAY
Tag Integration with Schneider Electric PLCs and Modbus in InduSoft Web Studio
Tag Integration with Schneider Electric PLCs and Modbus in InduSoft Web Studio
AVEVA
Software development effort reduction with Co-op
Software development effort reduction with Co-op
lbergmans
MDD and modeling tools research
MDD and modeling tools research
Roger Xia
Monorail presentation at WebDevelopersCommunity, Feb 1, 2009
Monorail presentation at WebDevelopersCommunity, Feb 1, 2009
ken.egozi
Similar to Boosting productivity with "Plone-driven Plone development"
(20)
Sioux Hot-or-Not: Model Driven Software Development (Markus Voelter)
Sioux Hot-or-Not: Model Driven Software Development (Markus Voelter)
SodiusCassidianmdday2010 101129081449-phpapp02
SodiusCassidianmdday2010 101129081449-phpapp02
Pragmatic Model Driven Development using openArchitectureWare
Pragmatic Model Driven Development using openArchitectureWare
Android crash course
Android crash course
ER 2015 EMFViews
ER 2015 EMFViews
EMF Views: A View Mechanism for Integrating Heterogeneous Models - ER 2015 @ ...
EMF Views: A View Mechanism for Integrating Heterogeneous Models - ER 2015 @ ...
How to reduce DTP and translation costs with FrameMaker
How to reduce DTP and translation costs with FrameMaker
Jmp108
Jmp108
eTrice: a proposed Eclipse project for embedded MDSD based on ROOM
eTrice: a proposed Eclipse project for embedded MDSD based on ROOM
Code generation
Code generation
Smalltalk speaks dot net
Smalltalk speaks dot net
ALT
ALT
MobiCloud: Towards Cloud Mobile Hybrid Application Generation using Semantica...
MobiCloud: Towards Cloud Mobile Hybrid Application Generation using Semantica...
[SiriusCon 2018] A Bird's Eye View on Eclipse Sirius
[SiriusCon 2018] A Bird's Eye View on Eclipse Sirius
Composite C1 Presentaion
Composite C1 Presentaion
Sodius cassidian mdday2010
Sodius cassidian mdday2010
Tag Integration with Schneider Electric PLCs and Modbus in InduSoft Web Studio
Tag Integration with Schneider Electric PLCs and Modbus in InduSoft Web Studio
Software development effort reduction with Co-op
Software development effort reduction with Co-op
MDD and modeling tools research
MDD and modeling tools research
Monorail presentation at WebDevelopersCommunity, Feb 1, 2009
Monorail presentation at WebDevelopersCommunity, Feb 1, 2009
Recently uploaded
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Alan Dix
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
Delhi Call girls
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
Sinan KOZAK
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
Malak Abu Hammad
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
Neo4j
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
Softradix Technologies
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
Padma Pradeep
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
Memoori
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Enjoy Anytime
Key Features Of Token Development (1).pptx
Key Features Of Token Development (1).pptx
LBM Solutions
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
Puma Security, LLC
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
Delhi Call girls
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
null - The Open Security Community
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j
How to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
naman860154
Slack Application Development 101 Slides
Slack Application Development 101 Slides
praypatel2
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
carlostorres15106
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
naman860154
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
soniya singh
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
2toLead Limited
Recently uploaded
(20)
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Key Features Of Token Development (1).pptx
Key Features Of Token Development (1).pptx
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
How to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
Slack Application Development 101 Slides
Slack Application Development 101 Slides
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Boosting productivity with "Plone-driven Plone development"
1.
We make IT berlinbrandenburg PD2 Plone
Driven Plone Development Henning Rietz, Condat AG Plone Conference 2010 Bristol, 28.10.2010 IT from Berlin
2.
© 2010 Condat
AG 2 Speaker specifics Henning Rietz, hr@condat.de Condat AG Software for innovative business processes. Founded 1979 Location Berlin Staff ~65
3.
© 2010 Condat
AG 3 Alliterated Agenda Major motivation Definitive Dream Attractive Advantages Multiple models All-round Application Outrageous Outlook
4.
© 2010 Condat
AG 4 Major motivation Likes Model-driven development Application of design patterns ArchGenXML Dislikes Writing boilerplate code Editing *.zcml, *.xml Migration migraine (Plone 234 …) Learning curve for new developers
5.
© 2010 Condat
AG 5 Definitive dream The model is Plone content.
6.
© 2010 Condat
AG 6 Dream details Metamodel == Domain-specific language == Plone Content Types Model == Metadata == Description of a specific system == Plone content Code == Implementation of a specific system == Views on Plone content (metadata) Metamodel == Domain-specific language == Plone Content Types Model == Metadata == Description of a specific system == Plone content Code == Implementation of a specific system == Views on Plone content (metadata) ArchGenXML: • Metamodel == UML Metamodel • Model == UML (XMI file) • Code == generated from XMI PloneFormGen: • Metamodel == PFG Content Types • Model == FormFolder + Subobjects • No code generated, interpretation of model at runtime Collections ExistingExamples It‘s an approach – not a product.
7.
© 2010 Condat
AG 7 Attractive Advantages Reduces manual coding effort Generates .py, .pt, .cpt, .cpy, .xml, .sql, .zcml, … High configurability (for you and the customer) Model can be accessed at runtime Behavior of generic parts is dynamically changed Increases productivity Homogenous environment, everything is Plone-ish Makes your design patterns explicit, enforces conventions Better learning curve for new developers Higher maintainability Single source for changes Helps you deal with major changes in Plone architecture Integrated documentation (orange: specific strengths of PD2, otherwise: typical advantage of MDD)
8.
© 2010 Condat
AG 8 Conflicting Challenges Keep implementation details out of the models Make it simple Customer readable Generate as much as possible (and useful) Make it powerful Executable
9.
© 2010 Condat
AG 9 Domain description Finding your metamodel – How would you describe your future systems? What abstractions/patterns do you employ? Possible input Legacy systems (to be migrated) The future design Storyboards UML models Your own patterns/frameworks User/technical documentation
10.
© 2010 Condat
AG 10 Multiple metamodels Content Views Navigation Layout Authoring Build Deployment Code Structure Abstraction Looking at the system from different perspectives
11.
© 2010 Condat
AG 11 Code structure
12.
© 2010 Condat
AG 12 Concepts / structures for code generation File, Directory, FileSeries, FileGroup, etc. PT/DTML Templates for code generation, using domain model objects as contexts Code generation traverses the structure, applying model elements to templates, writing the resulting code to the local file system of the Zope (ZEO client) instance Code structure modelling
13.
© 2010 Condat
AG 13 UML example
14.
© 2010 Condat
AG 14 Example structure ('plone3layout', 'Plone 3 Standard Layout', 'PD2Layout', {'namingExpression':'context.Title()'}, [ ('readme.txt','README.txt','PD2File',{'viewname':'empty','namingExpression':'self.Title()'},[]), ('setup.cfg','setup.cfg','PD2File',{'viewname':'empty','namingExpression':'self.Title()'},[]), ('setup.py','setup.py','PD2File',{'viewname':setup','namingExpression':'self.Title()'},[]), ('modulepart1','<modulepart1>','PD2Directory',{'viewname':'','namingExpression':'context.Title().split('.')[0]'}, [ ('init.py','__init__.py','PD2File',{'viewname':'initpkg','namingExpression':'self.Title()'},[]), ('modulepart2','<modulepart2>','PD2Directory',{'viewname':'','namingExpression':'context.Title().split('.')[1]'}, [ ('init.py','__init__.py','PD2File',{'viewname':'init','namingExpression':'self.Title()'},[]), ('configure.zcml','configure.zcml','PD2File',{'viewname':'configure','namingExpression':'self.Title()'},[]), ('config.py','config.py','PD2File',{'viewname':'empty','namingExpression':'self.Title()'},[]), ('interfaces.py','interfaces.py','PD2File',{'viewname':'interfaces','namingExpression':'self.Title()'},[]), ('readme.txt','README.txt','PD2File',{'viewname':'empty','namingExpression':'self.Title()'},[]), ('version.txt','version.txt','PD2File',{'viewname':'empty','namingExpression':'self.Title()'},[]), ('browser','browser','PD2Directory',{'viewname':'','namingExpression':'self.Title()'},[]), ('content','content','PD2Directory',{'viewname':'','namingExpression':'self.Title()'}, [ ('init.py','__init__.py','PD2File',{'viewname':'empty','namingExpression':'self.Title()'},[]), ('type.py','<type>.py','PD2FileSeries',{'viewname':'atclass','namingExpression':''%s.py' % context.Title().lower()','listExpression':'context.getContentTypes()'},[]), ('configure.zcml','configure.zcml','PD2File',{'viewname':'cconfigure','namingExpression':'self.Title()'},[]), ]), ('profiles','profiles','PD2Directory',{'viewname':'','namingExpression':'self.Title()'}, [ ('default','default','PD2Directory',{'viewname':'','namingExpression':'self.Title()'}, [ …
15.
© 2010 Condat
AG 15 Example: gstype view <tal:block i18n:domain="conpd2.codegen" tal:define="ct context/Title"> <object tal:replace='structure string:<?xml version="1.0"?>'/> <object name="PD2Adapter" tal:attributes="name ct" meta_type="Factory-based Type Information with dynamic views" xmlns:i18n="http://xml.zope.org/namespaces/i18n"> <property name="title" tal:content="ct">PD2Adapter</property> <property name="description"></property> <property name="content_meta_type" tal:content="ct">PD2Adapter</property> <property name="product" tal:content="context/getProductName">ConPD2</property> <property name="factory" tal:content="string:add${ct}">addPD2Adapter</property> <property name="immediate_view">base_view</property> <property name="global_allow">True</property> <property name="filter_content_types">False</property> <property name="allowed_content_types"> </property> <property name="allow_discussion">False</property> <property name="default_view">base_view</property> <property name="view_methods"> <element value="base_view"/> … Full example
16.
© 2010 Condat
AG 16 Content
17.
© 2010 Condat
AG 17 Content modelling Describes most of the information architecture Metamodel: Types, Attributes, Relationships Probably even more domain-specific Code: AT schemata, classes, GS xml, zcml Also possible: RDBMS-related content
18.
© 2010 Condat
AG 18 UML example (this is taken from the metamodel of the first version of ConPD2, which is basically a metamodel for AT development)
19.
© 2010 Condat
AG 19 Views
20.
© 2010 Condat
AG 20 Views modelling What is presented where/how? Metamodel: View Types (e.g. single object, object list, dashboard) with presentation details (e.g. sorting, batching) Code: template fragments, macros, view classes, helper methods
21.
© 2010 Condat
AG 21 More metamodels Navigation: primary, secondary, depth, … navigation portlet, sections viewlet Layout: two/three columns, header, footer, … Viewlets, CSS (cf. Subskins product) Authoring: roles, workflows, staging, content rules Build & Deployment: devbuildout|production|test.cfg, deployment scripts, monitoring frontend
22.
© 2010 Condat
AG 22 All-round Application Implement Metamodel E.g. with ArgoUML, ArchGenXML Templates for code generation Deploy PD2 Model lives in ZEO server Developers work with local ZEO Client, which writes to local file system Develop with PD2 Describe customer site in terms of the metamodel Push the button Make customer specific extensions Implement generic parts (which interpret metadata at runtime) Iterate
23.
© 2010 Condat
AG 23 Outrageous Outlook Metamodels for knowledge management, public internet, collaborative applications, … Plone Technology Metamodel Generic Applications for multiple clients in SaaS scenarios
24.
© 2010 Condat
AG 24 Thank you Condat AG Henning Rietz Alt-Moabit 91 d 10559 Berlin Tel. (030) 3949-1179 hr@condat.de www.condat.de
Editor's Notes
Motivation: Likes & Dislikes Idea
Die Startseite zeigt… Auf den nächsten Ebenen sieht man Wenn man ein X öffnet, dann Typen: Dashboard, SingleObject, ObjectList, Form Bausteine: Bildergalerie, Zusatzinformationen Ausdrücke: die letzten X, die neusten Y, allg. Suchkritieren
Download now