jwopitz,

Thanks for the feedback. I definitely would not use cairngorm just for
this feature, but my app is already fairly large and is based around
cairngorm. Thats why I have been trying to think about the best way I
might implement this with it.

Regards,
Hank

On 3/6/07, JWOpitz <[EMAIL PROTECTED]> wrote:
> Oooh good call.  I forgot about these little helpful tools.
>
> But Hank, I think you nailed it on the head.  There are no wrong
> answers.  Given the fact that you have thought about this as
> thoroughly as you have, I am sure that you will find the best solution
> for you and your app no matter what direction you take.
>
> Here is one more bit about Cairngorm.  Like Scott said, it might be a
> bit overkill to use this micro-tecture if you have a very simple
> application.  Now if you have already implemented it for other
> purposes, you will incur very little if any overhead for adding
> another command.  But if this is the one and only place that you will
> using this in this app, then it might be a bit overkill.
>
> Anyway, good luck and be sure to link us up to see your progress.
>
> Take care,
> jwopitz
>
>
> --- In [email protected], slangeberg <[EMAIL PROTECTED]> wrote:
> >
> > Actually, SoundManager doesn't seem to fit MVC. You have no view and
> no user
> > input, correct? Why not just use a Command (or whatever patterns fit)
> > structure without worrying too much about Cairngorm..? Cairngorm's
> great and
> > all, but it is intended to manage large applications with many
> views, in the
> > end.
> >
> > Looking back at your orig. post, looks like Command/Event structure
> may be
> > just fine, but that also doesn't mean you need to use the
> CairngormCommand
> > (if such exists). maybe what you really want is a state machine that
> fires
> > some events (probably). That state machine could very well sit in
> your model
> > and fire events. Or not!
> >
> > You might want to take a look at the concept of CRC's (
> >
> http://en.wikipedia.org/wiki/Class-Responsibility-Collaboration_card) as a
> > starting point. In the end, KISS works!
> >
> > -Scott
> >
> > On 05 Mar 2007 19:15:18 -0800, hank williams <[EMAIL PROTECTED]> wrote:
> > >
> > >   Thanks guys,
> > >
> > > I still dont know what I am going to do, but it is very helpful to
> > > hear the arguments. Sometimes it is really helpful just to get other
> > > peoples views. Obviously this is a bit of a gray area and there is no
> > > *wrong* answer here, which is why nuance and opinion are quite
> > > helpful.
> > >
> > > Regards,
> > > Hank
> > >
> > >
> > > On 3/5/07, JWOpitz <[EMAIL PROTECTED] <jwopitz%40gmail.com>> wrote:
> > > > I should probably clarify a few things. If you have MVC, and I
> had to
> > > > qualify a SoundManager class as one of those, I would probably
> see it
> > > > first as a command class. Manager type classes generally are of this
> > > > nature anyway. But that can easily be argued to say Sound is also a
> > > > view type nature too and there is enough supporting information
> to be
> > > > so. Maybe this is more about personal preference as I can see both
> > > > sides.
> > > >
> > > > As to why I don't like the Model doing command-ish like things
> is that
> > > > again it is not its responsibility. Now that is not too say that it
> > > > can't dispatch events. In fact when you have a [Bindable] class, it
> > > > automatically dispatches propertyChange events. So that is perfectly
> > > > acceptable in my book. In fact if you look in the flex2 reference
> > > > material and search metadata, it explains how this works internally
> > > > and how you can do it manually. I do not, however, like methods in
> > > > the Model aside from getters/setters.
> > > >
> > > > Many of the developers on my team, however do like to stick methods
> > > > (not getters/setters) in the model. I don't like it and advocate
> > > > against it. For instance we have a customizable dataGrid where users
> > > > can add various column types with specific data. I suggested
> having a
> > > > command-type class build columns for it. However, my teammates
> wanted
> > > > to have a method in the model. For what reasons I do not now. All I
> > > > know is that although I love democracy in terms of politics, I
> cannot
> > > > stand it in application development. Sorry for that. Just a rant and
> > > > rave for a sec. Back to the point though, to maintain consistency
> > > > with the MVC framework, some sort of ColumnManager would be
> > > > appropriate and would be in the command family.
> > > >
> > > > I am not any kind of MVC purist and occasionaly bend the rules or do
> > > > something questionable with regards to what we have been discussing.
> > > > But when developers start deviating dramatically from the core
> > > > purposes of what a model is, what a command is, what a view is,
> then I
> > > > will raise an eyebrow and possibly a stink.
> > > >
> > > > Again my 2 cents. Hope it helps in your decision making.
> > > >
> > > > --- In [email protected]
> <flexcoders%40yahoogroups.com>, "Troy
> > > Gilbert" <troy.gilbert@>
> > > > wrote:
> > > > >
> > > > > Coming from a game development background, I always consider
> sound to
> > > be
> > > > > apart of the view. Generally, I consider anything directly
> consumed
> > > > by the
> > > > > user to be "view" while internal state that has meaning
> independent
> > > > of the
> > > > > view is the model.
> > > > >
> > > > > So, while your sound player does maintain state (the currently
> playing
> > > > > sound, the current position in the sound being played), you
> need to
> > > > answer
> > > > > for yourself whether that state is on par with (to use a trivial
> > > > example)
> > > > > the contacts in an address book or the position of a scroll
> bar on a
> > > > text
> > > > > box. If the sounds are used to convey information about state,
> then it
> > > > > sounds to me they're more like scrollbars. If the sounds *are*
> your
> > > > state
> > > > > that you're concerned with (like an audio editing
> application), then
> > > > they
> > > > > should be in the model.
> > > > >
> > > > > Another way to judge it: if you were going to persist the current
> > > > state of
> > > > > your application to disk, would you worry about persisting the
> state
> > > > related
> > > > > to sound? Or to put it another way: if I was forced to manipulate
> > > > the data
> > > > > in your application through an API instead of a UI, do I care
> about
> > > the
> > > > > sounds or are they only there for the pleasure of the human
> audience?
> > > > >
> > > > > Troy.
> > > > >
> > > > >
> > > > > On 3/5/07, hank williams <hank777@> wrote:
> > > > > >
> > > > > > Thanks,
> > > > > >
> > > > > > > Make a SoundManager Singleton class that extends the
> > > > EventDispatcher.
> > > > > > > That way if you make use of the basic Flex events, you can
> then
> > > have
> > > > > > > the soundManager instance assign its event handlers.
> > > > > > >
> > > > > > This is the way the code currently works.
> > > > > >
> > > > > > > As for using the Cairngorm class, I think that could also be a
> > > good
> > > > > > > idea. I have written a little blog on it here:
> > > > > > > http://jwopitz.wordpress.com/2007/03/01/
> > > > > > >
> > > > > >
> > > > > > I read your blog, and it seems to finish right where I am
> beginning.
> > > I
> > > > > > agree with your premise that commands can and should be used for
> > > > > > internal app communication and not just for remote access.
> In fact
> > > > > > that is why I posted my question. The issue is where in the
> > > cairngorm
> > > > > > architecture a singleton type class of this type should sit. In
> > > > > > cairngorm you have events, commands, delegates, views and
> model. As
> > > I
> > > > > > have spent time thinking about this today, I have started to
> think
> > > > > > that it is indeed closest to being an element of the model. It
> > > retains
> > > > > > state and can be queried as any element of the model can.
> The only
> > > > > > weird thing is that it can broadcast events. But it makes
> sense to
> > > me
> > > > > > that certain types of model information perhaps should be
> able to
> > > > > > generate events.
> > > > > >
> > > > > > Currently models generate events surreptitiously via the binding
> > > > > > architecture. They really do generate events, just not in the
> > > > > > cairngorm way. So why not allow model elements to generate
> cairngorm
> > > > > > events?
> > > > > >
> > > > > > > I would not start having the model do any command-ish
> activities
> > > > since
> > > > > > > that is not its responsibility.
> > > > > >
> > > > > > Why not?
> > > > > >
> > > > > > If a model contains data that changes, why is it appropriate
> that
> > > the
> > > > > > only way to "tell the world" is via binding, when binding just
> > > doesnt
> > > > > > always match the need?
> > > > > >
> > > > > > Regards,
> > > > > > Hank
> > > > > >
> > > > > >
> > > > >
> > > >
> > > >
> > > >
> > > >
> > > >
> > > > --
> > > > 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
> > > >
> > > >
> > > >
> > > >
> > >
> > >
> > >
> >
> >
> >
> > --
> >
> > : : ) Scott
> >
>
>
>
>
>
> --
> 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