Silverlight 4 + RIA Services - Prêt pour les affaires
Exposer JSON Endpoint
Date de publication : 14/02/2012. Date de mise à jour : 20/02/2012.
Par
Brad Abrams
Deepin Prayag (Traduction)
Cet article fait partie d'une série de traductions d'articles de Brad Abrams sur le développement d'applications métier avec Silverlight 4 et .NET RIA Services.
Cette série se concentre uniquement sur la base des applications métier : l'interrogation, la mise à jour, la validation et la sécurisation de vos données métier importantes.
Traduction
Prérequis
Ajax Endpoint
Conclusion
Liens
Remerciements
Traduction
Prérequis
La procédure pas à pas requiert :
J'ai implémenté cela avec Silverlight 4 RC, mais je m'attends à ce que cela fonctionne avec Silverlight 4 RTM.
Ajax Endpoint
Poursuivant notre série, je voulais aborder la façon dont un service RIA peut être exposé à votre service dans
JSON. Cela est très pratique pour les clients Ajax.
La bonne chose est qu'en activant l'endpoint JSON cela ne nécessite AUCUN changement au Domain Service. Tout ce que vous avez à faire pour l'activer est d'ajouter l'endpoint JSON dans web.config
|
1: < system . serviceModel >
2: < domainServices >
3: < endpoints >
4: < add name = " JSON "
5 : type = " Microsoft.ServiceModel.DomainServices.Hosting.JsonEndpointFactory, Microsoft.ServiceModel.DomainServices.Hosting,
Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 " / >
6: < add name = " OData "
7 : type = " System.ServiceModel.DomainServices.Hosting.ODataEndpointFactory, System.ServiceModel.DomainServices.Hosting.OData,
Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 " / >
8: < add name = " Soap "
9 : type = " Microsoft.ServiceModel.DomainServices.Hosting.SoapXmlEndpointFactory, Microsoft.ServiceModel.DomainServices.Hosting,
Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 " / >
10: < / endpoints >
11: < / domainServices >
12:
|
Comme vous pouvez le constater, cet extrait ci-dessus montre l'ajout de l'endpoint JSON à partir du
toolkit RIA Services aussi bien que ceux d'OData et SOAP.
Vous pouvez voir les résultats de l'endpoint en naviguant à l'adresse URL dans ce format :
|
{"GetRestaurantsResult":{"TotalCount":-2,"IncludedResults":[],
"RootResults":[{"Address":"49 Gilbert St.","City":"London",
"ContactName":"Charlotte Cooper","ContactTitle":"Purchasing Manager",
"Fax":"(171) 555-2222","HomePage":"","ID":1,"ImagePath":
"Restaurant_Alinea.jpg","Name":"Alinea - Updated from Ajax",
"Phone":"(171) 555-2222","PostalCode":"EC1 4SD","Region":""},
{"Address":"P.O. Box 78934","City":"New Orleans","ContactName":
"Shelley Burke",
"ContactTitle":"Order
|
Comme vous pouvez le constater - du JSON agréable à voir. Maintenant pour écrire un client Ajax très simple.
Ci-dessous un exemple de méthode de requête dans le client Ajax
|
function query () {
var xmlhttp = new XMLHttpRequest ();
xmlhttp. open (" GET " , " BusinessApplication1-web-DishViewDomainService.svc/Json/GetRestaurants " , false );
xmlhttp. send ();
var rawResults = JSON. parse (xmlhttp. responseText);
var results = rawResults. GetRestaurantsResult. RootResults;
var entity
for (var i = 0 ; i < results. length; i+ + )
{
entity = results[ i] ;
document. getElementById (' results ' ). innerHTML + = ' <br> ' + entity. Name;
}
}
|
Ceci est relié à un bouton très simple
|
< button type = " button " onclick = " query() " >
Query< / button >
|
La mise à jour est un peu plus compliquée, mais toujours basique :
|
function update () {
var operation = { } ;
operation. Entity = { " __type " : " Restaurant:#BusinessApplication1.Web " , " ID " : 1 , " Name " : " Alinea - Updated from Ajax " } ;
operation. OriginalEntity = { " __type " : " Restaurant:#BusinessApplication1.Web " , " ID " : 1 , " Name " : " Alinea " } ;
operation. Operation = 3 ;
var csData = JSON. stringify ({ " changeSet " : [ operation] } );
var xmlhttp = new XMLHttpRequest ();
xmlhttp. open (' POST ' , ' BusinessApplication1-web-DishViewDomainService.svc/Json/SubmitChanges ' , false );
xmlhttp. setRequestHeader (" Content-Type " , " application/json " );
xmlhttp. send (csData);
var results = xmlhttp. responseText;
document. getElementById (' results ' ). innerHTML = results;
}
|
Dans cette démo, nous avons montré comment activer le client Ajax/JSON pour RIA Services.
Conclusion
Ceci conclut la dixième partie de cette série. Dans la prochaine partie nous verrons comment déployer notre application construite en utilisant RIA Services.
Liens
Remerciements
Je tiens ici à remercier
Brad Abrams pour son aimable autorisation de traduire l'article.
Je remercie
Jean-Michel Ormes pour sa relecture technique et ses propositions.
Je remercie également
xyz pour sa relecture orthographique et ses propositions.
Copyright © 2012 Brad Abrams.
Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de
son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur.
Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 €
de dommages et intérêts. Droits de diffusion permanents accordés à Developpez LLC.