Guys,
 
There's a lot of passion, misconception and misinformation around view helpers and their usefulness.  However, a fact of life is that there ARE a number of projects in production where developers have made their own decisions to use ViewLocators and ViewHelpers, and in doing so have delivered successful projects.  The project that was delivered for Fairfax in Australia (http://www.flexdaddy.info/2006/06/19/afr-access-one-of-the-largest-public-flex-apps-to-date/) is a great example of this, where Robin Hilliard felt that he gained from using the ViewLocator and ViewHelper pattern - I know Robin plans on writing this up at some point.
 
Within Adobe Consulting, we see ViewHelper misused more than it's usefully used, and our introduction of the ModelLocator concept was our way of steering people to leveraging data-binding instead of abusing ViewHelpers beyond their intent.  However, it's our responsibility as framework developers and maintainers, to not break all the legacy applications out there, which is why we've left that pattern in Cairngorm 2.
 
Best,
 
Steven
 
Steven Webster
Practice Director (Rich Internet Applications)
Adobe Consulting
Westpoint, 4 Redheughs Rigg, South Gyle, Edinburgh, EH12 9DQ, UK
p: +44 (0) 131 338 6108
m: +44 (0) 7917 428 947 
[EMAIL PROTECTED]

 


From: flexcoders@yahoogroups.com [mailto:[EMAIL PROTECTED] On Behalf Of Bjorn Schultheiss
Sent: 05 July 2006 09:06
To: flexcoders@yahoogroups.com
Subject: Re: [flexcoders] Re: Cairngorm2: ViewLocator - ViewHelper

Hey Jesse,

Any idea on why ViewHelper and ViewLocator classes are in Cairngorm 2 if they have been deemed un-beneficial?

I myself felt obligated to see if there was a valid use for this based on the fact that they were included.

Regards,

Bjorn Schultheiss

Senior Flash Developer

QDC Technologies


From: flexcoders@yahoogroups.com [mailto:flexcoders@yahoogroups.com] On Behalf Of JesterXL
Sent: Tuesday, 4 July 2006 7:37 AM
To: flexcoders@yahoogroups.com
Subject: Re: [flexcoders] Re: Cairngorm2: ViewLocator - ViewHelper

Speaking for Steven, but the reason they espoused using ModelLocator over
ViewHelpers was a few reasons. First off, many people felt the need to
create ViewHelpers for every View. This was ridicolous; no View could ever
do anything useful but instantiate GUI components, and register for events.
You had no clue WHAT that View could do. Suddenly you're code base
basically doubled for extremely little gain.

Secondly, most people utilized ViewHelpers with ViewLocator instead of the
actual View's. While this was nice, no one ever implemented strong typing,
thus defeating the purpose of casting as ViewHelper describing what the View
could do.

Third, you wrote more code for no gain. Some people would even put code in
both the MXML View and ViewHelper, further compounding the issue of "what's
really being seperated here".

In all fairness, I come from a Flash background where you wrote classes.
These classes were your View. You can do the same thing in Flex; write your
class to extend Canvas instead of using a root Canvas tag; same thing. To
me, organizing code is 2nd nature. MXML + embedded Script tags were just a
wonderful next step. My code changes never broke my GUI changes and vice
versa. For some reason, it seems people can't fathom the thought of
ActionScript in MXML files. That's just absurd; you can see what the GUI is
AND does in the same. Go look at the source code; all kinds of controls
draw themselves and perform actions. This isn't rocket science, it's a
fuggin' form for crying out loud.

The other option of using an external script file for the script tag is just
as bad. You have to define controls and other buttons again, defeating the
use of the ID control concept which helps shield your code from being broken
when you change your GUI. :: que Carlos Mencia duh dah daaaa ::

Bottom line, MXML components are extremely portable and encapsulated with
ActionScript inside them. Granted, there are still people who will write
"components" with ModelLocator's littered amongst them vs. expousing public
properties and methods to set the data instead... but that's the developers
fault, not MXML's.

MXML is just a class... it's ok to write properties and methods in a
class... seriously, it's ok. :: whips out a bag of teddy bears to hand out
just in case ::

----- Original Message -----
From: "Tim Hoff" <[EMAIL PROTECTED]com>
To: <[EMAIL PROTECTED]ups.com>
Sent: Monday, July 03, 2006 5:01 PM
Subject: [flexcoders] Re: Cairngorm2: ViewLocator - ViewHelper

Thanks for the responses guys,

Dimitrios:
Yes, the majority of my views are updated through binding to the
ModelLocator. However, there are certain functions that are soley
view-related (like setFocus(), filtering a DataGrid, updating a
search parameter VO with view component values prior to executing a
search command), that imo don't merit creating a command to
perform. These kind of functions could just be located in a script
tag inside the view. But, if the functions are numerous, the code
becomes more readable if a seperate class is used.

Bjorn:
I agree that a command shouldn't interrogate a view. That would
defeat the encapsulation. For the most part though, the command
should update the ModelLocator and the ModelLocator should update
the view.

Jesse:
As always, you crack me up. In the situations that I mentioned
above, I assume that you are using a ViewLocator - uid approach.
This is probably more efficient and centralized than using
ViewHelpers. Besides, I really don't want to deal with Satan
spawn. Care to share a small sample of your approach?

All in all, this isn't a huge issue. Out of my current 300 views,
I've only found the need to use three ViewHelpers. My questions are
more theoretical and best practice oriented. Good stuff to know
when scalability is an issue. Also, I'm still not sure what Alex
Uhlmann meant by "the ViewHelper adds and removes itself from the
ViewLocator". Guess I need to take a trip back to the Cairngorm
source.

Thanks again for your answers. I was hoping that Steven or
Alistaire had time to chime in here, but I realize that they are
very busy these days.

Cheers,
Tim Hoff

--- In [EMAIL PROTECTED]ups.com, "JesterXL" <[EMAIL PROTECTED].> wrote:
>
> ViewHelpers == spawn of satan. Nothing here but bloated
code. "Seperation
> of concerns" doesn't count here; it's just something they say to
make
> themselves feel better by using them.
>
> ViewLocators, to me are only justified in extreme use cases.
Having other
> View's, or even Commands specifically telling other views to do
certain
> things are bad practice, but I have seen times where there is just
no other
> way. The rest of the time, databinding and combinations of
getter / setters
> should accomplish what you want. While their use should be
discouraged,
> I'll be the first to admit they are useful and lifesavers when you
need
> them.
>
>
> ----- Original Message -----
> From: "Tim Hoff" <[EMAIL PROTECTED]>
> To: <[EMAIL PROTECTED]ups.com>
> Sent: Monday, July 03, 2006 6:05 AM
> Subject: [flexcoders] Cairngorm2: ViewLocator - ViewHelper
>
>
> I've recently been toying with the concepts of ViewHelper vs.
> ViewLocator. Alex Ulmann posted, "the ViewHelper adds and removes
> itself from the ViewLocator", in his Cairngorm 2 (for Flex 2) -
> Overview and Migration Path. I haven't seen any examples yet that
> illustrate this method. Understandably, the example pool and
> documentation for this kind of thing is small but growing. So, I
was
> wondering if the authors of Cairngorm had any advise/guidance for
this
> topic. Of course it's a matter of scale, but in an enterprise
> application, what is recommended as best practice for the use of
> ViewLocator and/or ViewHelpers? I'm sure that there are
forthcoming
> books that cover this area, but feedback here might promote better
> understanding.
>
> Best regards,
> Tim Hoff
>
>
>
>
>
>
> --
> Flexcoders Mailing List
> FAQ:
http://groups.yahoo.com/group/flexcoders/files/flexcodersFAQ.txt
> Search Archives: http://www.mail-archive.com/flexcoders%
40yahoogroups.com
> Yahoo! Groups Links
>

--
Flexcoders Mailing List
FAQ: http://groups.yahoo.com/group/flexcoders/files/flexcodersFAQ.txt
Search Archives: http://www.mail-archive.com/flexcoders%40yahoogroups.com
Yahoo! Groups Links

__._,_.___

--
Flexcoders Mailing List
FAQ: http://groups.yahoo.com/group/flexcoders/files/flexcodersFAQ.txt
Search Archives: http://www.mail-archive.com/flexcoders%40yahoogroups.com





YAHOO! GROUPS LINKS




__,_._,___

Reply via email to