|
Home > Archive > Macromedia Flash Server > July 2006 > Component Framework, ActionScript 3, & Cairngorm 2
You are viewing an archived Text-only version of the thread.
To view this thread in it's original format and/or if you want to reply to
this thread please [click here]
| Author |
Component Framework, ActionScript 3, & Cairngorm 2
|
|
| JesterXL 2006-07-04, 1:11 pm |
| I'm confused on the best approach to take. There are a plethora of issues
when developing applications for Flashcom via Flex 2 & Cairngorm 2.
Cairngorm 2 is built around the request / response model. While Commands &
Delegate's work great for making NetConnection.call methods, as well as
NetStream's & Remote SharedObject's, there is no built-in facility to
support server push. I've built Observer classes which tie into the
ServiceLocator to facilitate this and it's ok, but feels "seperated by
accident" rather than on purpose.
ActionScript 3 isn't as dynamic as ActionScript 2, so I'm having problems
getting a lot of the NetConnection decoration to work like it does via the
Communication components (ala nc[fcsClassName][componentInstanceName] =
reference to view]).
At this point, I'm almost willing to just build a minor framework to support
components without namespace support. I guess... not really sure how to
proceed, mainly with regards to server-side.
FDS isn't an option for a few reasons. First off, they have, in true Java
style, complicated the hell out of Remote SharedObjects. Like all Flex,
Remote SharedObject's are abstracted to the point of being non-existent.
You utilize an API which was built to support data synchronization and
server-clustering... not data applications. By that, I mean simple,
boilertplate level code for putting stuff on SharedObject's data property is
easy whereas DataService stuff in FDS is insanely complicated. Furthermore,
configuration FDS is a joke. It's as plethora of XML files. Granted, it's
not as bad as Spring + Hibernate, but it's close. Finally, to extend
anything to have server-side logic, you have to write Java.
Hiberate & Java is just major overkill. Flashcom RSO's + Rhino engine
rocks.
Any suggestions, I'm all ears.
--JesterXL
________________________________________
_______
FlashComm-1Ss2GqJETD3yZ38Mhd3e/9ZfFG6BLHNm@public.gmane.org
To change your subscription options or search the archive:
http://chattyfig.figleaf.com/mailman/listinfo/flashcomm
Brought to you by Fig Leaf Software
Premier Authorized Adobe Consulting and Training
http://www.figleaf.com
http://training.figleaf.com
| |
| JesterXL 2006-07-04, 1:11 pm |
| It's more complicated than that. Cairngorm, however, is complicated in a
good way. You must first understand how Cairngorm works.
Cairngorm attempts to be a good MVC implementation. I think it is. You're
View's (GUI components) dispatch events via Cairngorm's own event
dispatcher. These events trigger Commands. Commands are responsible for
modifying data. Flex allows View's to bind to data. This data, the Model
in this case, is set on the ModelLocator class. The Command modifies data
on the ModelLocator and the View's update via bindings. Typically, this
data is begotten from a server. Typically, this is done in one of the 3
request / response methods. Resquest response boiling down the TCP/IP
implemtnation of how HTTP handles sockets. Opens the socket, says hello,
gets a response, and closes it. There is no continouse open socket. This
is typically handled by a Business Delegate rather than the Command itself
because there are sometimes weird things that are needed to talk to the
server, data massaging, etc.
The Delegates will usually use 1 of the 3 request / response types; GET/POST
(HTTPService), SOAP or other web serivces (WebService), or Flash Remoting
(RemoteObject). It usually goes like this:
- the View triggers an event
- the event triggers a Command via the Controller
- the Command instantiates and calls a method on a Business Delegate
- the Delegate calls the server
- the server responds
- the Delegate passes this data back to the Command's response handler
- the Command sets this data on the ModelLocator
- the Views who are bound to the ModelLocator update
This is request / response. This is not server push. Server push implies
the server can push data to the client. Servers cannot instantiate HTTP
connections in this model. The only way to allow a server to give time
context messages like this is via polling. Sometimes via server state, such
as a session, the client can poll the server; meaning using the above model
in frequent intervals, and the server can respond differently over time.
This, however, is reliant on the client to continually access the server.
Server push, however, comes about by an always open, persistent socket
connection. Typically done via XMLSocket, rtmp in the case of Flashcom, or
the new Binary Sockets in Flash Player 9.
In this particular instance, I'm talking about Flashcom. The server has the
ability, without client interfvention, to push information to the client via
the persistent connection. For example, the server can update a Remote
SharedObject, and this can then trigger a method on the client.
While that's great, Cairngorm isn't built around the push model, it's built
around the request / response model. Calling server methods? Yep. Server
calling client methods? Nope.
I've got that part partially solved, I think.
However, if you've ever used the component framework as listed here:
http://www.adobe.com/devnet/flashco.../framework.html
You'll notice it is very dynamic in nature. It wants the NetConnection
bound to the view, and all other types of tight coupling that doesn't work
in the Flex 2 / Cairngorm 2 model. While that's easily extracted, the
dynamic nature is not... since ActionScript 3 and the Flash Player 9 are
extremely strict.
So, at this point, I'm wondering if there is any hope of getting the
component framework even working for Flash Player 9...
----- Original Message -----
From: "Weyert de Boer" <wdb-WqTeb0HIzk1M0PWSD34TJQ@public.gmane.org>
To: "FlashComm Mailing List" <flashcomm-1Ss2GqJETD3yZ38Mhd3e/9ZfFG6BLHNm@public.gmane.org>
Sent: Tuesday, July 04, 2006 1:39 PM
Subject: Re: [FlashComm] Component Framework, ActionScript 3, & Cairngorm 2
Hi Jesse,
What do you exactly mean with a "server push" if you mean something like
pushing information back to the server. This can be easily done with the
Commands/Delegates work. Because you can write a Command which pushes
information back to the server. Basically you could even write a class
that has the sole responsible todo retrieve and/or push information back
to the server.
function action_save(Sender:Object)
var myNewsItem: TNewsItem;
begin
myNewsItem := TNewsItem.Create( "MyNewsTitle", "MyNewsContent" );
myNewsItem.save();
end;
As you might see already the NewsItem-class will be used to store the
actual data to the server. Of course, you can use the same thing to
store stuff through a webservice etc. Not a biggy?
________________________________________
_______
FlashComm-1Ss2GqJETD3yZ38Mhd3e/9ZfFG6BLHNm@public.gmane.org
To change your subscription options or search the archive:
http://chattyfig.figleaf.com/mailman/listinfo/flashcomm
Brought to you by Fig Leaf Software
Premier Authorized Adobe Consulting and Training
http://www.figleaf.com
http://training.figleaf.com
________________________________________
_______
FlashComm-1Ss2GqJETD3yZ38Mhd3e/9ZfFG6BLHNm@public.gmane.org
To change your subscription options or search the archive:
http://chattyfig.figleaf.com/mailman/listinfo/flashcomm
Brought to you by Fig Leaf Software
Premier Authorized Adobe Consulting and Training
http://www.figleaf.com
http://training.figleaf.com
| |
| Giacomo Peldi Guilizzoni 2006-07-05, 1:11 am |
| Hey Jesse, great subject. First of all I'm an AS3 newbie compared to
you. Anyways, I was just browsing the AS3 docs at
http://livedocs.macromedia.com/flex...gref/index.html and I think
you should be able to do the old "NetConnection[myObj][mySubObj] =
this;" with a combination of NetConnection.client and the Proxy class?
(that's the replacement of __resolve, or so they say).
On a related note, I find that I really rarely have to make
server-to-client calls (which require some client code to attach
itself to the NC). Much more often (99% of the time), the pattern is
this:
== the model is a SO name-spaced to my class and lives on FMS, with no
write access from clients ==
- user interacts with UI (controller)
- client makes call to server to update the model
- server verifies security and roles, and updates the model if the
client is allowed to (this is just a SO.setProperty)
- clients get the onSync and update their views
The only time I do server-to-client calls is to deliver private chat
messages, but I could do a send on a SO or a NS to do the same (which
seems easier in AS3 than attaching stuff to the NC, again just
name-space your SO or NS as you wish).
As for FDS and Craingorn, I really know very little about them (a lot
to learn!), but I'll be studying this stuff soon I hope.
Peldi
On 7/4/06, JesterXL <jesterxl-RyEax5csP4NCVeB36W80OQ@public.gmane.org> wrote:
> It's more complicated than that. Cairngorm, however, is complicated in a
> good way. You must first understand how Cairngorm works.
>
> Cairngorm attempts to be a good MVC implementation. I think it is. You're
> View's (GUI components) dispatch events via Cairngorm's own event
> dispatcher. These events trigger Commands. Commands are responsible for
> modifying data. Flex allows View's to bind to data. This data, the Model
> in this case, is set on the ModelLocator class. The Command modifies data
> on the ModelLocator and the View's update via bindings. Typically, this
> data is begotten from a server. Typically, this is done in one of the 3
> request / response methods. Resquest response boiling down the TCP/IP
> implemtnation of how HTTP handles sockets. Opens the socket, says hello,
> gets a response, and closes it. There is no continouse open socket. This
> is typically handled by a Business Delegate rather than the Command itself
> because there are sometimes weird things that are needed to talk to the
> server, data massaging, etc.
>
> The Delegates will usually use 1 of the 3 request / response types; GET/POST
> (HTTPService), SOAP or other web serivces (WebService), or Flash Remoting
> (RemoteObject). It usually goes like this:
> - the View triggers an event
> - the event triggers a Command via the Controller
> - the Command instantiates and calls a method on a Business Delegate
> - the Delegate calls the server
> - the server responds
> - the Delegate passes this data back to the Command's response handler
> - the Command sets this data on the ModelLocator
> - the Views who are bound to the ModelLocator update
>
> This is request / response. This is not server push. Server push implies
> the server can push data to the client. Servers cannot instantiate HTTP
> connections in this model. The only way to allow a server to give time
> context messages like this is via polling. Sometimes via server state, such
> as a session, the client can poll the server; meaning using the above model
> in frequent intervals, and the server can respond differently over time.
> This, however, is reliant on the client to continually access the server.
>
> Server push, however, comes about by an always open, persistent socket
> connection. Typically done via XMLSocket, rtmp in the case of Flashcom, or
> the new Binary Sockets in Flash Player 9.
>
> In this particular instance, I'm talking about Flashcom. The server has the
> ability, without client interfvention, to push information to the client via
> the persistent connection. For example, the server can update a Remote
> SharedObject, and this can then trigger a method on the client.
>
> While that's great, Cairngorm isn't built around the push model, it's built
> around the request / response model. Calling server methods? Yep. Server
> calling client methods? Nope.
>
> I've got that part partially solved, I think.
>
> However, if you've ever used the component framework as listed here:
> http://www.adobe.com/devnet/flashco.../framework.html
>
> You'll notice it is very dynamic in nature. It wants the NetConnection
> bound to the view, and all other types of tight coupling that doesn't work
> in the Flex 2 / Cairngorm 2 model. While that's easily extracted, the
> dynamic nature is not... since ActionScript 3 and the Flash Player 9 are
> extremely strict.
>
> So, at this point, I'm wondering if there is any hope of getting the
> component framework even working for Flash Player 9...
>
>
>
> ----- Original Message -----
> From: "Weyert de Boer" <wdb-WqTeb0HIzk1M0PWSD34TJQ@public.gmane.org>
> To: "FlashComm Mailing List" <flashcomm-1Ss2GqJETD3yZ38Mhd3e/9ZfFG6BLHNm@public.gmane.org>
> Sent: Tuesday, July 04, 2006 1:39 PM
> Subject: Re: [FlashComm] Component Framework, ActionScript 3, & Cairngorm 2
>
>
> Hi Jesse,
>
> What do you exactly mean with a "server push" if you mean something like
> pushing information back to the server. This can be easily done with the
> Commands/Delegates work. Because you can write a Command which pushes
> information back to the server. Basically you could even write a class
> that has the sole responsible todo retrieve and/or push information back
> to the server.
>
> function action_save(Sender:Object)
> var myNewsItem: TNewsItem;
> begin
> myNewsItem := TNewsItem.Create( "MyNewsTitle", "MyNewsContent" );
> myNewsItem.save();
> end;
>
> As you might see already the NewsItem-class will be used to store the
> actual data to the server. Of course, you can use the same thing to
> store stuff through a webservice etc. Not a biggy?
> ________________________________________
_______
> FlashComm-1Ss2GqJETD3yZ38Mhd3e/9ZfFG6BLHNm@public.gmane.org
> To change your subscription options or search the archive:
> http://chattyfig.figleaf.com/mailman/listinfo/flashcomm
>
> Brought to you by Fig Leaf Software
> Premier Authorized Adobe Consulting and Training
> http://www.figleaf.com
> http://training.figleaf.com
>
> ________________________________________
_______
> FlashComm-1Ss2GqJETD3yZ38Mhd3e/9ZfFG6BLHNm@public.gmane.org
> To change your subscription options or search the archive:
> http://chattyfig.figleaf.com/mailman/listinfo/flashcomm
>
> Brought to you by Fig Leaf Software
> Premier Authorized Adobe Consulting and Training
> http://www.figleaf.com
> http://training.figleaf.com
>
________________________________________
_______
FlashComm-1Ss2GqJETD3yZ38Mhd3e/9ZfFG6BLHNm@public.gmane.org
To change your subscription options or search the archive:
http://chattyfig.figleaf.com/mailman/listinfo/flashcomm
Brought to you by Fig Leaf Software
Premier Authorized Adobe Consulting and Training
http://www.figleaf.com
http://training.figleaf.com
| |
| JesterXL 2006-07-05, 1:11 am |
| 8 hours later, I figured out a few things. First off, SharedObject now has
a client property where you can forward messages. However, it can only see
public methods; protected and private can't be seen.
For now, I've done the whole:
var o = {};
o.owner = this;
o.method = function()
{
this.owner.method();
};
But that's lame. Gotta be a better way.
Anyway, to the point, I also found my code works just fine not decorating
the NetConnection object. Not sure why, but so far, so good. 12 more
legacy components to go... we'll see if anything crops up.
So, yeah, I do that same model for the most part. My client methods are the
same thing, yeah; client asks server to update an SO for him if "that's ok".
The rest of 'em, server calling client, are in line of what you said.
It's more the mechanics I was worried about, but I extended NetConnection
making him a dynamic class, set his object decoding to AMF0, as well as
NetConnection, and all is well and green! Which is really nice because I
only have to port the client code; all the existing server-side code will
still work.
Still... I wish I knew more about AS3 namespaces. There has got to be a way
to allow a SharedObject's client property to see protected methods...
----- Original Message -----
From: "Giacomo Peldi Guilizzoni" <peldi-GJ+k4u3ACo4AvxtiuMwx3w@public.gmane.org>
To: "FlashComm Mailing List" <flashcomm-1Ss2GqJETD3yZ38Mhd3e/9ZfFG6BLHNm@public.gmane.org>
Sent: Tuesday, July 04, 2006 10:42 PM
Subject: Re: [FlashComm] Component Framework, ActionScript 3, & Cairngorm 2
Hey Jesse, great subject. First of all I'm an AS3 newbie compared to
you. Anyways, I was just browsing the AS3 docs at
http://livedocs.macromedia.com/flex...gref/index.html and I think
you should be able to do the old "NetConnection[myObj][mySubObj] =
this;" with a combination of NetConnection.client and the Proxy class?
(that's the replacement of __resolve, or so they say).
On a related note, I find that I really rarely have to make
server-to-client calls (which require some client code to attach
itself to the NC). Much more often (99% of the time), the pattern is
this:
== the model is a SO name-spaced to my class and lives on FMS, with no
write access from clients ==
- user interacts with UI (controller)
- client makes call to server to update the model
- server verifies security and roles, and updates the model if the
client is allowed to (this is just a SO.setProperty)
- clients get the onSync and update their views
The only time I do server-to-client calls is to deliver private chat
messages, but I could do a send on a SO or a NS to do the same (which
seems easier in AS3 than attaching stuff to the NC, again just
name-space your SO or NS as you wish).
As for FDS and Craingorn, I really know very little about them (a lot
to learn!), but I'll be studying this stuff soon I hope.
Peldi
On 7/4/06, JesterXL <jesterxl-RyEax5csP4NCVeB36W80OQ@public.gmane.org> wrote:
> It's more complicated than that. Cairngorm, however, is complicated in a
> good way. You must first understand how Cairngorm works.
>
> Cairngorm attempts to be a good MVC implementation. I think it is.
> You're
> View's (GUI components) dispatch events via Cairngorm's own event
> dispatcher. These events trigger Commands. Commands are responsible for
> modifying data. Flex allows View's to bind to data. This data, the Model
> in this case, is set on the ModelLocator class. The Command modifies data
> on the ModelLocator and the View's update via bindings. Typically, this
> data is begotten from a server. Typically, this is done in one of the 3
> request / response methods. Resquest response boiling down the TCP/IP
> implemtnation of how HTTP handles sockets. Opens the socket, says hello,
> gets a response, and closes it. There is no continouse open socket. This
> is typically handled by a Business Delegate rather than the Command itself
> because there are sometimes weird things that are needed to talk to the
> server, data massaging, etc.
>
> The Delegates will usually use 1 of the 3 request / response types;
> GET/POST
> (HTTPService), SOAP or other web serivces (WebService), or Flash Remoting
> (RemoteObject). It usually goes like this:
> - the View triggers an event
> - the event triggers a Command via the Controller
> - the Command instantiates and calls a method on a Business Delegate
> - the Delegate calls the server
> - the server responds
> - the Delegate passes this data back to the Command's response handler
> - the Command sets this data on the ModelLocator
> - the Views who are bound to the ModelLocator update
>
> This is request / response. This is not server push. Server push implies
> the server can push data to the client. Servers cannot instantiate HTTP
> connections in this model. The only way to allow a server to give time
> context messages like this is via polling. Sometimes via server state,
> such
> as a session, the client can poll the server; meaning using the above
> model
> in frequent intervals, and the server can respond differently over time.
> This, however, is reliant on the client to continually access the server.
>
> Server push, however, comes about by an always open, persistent socket
> connection. Typically done via XMLSocket, rtmp in the case of Flashcom,
> or
> the new Binary Sockets in Flash Player 9.
>
> In this particular instance, I'm talking about Flashcom. The server has
> the
> ability, without client interfvention, to push information to the client
> via
> the persistent connection. For example, the server can update a Remote
> SharedObject, and this can then trigger a method on the client.
>
> While that's great, Cairngorm isn't built around the push model, it's
> built
> around the request / response model. Calling server methods? Yep.
> Server
> calling client methods? Nope.
>
> I've got that part partially solved, I think.
>
> However, if you've ever used the component framework as listed here:
> http://www.adobe.com/devnet/flashco.../framework.html
>
> You'll notice it is very dynamic in nature. It wants the NetConnection
> bound to the view, and all other types of tight coupling that doesn't work
> in the Flex 2 / Cairngorm 2 model. While that's easily extracted, the
> dynamic nature is not... since ActionScript 3 and the Flash Player 9 are
> extremely strict.
>
> So, at this point, I'm wondering if there is any hope of getting the
> component framework even working for Flash Player 9...
>
>
>
> ----- Original Message -----
> From: "Weyert de Boer" <wdb-WqTeb0HIzk1M0PWSD34TJQ@public.gmane.org>
> To: "FlashComm Mailing List" <flashcomm-1Ss2GqJETD3yZ38Mhd3e/9ZfFG6BLHNm@public.gmane.org>
> Sent: Tuesday, July 04, 2006 1:39 PM
> Subject: Re: [FlashComm] Component Framework, ActionScript 3, & Cairngorm
> 2
>
>
> Hi Jesse,
>
> What do you exactly mean with a "server push" if you mean something like
> pushing information back to the server. This can be easily done with the
> Commands/Delegates work. Because you can write a Command which pushes
> information back to the server. Basically you could even write a class
> that has the sole responsible todo retrieve and/or push information back
> to the server.
>
> function action_save(Sender:Object)
> var myNewsItem: TNewsItem;
> begin
> myNewsItem := TNewsItem.Create( "MyNewsTitle", "MyNewsContent" );
> myNewsItem.save();
> end;
>
> As you might see already the NewsItem-class will be used to store the
> actual data to the server. Of course, you can use the same thing to
> store stuff through a webservice etc. Not a biggy?
> ________________________________________
_______
> FlashComm-1Ss2GqJETD3yZ38Mhd3e/9ZfFG6BLHNm@public.gmane.org
> To change your subscription options or search the archive:
> http://chattyfig.figleaf.com/mailman/listinfo/flashcomm
>
> Brought to you by Fig Leaf Software
> Premier Authorized Adobe Consulting and Training
> http://www.figleaf.com
> http://training.figleaf.com
>
> ________________________________________
_______
> FlashComm-1Ss2GqJETD3yZ38Mhd3e/9ZfFG6BLHNm@public.gmane.org
> To change your subscription options or search the archive:
> http://chattyfig.figleaf.com/mailman/listinfo/flashcomm
>
> Brought to you by Fig Leaf Software
> Premier Authorized Adobe Consulting and Training
> http://www.figleaf.com
> http://training.figleaf.com
>
________________________________________
_______
FlashComm-1Ss2GqJETD3yZ38Mhd3e/9ZfFG6BLHNm@public.gmane.org
To change your subscription options or search the archive:
http://chattyfig.figleaf.com/mailman/listinfo/flashcomm
Brought to you by Fig Leaf Software
Premier Authorized Adobe Consulting and Training
http://www.figleaf.com
http://training.figleaf.com
________________________________________
_______
FlashComm-1Ss2GqJETD3yZ38Mhd3e/9ZfFG6BLHNm@public.gmane.org
To change your subscription options or search the archive:
http://chattyfig.figleaf.com/mailman/listinfo/flashcomm
Brought to you by Fig Leaf Software
Premier Authorized Adobe Consulting and Training
http://www.figleaf.com
http://training.figleaf.com
| |
| Stefan Richter 2006-07-05, 7:11 am |
| I've never used Cairngorm but I've used ARP. And that was for a FCS app.
While the app worked in the end I ran into several issues which sound
similar to what you describe - but my AS knowledge is not detailed enough to
explain the issues I was having, all I know is that I had issues :-)
I found stuff like ns.send, Client.call and SO.onSync tricky to implement.
I don't think I'd use ARP again for a FCS/FMS app and it sounds like
Cairngorm (which seems to have a lot in common with ARP) has the same
issues.
I'm all ears for any progress you make in this area. Some guidance from
Adobe in regards to FMS app development best practices would not go amiss.
And Jesse, the stuff you said about FDS put my right off. I've not played
with it yet but I did read the install docs and that alone made me feel ill.
Stefan
> -----Original Message-----
> From: flashcomm-bounces-1Ss2GqJETD3yZ38Mhd3e/9ZfFG6BLHNm@public.gmane.org
> [mailto:flashcomm-bounces-1Ss2GqJETD3yZ38Mhd3e/9ZfFG6BLHNm@public.gmane.org] On Behalf Of JesterXL
> Sent: 04 July 2006 18:52
> To: wdb-WqTeb0HIzk1M0PWSD34TJQ@public.gmane.org; FlashComm Mailing List
> Subject: Re: [FlashComm] Component Framework, ActionScript 3,
> & Cairngorm 2
>
> It's more complicated than that. Cairngorm, however, is
> complicated in a good way. You must first understand how
> Cairngorm works.
>
> Cairngorm attempts to be a good MVC implementation. I think
> it is. You're View's (GUI components) dispatch events via
> Cairngorm's own event dispatcher. These events trigger
> Commands. Commands are responsible for modifying data. Flex
> allows View's to bind to data. This data, the Model in this
> case, is set on the ModelLocator class. The Command modifies
> data on the ModelLocator and the View's update via bindings.
> Typically, this data is begotten from a server. Typically,
> this is done in one of the 3 request / response methods.
> Resquest response boiling down the TCP/IP implemtnation of
> how HTTP handles sockets. Opens the socket, says hello, gets
> a response, and closes it. There is no continouse open
> socket. This is typically handled by a Business Delegate
> rather than the Command itself because there are sometimes
> weird things that are needed to talk to the server, data
> massaging, etc.
>
> The Delegates will usually use 1 of the 3 request / response
> types; GET/POST (HTTPService), SOAP or other web serivces
> (WebService), or Flash Remoting (RemoteObject). It usually
> goes like this:
> - the View triggers an event
> - the event triggers a Command via the Controller
> - the Command instantiates and calls a method on a Business Delegate
> - the Delegate calls the server
> - the server responds
> - the Delegate passes this data back to the Command's response handler
> - the Command sets this data on the ModelLocator
> - the Views who are bound to the ModelLocator update
>
> This is request / response. This is not server push. Server
> push implies the server can push data to the client. Servers
> cannot instantiate HTTP connections in this model. The only
> way to allow a server to give time context messages like this
> is via polling. Sometimes via server state, such as a
> session, the client can poll the server; meaning using the
> above model in frequent intervals, and the server can respond
> differently over time.
> This, however, is reliant on the client to continually access
> the server.
>
> Server push, however, comes about by an always open,
> persistent socket connection. Typically done via XMLSocket,
> rtmp in the case of Flashcom, or the new Binary Sockets in
> Flash Player 9.
>
> In this particular instance, I'm talking about Flashcom. The
> server has the ability, without client interfvention, to push
> information to the client via the persistent connection. For
> example, the server can update a Remote SharedObject, and
> this can then trigger a method on the client.
>
> While that's great, Cairngorm isn't built around the push
> model, it's built around the request / response model.
> Calling server methods? Yep. Server calling client methods? Nope.
>
> I've got that part partially solved, I think.
>
> However, if you've ever used the component framework as listed here:
> http://www.adobe.com/devnet/flashco.../framework.html
>
> You'll notice it is very dynamic in nature. It wants the
> NetConnection bound to the view, and all other types of tight
> coupling that doesn't work in the Flex 2 / Cairngorm 2 model.
> While that's easily extracted, the dynamic nature is not...
> since ActionScript 3 and the Flash Player 9 are extremely strict.
>
> So, at this point, I'm wondering if there is any hope of
> getting the component framework even working for Flash Player 9...
>
>
________________________________________
_______
FlashComm-1Ss2GqJETD3yZ38Mhd3e/9ZfFG6BLHNm@public.gmane.org
To change your subscription options or search the archive:
http://chattyfig.figleaf.com/mailman/listinfo/flashcomm
Brought to you by Fig Leaf Software
Premier Authorized Adobe Consulting and Training
http://www.figleaf.com
http://training.figleaf.com
| |
| Randy Tinfow 2006-07-05, 7:11 am |
| > Hey Jesse, great subject.<
Yes, it is, because the applications that can benefit from data
persistence is huge. For one example, a geographically disperate
leadership team that is manipulating cost/revenue projections before
approving next year's budget. Persistence allows different scenarios to
be tested by adjusting variables in realtime and having all the
participants to be in-sync.
In the old days (2 years ago) we accomplished data synchronicity with
browswer refreshes, but that cludgy method is no longer acceptable to
sophisticated clients.
RT
________________________________________
_______
FlashComm-1Ss2GqJETD3yZ38Mhd3e/9ZfFG6BLHNm@public.gmane.org
To change your subscription options or search the archive:
http://chattyfig.figleaf.com/mailman/listinfo/flashcomm
Brought to you by Fig Leaf Software
Premier Authorized Adobe Consulting and Training
http://www.figleaf.com
http://training.figleaf.com
| |
| JesterXL 2006-07-05, 1:11 pm |
| Don't let my FDS bashing turn you off from trying it. Their Consumer /
Producer implementation is really nice. Imagine if Remote SharedObject's
were split in 2; one for sending messages and one for receiving. Minimal
configuration.
....however, their DataServices, which is the actual syncronizing of data, is
overally complicated. Remember, the WHOLE system allows jms or rtmp first,
amf remoting polling second, and finally HTTP polling third. So, same API,
3 different ways to get it to work. Naturally, all of us want the first.
Regardless, DataServices, while nice that it integrates with Java's
Hiberate, and other ways to configure, map th Java VO's, etc., it's still
overkill for what most of us want to do via data-specific apps. Is it a
nice system? No doubt. To get it up and running, though, seems too
complicated.
Again, I think you should try it out, at least the Consumer / Producer
parts, and DataServices if you can configure the XML right. It is not,
however, the Remote SharedObject server I thought it was.
----- Original Message -----
From: "Stefan Richter" <stefan-fMeCE+ULXElEfu+5ix1nRw@public.gmane.org>
To: "'FlashComm Mailing List'" <flashcomm-1Ss2GqJETD3yZ38Mhd3e/9ZfFG6BLHNm@public.gmane.org>
Sent: Wednesday, July 05, 2006 3:43 AM
Subject: RE: [FlashComm] Component Framework, ActionScript 3, & Cairngorm 2
I've never used Cairngorm but I've used ARP. And that was for a FCS app.
While the app worked in the end I ran into several issues which sound
similar to what you describe - but my AS knowledge is not detailed enough to
explain the issues I was having, all I know is that I had issues :-)
I found stuff like ns.send, Client.call and SO.onSync tricky to implement.
I don't think I'd use ARP again for a FCS/FMS app and it sounds like
Cairngorm (which seems to have a lot in common with ARP) has the same
issues.
I'm all ears for any progress you make in this area. Some guidance from
Adobe in regards to FMS app development best practices would not go amiss.
And Jesse, the stuff you said about FDS put my right off. I've not played
with it yet but I did read the install docs and that alone made me feel ill.
Stefan
> -----Original Message-----
> From: flashcomm-bounces-1Ss2GqJETD3yZ38Mhd3e/9ZfFG6BLHNm@public.gmane.org
> [mailto:flashcomm-bounces-1Ss2GqJETD3yZ38Mhd3e/9ZfFG6BLHNm@public.gmane.org] On Behalf Of JesterXL
> Sent: 04 July 2006 18:52
> To: wdb-WqTeb0HIzk1M0PWSD34TJQ@public.gmane.org; FlashComm Mailing List
> Subject: Re: [FlashComm] Component Framework, ActionScript 3,
> & Cairngorm 2
>
> It's more complicated than that. Cairngorm, however, is
> complicated in a good way. You must first understand how
> Cairngorm works.
>
> Cairngorm attempts to be a good MVC implementation. I think
> it is. You're View's (GUI components) dispatch events via
> Cairngorm's own event dispatcher. These events trigger
> Commands. Commands are responsible for modifying data. Flex
> allows View's to bind to data. This data, the Model in this
> case, is set on the ModelLocator class. The Command modifies
> data on the ModelLocator and the View's update via bindings.
> Typically, this data is begotten from a server. Typically,
> this is done in one of the 3 request / response methods.
> Resquest response boiling down the TCP/IP implemtnation of
> how HTTP handles sockets. Opens the socket, says hello, gets
> a response, and closes it. There is no continouse open
> socket. This is typically handled by a Business Delegate
> rather than the Command itself because there are sometimes
> weird things that are needed to talk to the server, data
> massaging, etc.
>
> The Delegates will usually use 1 of the 3 request / response
> types; GET/POST (HTTPService), SOAP or other web serivces
> (WebService), or Flash Remoting (RemoteObject). It usually
> goes like this:
> - the View triggers an event
> - the event triggers a Command via the Controller
> - the Command instantiates and calls a method on a Business Delegate
> - the Delegate calls the server
> - the server responds
> - the Delegate passes this data back to the Command's response handler
> - the Command sets this data on the ModelLocator
> - the Views who are bound to the ModelLocator update
>
> This is request / response. This is not server push. Server
> push implies the server can push data to the client. Servers
> cannot instantiate HTTP connections in this model. The only
> way to allow a server to give time context messages like this
> is via polling. Sometimes via server state, such as a
> session, the client can poll the server; meaning using the
> above model in frequent intervals, and the server can respond
> differently over time.
> This, however, is reliant on the client to continually access
> the server.
>
> Server push, however, comes about by an always open,
> persistent socket connection. Typically done via XMLSocket,
> rtmp in the case of Flashcom, or the new Binary Sockets in
> Flash Player 9.
>
> In this particular instance, I'm talking about Flashcom. The
> server has the ability, without client interfvention, to push
> information to the client via the persistent connection. For
> example, the server can update a Remote SharedObject, and
> this can then trigger a method on the client.
>
> While that's great, Cairngorm isn't built around the push
> model, it's built around the request / response model.
> Calling server methods? Yep. Server calling client methods? Nope.
>
> I've got that part partially solved, I think.
>
> However, if you've ever used the component framework as listed here:
> http://www.adobe.com/devnet/flashco.../framework.html
>
> You'll notice it is very dynamic in nature. It wants the
> NetConnection bound to the view, and all other types of tight
> coupling that doesn't work in the Flex 2 / Cairngorm 2 model.
> While that's easily extracted, the dynamic nature is not...
> since ActionScript 3 and the Flash Player 9 are extremely strict.
>
> So, at this point, I'm wondering if there is any hope of
> getting the component framework even working for Flash Player 9...
>
>
________________________________________
_______
FlashComm-1Ss2GqJETD3yZ38Mhd3e/9ZfFG6BLHNm@public.gmane.org
To change your subscription options or search the archive:
http://chattyfig.figleaf.com/mailman/listinfo/flashcomm
Brought to you by Fig Leaf Software
Premier Authorized Adobe Consulting and Training
http://www.figleaf.com
http://training.figleaf.com
________________________________________
_______
FlashComm-1Ss2GqJETD3yZ38Mhd3e/9ZfFG6BLHNm@public.gmane.org
To change your subscription options or search the archive:
http://chattyfig.figleaf.com/mailman/listinfo/flashcomm
Brought to you by Fig Leaf Software
Premier Authorized Adobe Consulting and Training
http://www.figleaf.com
http://training.figleaf.com
| |
| Brian Lesser 2006-07-06, 1:11 am |
| Hi Jesse,
Have you got DataServices working? I haven't tried it, and after a light
reading of the docs, wouldn't know where to start. In fact reading the
docs was a little disconcerting. I thought Adobe did a great job on the
Flex 2 docs until I crashed into the Data Services part. Suddenly I felt
like I was being spoon fed "Jargon for Kids" not "information for real
developers in a hurry"... But I did get the impression that the
ArrayCollection object managed by a DataService would act something like
a kind of SharedRecordSet with the hard part being getting/setting the
data via Java on the server and working through all the new API
details... I saw you wrote that FDS isn't a Remote SharedObject server
but have I got the bit about the ArrayCollection right?
If so I am somewhat interested in FDS but leary of spending a lot of
time absorbing a new jargon for something I might never use. If you see
a great example that does something real (like updating a real database
and keeping clients in sync with real data) with DataServices could you
point me to it? And can you use DataServices/ArrayCollection with
Coldfusion? And what do you have to do on the back end to get that to
work??? I'd love to read something useful that didn't treat me like I
was still in diapers....
Sorry for asking so many questions.
Re Cairngorm or ARP it's not a bad approach to build a larger app around
one of them and switch to a more communications component approach when
you connect to FMS/FCS. I can't see the value of model locator for the
FCS/FMS part... I mean would you do a whiteboard or audio chat that way?
Those things are all about sharing state across clients - usually via
shared objects.
Cheers,
-Brian
JesterXL wrote:
>Don't let my FDS bashing turn you off from trying it. Their Consumer /
>Producer implementation is really nice. Imagine if Remote SharedObject's
>were split in 2; one for sending messages and one for receiving. Minimal
>configuration.
>
>...however, their DataServices, which is the actual syncronizing of data, is
>overally complicated. Remember, the WHOLE system allows jms or rtmp first,
>amf remoting polling second, and finally HTTP polling third. So, same API,
>3 different ways to get it to work. Naturally, all of us want the first.
>Regardless, DataServices, while nice that it integrates with Java's
>Hiberate, and other ways to configure, map th Java VO's, etc., it's still
>overkill for what most of us want to do via data-specific apps. Is it a
>nice system? No doubt. To get it up and running, though, seems too
>complicated.
>
>Again, I think you should try it out, at least the Consumer / Producer
>parts, and DataServices if you can configure the XML right. It is not,
>however, the Remote SharedObject server I thought it was.
>
>
>----- Original Message -----
>From: "Stefan Richter" <stefan-fMeCE+ULXElEfu+5ix1nRw@public.gmane.org>
>To: "'FlashComm Mailing List'" <flashcomm-1Ss2GqJETD3yZ38Mhd3e/9ZfFG6BLHNm@public.gmane.org>
>Sent: Wednesday, July 05, 2006 3:43 AM
>Subject: RE: [FlashComm] Component Framework, ActionScript 3, & Cairngorm 2
>
>
>I've never used Cairngorm but I've used ARP. And that was for a FCS app.
>While the app worked in the end I ran into several issues which sound
>similar to what you describe - but my AS knowledge is not detailed enough to
>explain the issues I was having, all I know is that I had issues :-)
>I found stuff like ns.send, Client.call and SO.onSync tricky to implement.
>
>I don't think I'd use ARP again for a FCS/FMS app and it sounds like
>Cairngorm (which seems to have a lot in common with ARP) has the same
>issues.
>
>I'm all ears for any progress you make in this area. Some guidance from
>Adobe in regards to FMS app development best practices would not go amiss.
>And Jesse, the stuff you said about FDS put my right off. I've not played
>with it yet but I did read the install docs and that alone made me feel ill.
>
>Stefan
>
>
>
>
>
>
> ________________________________________
_______
>FlashComm-1Ss2GqJETD3yZ38Mhd3e/9ZfFG6BLHNm@public.gmane.org
>To change your subscription options or search the archive:
>http://chattyfig.figleaf.com/mailman/listinfo/flashcomm
>
>Brought to you by Fig Leaf Software
>Premier Authorized Adobe Consulting and Training
>http://www.figleaf.com
>http://training.figleaf.com
>
> ________________________________________
_______
>FlashComm-1Ss2GqJETD3yZ38Mhd3e/9ZfFG6BLHNm@public.gmane.org
>To change your subscription options or search the archive:
>http://chattyfig.figleaf.com/mailman/listinfo/flashcomm
>
>Brought to you by Fig Leaf Software
>Premier Authorized Adobe Consulting and Training
>http://www.figleaf.com
>http://training.figleaf.com
>
>
--
________________________________________
______________________________
Brian Lesser
Assistant Director, Teaching and Technology Support
Computing and Communications Services
Ryerson University
350 Victoria St.
Toronto, Ontario Phone: (416) 979-5000 ext. 6835
M5B 2K3 Fax: (416) 979-5220
Office: AB48D E-mail: blesser-6s6ziW1YCwCw5LPnMra/2Q@public.gmane.org
(Enter through LB66) Web: http://www.ryerson.ca/~blesser
________________________________________
______________________________
________________________________________
_______
FlashComm-1Ss2GqJETD3yZ38Mhd3e/9ZfFG6BLHNm@public.gmane.org
To change your subscription options or search the archive:
http://chattyfig.figleaf.com/mailman/listinfo/flashcomm
Brought to you by Fig Leaf Software
Premier Authorized Adobe Consulting and Training
http://www.figleaf.com
http://training.figleaf.com
| |
| hank williams 2006-07-06, 1:11 am |
| Brian,
On 7/5/06, Brian Lesser <blesser-6s6ziW1YCwCw5LPnMra/2Q@public.gmane.org> wrote:
>
> Hi Jesse,
> Have you got DataServices working? I haven't tried it, and after a light
> reading of the docs, wouldn't know where to start. In fact reading the
> docs was a little disconcerting. I thought Adobe did a great job on the
> Flex 2 docs until I crashed into the Data Services part. Suddenly I felt
> like I was being spoon fed "Jargon for Kids" not "information for real
> developers in a hurry"... But I did get the impression that the
> ArrayCollection object managed by a DataService would act something like
> a kind of SharedRecordSet with the hard part being getting/setting the
> data via Java on the server and working through all the new API
> details... I saw you wrote that FDS isn't a Remote SharedObject server
> but have I got the bit about the ArrayCollection right?
I think this is right. I have data services running, but only for remoting.
But now that I have it running I have been intending to slowly add in new
features. I do want to figure out how to keep users up to date with data,
and I thought I saw some sample code on this that looked pretty simple. But
this was a few months ago and I havent tried it since I have gotten things
up and running. The reality may be far more unpleasant than my memory is
allowing me to admit.
But one thing that I am troubled about which your statement hints at is that
their assumption with changes in data seems to be that users change the
data, and what my app does is take data from people, and summarize it in
some interesting ways. I am never showing data to people that came directly
from other users. So what I want to know is how changes that emanate from
the server end up getting propagating to users. The data that users would
subscribe to is really a *calculation*. How do you subscribe to a
calculation. Do users subscribe to a particular calcuation? Its all doable,
but Its another layer of complexity it seems to me. I feel like I have to
invent a new design pattern on the server side to make this seamless.
Regards
Hank
________________________________________
_______
FlashComm-1Ss2GqJETD3yZ38Mhd3e/9ZfFG6BLHNm@public.gmane.org
To change your subscription options or search the archive:
http://chattyfig.figleaf.com/mailman/listinfo/flashcomm
Brought to you by Fig Leaf Software
Premier Authorized Adobe Consulting and Training
http://www.figleaf.com
http://training.figleaf.com
| |
| JesterXL 2006-07-06, 1:11 am |
| No, I didn't get it to work. I tried briefly, but the XML is archiac.
Yeah, I think you hit most of it on the head. Even the Flex 1.5 docs were
pimp, but I didn't give the DataServices bit a chance... 80% of it is XML
config, and brief hints about how to extend stuff in Java. Bleh.
Yeah, she syncs ArrayCollections basically... I think.
If I see an example, I'll show you. I know our Enterprise clients will want
it, but I refuse to learn the XML & Java parts. Consumer & Producer are
easy, and the API for DataService is easy enough for us to learn.
Not sure about CF... it's meant to be used with Hibernate, not ColdFusion.
I'm sure CFHibernate could be brought into the mix, but that's not their
target market. They are going after the Enterprise Java devs who use
Spring, Hibernate, and buy 10 million servers.
My boss and I discussed this (frameworks) today. The issue is there is no
built-in mechinism for push. They support request/response, so you can
still do your NetConnections.call in your Delegate's, and use the responder
in the 2nd parameter as your callback (flash.net.Responder), but as for
push, we came up with a new idea. Basically, have an Observer be
instantiated by the Controller, and it listens for events. Those events are
dispatched by CairngormEventBroadcaster... which in turn fires off Commands.
So, in the case of a Chat, yes:
- UserA sends private message to UserB
- server-side ASC does a client.call
- Observer code gets the message, and fires off an event
- Controller creates Command from that event
- Command see's event is a private chat message, and updates the
ModelLocator.getInstance().chatMessage += string, or some other model
update, or even using a ViewLocator to find the ChatView to update.
I know everyone is fond of SharedObjects, and yes, they work just fine in
ModelLocator as well (SharedObject sync updates and a Command then updates a
ModelLocator ArrayCollection; all Views bound to this value immediately
update). However, for server to client methods, it's imperitive an official
solution is found that everyone likes. Not sure what that is.
Anyway, thanks for corroborating some stuff, Brian, good to know I'm not
alone in going, "wtf........"
----- Original Message -----
From: "Brian Lesser" <blesser-6s6ziW1YCwCw5LPnMra/2Q@public.gmane.org>
To: "FlashComm Mailing List" <flashcomm-1Ss2GqJETD3yZ38Mhd3e/9ZfFG6BLHNm@public.gmane.org>
Sent: Wednesday, July 05, 2006 9:51 PM
Subject: Re: [FlashComm] Component Framework, ActionScript 3, & Cairngorm 2
Hi Jesse,
Have you got DataServices working? I haven't tried it, and after a light
reading of the docs, wouldn't know where to start. In fact reading the
docs was a little disconcerting. I thought Adobe did a great job on the
Flex 2 docs until I crashed into the Data Services part. Suddenly I felt
like I was being spoon fed "Jargon for Kids" not "information for real
developers in a hurry"... But I did get the impression that the
ArrayCollection object managed by a DataService would act something like
a kind of SharedRecordSet with the hard part being getting/setting the
data via Java on the server and working through all the new API
details... I saw you wrote that FDS isn't a Remote SharedObject server
but have I got the bit about the ArrayCollection right?
If so I am somewhat interested in FDS but leary of spending a lot of
time absorbing a new jargon for something I might never use. If you see
a great example that does something real (like updating a real database
and keeping clients in sync with real data) with DataServices could you
point me to it? And can you use DataServices/ArrayCollection with
Coldfusion? And what do you have to do on the back end to get that to
work??? I'd love to read something useful that didn't treat me like I
was still in diapers....
Sorry for asking so many questions.
Re Cairngorm or ARP it's not a bad approach to build a larger app around
one of them and switch to a more communications component approach when
you connect to FMS/FCS. I can't see the value of model locator for the
FCS/FMS part... I mean would you do a whiteboard or audio chat that way?
Those things are all about sharing state across clients - usually via
shared objects.
Cheers,
-Brian
JesterXL wrote:
>Don't let my FDS bashing turn you off from trying it. Their Consumer /
>Producer implementation is really nice. Imagine if Remote SharedObject's
>were split in 2; one for sending messages and one for receiving. Minimal
>configuration.
>
>...however, their DataServices, which is the actual syncronizing of data,
>is
>overally complicated. Remember, the WHOLE system allows jms or rtmp first,
>amf remoting polling second, and finally HTTP polling third. So, same API,
>3 different ways to get it to work. Naturally, all of us want the first.
>Regardless, DataServices, while nice that it integrates with Java's
>Hiberate, and other ways to configure, map th Java VO's, etc., it's still
>overkill for what most of us want to do via data-specific apps. Is it a
>nice system? No doubt. To get it up and running, though, seems too
>complicated.
>
>Again, I think you should try it out, at least the Consumer / Producer
>parts, and DataServices if you can configure the XML right. It is not,
>however, the Remote SharedObject server I thought it was.
>
>
>----- Original Message -----
>From: "Stefan Richter" <stefan-fMeCE+ULXElEfu+5ix1nRw@public.gmane.org>
>To: "'FlashComm Mailing List'" <flashcomm-1Ss2GqJETD3yZ38Mhd3e/9ZfFG6BLHNm@public.gmane.org>
>Sent: Wednesday, July 05, 2006 3:43 AM
>Subject: RE: [FlashComm] Component Framework, ActionScript 3, & Cairngorm 2
>
>
>I've never used Cairngorm but I've used ARP. And that was for a FCS app.
>While the app worked in the end I ran into several issues which sound
>similar to what you describe - but my AS knowledge is not detailed enough
>to
>explain the issues I was having, all I know is that I had issues :-)
>I found stuff like ns.send, Client.call and SO.onSync tricky to implement.
>
>I don't think I'd use ARP again for a FCS/FMS app and it sounds like
>Cairngorm (which seems to have a lot in common with ARP) has the same
>issues.
>
>I'm all ears for any progress you make in this area. Some guidance from
>Adobe in regards to FMS app development best practices would not go amiss.
>And Jesse, the stuff you said about FDS put my right off. I've not played
>with it yet but I did read the install docs and that alone made me feel
>ill.
>
>Stefan
>
>
>
>
>
>
> ________________________________________
_______
>FlashComm-1Ss2GqJETD3yZ38Mhd3e/9ZfFG6BLHNm@public.gmane.org
>To change your subscription options or search the archive:
>http://chattyfig.figleaf.com/mailman/listinfo/flashcomm
>
>Brought to you by Fig Leaf Software
>Premier Authorized Adobe Consulting and Training
>http://www.figleaf.com
>http://training.figleaf.com
>
> ________________________________________
_______
>FlashComm-1Ss2GqJETD3yZ38Mhd3e/9ZfFG6BLHNm@public.gmane.org
>To change your subscription options or search the archive:
>http://chattyfig.figleaf.com/mailman/listinfo/flashcomm
>
>Brought to you by Fig Leaf Software
>Premier Authorized Adobe Consulting and Training
>http://www.figleaf.com
>http://training.figleaf.com
>
>
--
________________________________________
______________________________
Brian Lesser
Assistant Director, Teaching and Technology Support
Computing and Communications Services
Ryerson University
350 Victoria St.
Toronto, Ontario Phone: (416) 979-5000 ext. 6835
M5B 2K3 Fax: (416) 979-5220
Office: AB48D E-mail: blesser-6s6ziW1YCwCw5LPnMra/2Q@public.gmane.org
(Enter through LB66) Web: http://www.ryerson.ca/~blesser
________________________________________
______________________________
________________________________________
_______
FlashComm-1Ss2GqJETD3yZ38Mhd3e/9ZfFG6BLHNm@public.gmane.org
To change your subscription options or search the archive:
http://chattyfig.figleaf.com/mailman/listinfo/flashcomm
Brought to you by Fig Leaf Software
Premier Authorized Adobe Consulting and Training
http://www.figleaf.com
http://training.figleaf.com
________________________________________
_______
FlashComm-1Ss2GqJETD3yZ38Mhd3e/9ZfFG6BLHNm@public.gmane.org
To change your subscription options or search the archive:
http://chattyfig.figleaf.com/mailman/listinfo/flashcomm
Brought to you by Fig Leaf Software
Premier Authorized Adobe Consulting and Training
http://www.figleaf.com
http://training.figleaf.com
| |
| hank williams 2006-07-06, 1:11 am |
| >
> If I see an example, I'll show you. I know our Enterprise clients will
> want
> it, but I refuse to learn the XML & Java parts.
lol. The XML config stuff makes total sense to me. Perhaps I have just been
beaten into submission... or worse, the first steps toward insanity!
Hank
________________________________________
_______
FlashComm-1Ss2GqJETD3yZ38Mhd3e/9ZfFG6BLHNm@public.gmane.org
To change your subscription options or search the archive:
http://chattyfig.figleaf.com/mailman/listinfo/flashcomm
Brought to you by Fig Leaf Software
Premier Authorized Adobe Consulting and Training
http://www.figleaf.com
http://training.figleaf.com
| |
| JesterXL 2006-07-06, 1:11 am |
| You're hired.
----- Original Message -----
From: "hank williams" <hank777-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
To: "FlashComm Mailing List" <flashcomm-1Ss2GqJETD3yZ38Mhd3e/9ZfFG6BLHNm@public.gmane.org>
Sent: Wednesday, July 05, 2006 11:01 PM
Subject: Re: [FlashComm] Component Framework, ActionScript 3, & Cairngorm 2
>
> If I see an example, I'll show you. I know our Enterprise clients will
> want
> it, but I refuse to learn the XML & Java parts.
lol. The XML config stuff makes total sense to me. Perhaps I have just been
beaten into submission... or worse, the first steps toward insanity!
Hank
________________________________________
_______
FlashComm-1Ss2GqJETD3yZ38Mhd3e/9ZfFG6BLHNm@public.gmane.org
To change your subscription options or search the archive:
http://chattyfig.figleaf.com/mailman/listinfo/flashcomm
Brought to you by Fig Leaf Software
Premier Authorized Adobe Consulting and Training
http://www.figleaf.com
http://training.figleaf.com
| |
| Brian Lesser 2006-07-06, 1:11 pm |
| Thanks Jesse and Hank,
I think Adobe just did Hibernate because it is one of the more popular
Java Object/Relational tools out there and they had to provide working
code. At Ryerson we dropped Hibernate in favour of iBatis + Spring. From
what I've seen it shouldn't be too hard for a determined Java developer
to get iBatis or something similar working... But our Java people will
have zero interest in Flex Data Services in much the same way Jesse
doesn't want to use XML/Java - they don't give a fig about Flex and yet
another framework. Ajax is good enough for them, they are really busy
with lots of projects, and don't see a big need for the real-time parts.
At least not yet....
I think one of the nice things about FMS/FCS is that you can use the
same language on the client and server. Most developers I know only want
to work day after day in one language. For example I've met really
bright Java developers who know stored procedures are the best answer
for certain problems but had to be dragged kicking and screaming into
calling them. And, I'd never dream of asking them to write them. That's
for someone whose first love is SQL.
One of the more bone-headed things the former Macromedia did was start
and then stop development on JavaScipt in CFMX. They never took it far
enough to make it truely useful. CFMX developers don't get it because
they love CFMX. That's THEIR language. They don't think they need a real
same-as-Flash-or-Flex no-tags scripting language when you can already
drop down and just use Java if you need to...
So while providing hooks into Java app servers is a great move I think
Adobe needs to do more. But I'm getting way off topic.
Regarding Cairngorm, if what you describe works well for you and
performs well then that's great. To me it looks like way to much work
though. Observer/Controller/Command/ModelLocator for a Chat component? I
think (and maybe its just me) that a Chat component should contain a
shared object that the rest of your Cairngorm app shouldn't know
anything about. That's what MVC was all about. Only when your chat
component has to do something with other components should you have to
broadcast an event. In that context - where a chat can be its own
component and efficiently handle its own data - Model Locator looks
pointless to me - at least for holding chat text. But maybe I'm missing
something?
Yours truly,
-Brian
JesterXL wrote:
[vbcol=seagreen]
>No, I didn't get it to work. I tried briefly, but the XML is archiac.
>
>Yeah, I think you hit most of it on the head. Even the Flex 1.5 docs were
>pimp, but I didn't give the DataServices bit a chance... 80% of it is XML
>config, and brief hints about how to extend stuff in Java. Bleh.
>
>Yeah, she syncs ArrayCollections basically... I think.
>
>If I see an example, I'll show you. I know our Enterprise clients will want
>it, but I refuse to learn the XML & Java parts. Consumer & Producer are
>easy, and the API for DataService is easy enough for us to learn.
>
>Not sure about CF... it's meant to be used with Hibernate, not ColdFusion.
>I'm sure CFHibernate could be brought into the mix, but that's not their
>target market. They are going after the Enterprise Java devs who use
>Spring, Hibernate, and buy 10 million servers.
>
>My boss and I discussed this (frameworks) today. The issue is there is no
>built-in mechinism for push. They support request/response, so you can
>still do your NetConnections.call in your Delegate's, and use the responder
>in the 2nd parameter as your callback (flash.net.Responder), but as for
>push, we came up with a new idea. Basically, have an Observer be
>instantiated by the Controller, and it listens for events. Those events are
>dispatched by CairngormEventBroadcaster... which in turn fires off Commands.
>
>So, in the case of a Chat, yes:
>- UserA sends private message to UserB
>- server-side ASC does a client.call
>- Observer code gets the message, and fires off an event
>- Controller creates Command from that event
>- Command see's event is a private chat message, and updates the
>ModelLocator.getInstance().chatMessage += string, or some other model
>update, or even using a ViewLocator to find the ChatView to update.
>
>I know everyone is fond of SharedObjects, and yes, they work just fine in
>ModelLocator as well (SharedObject sync updates and a Command then updates a
>ModelLocator ArrayCollection; all Views bound to this value immediately
>update). However, for server to client methods, it's imperitive an official
>solution is found that everyone likes. Not sure what that is.
>
>Anyway, thanks for corroborating some stuff, Brian, good to know I'm not
>alone in going, "wtf........"
>
>----- Original Message -----
>From: "Brian Lesser" <blesser-6s6ziW1YCwCw5LPnMra/2Q@public.gmane.org>
>To: "FlashComm Mailing List" <flashcomm-1Ss2GqJETD3yZ38Mhd3e/9ZfFG6BLHNm@public.gmane.org>
>Sent: Wednesday, July 05, 2006 9:51 PM
>Subject: Re: [FlashComm] Component Framework, ActionScript 3, & Cairngorm 2
>
>
>Hi Jesse,
>Have you got DataServices working? I haven't tried it, and after a light
>reading of the docs, wouldn't know where to start. In fact reading the
>docs was a little disconcerting. I thought Adobe did a great job on the
>Flex 2 docs until I crashed into the Data Services part. Suddenly I felt
>like I was being spoon fed "Jargon for Kids" not "information for real
>developers in a hurry"... But I did get the impression that the
>ArrayCollection object managed by a DataService would act something like
>a kind of SharedRecordSet with the hard part being getting/setting the
>data via Java on the server and working through all the new API
>details... I saw you wrote that FDS isn't a Remote SharedObject server
>but have I got the bit about the ArrayCollection right?
>If so I am somewhat interested in FDS but leary of spending a lot of
>time absorbing a new jargon for something I might never use. If you see
>a great example that does something real (like updating a real database
>and keeping clients in sync with real data) with DataServices could you
>point me to it? And can you use DataServices/ArrayCollection with
>Coldfusion? And what do you have to do on the back end to get that to
>work??? I'd love to read something useful that didn't treat me like I
>was still in diapers....
>Sorry for asking so many questions.
>Re Cairngorm or ARP it's not a bad approach to build a larger app around
>one of them and switch to a more communications component approach when
>you connect to FMS/FCS. I can't see the value of model locator for the
>FCS/FMS part... I mean would you do a whiteboard or audio chat that way?
>Those things are all about sharing state across clients - usually via
>shared objects.
>Cheers,
>-Brian
>
>JesterXL wrote:
>
>
>
--
________________________________________
______________________________
Brian Lesser
Assistant Director, Teaching and Technology Support
Computing and Communications Services
Ryerson University
350 Victoria St.
Toronto, Ontario Phone: (416) 979-5000 ext. 6835
M5B 2K3 Fax: (416) 979-5220
Office: AB48D E-mail: blesser-6s6ziW1YCwCw5LPnMra/2Q@public.gmane.org
(Enter through LB66) Web: http://www.ryerson.ca/~blesser
________________________________________
______________________________
________________________________________
_______
FlashComm-1Ss2GqJETD3yZ38Mhd3e/9ZfFG6BLHNm@public.gmane.org
To change your subscription options or search the archive:
http://chattyfig.figleaf.com/mailman/listinfo/flashcomm
Brought to you by Fig Leaf Software
Premier Authorized Adobe Consulting and Training
http://www.figleaf.com
http://training.figleaf.com
| |
| hank williams 2006-07-06, 1:11 pm |
| >
> Regarding Cairngorm, if what you describe works well for you and
> performs well then that's great. To me it looks like way to much work
> though. Observer/Controller/Command/ModelLocator for a Chat component?
lol. This is one of my pet peeves. I have actually not learned cairngorm
yet because I wanted to get really comfortable with flex before layering it
with an abstraction. But now that I am into it I really do see the point
and I am going to be diving in next week. But that said, I think many people
would do themselves some good by throwing away their design patterns book
and actually *thinking* about their problem. I am not against design
patterns, but against the use of them in lieu of thinking. We have gotten to
the point where we describe all problems in the context of the design
pattern we are going to use. This leads to lazy thinking. Many people start
with trying to decide what design pattern they are going to use instead of
fully understanding the problem space which may or may not fit or need a
"design pattern". Or it may be a combination of or modification of a
design patterns or something that doesnt look exactly like any design
pattern (we did code before them I think). By the way I am not saying you do
this Jesse. I know better. Brian's comments just touched my funnybone.
Anyway that was a bit of a tangent. The point: Brian I totally agree.
Hank
________________________________________
_______
FlashComm-1Ss2GqJETD3yZ38Mhd3e/9ZfFG6BLHNm@public.gmane.org
To change your subscription options or search the archive:
http://chattyfig.figleaf.com/mailman/listinfo/flashcomm
Brought to you by Fig Leaf Software
Premier Authorized Adobe Consulting and Training
http://www.figleaf.com
http://training.figleaf.com
| |
| Bill Sanders 2006-07-06, 1:11 pm |
| Lol yourself.. I've been grappling with design patterns and AS 3.0
and without abstract classes like in Java (where I can find most of
my examples) I've had to rely on the basic concepts. I can hardly
wait to get to the place of "lazy thinking!" I'd rather have an
interface and a jug of wine and not care whether it's a DP or not.
However, first I have to get the DPs straight!
Cheers,
Bill
On Jul 6, 2006, at 8:34 AM, hank williams wrote:
>
>
>
> lol. This is one of my pet peeves. I have actually not learned
> cairngorm
> yet because I wanted to get really comfortable with flex before
> layering it
> with an abstraction. But now that I am into it I really do see the
> point
> and I am going to be diving in next week. But that said, I think
> many people
> would do themselves some good by throwing away their design
> patterns book
> and actually *thinking* about their problem. I am not against design
> patterns, but against the use of them in lieu of thinking. We have
> gotten to
> the point where we describe all problems in the context of the design
> pattern we are going to use. This leads to lazy thinking. Many
> people start
> with trying to decide what design pattern they are going to use
> instead of
> fully understanding the problem space which may or may not fit or
> need a
> "design pattern". Or it may be a combination of or modification of a
> design patterns or something that doesnt look exactly like any design
> pattern (we did code before them I think). By the way I am not
> saying you do
> this Jesse. I know better. Brian's comments just touched my funnybone.
>
> Anyway that was a bit of a tangent. The point: Brian I totally agree.
>
> Hank
> ________________________________________
_______
> FlashComm-1Ss2GqJETD3yZ38Mhd3e/9ZfFG6BLHNm@public.gmane.org
> To change your subscription options or search the archive:
> http://chattyfig.figleaf.com/mailman/listinfo/flashcomm
>
> Brought to you by Fig Leaf Software
> Premier Authorized Adobe Consulting and Training
> http://www.figleaf.com
> http://training.figleaf.com
bill sanders | www.sandlight.com | bloomfield, ct | 860-242-2260
________________________________________
_______
FlashComm-1Ss2GqJETD3yZ38Mhd3e/9ZfFG6BLHNm@public.gmane.org
To change your subscription options or search the archive:
http://chattyfig.figleaf.com/mailman/listinfo/flashcomm
Brought to you by Fig Leaf Software
Premier Authorized Adobe Consulting and Training
http://www.figleaf.com
http://training.figleaf.com
| |
| hank williams 2006-07-06, 1:11 pm |
| Ok so I think you started off disagreeing, but by the end it sounds, I
think, like you came around to my way of thinking, all in the space of 6
lines!!!! 
On 7/6/06, Bill Sanders <wdsanders-Wuw85uim5zDR7s880joybQ@public.gmane.org> wrote:
>
> Lol yourself.. I've been grappling with design patterns and AS 3.0
> and without abstract classes like in Java (where I can find most of
> my examples) I've had to rely on the basic concepts. I can hardly
> wait to get to the place of "lazy thinking!" I'd rather have an
> interface and a jug of wine and not care whether it's a DP or not.
> However, first I have to get the DPs straight!
>
> Cheers,
> Bill
>
> On Jul 6, 2006, at 8:34 AM, hank williams wrote:
>
>
> bill sanders | www.sandlight.com | bloomfield, ct | 860-242-2260
>
>
> ________________________________________
_______
> FlashComm-1Ss2GqJETD3yZ38Mhd3e/9ZfFG6BLHNm@public.gmane.org
> To change your subscription options or search the archive:
> http://chattyfig.figleaf.com/mailman/listinfo/flashcomm
>
> Brought to you by Fig Leaf Software
> Premier Authorized Adobe Consulting and Training
> http://www.figleaf.com
> http://training.figleaf.com
>
________________________________________
_______
FlashComm-1Ss2GqJETD3yZ38Mhd3e/9ZfFG6BLHNm@public.gmane.org
To change your subscription options or search the archive:
http://chattyfig.figleaf.com/mailman/listinfo/flashcomm
Brought to you by Fig Leaf Software
Premier Authorized Adobe Consulting and Training
http://www.figleaf.com
http://training.figleaf.com
| |
| Bill Sanders 2006-07-06, 1:11 pm |
| Sort of like magic--never disagreed....just some sputtering!
Bill
On Jul 6, 2006, at 8:58 AM, hank williams wrote:
> Ok so I think you started off disagreeing, but by the end it sounds, I
> think, like you came around to my way of thinking, all in the space
> of 6
> lines!!!! 
>
> On 7/6/06, Bill Sanders <wdsanders-Wuw85uim5zDR7s880joybQ@public.gmane.org> wrote:
> ________________________________________
_______
> FlashComm-1Ss2GqJETD3yZ38Mhd3e/9ZfFG6BLHNm@public.gmane.org
> To change your subscription options or search the archive:
> http://chattyfig.figleaf.com/mailman/listinfo/flashcomm
>
> Brought to you by Fig Leaf Software
> Premier Authorized Adobe Consulting and Training
> http://www.figleaf.com
> http://training.figleaf.com
bill sanders | www.sandlight.com | bloomfield, ct | 860-242-2260
________________________________________
_______
FlashComm-1Ss2GqJETD3yZ38Mhd3e/9ZfFG6BLHNm@public.gmane.org
To change your subscription options or search the archive:
http://chattyfig.figleaf.com/mailman/listinfo/flashcomm
Brought to you by Fig Leaf Software
Premier Authorized Adobe Consulting and Training
http://www.figleaf.com
http://training.figleaf.com
| |
| JesterXL 2006-07-06, 1:11 pm |
| Most Flashcom apps are component specific. For example, if you look at
Breeze pods, they are very self-contained. I think a lot of Flashcom apps
can work this way to.
So, yes, I agree, Cairngorm is extremely complicated for a Chat component.
Cairngorm in general is complicated. It's made for 1 thing: scalability.
If you look at the WebService example I posted today, it could of been done
in 60 lines of code vs. the 500 + 20 classes I posted. However,
applications built in Cairngorm are extremely easy to scale. I work on a
team of 2-5 developers (depending on who's doing what), and we all can work
in tandem, and the code base is over a year old, and huge. It's made for
request / response, models, though. A lot of Flashcom apps are smaller in
scale, and have very specific components that have minimal communication...
at least the stuff I built did.
Anyway, yeah, I'm agreeing, it is complicated. For a large app, though, I
cannot do it any other way, and wanted to find a good way since socket stuff
feels forced right now in Cairngorm.
----- Original Message -----
From: "Brian Lesser" <blesser-6s6ziW1YCwCw5LPnMra/2Q@public.gmane.org>
To: "FlashComm Mailing List" <flashcomm-1Ss2GqJETD3yZ38Mhd3e/9ZfFG6BLHNm@public.gmane.org>
Sent: Thursday, July 06, 2006 8:10 AM
Subject: Re: [FlashComm] Component Framework, ActionScript 3, & Cairngorm 2
Thanks Jesse and Hank,
I think Adobe just did Hibernate because it is one of the more popular
Java Object/Relational tools out there and they had to provide working
code. At Ryerson we dropped Hibernate in favour of iBatis + Spring. From
what I've seen it shouldn't be too hard for a determined Java developer
to get iBatis or something similar working... But our Java people will
have zero interest in Flex Data Services in much the same way Jesse
doesn't want to use XML/Java - they don't give a fig about Flex and yet
another framework. Ajax is good enough for them, they are really busy
with lots of projects, and don't see a big need for the real-time parts.
At least not yet....
I think one of the nice things about FMS/FCS is that you can use the
same language on the client and server. Most developers I know only want
to work day after day in one language. For example I've met really
bright Java developers who know stored procedures are the best answer
for certain problems but had to be dragged kicking and screaming into
calling them. And, I'd never dream of asking them to write them. That's
for someone whose first love is SQL.
One of the more bone-headed things the former Macromedia did was start
and then stop development on JavaScipt in CFMX. They never took it far
enough to make it truely useful. CFMX developers don't get it because
they love CFMX. That's THEIR language. They don't think they need a real
same-as-Flash-or-Flex no-tags scripting language when you can already
drop down and just use Java if you need to...
So while providing hooks into Java app servers is a great move I think
Adobe needs to do more. But I'm getting way off topic.
Regarding Cairngorm, if what you describe works well for you and
performs well then that's great. To me it looks like way to much work
though. Observer/Controller/Command/ModelLocator for a Chat component? I
think (and maybe its just me) that a Chat component should contain a
shared object that the rest of your Cairngorm app shouldn't know
anything about. That's what MVC was all about. Only when your chat
component has to do something with other components should you have to
broadcast an event. In that context - where a chat can be its own
component and efficiently handle its own data - Model Locator looks
pointless to me - at least for holding chat text. But maybe I'm missing
something?
Yours truly,
-Brian
JesterXL wrote:
[vbcol=seagreen]
>No, I didn't get it to work. I tried briefly, but the XML is archiac.
>
>Yeah, I think you hit most of it on the head. Even the Flex 1.5 docs were
>pimp, but I didn't give the DataServices bit a chance... 80% of it is XML
>config, and brief hints about how to extend stuff in Java. Bleh.
>
>Yeah, she syncs ArrayCollections basically... I think.
>
>If I see an example, I'll show you. I know our Enterprise clients will
>want
>it, but I refuse to learn the XML & Java parts. Consumer & Producer are
>easy, and the API for DataService is easy enough for us to learn.
>
>Not sure about CF... it's meant to be used with Hibernate, not ColdFusion.
>I'm sure CFHibernate could be brought into the mix, but that's not their
>target market. They are going after the Enterprise Java devs who use
>Spring, Hibernate, and buy 10 million servers.
>
>My boss and I discussed this (frameworks) today. The issue is there is no
>built-in mechinism for push. They support request/response, so you can
>still do your NetConnections.call in your Delegate's, and use the responder
>in the 2nd parameter as your callback (flash.net.Responder), but as for
>push, we came up with a new idea. Basically, have an Observer be
>instantiated by the Controller, and it listens for events. Those events are
>dispatched by CairngormEventBroadcaster... which in turn fires off
>Commands.
>
>So, in the case of a Chat, yes:
>- UserA sends private message to UserB
>- server-side ASC does a client.call
>- Observer code gets the message, and fires off an event
>- Controller creates Command from that event
>- Command see's event is a private chat message, and updates the
>ModelLocator.getInstance().chatMessage += string, or some other model
>update, or even using a ViewLocator to find the ChatView to update.
>
>I know everyone is fond of SharedObjects, and yes, they work just fine in
>ModelLocator as well (SharedObject sync updates and a Command then updates
>a
>ModelLocator ArrayCollection; all Views bound to this value immediately
>update). However, for server to client methods, it's imperitive an
>official
>solution is found that everyone likes. Not sure what that is.
>
>Anyway, thanks for corroborating some stuff, Brian, good to know I'm not
>alone in going, "wtf........"
>
>----- Original Message -----
>From: "Brian Lesser" <blesser-6s6ziW1YCwCw5LPnMra/2Q@public.gmane.org>
>To: "FlashComm Mailing List" <flashcomm-1Ss2GqJETD3yZ38Mhd3e/9ZfFG6BLHNm@public.gmane.org>
>Sent: Wednesday, July 05, 2006 9:51 PM
>Subject: Re: [FlashComm] Component Framework, ActionScript 3, & Cairngorm 2
>
>
>Hi Jesse,
>Have you got DataServices working? I haven't tried it, and after a light
>reading of the docs, wouldn't know where to start. In fact reading the
>docs was a little disconcerting. I thought Adobe did a great job on the
>Flex 2 docs until I crashed into the Data Services part. Suddenly I felt
>like I was being spoon fed "Jargon for Kids" not "information for real
>developers in a hurry"... But I did get the impression that the
>ArrayCollection object managed by a DataService would act something like
>a kind of SharedRecordSet with the hard part being getting/setting the
>data via Java on the server and working through all the new API
>details... I saw you wrote that FDS isn't a Remote SharedObject server
>but have I got the bit about the ArrayCollection right?
>If so I am somewhat interested in FDS but leary of spending a lot of
>time absorbing a new jargon for something I might never use. If you see
>a great example that does something real (like updating a real database
>and keeping clients in sync with real data) with DataServices could you
>point me to it? And can you use DataServices/ArrayCollection with
>Coldfusion? And what do you have to do on the back end to get that to
>work??? I'd love to read something useful that didn't treat me like I
>was still in diapers....
>Sorry for asking so many questions.
>Re Cairngorm or ARP it's not a bad approach to build a larger app around
>one of them and switch to a more communications component approach when
>you connect to FMS/FCS. I can't see the value of model locator for the
>FCS/FMS part... I mean would you do a whiteboard or audio chat that way?
>Those things are all about sharing state across clients - usually via
>shared objects.
>Cheers,
>-Brian
>
>JesterXL wrote:
>
>
>
--
________________________________________
______________________________
Brian Lesser
Assistant Director, Teaching and Technology Support
Computing and Communications Services
Ryerson University
350 Victoria St.
Toronto, Ontario Phone: (416) 979-5000 ext. 6835
M5B 2K3 Fax: (416) 979-5220
Office: AB48D E-mail: blesser-6s6ziW1YCwCw5LPnMra/2Q@public.gmane.org
(Enter through LB66) Web: http://www.ryerson.ca/~blesser
________________________________________
______________________________
________________________________________
_______
FlashComm-1Ss2GqJETD3yZ38Mhd3e/9ZfFG6BLHNm@public.gmane.org
To change your subscription options or search the archive:
http://chattyfig.figleaf.com/mailman/listinfo/flashcomm
Brought to you by Fig Leaf Software
Premier Authorized Adobe Consulting and Training
http://www.figleaf.com
http://training.figleaf.com
________________________________________
_______
FlashComm-1Ss2GqJETD3yZ38Mhd3e/9ZfFG6BLHNm@public.gmane.org
To change your subscription options or search the archive:
http://chattyfig.figleaf.com/mailman/listinfo/flashcomm
Brought to you by Fig Leaf Software
Premier Authorized Adobe Consulting and Training
http://www.figleaf.com
http://training.figleaf.com
| |
|
| I've also used ARP, and while I like it a lot - I prefer to stick with
classic patterns, I find they work better and do not implement unnecessary
abstractions. FMS work seems in my practice to call on Observer, Singleton,
State, and Strategy, singly or in combo. MVC which is a unique combo of
these patterns is also a favourite.
Jesse is correct though in the conclusion that both Cairngorm (which is Flex
biased) and ARP which lends itself to both, were primarily built for a HTTP
request/response rather than a TCP socket.
[a/]
-----Original Message-----
From: flashcomm-bounces-1Ss2GqJETD3yZ38Mhd3e/9ZfFG6BLHNm@public.gmane.org
[mailto:flashcomm-bounces-1Ss2GqJETD3yZ38Mhd3e/9ZfFG6BLHNm@public.gmane.org] On Behalf Of Stefan Richter
Sent: 05 July 2006 08:44
To: 'FlashComm Mailing List'
Subject: RE: [FlashComm] Component Framework, ActionScript 3, & Cairngorm 2
I've never used Cairngorm but I've used ARP. And that was for a FCS app.
While the app worked in the end I ran into several issues which sound
similar to what you describe - but my AS knowledge is not detailed enough to
explain the issues I was having, all I know is that I had issues :-)
I found stuff like ns.send, Client.call and SO.onSync tricky to implement.
I don't think I'd use ARP again for a FCS/FMS app and it sounds like
Cairngorm (which seems to have a lot in common with ARP) has the same
issues.
I'm all ears for any progress you make in this area. Some guidance from
Adobe in regards to FMS app development best practices would not go amiss.
And Jesse, the stuff you said about FDS put my right off. I've not played
with it yet but I did read the install docs and that alone made me feel ill.
Stefan
> -----Original Message-----
> From: flashcomm-bounces-1Ss2GqJETD3yZ38Mhd3e/9ZfFG6BLHNm@public.gmane.org
> [mailto:flashcomm-bounces-1Ss2GqJETD3yZ38Mhd3e/9ZfFG6BLHNm@public.gmane.org] On Behalf Of JesterXL
> Sent: 04 July 2006 18:52
> To: wdb-WqTeb0HIzk1M0PWSD34TJQ@public.gmane.org; FlashComm Mailing List
> Subject: Re: [FlashComm] Component Framework, ActionScript 3,
> & Cairngorm 2
>
> It's more complicated than that. Cairngorm, however, is
> complicated in a good way. You must first understand how
> Cairngorm works.
>
> Cairngorm attempts to be a good MVC implementation. I think
> it is. You're View's (GUI components) dispatch events via
> Cairngorm's own event dispatcher. These events trigger
> Commands. Commands are responsible for modifying data. Flex
> allows View's to bind to data. This data, the Model in this
> case, is set on the ModelLocator class. The Command modifies
> data on the ModelLocator and the View's update via bindings.
> Typically, this data is begotten from a server. Typically,
> this is done in one of the 3 request / response methods.
> Resquest response boiling down the TCP/IP implemtnation of
> how HTTP handles sockets. Opens the socket, says hello, gets
> a response, and closes it. There is no continouse open
> socket. This is typically handled by a Business Delegate
> rather than the Command itself because there are sometimes
> weird things that are needed to talk to the server, data
> massaging, etc.
>
> The Delegates will usually use 1 of the 3 request / response
> types; GET/POST (HTTPService), SOAP or other web serivces
> (WebService), or Flash Remoting (RemoteObject). It usually
> goes like this:
> - the View triggers an event
> - the event triggers a Command via the Controller
> - the Command instantiates and calls a method on a Business Delegate
> - the Delegate calls the server
> - the server responds
> - the Delegate passes this data back to the Command's response handler
> - the Command sets this data on the ModelLocator
> - the Views who are bound to the ModelLocator update
>
> This is request / response. This is not server push. Server
> push implies the server can push data to the client. Servers
> cannot instantiate HTTP connections in this model. The only
> way to allow a server to give time context messages like this
> is via polling. Sometimes via server state, such as a
> session, the client can poll the server; meaning using the
> above model in frequent intervals, and the server can respond
> differently over time.
> This, however, is reliant on the client to continually access
> the server.
>
> Server push, however, comes about by an always open,
> persistent socket connection. Typically done via XMLSocket,
> rtmp in the case of Flashcom, or the new Binary Sockets in
> Flash Player 9.
>
> In this particular instance, I'm talking about Flashcom. The
> server has the ability, without client interfvention, to push
> information to the client via the persistent connection. For
> example, the server can update a Remote SharedObject, and
> this can then trigger a method on the client.
>
> While that's great, Cairngorm isn't built around the push
> model, it's built around the request / response model.
> Calling server methods? Yep. Server calling client methods? Nope.
>
> I've got that part partially solved, I think.
>
> However, if you've ever used the component framework as listed here:
> http://www.adobe.com/devnet/flashco.../framework.html
>
> You'll notice it is very dynamic in nature. It wants the
> NetConnection bound to the view, and all other types of tight
> coupling that doesn't work in the Flex 2 / Cairngorm 2 model.
> While that's easily extracted, the dynamic nature is not...
> since ActionScript 3 and the Flash Player 9 are extremely strict.
>
> So, at this point, I'm wondering if there is any hope of
> getting the component framework even working for Flash Player 9...
>
>
________________________________________
_______
FlashComm-1Ss2GqJETD3yZ38Mhd3e/9ZfFG6BLHNm@public.gmane.org
To change your subscription options or search the archive:
http://chattyfig.figleaf.com/mailman/listinfo/flashcomm
Brought to you by Fig Leaf Software
Premier Authorized Adobe Consulting and Training
http://www.figleaf.com
http://training.figleaf.com
________________________________________
_______
FlashComm-1Ss2GqJETD3yZ38Mhd3e/9ZfFG6BLHNm@public.gmane.org
To change your subscription options or search the archive:
http://chattyfig.figleaf.com/mailman/listinfo/flashcomm
Brought to you by Fig Leaf Software
Premier Authorized Adobe Consulting and Training
http://www.figleaf.com
http://training.figleaf.com
| |
| Owen van Dijk 2006-07-11, 1:11 am |
| On 7/9/06, [a /] <ayo-So1QGox0vZ5Wk0Htik3J/w@public.gmane.org> wrote:
> I've also used ARP, and while I like it a lot - I prefer to stick with
> classic patterns, I find they work better and do not implement unnecessary
> abstractions. FMS work seems in my practice to call on Observer, Singleton,
> State, and Strategy, singly or in combo. MVC which is a unique combo of
> these patterns is also a favourite.
Just going slightly OT but isn't ARP based on 'classic patterns'? ie
the ServiceLocator is pretty much implemented as a Singleton. What
isn't 'classic' about ARP ( or Cairngorm ) regarding patterns?

