BlogServiceHost.Create()

WCF & Azure - Il blog di Fabio Cozzolino

Recent Posts

Tags

My

Twitter

Community

Archives

Email Notifications

Social Bar Widget

June 2006 - Posts

Le vere origini di Java
"Java was an idea of God to show to Humans how stupid they were"

Bellissimo !!! Big Smile

http://uncyclopedia.org/wiki/Java

fonte: http://blogs.ugidotnet.org/Franny/archive/2006/06/29/43752.aspx

Atlas At Last !!!
Su MSDN Magazine di questo mese ci sono veramente tanti articoli interessanti. Uno, però, spicca in particolarmodo: Atlas At Last. Matt Gibbs introduce Atlas parlando dell'architettura, dei controlli e della sua integrazione con i web services in un articolo, è forse superfluo dirlo, molto ma molto ma molto ben fatto.

Leggete gente, leggete ...

Posted: Jun 29 2006, 07:46 PM by Fabio.Cozzolino | with no comments
Filed under: ,
W la Rubriki
In questo periodo sono un po' latitante, è vero, ma non potevo mancare di annunciare l'uscita del numero 3 della Rubriki di UGIdotNET. La Rubriki è ufficialmente nata con l'annuncio dato il 16 novembre 2005, a cui ha fatto seguito qualche settimana dopo l'uscita del numero zero, per il quale mi è stato chiesto di scrivere un articolo come sunto di una discussione partita da un argomento da me trattato, "nella migliore tradizione "wiki"". Inutile dire che ho aderito con entusiasmo e replicando anche nel numero 1 del 21 febbraio 2006.

Probabilmente, anzi sicuramente, in futuro scriverò ancora per la rubriki che, ci tengo a sottolineare, è tuttora molto ben curata da Ricky, Roby e luKa (a.k.a. Riccardo Golia, Roberto Messora e Luca Minudel). Wink <img src=" />

Veramente complimenti !!!

Atlas Update Panel: Come funziona?

Nel corso della sessione Atlas tenuta durante l'ultimo workshop ho voluto evidenziare il meccanismo che consente l'aggiornamento parziale della pagina. Mi sono stati poi chiesti maggiori dettagli perciò ho deciso di riassumerli tutti in questo post.

Cosa accade quando utilizzo un UpdatePanel? E' una domanda che anch'io mi sono posto e sono andato a spulciare qua e là nel codice javascript. Facciamo innanzitutto un passo indietro e qualche breve considerazione. Tutti i Server Controls di ATLAS, compreso lo ScriptManager, producono il corrispondente xml-script sul client. L'xml-script è la rappresentazione in xml del comportamento che i controlli devono assumere sul client. Al caricamento della pagina, entra in funzione un parser che trasforma quanto indicato nell'xml-script in veri e propri javascript. In questa fase viene anche eseguito l'attach di eventuali eventi verso i corrispondenti controlli. Ad esempio: l'evento click su un button.

Il client
Con riferimento al codice utilizzato durante il workshop, scaricabile da qui, esaminiamo cosa accade quando clicchiamo sul button "Visualizza Ordini" della pagina 1_ServerControls.aspx. Dapprima viene creato un evento onclick che scatena un submit sul form. Questo, però, non segue la via usuale del __doPostBack, ma viene demandato tutto al gestore onFormSubmit. Qui, se abilitato il rendering parziale, vengono raccolti i valori dei tag INPUT (compresi gli hidden e il viewstate), SELECT e TEXTAREA contenuti nel form ed inviati al server attraverso una request impacchettata dall'oggetto Sys.Net.WebRequest. Il body della richiesta ha un contenuto simile a questo:



Il server elabora la richiesta, esegue il metodo richiesto e ritorna la risposta in un formato xml particolare come il seguente: 

