Tim, as long as you don't go off and use AJAX, we'll all love you no matter 
what you do.

1. Nope.  The common use case is remoting calls, webservices 2nd, 
httpservices 3rd.  Everyeone will get ResultEvents & FaultEvents.  Those who 
don't are using custom stuff, and thus know what they are getting into.

2. Steven, and others like my boss the architect, do not like the 
possibility of View's getting raw server data.  For example, an unfettered / 
un-processed result that comes back from a Delegate call could make it's way 
back to the View the originaly fired the Command.  This makes it all too 
easy for developers not experienced with Cairngorm to allow View's to start 
screwing with data.  They also have to "know" about ResultEvents and 
FaultEvents.  To me, it's worth it; we just use the convention "if we get a 
result, it succeeded" and follow the original rules.

Regarding state, yeah man, you stated my feelings exactly.

3. Cool.

I'm working on training online material, professional for a change, that 
will have a lot of the above.  The rest I'll blog as usual when it's 
presentable.

----- Original Message ----- 
From: "Tim Hoff" <[EMAIL PROTECTED]>
To: <[email protected]>
Sent: Wednesday, July 05, 2006 2:51 AM
Subject: [flexcoders] Re: Cairngorm Responder interface changes


Hi Jesse,

Let me start by saying that I acquiesce; no more viewHelpers.  All
code has been rolled into the view.  For component oriented
development, it makes sense.

Concerning your cogent points of view:

1) ResultEvent & FaultEvent events:  Not sure how much of an impact
this makes in reality, But yes, do we need to support "undefined"?
It adds weight.

2) Command callbacks:  When I first got into Cairngorm, I wondered
why there wasn't a round trip of communication back to the
view/gesture.  There are plenty of local view actions that benefit
from knowing the result of a command; maybe "ViewResponder".  Here,
I would hope that you would accept Steven's invitation to show your
enhanced code, so that it might benefit all of us by possibly being
rolled into Cairngorm.

Functions vs. state variables: Yes, the scope of the function
dictates the need for state representation.  I mean, if model ==
state, should every toggled RadioButton or focused TextInput require
a state variable for control.  At a point it becomes redundant, and
more efficient to address locally.

3) Added 2 methods to ServiceLocator:  See #2 about sharing and
possible adoption.

My comments to you are not personal, or even professional.  I have
seen your work, website, and sat in on one of your online
presentations.  I think that you are brilliant.  Being from SoCal, I
know and appreciate your snowboarder mentality. :)  I agree with
your points here.  I would just hope that, instead of bagging, you
would contribute your proposed solutions, so that we all might enjoy
a cleaner architecture.

::looking for teddy bears::
-TH