--
Owen van Dijk
________________________________________
_______
FlashComm-1Ss2GqJETD3yZ38Mhd3e/9ZfFG6BLHNm@public.gmane.org
To change your subscription options or search the archive:
http://chattyfig.figleaf.com/mailman/listinfo/flashcomm
Brought to you by Fig Leaf Software
Premier Authorized Adobe Consulting and Training
http://www.figleaf.com
http://training.figleaf.com
| |
| hank williams 2006-07-11, 1:11 am |
| On 7/10/06, Owen van Dijk <owen.van.dijk-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:
>
> On 7/9/06, [a /] <ayo-So1QGox0vZ5Wk0Htik3J/w@public.gmane.org> wrote:
>
> unnecessary
> Singleton,
>
> Just going slightly OT but isn't ARP based on 'classic patterns'? ie
> the ServiceLocator is pretty much implemented as a Singleton. What
> isn't 'classic' about ARP ( or Cairngorm ) regarding patterns?
This is a really good point. But even better is that it isnt at all a good
idea to stick to any pattern if it doesnt suit your needs. The idea is not
to use patterns but to solve problems. If a given pattern helps you do that
then great. But the idea that one would prefer to "stick to *classic*
patterns" whatever that means, is part of the breakdown of the thinking
process. Patterns should be tools not cages. To suggest that you might not
want to use something because it was not sufficiently "classic" it seems to
me is not a great problem solving strategy.
I'm sorry to be do intense about this, but aside from the fact that I just
got off a horrible tech support call with apple the slavish attachment to
patterns at all cost is truly one of my pet peeves. All patterns are is the
capturing of lots of things that we already did before people started
calling them patterns. They are not a new inventions just new names, and if
the shoe doesnt fit we shouldnt wear it.
Regards
Hank

