Getting Started with 
QCMagritte 
Diego Lont & Stephan Eggermont 
• Download a QCMagritte image from 
http://ci.inria.org/...
What is QC-Magritte 
• Application level framework 
• On top of Seaside and Magritte 
• Provides re-usable parts for commo...
QCMagritte supports ... 
Application 
Template 
Influences 
(AJAX) 
Table support 
Search 
(Queries) 
Application 
navigat...
Example: CI 
• Continuous Integration Server 
• Not focus of the talk 
• Predefined with Magritte definitions 
dinsdag 19 ...
CI Model 
CI-Model Trigger 
Configuration 
Build 
Definition 
PProrojejecct t Project 
BBuuilidld Build 
Build 
Step 
Buil...
Demo 
• View magritte descriptions in model 
dinsdag 19 augustus 14
Template 
• Application 
• Seaside application, registering itself 
• Points to model 
• Creates menu 
• Model 
• Describe...
Bootstrap template 
QCBootstrapApplication subclass: #CIBuildServerApplication 
CIBuildServerApplication>>title 
^'Demo CI...
Demo 
• Show code 
• Run tutorial:1 
• Show application 
• Add 2 projects 
• 1 project defines steps and triggers 
dinsdag...
Default commands 
• CRUD 
• User rights 
• Domain constraints 
CIProject>>canRemove 
^self builds isEmpty 
dinsdag 19 augu...
Custom commands 
• Domain object has containerActions 
• Label 
• Condition 
• Action 
CIProject>>containerActions: aConta...
Custom components 
• Easy extend model with custom components 
• Demo: add status description + component 
dinsdag 19 augu...
User Management 
• Only allow changes by logged in users 
• Restrict access to views/actions 
• Controlled by “hasUserMana...
Demo 
• Add user management 
dinsdag 19 augustus 14
QCMagritte supports ... 
Application 
Template 
Influences 
(AJAX) 
Table 
Support 
Search 
(Queries) 
Application 
naviga...
Influences 
• disable timeout 
• user first, last name 
• How to avoid cycles 
dinsdag 19 augustus 14
Application navigation 
• Mostly announcement based (still some call’s left, 
slowly being replaced) 
• QCPageChoice shows...
Parent Object 
• Hierarchical ownership model for the domain 
• Only one owner: parent 
• Backlink to model = parent model...
Multilanguage 
• In-application support for multiple languages 
• Each user can have own language preference 
• Applicatio...
Search 
• Model-wide search, from a starting point 
• Description-type specific 
• everything transformed to string repres...
Table support 
• Select on field values, smart filter 
• Sorting 
• Export CSV 
• Select columns 
• Add calculated columns...
Menu structure 
• Tree based, announcements 
• Autocollapse: expand current selection 
dinsdag 19 augustus 14
Upcoming SlideShare
Loading in …5
×

Getting Started with QCMagritte

789 views

Published on

Title: Getting Started with QCMagritte
Speaker: Stefan Eggermont
Tue, August 19, 12:00pm – 12:30pm

Video Part1: https://www.youtube.com/watch?v=mKZUhPNWFyI
Video Part2: https://www.youtube.com/watch?v=vBPplUyDYyU

Description
Abstract: Magritte provides a nice way to describe your domain model and quickly build web components for your web application. QCMagritte offers you a.o. integration of Ajax, Bootstrap, user registration and dynamic support for multiple languages. Bring a laptop and see how to build a well-structured working web application in an hour.

Bio: Stefan Eggermont is an independent consultant and software developer.
He is interested in ways to make software development better and (even) more fun. He likes helping teams in becoming more able to add value to their organizations. After programming for 15 years, he discovered Seaside and Smalltalk and found out that there was a reasonable way to develop web applications after all. He also does Technology Roadmapping to help organizations realize and visualize their future(s).

Published in: Software
1 Comment
0 Likes
Statistics
Notes
  • Video Part1: https://www.youtube.com/watch?v=mKZUhPNWFyI
    Video Part2: https://www.youtube.com/watch?v=vBPplUyDYyU
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Be the first to like this

No Downloads
Views
Total views
789
On SlideShare
0
From Embeds
0
Number of Embeds
7
Actions
Shares
0
Downloads
5
Comments
1
Likes
0
Embeds 0
No embeds