--- In [email protected], "JesterXL" <[EMAIL PROTECTED]> wrote:
>
> Sending again; sent at like 10:00am this morning, but still don't
see it.  10:03pm now.
>
> -------------------------
>
> 1. ResultEvent & FaultEvent events.  I disagree with this change,
so have changed them back instead of of using the * change for the
Responder interface.
>
> 2. Command callbacks.  Sometimes, there is a legitimate need for a
View to "know" when a Command is completed.  In my consulting, we've
added an optional callback method that can be passed via
EventBroadcaster (Cairngorm 1).  So, View's launching Commands have
the option of using a Callback (like flash.net.Responder) to have a
result method called when the Command is done.  We extended
Cairngorm's command to have all of this plumbing hidden.  The
convention we have is, "If the View has his onResult run, he can
conclude that the Command succeeded in it's operation."  If a fault
was fired in the Delegate, this means the app is broken and needs to
be fixed.  There is no error handling, only error fixing.
>
> In my personal work, I've implemented both; result and faults, via
Event's.  If an event extends my JXLEvent class (which extends
Cairngorm), it has the option of getting those callbacks.  I should
probably do it like we do it at work, but for now, it works.  I like
handling errors, so although fault and result are pretty low level,
I can have View's handle errors (or Commands obviously).
>
> Both avoid ViewLocator via a nice convention.  It also makes it
cake to have a chained command with visual feedback.  You can have
your View fire off other commands in a particular order AND show
visual feedback the whole time.  Could you do this by binding?
Sure, but I'd rather use functions vs. state variables.
>
> 3. Added 2 methods to ServiceLocator.  He doesn't support Producer
or Consumer (MessageAgent) services, so with a new method he does.
He also doesn't support NetConnection; with the new method, he
does.  Since Cairngorm was made for a more request response, it
feels like both of the above are halfway implemented, but for
sending messages, Cairngorm works great, including Acknowledge
messages for Delegates that fire the original message.  In both
cases, actual callbacks are handled by totally different classes
that basically act as Observers, and emit events.  The more
specialized (for example, a channel in FDS created for Text
messages, and thus Chat only) is an extension of that
ConsumerObserver class, called ChatObsever, and he omits Chat
specific events for those who care.  They, like Delegate's, utlize
ServiceLocator.
>
> I would, however, prefer you all either give me a better idea(s),
christen this idea as good for handling NetConnection / FDS'
consumer/producer model, and/or implement something that supports
these push based technologies into Cairngorm.
>
> With the exclusion of #1, both #2, and #3 can be done via
extneding the Cairngorm base classes so you're not affecting the
original framework, only extending it.  I'd prefer #3 be made
official though, by you all somehow, some way.
>
> ----- Original Message ----- 
> From: Steven Webster
> To: [email protected]
> Sent: Monday, July 03, 2006 6:03 PM
> Subject: RE: [flexcoders] Re: Cairngorm Responder interface changes
>
>
> Jesse,
>
> I'd love for you to share the modifications you're making to
Cairngorm, and to understand the rationale behind these changes.
It's not our intention that developers would typically  need to
change the framework locally, and doing so certainly makes it more
difficult for folks to follow us on any upgrade paths as time rolls
by.  Different strokes for different folks though.
>
> But if you can share your motives for changes, and the changes
themselves, then we can consider rolling them into the framework if
they satisfy general concerns.
>
> 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: [email protected]
[mailto:[EMAIL PROTECTED] On Behalf Of JesterXL
>   Sent: 03 July 2006 20:13
>   To: [email protected]
>   Subject: Re: [flexcoders] Re: Cairngorm Responder interface
changes
>
>
>   Don't have Flex 2 open in front of me ( client hearts 1.5 ), but
you can I
>   think do:
>
>   public function onResult(event:* = null):void
>   {
>   ResultEvent(event).result
>   // or...
>   var yourEvent:ResultEvent = event as ResultEvent;
>   }
>
>   I can't remember if you can cast in the function signature as:
>
>   public function onResult ( event:* as ResultEvent = null )
>
>   ...but, either way, you can also do what I do; keep your own
build of
>   Cairngorm locally! I've yet to work on a project where the team
didn't
>   modify their build of Cairngorm to suit their needs.
>
>   ----- Original Message ----- 
>   From: "ben.clinkinbeard" <[EMAIL PROTECTED]>
>   To: <[email protected]>
>   Sent: Monday, July 03, 2006 3:00 PM
>   Subject: [flexcoders] Re: Cairngorm Responder interface changes
>
>   Ah ha. Actually, I had to change them to
>
>   public function onResult(event:* = null):void
>   public function onFault(event:* = null):void
>
>   so that they matched the signature exactly. I guess my confusion
was
>   in that I was viewing the :* as meaning the developer could
specify
>   whatever type they wanted. I was seeing * as a kind of
superclass when
>   that is in fact not the case. I have to agree with Jester; I
don't
>   really see the point of this change.
>
>   Thanks for your help,
>   Ben
>
>   --- In [email protected], "Clint Modien" <cmodien@>
wrote:
>   >
>   > you need to change these lines
>   >
>   > public function onResult(event:ResultEvent):void
>   > public function onFault(event:FaultEvent):void
>   >
>   > to this...
>   >
>   > public function onResult(event:*):void
>   > public function onFault(event:*)void
>   >
>   > On 7/3/06, ben.clinkinbeard <ben.clinkinbeard@> wrote:
>   > >
>   > > Can someone explain why it is telling me I've implemented the
>   > > Responder methods with an incompatible signature?
>   > >
>   > > public function onResult(event:ResultEvent):void
>   > > public function onFault(event:FaultEvent):void
>   > >
>   > > The signatures shown in the docs are
>   > >
>   > > public function onResult(event:* = null):void
>   > > public function onFault(event:* = null):void
>   > >
>   > > What am I missing here?
>   > >
>   > > Thanks,
>   > > Ben
>   > >
>   > >
>   > > --- In [email protected] <flexcoders%
40yahoogroups.com>,
>   > > "der_kotty" <kotty.tm@> wrote:
>   > > >
>   > > > Hi,
>   > > >
>   > > > I was just wondering why the
com.adobe.cairngorm.business.Responder
>   > > > interface has been changed since it has been released on
Adobe Labs.
>   > > > In Cairngorm 2.0 alpha
(org.nevis.cairngorm.business.Responder) the
>   > > > parameters of the onFault and onResult handlers were typed
events
>   > > > (ResultEvent and FaultEvent).
>   > > >
>   > > > Why have the parameters been changed to '*'? Where is the
sense in
>   > > > that? To my opinion this is not really best practice but
maybe
>   > > > there's a really good reason for that? Does anyone know?
>   > > >
>   > > > Cheers
>   > > > David
>   > > >
>   > >
>   > >
>   > >
>   >
>
>   --
>   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







------------------------ Yahoo! Groups Sponsor --------------------~--> 
Yahoo! Groups gets a make over. See the new email design.
http://us.click.yahoo.com/XISQkA/lOaOAA/yQLSAA/nhFolB/TM
--------------------------------------------------------------------~-> 

--
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

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/flexcoders/

<*> To unsubscribe from this group, send an email to:
    [EMAIL PROTECTED]

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/
 


Reply via email to