Création de services WCF pour ASP.NET AJAX

Microsoft ASP.NET AJAX permet de créer rapidement des pages Web d'une grande interaction pour l'utilisateur avec des éléments d'interface utilisateur réactifs et familiers. Les fonctionnalités ASP.NET AJAX fournissent des bibliothèques de client de script qui incorporent des scripts ECMAScript (JavaScript) et des technologies Dynamic HTML (DHTML) compatibles entre navigateurs ainsi qu'une intégration avec la plate-forme de développement serveur ASP.NET 2.0. Grâce à ASP.NET AJAX, vous pouvez améliorer l'expérience utilisateur et l'efficacité de vos applications Web.

ASP.NET AJAX se compose de bibliothèques de client de script et des composants serveur intégrés destinés à fournir une infrastructure de développement fiable. Pour accéder à un service à partir d'une page ASP.NET : une fois que l'URL de service est ajoutée au contrôle de gestionnaire de script ASP.NET dans la page, les opérations de service peuvent être appelées à l'aide du code Javascript qui est identique à un appel de fonction JavaScript régulier.

La plupart des services Windows Communication Foundation (WCF) peuvent être exposés en tant que service compatible avec ASP.NET AJAX en ajoutant un point de terminaison ASP.NET AJAX approprié.

Si vous utilisez Visual Studio, vous pouvez utiliser un modèle prédéfini pour les services WCF compatibles AJAX, disponible dans la boîte de dialogue Ajouter un nouvel élément lorsque vous utilisez des sites web ASP.NET ou des applications web.

Si vous n'utilisez pas les modèles Visual Studio, vous pouvez créer un point de terminaison ASP.NET AJAX de deux manières :

Le modèle de programmation Web décrit dans la section Vue d’ensemble du modèle de programmation Web HTTP WCF peut être utilisé avec les services ASP.NET AJAX. Plus précisément :

  • Vous pouvez utiliser les attributs WebGetAttribute et WebInvokeAttribute pour choisir entre les verbes HTTP GET et HTTP POST. Correctement utilisés, ils permettent d'améliorer considérablement la performance de votre application. Pour plus d’informations, consultez Guide pratique pour choisir entre des requêtes HTTP POST et HTTP GET pour des points de terminaison AJAX ASP.NET.

  • Vous pouvez utiliser les propriétés ResponseFormat et ResponseFormat pour que votre service retourne des données XML au lieu du format JSON (JavaScript Object Notation) par défaut. Effectuée dans le cadre de l'infrastructure ASP.NET AJAX, cette opération permet au client JavaScript de recevoir un objet XML DOM.

    Avertissement

    Votre opération doit affecter au type de contenu la valeur texte/xml pour y parvenir. Sinon, le client JavaScript recevra une chaîne contenant le XML au lieu d'un objet XML DOM.

    Voici un exemple d'opération qui retourne les données XML avec le type de contenu défini convenablement :

    [OperationContract, WebGet(ResponseFormat=WebMessageFormat.Xml)]
    public XElement GetData()
    {
        XElement x;
        //Get some data here...
    
        WebOperationContext.Current.OutgoingResponse.ContentType = "text/xml";
        return x;
    }
    
  • Aucune autre propriété sur les attributs WebGetAttribute et WebInvokeAttribute ne peut être modifiée si la compatibilité avec ASP.NET AJAX est requise. Il est possible de faire appel à d'autres aspects du modèle de programmation Web tant que les conventions d'appel ASP.NET AJAX sont respectées.

D’autres scénarios avancés requièrent la prise en compte de certains détails supplémentaires pour la prise en charge d’AJAX dans WCF :

  • Pour comprendre la manière dont les données sont transférées entre un client de page AJAX et un service WCF à l’aide de JavaScript, et pour obtenir plus d’informations sur la façon dont les types .NET Framework sont mappés aux types JavaScript, consultez Prise en charge du format JSON et d’autres formats de transfert de données.

  • Pour tirer parti des fonctionnalités ASP.NET, par exemple, l’authentification basée sur URL et l’accès aux informations de session ASP.NET, vous pouvez activer le mode de compatibilité ASP.NET par la configuration.

Les points de terminaison AJAX dans WCF peuvent même être consommés sans framework ASP.NET AJAX. Cette procédure exige une connaissance du fonctionnement de l’architecture de prise en charge d’AJAX dans WCF. Pour obtenir des informations complémentaires sur cette architecture, consultez Modèle objet de programmation Web HTTP WCF. Pour obtenir un exemple de code illustrant cette approche, consultez Service AJAX avec JSON et XML.

Voir aussi