Era già da un po' che pensavo di farlo, poi un utente su CodeProject me l'ha chiesto esplicitamente (cito: "Isn't time for a source repository somewhere?")
In effetti, tra il forum di CodeProject e i feedback diretti da GURU4.net mi ritrovo con una tasklist di almeno 20 attività di sviluppo, fix o integrazione che mi sa che non riuscirò mai ad evadere! Non solo: alcuni dei ragazzi che mi hanno proposto dei fix sono *molto* più in gamba di me e non vorrei rischiare di rovinare il loro lavoro ;-)
Ho così provato a richiedere l'ammissione del progetto su CodePlex (sebbene non sia strettamente connesso a .NET) perché lo preferisco decisamente ad altri repository come Google Code o SourceForge.
L'email automatica di risposta mi ha un po' demoralizzato: "Given the large number of incoming requests that we receive, we cannot guarantee that your project will be created until we have added additional servers to our site."
Invece, dopo sole 8 ore, mi arriva un'altra mail per avvisarmi che "Your project has been created"!
Che dire? Spettacoloooo!!!!!!
CodePlex è veramente fantastico: è gratuito, ti mette a disposizione un sacco di strumenti (forum, feeds RSS, wiki, gestione del team, ecc.) oltre al vero plus: il controllo del versioning del codice sorgente ed il tracking dei work item basati su Team Foundation Server!
Come se non bastasse... è tutto semplicissimo da usare e configurare!
Ho avuto solo 5 minuti di panico quando in Visual Studio non potevo aggiungere il progetto al repository del codice sorgente... Ma sono stato demente io a dimenticarmi di cambiare il plug-in del source control da Visual SourceSafe a TFS :-)))
Dimenticavo: per chi fosse interessato l'url della home page del JavaScript SOAP Client su CodePlex è: http://www.codeplex.com/Wiki/View.aspx?ProjectName=JavaScriptSoapClient
Enjoy!
PS: se usate la libreria e avete qualche idea per migliorarla si accettano developers!
A proposito, visto che è una cosa che mi è venuta proprio in mente in questi giorni e non avevo capito se l'hai implementata...
Data una classe server side, per esempio:
public class Persona
{
private string _nome;
public string Nome
{
get { return _nome; }
set { _nome=value; }
}
public Persona()
{}
public Persona(string nome)
{
_nome=nome;
}
}
Com'è possibile con la tua classe istanziarla "prima" di passarla ad un WS in modo che la accetti come parametro?
Qualcosa di questo tipo:
funtion funzione()
{
r=new Persona();
r.Nome="AltroNome";
var pl = new SOAPClientParameters();
pl.add("parametro", r);
SOAPClient.invoke(url, "RiprendiNome", pl, true, funzione_callBack); }
[WebMethod]
public void RiprendiNome(Persona parametro)
{
parametro.Nome=...
}
Oppure, ricevuta la classe da un ws, è possibile modificarlo e rimandarlo ad un altro ws?
Ciao
andrewz ha scritto:
Data una classe server side [...] Com'è possibile con la tua classe istanziarla "prima" di passarla ad un WS in modo che la accetti come parametro?
Sì, il passaggio di oggetti complessi al Web Service è stato implementato nella versione 2.0 del SOAP Client.
Guarda nella "DEMO 12 - Inviare parametri al Web Service (avanzato)" l'esempio numero 4.
Ho inserito 3 modi per fare quello che chiedi (simili, sfruttano semplicemente caratteristiche della sintassi JavaScript per la creazione di oggetti):
1) esempio 4a: creandoti la classe anche lato client (purtroppo è un'operazione che devi fare a mano...) e istanziandola con "new..."
2) esempio 4b: istanziando un "new Object()" ed impostandogli poi le proprietà (ovviamente lato client devi conoscere a priori l'interfaccia della classe lato server per impostarne le properties)
3) esempio 4c: utilizzando come istanza dell'oggetto un array associativo (dictionary) che in javascript è utilizzabile come Object
Oppure, ricevuta la classe da un ws, è possibile modificarlo e rimandarlo ad un altro ws?
Assolutamente sì, visto che quando viene restituito dal webservice, facendo riferimento al WSDL, viene ricreato un oggetto lato client che rimappa quello lato server. In pratica ritorni al caso di prima, in particolare - per come ho implementato la ricostruzione dell'entity nel soap client - nel caso 4b, usando cioè "new Object()".
Puoi provarlo semplicemente mettendo insieme la demo 7 (il web service restituisce uno User data una stringa) e la demo 12 (dove lo User viene passato al web service)
Se hai problemi... ci vediamo su CodePlex!
m.casati <m.casati> ha scritto:
Sì, il passaggio di oggetti complessi al Web Service è stato implementato nella versione 2.0 del SOAP Client.
Mii! Avevo testato il tutto con una versione vecchia! E non avevo visto quell'esempio! Mea culpa! Tutto ok!
Grazie Matteo, terrò d'occhio CodePlex per nuove feature!
Ciao!
Grande Matteo!
E non dire che io non avevo detto che era un ottimo prodotto!
Anche in questi giorni lo sto implementando in un progetto.
Ciao!
Aggiungi un nuovo commento »»»
Per inserire un commento, devi registrarti alla nostra community.





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

>CodePlex è veramente fantastico
Molto bene, sto per mettere anche io un po' di robetta su codeplex e questa notizia mi fa molto felice
Appena uscito da questo turbinio di lavoro, scarico la tua libreria e la provo, poi ti dirò.
ciauz
Continua »»» | Rispondi »»»