No notes for slide

Getting Started with QCMagritte

  1. 1. Getting Started with QCMagritte Diego Lont & Stephan Eggermont • Download a QCMagritte image from http://ci.inria.org/pharo-contribution/QCMagritte • Download a pharo vm from http://get.pharo.org • Download a QCMagritte demo from http://smalltalkhub.com/mc/DiegoLont/QCMagritteDemo dinsdag 19 augustus 14
  2. 2. What is QC-Magritte • Application level framework • On top of Seaside and Magritte • Provides re-usable parts for common tasks dinsdag 19 augustus 14
  3. 3. QCMagritte supports ... Application Template Influences (AJAX) Table support Search (Queries) Application navigation Multi-language User management Commands Hierarchical domain structure Menu structure dinsdag 19 augustus 14
  4. 4. Example: CI • Continuous Integration Server • Not focus of the talk • Predefined with Magritte definitions dinsdag 19 augustus 14
  5. 5. CI Model CI-Model Trigger Configuration Build Definition PProrojejecct t Project BBuuilidld Build Build Step Build Step Build Step Trigger dinsdag 19 augustus 14
  6. 6. Demo • View magritte descriptions in model dinsdag 19 augustus 14
  7. 7. Template • Application • Seaside application, registering itself • Points to model • Creates menu • Model • Describes entry points for entire domain • Defines builders used to generate components dinsdag 19 augustus 14
  8. 8. Bootstrap template QCBootstrapApplication subclass: #CIBuildServerApplication CIBuildServerApplication>>title ^'Demo CI' CIBuildServerApplication>>model ^CIBuildServerModel default CIBuildServerApplication class>>applicationName ^'Demo CI' QCBootstrapApplicationModel subclass: #CIBuildServerModel dinsdag 19 augustus 14
  9. 9. Demo • Show code • Run tutorial:1 • Show application • Add 2 projects • 1 project defines steps and triggers dinsdag 19 augustus 14
  10. 10. Default commands • CRUD • User rights • Domain constraints CIProject>>canRemove ^self builds isEmpty dinsdag 19 augustus 14
  11. 11. Custom commands • Domain object has containerActions • Label • Condition • Action CIProject>>containerActions: aContainer <magritteContainer> ^aContainer addCommand: 'build' condition: #canBuild action: #startBuild; yourself dinsdag 19 augustus 14
  12. 12. Custom components • Easy extend model with custom components • Demo: add status description + component dinsdag 19 augustus 14
  13. 13. User Management • Only allow changes by logged in users • Restrict access to views/actions • Controlled by “hasUserManagent” • Defaults to true if there is an admin user • (CRUD) Rights and roles model. dinsdag 19 augustus 14
  14. 14. Demo • Add user management dinsdag 19 augustus 14
  15. 15. QCMagritte supports ... Application Template Influences (AJAX) Table Support Search (Queries) Application navigation Multi-language User management Commands Hierarchical domain structure Menu structure dinsdag 19 augustus 14
  16. 16. Influences • disable timeout • user first, last name • How to avoid cycles dinsdag 19 augustus 14
  17. 17. Application navigation • Mostly announcement based (still some call’s left, slowly being replaced) • QCPageChoice shows how dinsdag 19 augustus 14
  18. 18. Parent Object • Hierarchical ownership model for the domain • Only one owner: parent • Backlink to model = parent model • QCQueriedToManyComponent • search support • newInstance sets parent if needed dinsdag 19 augustus 14
  19. 19. Multilanguage • In-application support for multiple languages • Each user can have own language preference • Application has default language • Keep default values for untranslated • Default translation of labels, groups, comments, error messages. Others: asMultilanguageString dinsdag 19 augustus 14
  20. 20. Search • Model-wide search, from a starting point • Description-type specific • everything transformed to string representation dinsdag 19 augustus 14
  21. 21. Table support • Select on field values, smart filter • Sorting • Export CSV • Select columns • Add calculated columns dinsdag 19 augustus 14
  22. 22. Menu structure • Tree based, announcements • Autocollapse: expand current selection dinsdag 19 augustus 14

×