Thanks for that explanation Jurgen - that's very helpful to see it in
developer terms :-)

 

I presume you are just using Flex Remoting then?

 

 

________________________________

From: [email protected] [mailto:[EMAIL PROTECTED] On
Behalf Of Jurgen Beck
Sent: 21 May 2007 17:39
To: [email protected]
Subject: Re: {Disarmed} RE: [flexcoders] Re: Am I using the right
technology?

 

I'll let Mark Piller chime in on the data management aspect. They've
implemented a FDS equivalent that is very nifty.

On the workflow:

To pull data from a data store, the flow goes like this:

Flex -> WebORB -> .NET Library -> Data Store -> .NET Library -> WebORB
-> Flex

WebORB serializes the data/object and maps the remote class so that by
the time the data arrives in Flex you have immediate access to the
object elements. For example, if I want to return the contents of a data
table that I pulled in my .NET class, I return it as a List Of object.
WebORB serializes the data/objects in the list so that I can build an
ArrayCollection with the results in Flex.

Here is what it looks like practically:

I have a service manager class in Flex that has a public method:

        public function getShippingRateTable():void {
            serviceStore.source =
"Services.dao.ShippingRate.ShippingRateDAO";
            serviceStore.addEventListener(FaultEvent.FAULT,
faultHandler);
 
serviceStore.GetShippingRates.addEventListener(ResultEvent.RESULT,
getShippingRatesHandler);        
            serviceStore.GetShippingRates();                
        }

serviceStore is defined as a remote object:

        private var serviceStore:RemoteObject = new
RemoteObject("GenericDestination");

The result handler looks as follows:

        private function getShippingRatesHandler(event:ResultEvent):void
{
            if (event.result.length > 0) {
                shippingRateTable = new ArrayCollection(event.result as
Array);
            }
        } 

My service manager class is defined as a singleton so that my returned
data is immediately available throughout the application.

The mapped Flex class for the ArrayCollection items is:

    import mx.collections.ArrayCollection;
    
    [Bindable]
    [RemoteClass(alias="Services.dao.ShippingRate.ShippingRate")]
    public class ShippingRateVO
    {
        
        static private var _instance:ShippingRateVO;
        public var ID:int;
        public var pounds:Number;
        public var rate:Number;
        
        public function ShippingRateVO() {};
        
    }

On the server side, my .NET class ShippingRateDAO has a public method:

        Public Function GetShippingRates() As List(Of ShippingRate)
            ...
            Return rates

        End Function

In it I am connecting to my data store, pull the data from a data table
and compile my list of objects into a List(Of ShippingRate), which I
then return.

That's all there is to it! WebORB does the rest.

About the examples:

I just checked on them and they were working fine. You may want to get
with Mark Piller if you continue to run into issues. 

Mark also has a Yahoo newsgroup for WebORB that you can post questions
to.

Jurgen


Mark Ingram wrote: 

        What do you mean by full data management?

         

        I can't seem to get any of the service examples to work, I just
get a dialog saying access denied and a load of other text.

         

        So does your setup look something similar to:

         

        Flex -> WebOrb -> .NET Library

         

        ?

         

        Thanks,

        Mark

         

         

        
________________________________


        From: [email protected]
[mailto:[EMAIL PROTECTED] On Behalf Of Jurgen Beck
        Sent: 21 May 2007 16:42
        To: [email protected]
        Subject: Re: {Disarmed} RE: [flexcoders] Re: Am I using the
right technology?

         

        I'm doing this right now with the Standard version of WebORB.
I've written my class library (wrapped in a DLL) that connects to the
database. 
        
        If you need full data management, you need to be looking at the
Professional version at minimum.
        
        Check out the examples on the WebORB site. Go to:
        
        http://www.themidnightcoders.net/flexexamples/weborbconsole.html
<http://www.themidnightcoders.net/flexexamples/weborbconsole.html> 
        
        This is the management console you get with WebORB. Select the
Services tab and look at the WebOrb Examples. Those are the services
that have been wrapped into class libraries. You can test drive them and
see the code you would need to implement them in Flex.
        
        Jurgen
        
        Mark Ingram wrote: 

                I should also state that the reason I want to use
ASP.NET Web Services or .NET Components is because I want to access a
database (the result of all collaborative work will be stored there).

                 

                Thanks,

                 

                Mark

                 

                 

                
________________________________


                From: [email protected]
[mailto:[EMAIL PROTECTED] On Behalf Of Mark Ingram
                Sent: 21 May 2007 16:24
                To: [email protected]
                Subject: RE: [flexcoders] Re: Am I using the right
technology?

                 

                Hi Barrie, thanks for the response.

                 

                In terms of collaboration, anything will do. I tried a
great example using Flash Media Server 2, which was a chat client. Each
client was informed when a new client joined or typed a message. That's
exactly what I was looking for, as we created one the other week that
was based around polling. It worked, but it wasn't elegant.

                 

                The price tag on FMS seems steep too (not compared to
FDS!). $4000 for 150 concurrent users? Or more users if you throttle
their bandwidth.

                 

                 

                The ideal solution for me would allow data-push and be
able to communicate with ASP.NET. I have looked at WebOrb, but again,
$10,000 per CPU is a little high.

                 

                So here are the options as I see it:

                 

                Flex Data Services (LiveCycle Data Services): $20,000
per CPU

                Midnight Coders Data Services: $10,000 per CPU

                Flash Media Server: $4,000 per 150 users (unthrottled)

                Polling WebServices: Free (plenty of development
required though)

                 

                Another down side of FMS is that you can't develop in
Flex Builder? And from what I've seen it doesn't use ActionScript 3?

                 

                I feel awfully confused about all these similar
products! Based on my requirements, what would be the best option (see
above)?

                 

                Thanks,

                 

                 

                
________________________________


                From: [email protected]
[mailto:[EMAIL PROTECTED] On Behalf Of barry.beattie
                Sent: 21 May 2007 15:22
                To: [email protected]
                Subject: [flexcoders] Re: Am I using the right
technology?

                 

                
                
                Hang on a sec...
                
                in giving Mark an answer, he's been landed with more
jargon.
                
                Mark, I'm nowhere near the expert that Tom or others
here are on this
                subject ... 
                
                ... and there are some good blog posts around (and the
Adobe site
                itself) with decent detail on all of it ...
                
                but... I work at a university and they're forever going
on about
                collaboration, whether it's research partners, academics
or student
                teams. I'm hunting for a project to put this into
practice...
                
                (in a nutshell) both remoting and webservices follow the
typical
                request/response. so any sync'ing of data needs polling
so the clients
                can find out if server has new changes.
                
                but FlexDataServices (or LiveCycle DS now-a-days) has a
handle back to
                each client from the server so it can push
events/notifications
                telling the clients that the server's data has changed. 
                
                this gives a pretty powerful hub-type configuration
where one client
                commits updates on the server which can be sent back to
all the other
                clients in a heartbeat.
                
                however, this is NOT peer-to-peer collaboration. the
server is
                definitely in the middle of it all, receiving and
broadcasting to
                subscribers. Which is OK if the data/documents/whatever
is to be
                persisted and managed on the server. Keep in mind, that
sort of
                technology isn't cheap - not compared to webservices...
                
                I'm no expert on all of this and I've got my own issues
trying to work
                out how flex can do true peer-to-peer collaboration (no
FDS). I'm also
                unsure what the upgrade path will be with our
FlashMediaServers (FMS)
                while I wait for ColdFusion8 (and it's reported LCDS and
FMS integration).
                
                but I do hope that's helped somewhat. Others can chime
in with much
                better replies. this is just something quick to help
lift the fog.
                
                what sort of collaboration do you need to do? 

 

Reply via email to