si può notare come nella risposta viene restituito il contenuto del tag head che posso aver modificato nel gestore dell'evento. Oltre a questo viene anche restituito il contenuto degli hidden fields, compreso il __VIEWSTATE. Infine, ma forse questo è l'elemento più importante, viene restituito un panelContent che racchiude tutto il codice html che deve essere visualizzato all'interno dell'update panel. Sul client il tutto viene rielaborato da una funzione di callback che prima verifica la presenza di errori, poi verifica se deve essere effettuato un redirect, ed infine "piazza" l'html renderizzato dal server.

Il server
Lato server ha molta importanza il controllo ScriptManager. Qui viene infatti intercettato nell'evento Init il valore del parametro delta inserito, come potete vedere nell'immagine precedente, nell'header della richiesta. Se questo è true allora viene impostato tutto per eseguire il rendering parziale. Questo è un estratto del gestore OnInit del controllo ScriptManager:

            if (this._page.Request.Headers["delta"] == "true")
            {
                  this._inPartialRenderingMode = true;
                  this._page.TraceEnabled = false;
                  this._page.LoadComplete += new EventHandler(this.OnPageLoadComplete);
                  this._this.Context.ApplicationInstance.PreSendRequestHeaders += new EventHandler(ScriptManager.OnApplicationInstancePreSendRequestHeaders);
                  this._this.Context.ApplicationInstance.Error += new EventHandler(ScriptManager.OnApplicationInstanceError);
                  this._page.Error += new EventHandler(this.OnPageError);
            }
            this._page.PreRenderComplete += new EventHandler(this.OnPagePreRenderComplete);
            this._initialized = true;

Infine nel metodo RenderPageCallback viene impacchettata la risposta:

private void RenderPageCallback(HtmlTextWriter writer, Control pageControl)
{
      Page page1 = (Page) pageControl;
      HttpResponse response1 = page1.Response;
      response1.Cache.SetCacheability(HttpCacheability.NoCache);
      response1.ContentType = "text/xml";
      writer.Write("<delta>");
      ...
      writer.Write("</delta>");
}

Conclusioni
Concludo con due parole sul tag delta: durante la mia sessione ho detto che non conoscevo il motivo per cui era stato scelto quel nome. Bene, FrancescoG mi dice che delta viene utilizzato in matematica per indicare le differenze. Spulciando wikipedia trovo la definizione perfetta nella codifica delta: "La codifica delta è un modo per immagazzinare o trasmettere dati usando le differenze tra i dati sequenziali piuttosto che sul file completo". Il mistero è risolto ...

Posted: Jun 21 2006, 01:28 AM by Fabio.Cozzolino | with 1 comment(s)
Filed under:
ioProgrammo n.104
Da oggi è in edicola il numero 104 di ioProgrammo con un mio nuovo articolo su Windows Communication Foundation. Questa volta parliamo di un argomento mooolto importante: i contratti. Inutile ripetere ancora una volta che WCF è il mio argomento preferito e ad ogni articolo che scrivo mi entusiasma sempre di più....Stick out tongue [:P]

Nella rivista potete trovare anche un articolone (ben 8 pagine!!!) di Mighell che vi parla ancora una volta Big Smile [:D], dopo averlo fatto durante l'ultimo workshop, di Compact Framework. A proposito, è l'articolo di copertina ... Surprise [:O]

Ma la vera sorpresa, l'imperdibile "oggetto" allegato alla rivista è...udite udite...UN LIBRO SU C# scritto dal *nostro* Mighell. Bene, se questo non è sufficiente a convincervi che questo numero è imperdibile, proprio non so cosa dirvi ... Big Smile [:D]

Ps.: nel CD allegato alla rivista troverete anche due screencast che parlano di WCF e Mobile ...
Slide e demo del workshop
Nella sezione files sono disponibili tutte le slide e gli esempi mostrati durante le sessioni del workshop Atlas & Mobile Data Management. Scaricate gente, scaricate Smile [:)] ...

Posted: Jun 20 2006, 12:04 AM by Fabio.Cozzolino | with no comments
Filed under:
Search with FireFox
Ho trovato due minuti di tempo per preparare un search plugin per firefox per consentire la ricerca all'interno di dotnetside.org direttamente dal browser. Il plugin è disponibile per l'installazione sul sito mozdev. Questo è il link diretto.

