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. Consultez Présentation d'ASP.NET AJAX (page éventuellement en anglais) sur l'utilisation des services Web dans l'infrastructure AJAX.
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égénéré 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 :
Créez le point de terminaison à l'aide de l'activation d'hôte dynamique sans utiliser de configuration. Il s'agit de l'approche la plus simple si vous n'êtes pas familier avec le système de configuration WCF. Pour plus d'informations, consultez Comment : ajouter un point de terminaison AJAX ASP.NET sans utiliser de configuration.
Ajoutez un point de terminaison compatible AJAX à un service WCF à l'aide de la configuration. Pour plus d'informations, consultez Comment : utiliser la configuration pour ajouter un point de terminaison AJAX ASP.NET.
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 Comment : choisir entre des demandes 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.
Attention : 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 du JavaScript, et pour 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 être consommés même sans l'infrastructure ASP.NET AJAX. Cette procédure exige une connaissance du fonctionnement de l'architecture de prise en charge d'AJAX dans WCF. Pour une discussion sur cette architecture, consultez Modèle objet de programmation Web HTTP WCF. Pour un exemple de code qui illustre cette approche, consultez AJAX Service with JSON and XML, exemple.
Voir aussi
Tâches
Comment : ajouter un point de terminaison AJAX ASP.NET sans utiliser de configuration
Comment : utiliser la configuration pour ajouter un point de terminaison AJAX ASP.NET
Comment : choisir entre des demandes HTTP POST et HTTP GET pour des points de terminaison AJAX ASP.NET