Magritte Magic

1,740 views

Published on

ESUG 2011, Edinburgh

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,740
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
12
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Magritte Magic

  1. 1. Magritte MagicThursday, 25 August 11
  2. 2. Who we are • Nick Ager • Esteban Lorenzano • No, we are not the creators of Magritte or experts. • Lukas created it (and is the unique expert). • But we use it a lot, and we love it.Thursday, 25 August 11
  3. 3. Magritte • A meta-model for describing adaptive models. • Generic. Can be realised in Seaside, Morphic, Cocoa/touch widgets, etc...Thursday, 25 August 11
  4. 4. Describe once, get everywhere • Introspection • Object persistency • Reflection • Object indexing • Documentation • Object setup • Viewer building • Object verification • Editor building • Object adaption • Report building • Data validation • Object customization • Query processing • and much moreThursday, 25 August 11
  5. 5. Describe once, get everywhere • Introspection • Object persistency • Reflection • Object indexing • Documentation • Object setup • Viewer building • Object verification • Editor building • Object adaption • Report building • Data validation • Object customization • Query processing • and much moreThursday, 25 August 11
  6. 6. Magritte • Describe... • ...any class, • ...their attributes • ...relationships • ...some kind of “type” • ...accessing and optionally other properties (anyone you need)Thursday, 25 August 11
  7. 7. Describing models • Descriptions • String, Number, Date, etc. • OneToOne, OneToMany, etc. • Accessors • Selector, Pluggable, Chain, etc. • MementosThursday, 25 August 11
  8. 8. So... what to do with all those descriptions?Thursday, 25 August 11
  9. 9. “The model”Thursday, 25 August 11
  10. 10. Interpreting descriptions • Creating editors • complex validations • cancel/save (using mementos) • Building custom interpretations • Describing non-visual modelsThursday, 25 August 11
  11. 11. Edit anything (1) • #asComponent • addValidation • addForm: #() • Custom component renderersThursday, 25 August 11
  12. 12. DemoThursday, 25 August 11
  13. 13. Edit anything (2) • We saw Magritte-Seaside • There is also Magritte-Morph • And you can build your own • Magritte-ReefThursday, 25 August 11
  14. 14. DemoThursday, 25 August 11
  15. 15. Build your own renderer • You can create your own look and feel and behavioursThursday, 25 August 11
  16. 16. DemoThursday, 25 August 11
  17. 17. Describe and use • The idea is to use magritte description capabilities to create unique, non-common, non-reusable, behaviors • But still have the power of using a description (validation, etc.)Thursday, 25 August 11
  18. 18. We don’t have a demo for this, you have to believe us :)Thursday, 25 August 11
  19. 19. Describe anything • JSON/XML • Magritte-Glorp (DBXTalk: see talk tomorrow) • Magritte-UML (just an idea)Thursday, 25 August 11
  20. 20. DemoThursday, 25 August 11
  21. 21. Problems • Where do I place my descriptions? • Not everything can be described-then- transformed as I want • for instance, not everything can be a “master-detail” and still be useful, but is hard to build a different implementation (not impossible, just hard)Thursday, 25 August 11
  22. 22. Magritte Issues • Name collision with #description • Cache-invalidation • dynamic descriptions: • instance specific descriptions • context dependent descriptionsThursday, 25 August 11
  23. 23. Solutions • rename #description to #magritteDescription • move descriptions to instance-side • Use <magritte>Thursday, 25 August 11
  24. 24. Further information • Seaside Book: http://book.seaside.st/book/ advanced/magritte • Lukass site:  http://www.lukas-renggli.ch/ smalltalk/magritte • mail list: <smallwiki@iam.unibe.ch> • Esteban’s Reef talk on FridayThursday, 25 August 11
  25. 25. Questions?Thursday, 25 August 11

×