Ed il secondo è andato ...
Come dice mighell "Ed un altro è fatto". Inutile dire che sono distrutto ma stracontento. Fa molto piacere vedere la sala piena, la gente in piedi e alla fine vedere volti sorridenti e contenti delle sessioni (almeno questa è stata la mia sensazione). Provenivo da un periodo intenso e venerdì ero troppo stanco, inoltre sono andato un po lungo, e per questo chiedo perdono a chi non riusciva più a sopportarmi, ma c'erano cose da dire che non potevano essere trascurate Smile [:)].

Un saluto ai due vincitori dei libri estratti ed offerti da gorilla, a tutti quelli che hanno fatto incetta delle copie di IoProgrammo e a chi mi chiedeva "Puoi aumentare il font per favore?" Stick out tongue [:P].

Spero veramente che chi si è fatto tanti chilometri per venirci a trovare è tornato a casa con un bagaglio di informazioni più completo ma soprattutto soddisfatto di un evento in cui noi abbiamo creduto. Dal mio punto di vista ho cercato di evidenziare i meccanismi che muovono Atlas piuttosto che analizzare ogni singolo controllo. Forse ho rischiato un po, ma spero di aver soddisfatto la curiosità dei più. Se così non è vi prego di dirmelo, sono aperto alle critiche Wink [;)].

La pizzata è stata veramente fantastica. Una mandria di bambini ha tentato di tenerci a bada, ma non ci sono riusciti. Io, Mighell, Tiziana, Don Vito, Vito Arconzo, Mario e Paolo ci siamo divertiti veramente tanto e mangiato altrettanto bene. Don Vito ha poi sfoggiato una serie di frasi latine per me *incomprensibili* che lo hanno eletto l' "Uomo più amato" della serata Big Smile [:D].

Infine: riporto qui il link al tool utilizzato durante la mia sessione: Web Development Helper di Nikhil Kothari.

GRAZIE A TUTTI e ... alla prossima !!!

WinFX == .NET 3.0 &amp;&amp; InfoCard == WCS

Mighell l’ha già annunciato qui. A quanto pare WinFX diventerà .NET Framework 3.0. E’ sicuramente una mossa commerciale e, come dice Somasegar, dovrebbe chiarire meglio quello che è WinFX. Il punto è che ora ho le idee un po’ confuse: se WinFX diventerà .NET Framework 3.0, che fine faranno C# 3.0 e VB9? E Linq? Rientreranno o saranno un futuro .NET Framework 4.0? Oppure 3.1? E poi cosa avremo se il CLR rimane il 2.0? Boh…

Di base c’è il fatto che molta gente continuava a chiedere: cos’è WinFX? Che rapporti ha con .NET?

Ho letto diversi commenti, ma forse ai più è sfuggita una cosa: InfoCard diventa Windows CardSpaces!!! Qualche giorno fa stavo immaginando (e quasi postando) appunto che nome avrebbe preso arrivando addirittura a dargliene uno: WIF (Windows Identity Foundation). Ma qualcuno mi ha decisamente anticipato

 

Non so. A me piacevano di più WinFx e InfoCard. Ma a me piaceva anche Indigo …

DotNetSide su Punto Informatico ... uaooo!!
Sono rimasto senza parole. Marco ha già bloggato qui e vito a seguire. E' un onore, un impegno ed anche una grande responsabilità (caro AndreaS, ora ti capisco Wink <img src=" /> ...), ma ce la stiamo mettendo tutta nel portare avanti questo progetto. L'annuncio di Punto-Informatico ci riempie di gioia e contemporaneamente ci invita a proseguire sulla strada che stiamo percorrendo, che sembra quella giusta.

Forza DotNetSider, avanti così !!! Smile <img src=" />

Ps.: Se qualcuno ha da aggiungere qualcosa, si faccia avanti ... i commenti sono apertissimi Big Smile <img src=" />