>
> --
> Owen van Dijk
> ________________________________________
_______
> FlashComm-1Ss2GqJETD3yZ38Mhd3e/9ZfFG6BLHNm@public.gmane.org
> To change your subscription options or search the archive:
> http://chattyfig.figleaf.com/mailman/listinfo/flashcomm
>
> Brought to you by Fig Leaf Software
> Premier Authorized Adobe Consulting and Training
> http://www.figleaf.com
> http://training.figleaf.com
>
________________________________________
_______
FlashComm-1Ss2GqJETD3yZ38Mhd3e/9ZfFG6BLHNm@public.gmane.org
To change your subscription options or search the archive:
http://chattyfig.figleaf.com/mailman/listinfo/flashcomm
Brought to you by Fig Leaf Software
Premier Authorized Adobe Consulting and Training
http://www.figleaf.com
http://training.figleaf.com
| |
| Beto A 2006-07-11, 1:11 am |
| Just out of curiosity.... what are your swf file sizes compared to that o=
f the proposed 60 lines?
cheers
Beto
JesterXL <jesterxl-RyEax5csP4NCVeB36W80OQ@public.gmane.org> wrote: Most Flashcom apps are compone=
nt specific. For example, if you look at=20
Breeze pods, they are very self-contained. I think a lot of Flashcom app=
s=20
can work this way to.
So, yes, I agree, Cairngorm is extremely complicated for a Chat component=
..=20
Cairngorm in general is complicated. It's made for 1 thing: scalability.
If you look at the WebService example I posted today, it could of been do=
ne=20
in 60 lines of code vs. the 500 + 20 classes I posted. However,=20
applications built in Cairngorm are extremely easy to scale. I work on a=
=20
team of 2-5 developers (depending on who's doing what), and we all can wo=
rk=20
in tandem, and the code base is over a year old, and huge. It's made for=
=20
request / response, models, though. A lot of Flashcom apps are smaller i=
n=20
scale, and have very specific components that have minimal communication.=
...=20
at least the stuff I built did.
Anyway, yeah, I'm agreeing, it is complicated. For a large app, though, =
I=20
cannot do it any other way, and wanted to find a good way since socket st=
uff=20
feels forced right now in Cairngorm.
----- Original Message -----=20
From: "Brian Lesser"=20
To: "FlashComm Mailing List"=20
Sent: Thursday, July 06, 2006 8:10 AM
Subject: Re: [FlashComm] Component Framework, ActionScript 3, & Cairngorm=
2
Thanks Jesse and Hank,
I think Adobe just did Hibernate because it is one of the more popular
Java Object/Relational tools out there and they had to provide working
code. At Ryerson we dropped Hibernate in favour of iBatis + Spring. From
what I've seen it shouldn't be too hard for a determined Java developer
to get iBatis or something similar working... But our Java people will
have zero interest in Flex Data Services in much the same way Jesse
doesn't want to use XML/Java - they don't give a fig about Flex and yet
another framework. Ajax is good enough for them, they are really busy
with lots of projects, and don't see a big need for the real-time parts.
At least not yet....
I think one of the nice things about FMS/FCS is that you can use the
same language on the client and server. Most developers I know only want
to work day after day in one language. For example I've met really
bright Java developers who know stored procedures are the best answer
for certain problems but had to be dragged kicking and screaming into
calling them. And, I'd never dream of asking them to write them. That's
for someone whose first love is SQL.
One of the more bone-headed things the former Macromedia did was start
and then stop development on JavaScipt in CFMX. They never took it far
enough to make it truely useful. CFMX developers don't get it because
they love CFMX. That's THEIR language. They don't think they need a real
same-as-Flash-or-Flex no-tags scripting language when you can already
drop down and just use Java if you need to...
So while providing hooks into Java app servers is a great move I think
Adobe needs to do more. But I'm getting way off topic.
Regarding Cairngorm, if what you describe works well for you and
performs well then that's great. To me it looks like way to much work
though. Observer/Controller/Command/ModelLocator for a Chat component? I
think (and maybe its just me) that a Chat component should contain a
shared object that the rest of your Cairngorm app shouldn't know
anything about. That's what MVC was all about. Only when your chat
component has to do something with other components should you have to
broadcast an event. In that context - where a chat can be its own
component and efficiently handle its own data - Model Locator looks
pointless to me - at least for holding chat text. But maybe I'm missing
something?
Yours truly,
-Brian
JesterXL wrote:
>No, I didn't get it to work. I tried briefly, but the XML is archiac.
>
>Yeah, I think you hit most of it on the head. Even the Flex 1.5 docs we=
re
>pimp, but I didn't give the DataServices bit a chance... 80% of it is XM=
L
>config, and brief hints about how to extend stuff in Java. Bleh.
>
>Yeah, she syncs ArrayCollections basically... I think.
>
>If I see an example, I'll show you. I know our Enterprise clients will=20
>want
>it, but I refuse to learn the XML & Java parts. Consumer & Producer are
>easy, and the API for DataService is eas | | |