[Seaside] Magritte 3
Lukas Renggli
renggli at gmail.com
Sun Feb 19 09:43:23 UTC 2012
Hi Nick,
Exciting news! I believe the new architecture modernizes Magritte, and
improves its usability and power by magnitudes. Keep the improvements
rolling!
Lukas
On 19 February 2012 10:30, Nick Ager <nick.ager at gmail.com> wrote:
> Hi,
>
> I'm pleased to announce a new version of Magritte - Magritte 3. The
> rational for Magritte 3 is eloquently described by Lukas in his mail below.
> The work on Magritte 3 was started by Esteban and completed by myself.
>
> I've created a screen-cast which describes:
>
> the rational for Magritte 3
> the refactorings available to ease the transition from Magritte 1 or 2 to
> Magritte 3
> A walk-through of updating a sample from Magritte 2 to Magritte 3.
>
> The screen-cast is on vimeo at:
> http://vimeo.com/37032840
>
> The sample used in screen-cast can be downloaded as:
>
>> Gofer it
>> url: 'http://ss3.gemstone.com/ss/MagritteMagic';
>> package: 'ConfigurationOfMagritteMagic';
>> load.
>>
>> (Smalltalk at: #ConfigurationOfMagritteMagic) load.
>
>
> The slides used in the screen-case can be viewed on slideshare at:
>
> http://www.slideshare.net/nickager/magritte3
>
> Enjoy
>
> Nick
>
>
> ---------- Forwarded message ----------
> From: Lukas Renggli <renggli at gmail.com>
> Date: 17 November 2010 17:21
> Subject: Re: Providing lookup environment for descriptions
> To: "Magritte, Pier and Related Tools ..." <smallwiki at iam.unibe.ch>
>
>
> The way Magritte builds descriptions by default has become quite a
> nuisance. I think that at some point Magritte should be improved
> in that regard. I wrote a proposal this summer for how to proceed,
> but of course I had to finish my writing and never actually
> found the time to implement it:
>
> --------------------
>
> I propose to perform the following (non-backward compatible) changes
> in the Magritte 2 code-base to resolve some major annoyances and
> issues that keep on reoccurring:
>
> - Move descriptions from class-side to instance-side. This resolves
> various issues such as cache-invalidation, instance specific
> descriptions, dynamic descriptions, context dependent descriptions,
> etc. Furthermore the descriptions will be closer to the code they
> describe and it will be possible to describe class- and instance-side
> of an object, not just the instance-side.
>
> - Rename the method #description as the default entry point into
> Magritte to #magritteDescription. This avoids common problems where
> the domain model already defines such a method.
>
> - Instead of using a naming convention for description methods, use a
> pragma called <magritteDescription> to annotate the methods. And to extend
> and
> change existing descriptions use <magritteDescription: aSelector>. Finally
> all
> Smalltalk implementation reached a consensus of pragmas that can be
> safely used cross-platform.
>
> All in all the "new" Magritte would look like in the following
> example. Imagine a shop item with the accessor #place:
>
> Item>>place
> ^ place
>
> Item>>place: aString
> place := aString
>
> The meta-description is defined on the instance-side and annotated. It
> can refer to itself for the possible places:
>
> Item>>placeDescription
> <magritteDescription>
>
> ^ MASingleOptionDescription new
> options: self possiblePlaces;
> label: 'Place of Item';
> accessor: #place;
> yourself
>
> Class extensions can modify a description using:
>
> Item>>placeDescriptionXmlStorage: aDescription
> <magritteDescription: #placeDescription>
>
> ^ placeDescription xmlTag: 'xname'
>
> Since these changes are not backward compatible I'll try to provide
> automatic refactorings for most parts. Moving existing code to the new
> codebase will certainly cause some problems, but in the long run I
> believe this to be a much better approach than the current one. If
> people have any feedback, concerns or other changes that would be
> important in the same run I am happy to hear them.
>
> _______________________________________________
> seaside mailing list
> seaside at lists.squeakfoundation.org
> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
>
--
Lukas Renggli
www.lukas-renggli.ch
More information about the seaside
mailing list