> The point I was making as that just because events are used on the  
> view instead of it accessing controller methods directly it doesn't  
> necessarily de-couple them

Agreed.

Also, I don't like being restricted to only being able to register
events types to command classes to a Front Controller that is created
in the view.

Registering the controller in the view means to reference it at
runtime i have to go through the view.

Common sense tells me in MVC it would be better if the controller was
created by the model, not the view.



--- In flexcoders@yahoogroups.com, Stephen Downs <[EMAIL PROTECTED]>
wrote:
>
> I'm not saying it's a major problem that we come across often, but  
> when taking on other people's work, or working as a team it's  
> something we have come across. We would expect all vars, methods,  
> class, events to be named well, but we find it more efficient to  
> error the project through changing a method name, than to do a find  
> in files. We want to keep things as simple as possible.
> 
> The point I was making as that just because events are used on the  
> view instead of it accessing controller methods directly it doesn't  
> necessarily de-couple them, since in most cases the view is relying  
> on its events being picked up and acted upon. If my previous  
> statement is true for you and your team, there's really no need to go  
> down the event road, as it does introduces more complication and with  
> it more time to implement.
> 
> Just to clarify we don't take this approach on components, but we do  
> for views/screens.
> 
> 
> 
> 
> On 5 May 2008, at 01:37, Jim Hayes wrote:
> 
> > I've not really had those problems myself Tink.
> >
> > I don't dispatch any standard cairngorm events, instead I have  
> > events that extend it and are (usually!) fairly well named to  
> > reflect what's happening.
> > Maybe that's because for me they normally carry some data, and I  
> > like that data to be as strongly typed as is practicable.
> > The command/delegate will usually follow the same naming, so I may  
> > have SaveBitmapEvent + SaveBitmapCommand + SaveBitmapDelegate, for  
> > example.
> > So to find any particular event dispatch in my view, it's pretty  
> > easy to do a "find in files" on the project, though in practice I  
> > find I rarely need to.
> > Likewise, finding the command it calls is pretty easy for the most  
> > part, as is the implementation in the delegate.
> >
> > Good point on the controller not listening, but I guess I've just  
> > got used to writing a shell version of my command, breakpointing  
> > it's constructor and checking it does get called when I expect it  
> > to before proceeding to fill in it's implementation. If not, then  
> > the frontController has it's fingers in it's ears shouting na na na  
> > I can't hear you :)
> >
> > It would be good if it could catch all cairngorm events and raise a  
> > warning if they were not registered, though. I have a feeling it  
> > wouldn't be too hard to extend it do that, but I've never felt the  
> > need myself.
> >
> > I'm sure we're both thinking "don't make me have to think too hard,  
> > if at all", and I'm in broad agreement with you, but the 3 classes  
> > and controller entry approach does work for me (even if it is very  
> > tedious to write at the time).
> >
> > -----Original Message-----
> > From: flexcoders@yahoogroups.com on behalf of Stephen Downs
> > Sent: Sun 04/05/2008 14:08
> > To: flexcoders@yahoogroups.com
> > Subject: Re: [flexcoders] Re: Use Cairngorm wihtout Dispatch
> >
> > I have to agree with MichNiu here.
> >
> > The CairngormEventDispatcher obsfucates the code. i.e. you come back
> > to a project 6 months down the line, its difficult to find in the
> > view where your CairngormEvents are dispatch.
> >
> > What is the difference of the view knowing what event it has to
> > dispatch, to it actually knowing the method on the controller it was
> > to invoke? Very little in my opinion, but the later enables you to
> > very easily pinpoint all the calls from the view to a method on the
> > controller, by just changing the name of the method on the
> > controller, and looking at all the errors that will appear on the
> > view. This makes things much easier to debug and therefore easier to
> > maintain.
> >
> > You talk about making views re-useable, but if your view is
> > dispatching CairngormEvents, you can guarantee it's relying on some
> > action of the FrontController for it to work properly. If you
> > FrontController doesn't listen to these events, your view won't work,
> > therefore it aint re-usable, its relying on the FrontController
> > acting upon the events is dispatches.
> >
> > We still keep a Controller unlike MichNui's implementation, but we
> > cut out the use of CairngormEventDispatcher some time ago.
> >
> > Now when it comes to re-usable components, thats a different matter.
> >
> > Tink
> >
> > On 22 Apr 2008, at 03:53, ben.clinkinbeard wrote:
> >
> > > One of the core principles of not just Cairngorm but MVC in  
> > general is
> > > for your views to be as dumb as possible. The less they know about
> > > models, services, etc the better. You've essentially taken the
> > > opposite approach. Creating reusable/generic views using your  
> > approach
> > > wouldn't really be possible.
> > >
> > > Also, Flex is an event driven architecture and events are another  
> > core
> > > aspect of creating loosely coupled application components. I think
> > > your approach will result in very brittle code that will be hard to
> > > maintain.
> > >
> > > Ben
> > >
> > > --- In flexcoders@yahoogroups.com, "michniu" <MichNiu@> wrote:
> > > >
> > > > Hi Coders,
> > > >
> > > > I just want to discuss some issues about the Cairngorm, Because I
> > > > cant find another mail list or forum to discuss it. I put it
> > > > here.
> > > >
> > > >
> > > > The most useless part in cairngorm ----FrontCotroller and command
> > > >
> > > >
> > > > Just on my opinion, I really don't like to write the command for
> > > > every action and register it on FrontCotroller. I really think it
> > > > waste time, and It make debugging difficult! Sometimes you don't
> > > > know where do you get the result after you dispatched your Event.
> > > >
> > > >
> > > >
> > > > Use A ServiceFacade to replace the front controller and the  
> > command.
> > > >
> > > > I use a ServiceFacade to call the Delegate instead of the
> > > > controller and the junk command.
> > > >
> > > > The idea is when the view page active some action. it will not
> > > > dispatch any event . it will call the service method from service
> > > > facade.
> > > >
> > > > Here is example code form flexStore:
> > > >
> > > > private function onLoadCatalog():void {
> > > > var event : LoadCatalogEvent = new
> > > > oadCatalogEvent();
> > > > event.dispatch();
> > > > }
> > > >
> > > > to replace the event dispatch() my solution is :
> > > >
> > > > private function onLoadCatalog():void {
> > > >
> > > > ServiceFacade.getInstance().loadCats();
> > > > }
> > > >
> > > >
> > > > The ServiceFacade .loadCats() method call the delegate and  
> > service:
> > > >
> > > > public function loadCats():void {
> > > > var handlers : IResponder
> > > > = new Responder
> > > > (onResults_loadCatalog,fault);
> > > > getDelegate(handlers).loadCatalog();
> > > > }       
> > > >
> > > >
> > > > Use this way, I don't need create any front Controller and
> > > > command. I also get the benefit from Cairngorm Service Locate
> > > > Delegate and Model locator.
> > > >
> > > >
> > > > Any suggestion or Criticize is Appreciated
> > > >
> > > >
> > > > Mike
> > > >
> > >
> > >
> > >
> >
> > __________________________________________________________
> > This communication is from Primal Pictures Ltd., a company  
> > registered in England and Wales with registration No. 02622298 and  
> > registered office: 4th Floor, Tennyson House, 159-165 Great  
> > Portland Street, London, W1W 5PA, UK. VAT registration No. 648874577.
> >
> > This e-mail is confidential and may be privileged. It may be read,  
> > copied and used only by the intended recipient. If you have  
> > received it in error, please contact the sender immediately by  
> > return e-mail or by telephoning +44(0)20 7637 1010. Please then  
> > delete the e-mail and do not disclose its contents to any person.
> > This email has been scanned for Primal Pictures by the MessageLabs  
> > Email Security System.
> > __________________________________________________________
> >
> >  <winmail.dat>
>


Reply via email to