Without addressing the specifics of the design issue, whether or not to use
POs, our experience here of Tap 4 is that it is highly maintainable. One of
the issue affecting maintanability is where things are found. My
understanding is that the design choice is between implicit and declared
components and that, in larger apps, declared components have greater
flexibility and easier maintainability. I am uncertain whether this applies
to the paradign usage quoted of an insert of a date. Once again, my
understanding is that if there are configurations that may change, for
instance parameters and ognl expressions which, after all, can change as
they refelct the underlying implementation, it is better to declare in the
specification.
Adam

On 24/06/07, Marcos Chicote <[EMAIL PROTECTED]> wrote:

Thanks Jesse.

I know that I would have more trouble than formatting if I migrate from a
web app to a desktop app, but I would like to minimize that effort.
However there's a 0.001 probability this app will ever be migrated, I was
just asking theoretically. (I could have said Struts instead of Swing for
a
more real example)

I agree with you that the I should put most of my effort in making core
functionality the most separate posible.

Something that will probably happen is that after the main development
part
of the project there will be a long term maintainance stage that I most
definetily will not be doing, so I would like that the person that comes
after me find the cleanest design posible and that modifications or bug
corrections can be done with the minimal effort possible.

Thanks again.

Marcos

On 6/24/07, Jesse Kuhnert <[EMAIL PROTECTED]> wrote:
>
> I think you're going to have a lot more trouble with migration from a
web
> application to a desktop application than just formatting....
>
> I'd focus on making your core functionality separate enough as
standalone
> services and use that as the basis for migrate-able code and not focus
in
> on
> making your presentation code multi purposed.
>
> The two technologies are completely different and have completely
> different
> UI design/interaction strategies to contend with.  Use each technology
to
> its fullest potential and you'll have a better application in the long
> run.
> (assuming making the best experience for your application users that you
> possibly can is your end goal)
>
> On 6/24/07, Marcos Chicote <[EMAIL PROTECTED]> wrote:
> >
> > But doesn't that reduce code resusability?
> >
> > I mean if tomorrow I have to migrate the app to Swing, i have to
> reformat
> > everything.
> >
> > On 6/24/07, Ulrich Stärk <[EMAIL PROTECTED]> wrote:
> > >
> > > Use the format parameter of the insert component. You can supply an
> > > insert component that displays a Date object with a custom
> > > java.text.DateFormat to display the date the way you want.
> > >
> > > Uli
> > >
> > > Marcos Chicote schrieb:
> > > > i see what you mean Christian.
> > > > In this design if you have to show a Date, how do you convert it?
I
> > > > mean, if
> > > > you let Tapestry do date.toString() this will probably show a lot
of
> > > things
> > > > you don't want. Do you use a property in the java file where you
put
> > > > something like dateToString(yourDate) that does the parsing? Same
> > > question
> > > > for Double's or things that don't have a "nice" toString.
> > > >
> > > > Thanks for your opinion!
> > > >
> > > > On 6/24/07, Christian Dutaret <[EMAIL PROTECTED]> wrote:
> > > >>
> > > >> Marcos,
> > > >>
> > > >> The concept of a presentation object model has a strong smell of
> bad
> > > >> design:
> > > >> double hierarchy maintenance and transformation methods from/to
> both
> > > >> models
> > > >> which are very error-prone. If you forget to assign a field in
> those
> > > >> transformation methods, you can spend hours searching for the
> > > descrepancy
> > > >> between your model data.
> > > >> Reminds me of that bloated DTO concept with the first generation
of
> > > EJB,
> > > >> or
> > > >> the transformations between business model and ActionForms in
> Struts
> > 1.
> > > >> Very
> > > >> time-consuming and error-prone, without any added value.
> > > >> How often does your business model changes without affecting the
> > > >> presentation layer? Is it worth all that pain?
> > > >> The business model I work on is a relatively complex model which
is
> > > >> designed
> > > >> after the web application requirements. What I do is simply use
> > > >> persistent
> > > >> objects in the presentation layer, and traverse objects through
> ognl
> > > >> expressions to keep the code as simple as possible. If the model
> > > evolves,
> > > >> I
> > > >> have some web non-regression tests that check for the correctness
> of
> > > the
> > > >> ognl expressions. That has worked fine for me so far.
> > > >> In some other situations (say a legacy datawarehouse that is used
> > > beyond
> > > >> your application and holds some fancy data), an additional
> > intermiedary
> > > >> model could make more sense. Still, I would try to keep it at the
> > > service
> > > >> level, and use the data returned by the service layer in the
> > > presentation
> > > >> layer.
> > > >>
> > > >> My 2 cents...
> > > >> Ch.
> > > >>
> > > >>
> > > >
> > >
> > >
> > >
---------------------------------------------------------------------
> > > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > > For additional commands, e-mail: [EMAIL PROTECTED]
> > >
> > >
> >
>
>
>
> --
> Jesse Kuhnert
> Tapestry/Dojo team member/developer
>
> Open source based consulting work centered around
> dojo/tapestry/tacos/hivemind. http://blog.opencomponentry.com
>

Reply via email to