WebService
Il RunTime di ATLAS è in grado di creare proxy Javascript per invocare WebService occupandosi anche della serializzazione e deserializzazione dei dati scambiati con il server. Questo significa che anche se il WebService accetta in input, o restituisce, parametri complessi quali classi, strutture o Array, non ci si deve preoccupare di come inviare i dati, ma solo di come utilizzarli.
Essendo i metodi invocati in asincrono, si deve fornire un callback per indicare quale metodo si deve occupare di elaborare la risposta del server; oltre al metodo che accetta la risposta, si possono utilizzare altri due metodi da invocare quando, rispettivamente, la chiamata va in errore o in timeout offrendo, quindi, un controllo più granulare sullo stato dell'applicazione e, di conseguenza, una maggior sensazione di interattività all'utente.
WEB SERVICE:
[WebMethod]
public Dimension ComplexMethod(Dimension data) {
Dimension result = new Dimension();
result.Height = data.Width;
result.Width = data.Height;
return result;
}
JAVASCRIPT:
function complexClick(sender, eventArgs) {
var obj = new Object();
obj.Width = new Sys.UI.TextBox($("txtWidth")).get_text();
obj.Height = new Sys.UI.TextBox($("txtHeight")).get_text();
DefaultService.ComplexMethod(obj, completeComplexCallback, timeoutCallback, errorCallback);
}
function completeComplexCallback(response) {
var lbl = new Sys.UI.Label($("lblComplex"));
lbl.set_text("height is: " + response.Height + "\r\nWidth is :" + response.Width);
var lblErr = new Sys.UI.Label($("lblError"));
lblErr.set_text("");
}
function timeoutCallback(response) {
var lbl = new Sys.UI.Label($("lblError"));
lbl.set_text("time out");
}
function errorCallback(result, response) {
var lbl = new Sys.UI.Label($("lblError"));
lbl.set_text("Error: " + result.get_message() + "\r\nStackTrace: " + result.get_stackTrace());
}
ATLAS offre dei WebService già integrati per esporre le Membership e Profiling API. Per il Profiling esiste una corrispondenza quasi totale tra le API pubblicate e quelle disponibili sul provider, mentre per le Membership viene pubblicato solo un subset, ovvero le API che permettono la validazione delle credenziali di accesso, il login ed il logout.
MEMBERSHIP:
function loginClick(sender, eventArgs) {
Sys.Services.AuthenticationService.login("UserName", "Password", false, onLoggedIn);
}
function onLoggedIn(result) {
alert(result);
}
PROFILING:
function pageLoad() {
Sys.Profile.set_autoSave(false);
Sys.Profile.loaded.add(onProfileLoadComplete);
Sys.Profile.saved.add(onProfileSaveComplete);
Sys.Profile.load();
}
function onProfileLoadComplete() {
alert(Sys.Profile.properties.PropertyName);
}
function saveClick(sender, eventArgs) {
Sys.Profile.properties.PropertyName = 1000;
Sys.Profile.save();
}
function onProfileSaveComplete(response) {
alert('Profilo salvato');
}
Contenuti dell'articolo
- Pagina 1
- Pagina 4
- Pagina 5
- Galleria fotografica dinamica con ASP.NET AJAX
- Usare Search come un servizio nei tuoi siti e nei tuoi client
- Mappe nel tuo sito con Virtual Earth
- Integrare Windows Live ID, Contacts e Presence API nelle tue applicazioni
- Introduzione ai cloud based service con Windows Live Services
- Realizzare un custom extender AJAX con ASP.NET 3.5
- Tracciare le modifiche ai dati e allineare i datawarehouse con il Change Data Capture in SQL Server 2008
- Le nuove caratteristiche di IIS 7.0 per sviluppatori e sistemisti
Aggiungi un nuovo commento »»»
Per inserire un commento, devi registrarti alla nostra community.







Difficoltà
Contenuti
Stampa
Download 


10annidi.ASPItalia.com: iscriviti alla competizione e vinci fantastici premi ogni mese!