Re: GSoC Idea: GLORP & Magritte integration/refactoring

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

Re: GSoC Idea: GLORP & Magritte integration/refactoring

Mariano Martinez Peck
Ok...Done. I put you as Юрий Мироненко as mentor (BTW, which is your name with this alphabet ?) and Diógenes Moreira as co-mentor.

Which difficult we should put ?  beginner, intermediate or advanced ? 

Thanks

Mariano

2010/3/12 Юрий Мироненко <[hidden email]>
Glorp and Magritte both map between model-layer objects and other domains; in Glorp's case, the relational database, in Magritte's case, the web. The truth is that Magritte is a meta-description framework for all kind of descriptions. However, it is mostly used for web applications.

There are many similarities in how each framework manage model-layer class - accessing model's fields, mapping those fields to it's representation, caching/commiting/rollbacking, condition checking/validation and so on. Lot of business applications are RDS-based, CRUD-like systems, with GUI structure close to model structure, and model structure close to database structure. So, developers sometimes feel they are repeating themselves when they code first the Glorp descriptors and then the Magritte descriptors, or vice versa.

The goals of this project are:
 Detect common aspects of both frameworks
 Compare implementation of those common aspects in both frameworks, and choose/compile "best" one
 Detect any limitations of one framework revealed by comparison with the other
 Refactor the stuff, splitting it to three groups: "common metamodeling", "Generic ORM" and "GLORP-related"
 Cleanup GLORP from "common metamodeling" and "Generic ORM" stuff.

The output is both a refactored codeset with three level of abstractness, and an analysis of why functionality was splitted in this exactly way.

Technical Details
===========
Glorp and Magritte have good test suites. XP development to ensure existing facilities remain functional will protect the student from breaking some facilities as they experiment with refactorings. Maintaining, where possible, deprecated methods that call new API in terms of old API may be appropriate in the project, and may also assist introduction of the results to the community.

There are at least two projects to observe, one is for magritte-based SQL mapping without GLORP, another one - generator of simple GLORP mappings with Magritte descriptors.

Maybe it will be necessary to make some tools for describing domain-specific Magritte things. For example, something like "with this domain-specific descriptor you should use this domain-specific memento for caching".

Benefits to the Student
===============
Glorp and Magritte are two meta-modelling/mapping frameworks with impressive capabilities solving real problems: the student who does this project will acquire significant practical knowledge of this kind of meta-modelling. Glorp and Magritte are also important parts of one way of writing web applications: the student who does this project will have skills that can be turned to practical account in web development.

Benefits to the Community
===============
Decreasing complexity and entry level for projects with both Magritte and GLORP inside (a lot of enduser applications really).
Increasing quality of both Magritte and GLORP. Decreasing complexity of GLORP, which is very complex now becouse of all the stuff for meta-describing inside.
And avoiding double-efforts in future, so when  we'll upgrade Magritte, we'll upgrade GLORP simultaneously.




Reply | Threaded
Open this post in threaded view
|

Re: GSoC Idea: GLORP & Magritte integration/refactoring

George Herolyants-3
2010/3/12 Mariano Martinez Peck <[hidden email]>:
> BTW, which is your name with this alphabet ?

I guess it is "Yuriy Mironenko".

Reply | Threaded
Open this post in threaded view
|

Re: [Esug-list] Re: GSoC Idea: GLORP & Magritte integration/refactoring

NiallRoss
In reply to this post by Mariano Martinez Peck
I'd say 'advanced'.

Mariano Martinez Peck wrote:

> Ok...Done. I put you as Юрий Мироненко as mentor (BTW, which is your
> name with this alphabet ?) and Diógenes Moreira as co-mentor.
>
> Which difficult we should put ?  beginner, intermediate or advanced ?
>
> Thanks
>
> Mariano
>
> 2010/3/12 Юрий Мироненко <[hidden email] <mailto:[hidden email]>>
>
>     Glorp and Magritte both map between model-layer objects and other
>     domains; in Glorp's case, the relational database, in Magritte's
>     case, the web. The truth is that Magritte is a meta-description
>     framework for all kind of descriptions. However, it is mostly used
>     for web applications.
>
>     There are many similarities in how each framework manage
>     model-layer class - accessing model's fields, mapping those fields
>     to it's representation, caching/commiting/rollbacking, condition
>     checking/validation and so on. Lot of business applications are
>     RDS-based, CRUD-like systems, with GUI structure close to model
>     structure, and model structure close to database structure. So,
>     developers sometimes feel they are repeating themselves when they
>     code first the Glorp descriptors and then the Magritte
>     descriptors, or vice versa.
>
>     The goals of this project are:
>      Detect common aspects of both frameworks
>      Compare implementation of those common aspects in both
>     frameworks, and choose/compile "best" one
>      Detect any limitations of one framework revealed by comparison
>     with the other
>      Refactor the stuff, splitting it to three groups: "common
>     metamodeling", "Generic ORM" and "GLORP-related"
>      Cleanup GLORP from "common metamodeling" and "Generic ORM" stuff.
>
>     The output is both a refactored codeset with three level of
>     abstractness, and an analysis of why functionality was splitted in
>     this exactly way.
>
>     Technical Details
>     ===========
>     Glorp and Magritte have good test suites. XP development to ensure
>     existing facilities remain functional will protect the student
>     from breaking some facilities as they experiment with
>     refactorings. Maintaining, where possible, deprecated methods that
>     call new API in terms of old API may be appropriate in the
>     project, and may also assist introduction of the results to the
>     community.
>
>     There are at least two projects to observe, one is for
>     magritte-based SQL mapping without GLORP, another one - generator
>     of simple GLORP mappings with Magritte descriptors.
>
>     Maybe it will be necessary to make some tools for describing
>     domain-specific Magritte things. For example, something like "with
>     this domain-specific descriptor you should use this
>     domain-specific memento for caching".
>
>     Benefits to the Student
>     ===============
>     Glorp and Magritte are two meta-modelling/mapping frameworks with
>     impressive capabilities solving real problems: the student who
>     does this project will acquire significant practical knowledge of
>     this kind of meta-modelling. Glorp and Magritte are also important
>     parts of one way of writing web applications: the student who does
>     this project will have skills that can be turned to practical
>     account in web development.
>
>     Benefits to the Community
>     ===============
>     Decreasing complexity and entry level for projects with both
>     Magritte and GLORP inside (a lot of enduser applications really).
>     Increasing quality of both Magritte and GLORP. Decreasing
>     complexity of GLORP, which is very complex now becouse of all the
>     stuff for meta-describing inside.
>     And avoiding double-efforts in future, so when  we'll upgrade
>     Magritte, we'll upgrade GLORP simultaneously.
>
>
>
> ______________________________________________________________________
> This email has been scanned by the MessageLabs Email Security System.
> For more information please visit http://www.messagelabs.com/email
> ______________________________________________________________________
>
>------------------------------------------------------------------------
>
>_______________________________________________
>Esug-list mailing list
>[hidden email]
>http://lists.esug.org/listinfo/esug-list
>  
>