Domanda

Qualcuno ha utilizzato ADO.NET Data Services come origine dati per le applicazioni Adobe Flex?Se sì, ci sono storie di successo o tragedie da evitare?Se l'hai usato, come hai gestito la sicurezza?

È stato utile?

Soluzione

Utilizzo WebORB per .NET per eseguire servizi remoti Flex e quindi utilizzo DLINQ sul server.Un aspetto complicato dell'utilizzo di LINQ con WebORB è che WebORB utilizza Reflection per recuperare automaticamente tutte le relazioni degli oggetti restituiti a Flex.Ciò comporta gravi penalità in termini di tempo poiché LINQ utilizza il caricamento lento per caricare le relazioni.Per evitare che ciò accada, faccio qualcosa del genere:

Sostituisci il costruttore di DataContext e aggiungi il seguente codice:

this.DeferredLoadingEnabled = false;
DataLoadOptions dlo = new DataLoadOptions();
dlo.LoadWith<Order>(q => q.Payments);
dlo.LoadWith<Order>(q => q.Customer);
this.LoadOptions = dlo;

Ciò indica a DataContext di disabilitare il caricamento differito delle relazioni e specificatamente di caricare solo le relazioni desiderate, senza caricamento lento.In questo modo, WebORB non causa alcun caricamento lento tramite Reflection e il numero di relazioni trasferite a Flex viene mantenuto al minimo.

Spero che questo ti aiuti in qualche modo.È sicuramente uno di quei piccoli "trucchi" quando si lavora con Flex/WebORB e LINQ.

Altri suggerimenti

Sì, utilizziamo ampiamente Flex con i servizi web .Net.

Flex non è in grado di gestire set di dati .Net, o addirittura molto tramite tipi xml complessi.Abbiamo scoperto che era meglio attenersi a un output xml relativamente semplice.

Tuttavia, se lo fai, può gestire correttamente l'output del servizio web .Net:

<mx:WebService id="myDataService" showBusyCursor="true">
    <mx:operation name="WebMethodName" 
                  resultFormat="object" 
                  result="functionFiredOnComplete();">
</mx:operation>
</mx:WebService>

public function load():void
{
    myDataService.loadWSDL( "web method's wsdl" );
    myDataService.WebMethodName.send( params );
}

public function functionFiredOnComplete():void
{           
    // get data
    var myData:Object = myDataService.WebMethodName.lastResult;
    ...

Ha chiesto informazioni sui servizi dati ADO.NET e non sul servizio Web

Flex può solo ottenere e pubblicare Flex non capisce i messaggi di risposta HTTP

Quindi, per far sì che Flex comunichi con i servizi dati ADO.NET è necessario;
1.usa un server proxy, ma devi trovarne o crearne uno tu stesso
2.modificare le richieste in entrata e utilizzare $method=MERGE e così via (come proxy)
3.utilizzare un altro client httpService as3, ci sono alcune iniziative opensource

Quindi devi scoprire come pubblicare i dati e costa molto tempo quando vuoi creare un nuovo record con JSON e specificare un ID che ha un collegamento a un'altra tabella.Questo perché non puoi semplicemente aggiornare il numero intero, ma devi invece creare una stringa di collegamento, non sembra proprio facile.

Quindi ovviamente può essere fatto, ma fuori dagli schemi devi davvero realizzarlo da solo.So che Flash Builder 4 verrà fornito con un'importazione REST, questo potrebbe velocizzare le cose, ma non ho esperienza in merito

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top