2011-01-31 5 views
0

Nous avons une application Flex qui dépend fortement du contenu fourni par asp.net. Actuellement, la majorité de ces données sont fournies via des objets asp.net qui sont ensuite sérialisés en XML et envoyés via un simple gestionnaire ASHX. Celui-ci est ensuite analysé via e4x dans les classes singleton pour peupler son auto ou des tableaux de sous-classes qui sont ensuite disponibles pour le reste de l'application sans effectuer d'appels de données supplémentaires.Flex & WebServices

Cela fonctionne mais est-ce le meilleur moyen? J'ai lu pas mal d'articles sur le sujet mais je n'ai pas trouvé de consensus. Dois-je envisager de les convertir en services Web? Si oui, comment dois-je gérer les liaisons, les importer automatiquement via Flex ou créer les miennes? Quels sont les avantages et inconvénients. De manière distincte, notre application ne repose pas à la racine du domaine et, en développement local, effectue des appels de données vers nos serveurs de développement. En conséquence, nous ajoutons des vars flash à l'application pour spécifier le appRoot qui est ensuite ajouté à l'url de service si nécessaire.

MyService.url = GeneralData.ApplicationRootUrl + "Services/foobar.ashx"; 

Est-ce la meilleure façon? J'ai depuis découvert la propriété rootURL, devrais-je utiliser ceci, comment cela fonctionne-t-il dans ce contexte? Si je devais convertir les services en services Web, comment pourrais-je mettre en œuvre la même fonctionnalité pour permettre le développement local?

Un grand merci

Répondre

1

Cela fonctionne, mais est-ce la meilleure façon?

Le meilleur est très subjectif selon votre situation. Si possible, je vous recommande d'utiliser une passerelle AMF. De cette façon, vos objets peuvent immédiatement convertir des objets côté serveur (classes .NET) en objets côté client (classes AS3). Cela représente un gain de temps considérable car vous n'avez pas besoin de créer manuellement votre fichier XML sur le backend, ni de le traiter manuellement dans le frontal. De plus, le format binaire d'AMF va donner des paquets beaucoup plus petits que XML ou qu'un WebService SOAP.

Pour les options AMF .NET, je regarde dans WebORB ou FlourineFX

+0

Recherché mais basé sur notre environnement actuel pas vraiment pratique pour le moment. Merci pour la suggestion si – Hawxby

0

Application Flex est toujours chargé dans le navigateur, et vous pouvez utiliser URL relative, de sorte que votre application se connecte au même serveur d'où il est chargé.

MyService.url = "/Services/foobar.ashx"; 

"/" ajoutera certainement l'hôte d'où il provient. Et c'est toujours une bonne pratique de se connecter au même hôte où le flash est chargé. Deuxièmement, les services Web SOAP utilisent la sérialisation xml. Par conséquent, si vous utilisez votre gestionnaire pour la sérialisation e4x ou si vous utilisez le générateur de service Web SOAP de Flash Builder, la vitesse sera presque la même. Le service Web SOAP sera certainement un peu plus lent, mais la différence sera de quelques secondes à quelques secondes. Cependant, avec les services Web, votre développement va s'accélérer car vous n'aurez pas à créer de classes proxy.