<?xml version="1.0" encoding="iso-8859-15"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/"><channel><title>blogs.ASPItalia.com</title><link>https://blogs.aspitalia.com//sm15455//</link><description>blogs.ASPItalia.com</description><language>it-it</language><copyright>1998-2026 ASPItalia.com/blogs.ASPItalia.com</copyright><generator>Generated by feed.ASPItalia.com 'Cortana' 2022.8.29</generator><sy:updatePeriod>hourly</sy:updatePeriod><sy:updateFrequency>1</sy:updateFrequency><sy:updateBase>1998-01-01T12:00+00:00</sy:updateBase><lastBuildDate>Mon, 16 Jul 2007 22:38:00 GMT</lastBuildDate><image><title>blogs.ASPItalia.com</title><url>https://gui.aspitalia.com/images/aspitalia/aspitalia_full.png</url><link>https://blogs.aspitalia.com//sm15455//</link></image><item><title>Javascript, Update Panel e gli eventi</title><link>https://blogs.aspitalia.com/sm15455/post2093/Javascript-Update-Panel-Eventi.aspx</link><pubDate>Mon, 16 Jul 2007 22:38:00 GMT</pubDate><description>&lt;img src="https://blogs.aspitalia.com/services/counter_rss.aspx?PostID=2093" border="0" style="width:1px; height:1px;" /&gt;Molto spesso in giro per i forum ho la netta impressione di dejavu poichè le domande che girano sono molto spesso le stesse. Vista la larga adozione, moltissime domande ultimamente riguardano ASP.NET AJAX. Quella più frequente è come poter eseguire del codice javascript custom prima e dopo l'aggiornamento dell'UpdatePanel. Visto che lo fa un UpdateProgress, perchè non possiamo farlo noi?&lt;br /&gt;&lt;br /&gt;Lato client, il ciclo di vita di un postback asincrono viene gestito dalla classe javascipt PageRequestManager che è un Singleton e quindi accessibile tramite il metodo statico getInstance.&lt;br /&gt;&lt;br /&gt;var prm = Sys.WebForms.PageRequestManager.getInstance();&lt;br /&gt;&lt;br /&gt;A questo punto ci si sottoscrive agli eventi beginRequest ed endRequest scatenati prima e dopo il postback asincrono.&lt;br /&gt;&lt;br /&gt;prm.add_beginRequest(beginRequest);&lt;br /&gt;prm.add_endRequest(endRequest);&lt;br /&gt;        &lt;br /&gt;beginRequest e endRequest sono i metodi che scriviamo noi.&lt;br /&gt;&lt;br /&gt;Il tutto va ovviamente fatto al load della pagina.&lt;br /&gt;&lt;br /&gt;Stay tuned...&lt;br /&gt;&lt;p&gt;Continua a leggere &lt;a href="https://blogs.aspitalia.com/sm15455/post2093/Javascript-Update-Panel-Eventi.aspx"&gt;&lt;em&gt;Javascript, Update Panel e gli eventi&lt;/em&gt;&lt;/a&gt;.&lt;/p&gt;&lt;hr /&gt;&lt;p&gt;&lt;a href="https://www.aspitalia.com/"&gt;(C) 2026 ASPItalia.com Network - All rights reserved&lt;/a&gt;&lt;/p&gt;</description><dc:creator>Stefano Mostarda</dc:creator><category>.Net 2.0</category><guid isPermaLink="true">https://blogs.aspitalia.com/sm15455/post2093/Javascript-Update-Panel-Eventi.aspx</guid><slash:comments>0</slash:comments><wfw:comment>https://blogs.aspitalia.com/sm15455/post2093/Javascript-Update-Panel-Eventi.aspx#feedback</wfw:comment><wfw:commentRss>https://blogs.aspitalia.com/SM15455/CommentRSS2093.aspx</wfw:commentRss><trackback:ping>https://blogs.aspitalia.com/services/trackback.aspx?PostID=2093</trackback:ping></item><item><title>App_Offline.htm e la sua quasi inutilit&amp;#224;</title><link>https://blogs.aspitalia.com/sm15455/post1890/App_Offline.htm-Quasi-Inutilita.aspx</link><pubDate>Fri, 22 Dec 2006 15:22:00 GMT</pubDate><description>&lt;img src="https://blogs.aspitalia.com/services/counter_rss.aspx?PostID=1890" border="0" style="width:1px; height:1px;" /&gt;Una delle nuove feature di asp.net 2.0 aggiunta all'ultimo minuto è la famigerata pagina App_Offline.htm che se inserita nella root dell'applicazione fa lo shutdown dell'Appdomain e diventa l'unica pagina vista da chiunque tenti di connettersi. &lt;br /&gt;&lt;br /&gt;All'inizio ho pensato che questa feature fosse interessante ed utile, ma proprio ieri quando mi accingevo ad utilizzrala mi sono reso conto della sua quasi totale inutilità. Da un punto di vista è molto comodo poter spostare in produzione gli aggiornamenti senza che alcun utente sia connesso, ma finita questa operazione, che in genere dura pochi secondi o minuti in caso di situazioni più complesse, c'è bisogno di fare un giro di test per controllare il corretto funzionamento di tutto.&lt;br /&gt;&lt;br /&gt;Purtroppo questa fase non è attuabile perchè come si prova ad accedere all'applicazione si viene reindirizzati alla pagina di Offline. Se però si elimina la pagina, tutti gli utenti possono entrare e addio test finali. Visto che i test finali in genere prendono diverso tempo, sicuramente molto più del semplice aggiornamento dei file, direi che questa feature è molto monca e poco utile.&lt;br /&gt;&lt;br /&gt;Partendo dall'idea di voler comunque mettere l'applicazione offline in maniera gradevole per l'utente, ecco che si arriva alla naturale conclusione che un HttpModule è quello che ci vuole. Si crea una sezione personalizzata nel web.config che serve a specificare se l'applicazione è offline. Nell'HttpModule si gestisce l'evento AuthorizeRequest e se l'utente è autenticato ed è amministratore allora viene autorizzato ad entrare, altrimenti viene rimandato al login. Una volta effettuato il login, se l'utente è amministratore allora viene autorizzato ad entrare, altrimenti viene rimandato alla pagina di offline.&lt;br /&gt;&lt;br /&gt;Il tutto è quasi pronto, mancano gi ultimi ritocchi al codice ed il gioco è fatto, aspettatevi novità nel Lab :)&lt;br /&gt;&lt;br /&gt;Stay Tuned...&lt;br /&gt;
&lt;p&gt;Continua a leggere &lt;a href="https://blogs.aspitalia.com/sm15455/post1890/App_Offline.htm-Quasi-Inutilita.aspx"&gt;&lt;em&gt;App_Offline.htm e la sua quasi inutilit&amp;#224;&lt;/em&gt;&lt;/a&gt;.&lt;/p&gt;&lt;hr /&gt;&lt;p&gt;&lt;a href="https://www.aspitalia.com/"&gt;(C) 2026 ASPItalia.com Network - All rights reserved&lt;/a&gt;&lt;/p&gt;</description><dc:creator>Stefano Mostarda</dc:creator><category>.Net 2.0</category><guid isPermaLink="true">https://blogs.aspitalia.com/sm15455/post1890/App_Offline.htm-Quasi-Inutilita.aspx</guid><slash:comments>4</slash:comments><wfw:comment>https://blogs.aspitalia.com/sm15455/post1890/App_Offline.htm-Quasi-Inutilita.aspx#feedback</wfw:comment><wfw:commentRss>https://blogs.aspitalia.com/SM15455/CommentRSS1890.aspx</wfw:commentRss><trackback:ping>https://blogs.aspitalia.com/services/trackback.aspx?PostID=1890</trackback:ping></item><item><title>ATLAS &amp;#232; molto meglio di ASP.NET AJAX</title><link>https://blogs.aspitalia.com/sm15455/post1805/ATLAS-Meglio-ASP.NET-AJAX.aspx</link><pubDate>Sat, 28 Oct 2006 10:53:00 GMT</pubDate><description>&lt;img src="https://blogs.aspitalia.com/services/counter_rss.aspx?PostID=1805" border="0" style="width:1px; height:1px;" /&gt;Dopo che il mondo intero ha espresso il suo disappunto per la Beta 1 di ASP.NET AJAX Extension eccomi qui a dire la mia a mente fredda. (oddio con questo caldo non è proprio così)&lt;br /&gt;&lt;br /&gt;Quasi tutte le feature lato client sono state zappate, vedi il databinding, l'autocomplete, alcuni metodi delle classi estese, etc. etc. Alla luce di quello che sarà la release 1.0, non voglio dire che sia stato un bene o un male, ma visto che si tratta di pochi controlli e un pò di javascript, (ok, ci sono i test di stabilità, di integrazione, di sistema, di performance e molti altri ancora. Anche se a volte non sembra lavorano veramente bene in MS) penso che questo discorso andasse affrontato all'inizio senza portare una torta intera a tavola per poi farne mangiare solo una fetta. &lt;br /&gt;&lt;br /&gt;Visto che la strada a dicembre 2005 era stata già tracciata, perchè non dire da subito &amp;quot;Ragazzi, questo è il core, al resto ci lavoreremo pian piano&amp;quot;. Che abbiano voluto far avvicinare la gente per renderla poi ATLAS dipendente perchè passare ad altre librerie sarebbe troppo oneroso? Una Go-Live fatta a marzo (soli 3 mesi dopo aver stabilito l'architettura generale) mi fa decisamente pendere per questa visione dei fatti.&lt;br /&gt;&lt;br /&gt;C'è da dire che ORCAS è in piena evoluzione. Quanto tempo e quante risorse avrà il team di ASP.NET per dedicarsi ad AJAX? Ormai hanno dato la parola che il core uscirà a Dicembre-Gennaio, ma la qualità e la stabilità come saranno? Vista la pochezza spero ottimi, ma visto il poco tempo a disposizione non ci credo moltissimo. E la manutenzione dove la mettiamo? Mi sembra come quando si stimano 3 mesi per fare un progetto ed il commerciale lo vende pronto in 1 mese e mezzo. Staremo a vedere.&lt;br /&gt;&lt;br /&gt;ATLAS July CTP era un ottimo prodotto, AJAX Beta 1 è quasi un altro prodotto; non dico sia pessimo o di scarsa qualità, anzi. Diciamocela tutta, di librerie JS per fare D&amp;amp;D, autocomplete, e altre robe Javascript, ce ne sono molte in giro, non è certo ATLAS che ha introdotto la novità. Personalmente la Beta 1 contiene tutto quello di cui ho bisogno cioè UpdatePanel, e possibilità di invocare WS o metodi della pagina, ma avere altre cose non mi facva schifo.&lt;br /&gt;&lt;br /&gt;Per concludere, mi soddisfa tiepidamente la Beta 1, ma rimane il fastidio per qualcosa che ho l'impressione di non vedere mai in versione supportata, per una versione che scende da 10 a 7 come valutazione, per un ritardo che poteva essere evitato e per un senso di fregatura che mi pervade.&lt;br /&gt;&lt;br /&gt;Stay tuned...&lt;br /&gt;&lt;p&gt;Continua a leggere &lt;a href="https://blogs.aspitalia.com/sm15455/post1805/ATLAS-Meglio-ASP.NET-AJAX.aspx"&gt;&lt;em&gt;ATLAS &amp;#232; molto meglio di ASP.NET AJAX&lt;/em&gt;&lt;/a&gt;.&lt;/p&gt;&lt;hr /&gt;&lt;p&gt;&lt;a href="https://www.aspitalia.com/"&gt;(C) 2026 ASPItalia.com Network - All rights reserved&lt;/a&gt;&lt;/p&gt;</description><dc:creator>Stefano Mostarda</dc:creator><category>.Net 2.0</category><guid isPermaLink="true">https://blogs.aspitalia.com/sm15455/post1805/ATLAS-Meglio-ASP.NET-AJAX.aspx</guid><slash:comments>5</slash:comments><wfw:comment>https://blogs.aspitalia.com/sm15455/post1805/ATLAS-Meglio-ASP.NET-AJAX.aspx#feedback</wfw:comment><wfw:commentRss>https://blogs.aspitalia.com/SM15455/CommentRSS1805.aspx</wfw:commentRss><trackback:ping>https://blogs.aspitalia.com/services/trackback.aspx?PostID=1805</trackback:ping></item><item><title>DataBinding con ATLAS</title><link>https://blogs.aspitalia.com/sm15455/post1755/DataBinding-ATLAS.aspx</link><pubDate>Mon, 02 Oct 2006 22:01:00 GMT</pubDate><description>&lt;img src="https://blogs.aspitalia.com/services/counter_rss.aspx?PostID=1755" border="0" style="width:1px; height:1px;" /&gt;La semplicità con cui ATLAS risolve alcune cose è veramente disarmante. Il databinding è tra queste.&lt;br /&gt;&lt;br /&gt;Prendiamo questo scenario: una griglia da riempire, n° textbox in cui inserire i dati con cui popolare la griglia. Un bottone per tramutare i dati nei textbox in una nuova riga nella griglia.&lt;br /&gt;Abbiamo ben 3 possibilità tecnologicamente diverse, ognuna con al suo interno altre differenze. Prendiamole in esame:&lt;br /&gt;1. UpdatePanel (ovvero, basta poco che ce vo?) Questa soluzione prevede lo sforzo minimo, cioè circondare i nostri controlli con un bell'UpdatePanel, effettuare la programmazione lato server e lasciare ad ATLAS il compito di sopprimere il postback sostituendolo con una chiamata asincrona. Bello.... Ma? Ma si consumano risorse abbastanza inutilmente, devo solo popolare una griglia e posso farlo benissimo lato client. Anche se l'impressione è che la pagina non viene postata al server, in realtà le informazioni che viaggiano sono le stesse di un postback reale (anche di più a volte). In definitiva, soluzione da scartare a priori a meno che non si debba mettere mano a codice esistente e non si ha molto tempo a disposizione.&lt;br /&gt;&lt;br /&gt;2. DataBinding tramite DataService. Questa soluzione prevede l'uso di un WebService speciale denominato DataService che ha dei metodi che vengono richiamati quando si inserisce aggiorna o elimina un record nella griglia. il Binding tra griglia e dati inseriti viene fatto a mano sul client sfruttando una ListView. Bello... Però? Però i dataservice sono un'entità a parte, non facilmente integrabili con l'aggiornamento di altri controlli che possoono essere sulla pagina e che devono popolare il db in maniera transazionale.&lt;br /&gt;&lt;br /&gt;3. DataBinding manuale. Non molti lo sanno, ma ATLAS ha una classe client chiamata DataTable e che ha le stesse funzionalità di quella omonima lato server. Il nostro codice popola la DataTable che a sua volta è collegata alla griglia (ListView) che quindi si aggiorna. Al momento di salvare i dati, si serializza la DataTable e sul server la si deserializza così da ottenere una lista che a questo punto è già nella pagina ed è facilmente integrabile nella gestione transazinale degli aggiornamenti.&lt;br /&gt;&lt;br /&gt;Io adoro la terza soluzione perchè con poco codice mi da controllo completo e risultato perfetto. Inoltre, se comparata ad una soluzione simile senza ATLAS il risparmio di tempo è incredibile.&lt;br /&gt;&lt;br /&gt;Stay Tuned...&lt;br /&gt;
&lt;p&gt;&lt;strong&gt;Tags:&lt;/strong&gt; &lt;a href="https://tags.aspitalia.com/AJAX/" rel="tag"&gt;AJAX&lt;/a&gt;, &lt;a href="https://tags.aspitalia.com/ASP.NET/" rel="tag"&gt;ASP.NET&lt;/a&gt;, &lt;a href="https://tags.aspitalia.com/ASP.NET_2.0/" rel="tag"&gt;ASP.NET 2.0&lt;/a&gt;, &lt;a href="https://tags.aspitalia.com/ASP.NET_AJAX/" rel="tag"&gt;ASP.NET AJAX&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Continua a leggere &lt;a href="https://blogs.aspitalia.com/sm15455/post1755/DataBinding-ATLAS.aspx"&gt;&lt;em&gt;DataBinding con ATLAS&lt;/em&gt;&lt;/a&gt;.&lt;/p&gt;&lt;hr /&gt;&lt;p&gt;&lt;a href="https://www.aspitalia.com/"&gt;(C) 2026 ASPItalia.com Network - All rights reserved&lt;/a&gt;&lt;/p&gt;</description><dc:creator>Stefano Mostarda</dc:creator><category>.Net 2.0, AJAX, ASP.NET, ASP.NET 2.0, ASP.NET AJAX</category><guid isPermaLink="true">https://blogs.aspitalia.com/sm15455/post1755/DataBinding-ATLAS.aspx</guid><slash:comments>2</slash:comments><wfw:comment>https://blogs.aspitalia.com/sm15455/post1755/DataBinding-ATLAS.aspx#feedback</wfw:comment><wfw:commentRss>https://blogs.aspitalia.com/SM15455/CommentRSS1755.aspx</wfw:commentRss><trackback:ping>https://blogs.aspitalia.com/services/trackback.aspx?PostID=1755</trackback:ping></item><item><title>Attributi e Validazione del querystrig</title><link>https://blogs.aspitalia.com/sm15455/post1725/Attributi-Validazione-Querystrig.aspx</link><pubDate>Sun, 03 Sep 2006 22:05:00 GMT</pubDate><description>&lt;img src="https://blogs.aspitalia.com/services/counter_rss.aspx?PostID=1725" border="0" style="width:1px; height:1px;" /&gt;Ultimamente sto lavorando parecchio con gli attributi perchè li trovo estremamente più comodi di un'interfaccia o di una proprietà. &lt;br /&gt;&lt;br /&gt;Detto questo, una delle esigenze più comuni è quella di validare il querystring per verificare che i dati siano tutti presenti e corretti. Scrivere ogni volta il codice di controllo mi risulta tedioso e anche affidarmi ad un file di configurazione e ad un metodo di helper per generalizzare il compito mi risulta poco efficace all'atto pratico perchè per capire la validazione devo consultare un secondo file. Alla fine gli attributi mi sono tornati utili anche qui: si decora la classe della pagina con un attributo custom (ad esempio RequiredQueryStringField) passando in input il nome del campo del querystring da validare. Nell'evento Page_Load chiamo un metodo di helper che scorre gli attributi della classe e mi valida il querystring. Se poi la chiamata la metto in una classe base da cui tutte le pagine derivano ecco che il codice si annulla e ci si deve preoccupare solo di inserire gli atributi.  &lt;br /&gt;Risultato: Querystring validato, codice pulito e leggibile, niente file esterni.&lt;br /&gt;&lt;br /&gt;In realtà ho pensato anche un HttpModule che scatena la validazione prima dell'esecuzione della pagina, ma poichè voglio permettere anche una validazione custom, un po' alla CustomValidator per capirci, devo ancora pensarci bene.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;[RequiredQueryStringField(&amp;quot;id&amp;quot;)]&lt;br /&gt;public class MyPage : Page{&lt;br /&gt;  private void Page_Load(object sender, EventArgs e){&lt;br /&gt;            Helper.Validate(this)&lt;br /&gt;  }&lt;br /&gt;}&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;con questo snippet mi assicuro che il valore della chiave &amp;quot;id&amp;quot; nel querystring sia presente. Comodo no ;).&lt;br /&gt;&lt;br /&gt;P.S. Appena avrò fatto chiarezza sull'HttpModule vedrete tutto pubblicato sul lab.&lt;br /&gt;&lt;br /&gt;Stay tuned...&lt;br /&gt;&lt;p&gt;Continua a leggere &lt;a href="https://blogs.aspitalia.com/sm15455/post1725/Attributi-Validazione-Querystrig.aspx"&gt;&lt;em&gt;Attributi e Validazione del querystrig&lt;/em&gt;&lt;/a&gt;.&lt;/p&gt;&lt;hr /&gt;&lt;p&gt;&lt;a href="https://www.aspitalia.com/"&gt;(C) 2026 ASPItalia.com Network - All rights reserved&lt;/a&gt;&lt;/p&gt;</description><dc:creator>Stefano Mostarda</dc:creator><category>.Net 2.0</category><guid isPermaLink="true">https://blogs.aspitalia.com/sm15455/post1725/Attributi-Validazione-Querystrig.aspx</guid><slash:comments>6</slash:comments><wfw:comment>https://blogs.aspitalia.com/sm15455/post1725/Attributi-Validazione-Querystrig.aspx#feedback</wfw:comment><wfw:commentRss>https://blogs.aspitalia.com/SM15455/CommentRSS1725.aspx</wfw:commentRss><trackback:ping>https://blogs.aspitalia.com/services/trackback.aspx?PostID=1725</trackback:ping></item><item><title>Un elogio ai VirtualPathProvider</title><link>https://blogs.aspitalia.com/sm15455/post1631/Elogio-VirtualPathProvider.aspx</link><pubDate>Sat, 10 Jun 2006 09:25:00 GMT</pubDate><description>&lt;img src="https://blogs.aspitalia.com/services/counter_rss.aspx?PostID=1631" border="0" style="width:1px; height:1px;" /&gt;Premessa.&lt;br /&gt;Ricordo ancora che la prima volta che vidi un VirtualPathProvider in azione, rimasi folgorato sulla via di Damasco e mi posi subito una domanda: &amp;quot;E che .... ci faccio con sta cosa???&amp;quot; La verve con cui il relatore tedesco mi parlava di questa feature era quella di un uomo che dopo anni aveva finalmente risolto i suoi problemi, ma io ancora rimanevo perplesso.&lt;br /&gt;&lt;br /&gt;Situazione.&lt;br /&gt;Verso marzo ho cominciato a lavorare ad un framework che dovrebbe gestire alcune problematiche comuni delle applicazioni web sviluppate nell'azienda in cui lavoro. Un'esigenza è quella di creare un sistema di news con un custom control per visualizzarle ed una pagina per inserirle. Qui scattava il mio dubbio, creare una pagina e copiarla su ogni sito cambiando solo lo stile è una scelta che proprio non mi piaceva, ma non trovavo un modo alternativo soddisfacente. &lt;br /&gt;&lt;br /&gt;Soluzione.&lt;br /&gt;Dopo qualche giorno mi sono ricordato della faccia entusiasta del tedesco ed ho finalmente capito perchè. Con il VirtualPathProvider posso inserire la pagina (poi diventata uno usercontrol, in un punto qualsiasi ed utilizzarla in ogni applicazione. Quindi, ho inglobato lo UserControls per inserire le news in un assembly, come risorsa, ed ho creato un VirtualPathProvider che recepisce le richieste per quell controllo. Se ci mettiamo anche un HttpModule che carica il provider quando parte l'applicazione, si riesce a creare un vero e proprio modulo pluggabile.&lt;br /&gt;&lt;br /&gt;Conclusione.&lt;br /&gt;Insomma i VirtualPathProviders sono qualcosa che risolve alcuni problemi comuni di pacchettizzazione e non solo. D'ora in poi li userò molto spesso anche se devo capire bene alcuni comportamenti in fase di compilazione, ma credetemi, quando ho parlato ai miei colleghi per la prima volta del VirtualPathProvider avevo la stessa gioia di quel tedescone che mi parlava tempo fa. (ed ovviamente i colleghi mi guardavano un pò allibiti) :D.&lt;br /&gt;&lt;br /&gt;Stay Tuned...&lt;br /&gt;
&lt;p&gt;Continua a leggere &lt;a href="https://blogs.aspitalia.com/sm15455/post1631/Elogio-VirtualPathProvider.aspx"&gt;&lt;em&gt;Un elogio ai VirtualPathProvider&lt;/em&gt;&lt;/a&gt;.&lt;/p&gt;&lt;hr /&gt;&lt;p&gt;&lt;a href="https://www.aspitalia.com/"&gt;(C) 2026 ASPItalia.com Network - All rights reserved&lt;/a&gt;&lt;/p&gt;</description><dc:creator>Stefano Mostarda</dc:creator><category>.Net 2.0</category><guid isPermaLink="true">https://blogs.aspitalia.com/sm15455/post1631/Elogio-VirtualPathProvider.aspx</guid><slash:comments>10</slash:comments><wfw:comment>https://blogs.aspitalia.com/sm15455/post1631/Elogio-VirtualPathProvider.aspx#feedback</wfw:comment><wfw:commentRss>https://blogs.aspitalia.com/SM15455/CommentRSS1631.aspx</wfw:commentRss><trackback:ping>https://blogs.aspitalia.com/services/trackback.aspx?PostID=1631</trackback:ping></item><item><title>ATLAS ed i profile e membership services</title><link>https://blogs.aspitalia.com/sm15455/post1541/ATLAS-Profile-Membership-Services.aspx</link><pubDate>Sun, 02 Apr 2006 14:44:00 GMT</pubDate><description>&lt;img src="https://blogs.aspitalia.com/services/counter_rss.aspx?PostID=1541" border="0" style="width:1px; height:1px;" /&gt;ATLAS ha un supporto molto semplice per l'interazione con i WebServices. Grazie a questo supporto possiamo fare in modo che qualunque dato sia disponibile per il client. Proprio in quest'ottica, Microsoft ha rilasciato 2 WebServices predefiniti per l'accesso alle Membership API e al Profile API. Grazie al primo, possiamo effettuare le operazioni di login, logout e validazione delle credenziali di accesso, mentre con il secondo possiamo accedere ai dati del Profilo Utente. Il primo WS può essere invocato solo da codice JS, mentre il secondo può essere sfruttato anche dallo script-xml per eseguire il binding con i campi presenti nella form.&lt;br /&gt;&lt;br /&gt;Grazie ad ATLAS, il gap tra client e server si riduce sempre di più e la possibilità di creare interfacce molto più gradevoli, in maniera molto più semplice si fa concreta. L'approccio AJAX ha sicuramente le sue lacune, ma siamo agli albori di questa tecnica (anche se si basa su tecnologie a dir poco antiche), si migliorerà. &lt;br /&gt;&lt;br /&gt;Inutile dire che ai Comminity Days ci sarà uno spazio dedicato anche a questa feature. Si accomodino gente, si accomodino :D&lt;br /&gt;&lt;br /&gt;Stay tuned...&lt;br /&gt;&lt;p&gt;Continua a leggere &lt;a href="https://blogs.aspitalia.com/sm15455/post1541/ATLAS-Profile-Membership-Services.aspx"&gt;&lt;em&gt;ATLAS ed i profile e membership services&lt;/em&gt;&lt;/a&gt;.&lt;/p&gt;&lt;hr /&gt;&lt;p&gt;&lt;a href="https://www.aspitalia.com/"&gt;(C) 2026 ASPItalia.com Network - All rights reserved&lt;/a&gt;&lt;/p&gt;</description><dc:creator>Stefano Mostarda</dc:creator><category>.Net 2.0</category><guid isPermaLink="true">https://blogs.aspitalia.com/sm15455/post1541/ATLAS-Profile-Membership-Services.aspx</guid><slash:comments>0</slash:comments><wfw:comment>https://blogs.aspitalia.com/sm15455/post1541/ATLAS-Profile-Membership-Services.aspx#feedback</wfw:comment><wfw:commentRss>https://blogs.aspitalia.com/SM15455/CommentRSS1541.aspx</wfw:commentRss><trackback:ping>https://blogs.aspitalia.com/services/trackback.aspx?PostID=1541</trackback:ping></item><item><title>Atlas: Forse &amp;#232; arrivato il momento di pensarci</title><link>https://blogs.aspitalia.com/sm15455/post1404/Atlas-Forse-Arrivato-Momento-Pensarci.aspx</link><pubDate>Fri, 23 Dec 2005 20:27:00 GMT</pubDate><description>&lt;img src="https://blogs.aspitalia.com/services/counter_rss.aspx?PostID=1404" border="0" style="width:1px; height:1px;" /&gt;&lt;p&gt;AJAX sta sempre più prendendo piede e Microsoft è rimasta un pò ai margini di questa tecnica. Vuoi perchè è stata pubblicata durante il consolidamento da beta a RTM della suite 2005, vuoi perchè sia stato sottovalutato l'enorme successo che sta riscuotendo, insomma vuoi quello che ti pare, fatto sta che Microsoft non è in gara (per ora).&lt;/p&gt;&lt;p&gt;Con la stessa tempestività di Zenga su Caniggia ai Mondiali di Italia 90, la Microsoft aveva annunciato in prima estate che avrebbe reso disponibile un toolkit per AJAX denominandolo ATLAS. E' bello sapere che durante la fase di testing hanno anche il tempo di pensare a cose nuove, &amp;quot;allora già funziona tutto&amp;quot; è quello che ho pensato un pò scetticamente, bah. &lt;/p&gt;&lt;p&gt;Fatto sta che per far uscire una CTP di ATLAS per la PDC05, è stato presentato un framework talmente ben fatto che probabilmente nemmeno Totti e Di Canio (che si sa essere 2 menti geniali) avrebbero saputo fare di meglio. Nell'architettura di un'applicazione web, AJAX deve essere un qualcosa di esterno al core, un'estensione (non uso questa parola a caso). Un pò come il caching, va pianificato sin dall'inizio, ma deve essere solo un servizio in più.&lt;/p&gt;&lt;p&gt;Fatto sta che dopo le tonnellate di critiche, i papà di ATLAS hanno rivisto tutto dalle fondamenta regalandoci per Natale una nuova fiammante CTP. :). Della vecchia versione è rimasto solo il modello a oggetti Javascript e qualcosa dello scripting XML per l'interazione tra gli oggetti. Per il resto è stato tutto buttato al mare. Il concetto base è che ATLAS non è più una scelta esclusiva come prima (o ATLAS o modello a postback) ma un qualcosa che estende i controlli attuali. Prima di parlare approfonditamente di ATLAS voglio provarlo per bene, e credo che per questo periodo di feste sarà il mio tarlo informatico, insieme a Poseidon ovviamente ;).&lt;/p&gt;&lt;p&gt;In finale, a prima vista ATLAS non mi dispiace. C'è ancora da lavorare, ma stavolta la base è quella giusta, quindi è ora di partire alla scoperta di questo nuovo mondo.&lt;/p&gt;&lt;p&gt;Continua a leggere &lt;a href="https://blogs.aspitalia.com/sm15455/post1404/Atlas-Forse-Arrivato-Momento-Pensarci.aspx"&gt;&lt;em&gt;Atlas: Forse &amp;#232; arrivato il momento di pensarci&lt;/em&gt;&lt;/a&gt;.&lt;/p&gt;&lt;hr /&gt;&lt;p&gt;&lt;a href="https://www.aspitalia.com/"&gt;(C) 2026 ASPItalia.com Network - All rights reserved&lt;/a&gt;&lt;/p&gt;</description><dc:creator>Stefano Mostarda</dc:creator><category>.Net 2.0</category><guid isPermaLink="true">https://blogs.aspitalia.com/sm15455/post1404/Atlas-Forse-Arrivato-Momento-Pensarci.aspx</guid><slash:comments>1</slash:comments><wfw:comment>https://blogs.aspitalia.com/sm15455/post1404/Atlas-Forse-Arrivato-Momento-Pensarci.aspx#feedback</wfw:comment><wfw:commentRss>https://blogs.aspitalia.com/SM15455/CommentRSS1404.aspx</wfw:commentRss><trackback:ping>https://blogs.aspitalia.com/services/trackback.aspx?PostID=1404</trackback:ping></item><item><title>Localizzazione con asp.net 2.0</title><link>https://blogs.aspitalia.com/sm15455/post1246/Localizzazione-Asp.net-2.0.aspx</link><pubDate>Mon, 19 Sep 2005 22:36:00 GMT</pubDate><description>&lt;img src="https://blogs.aspitalia.com/services/counter_rss.aspx?PostID=1246" border="0" style="width:1px; height:1px;" /&gt;Una delle tante cose che sono migliorate con .Net 2.0 è la gestione della localizzazione. Per default il fremework mette a disposizione i classici file di risorse (.resx), ma il modello è facilmente estendibile. Le risorse vengono suddivise in 2 categorie: Globali e locali. Le prime vengono definite creando un directory speciale nella root dell'applicazione (App_GlobalResources) e inserendo li i file di risorse con le localizzazioni. Il vantaggio che queste offrono rispetto alle risorse locali è che, grazie ad un BuildProvider, si ha a disposizione l'autocompletion nel codice. Se dichiariamo una variabile localizzata &amp;quot;NomeGruppo&amp;quot;, basta scrivere nel codice Resources.NomeGruppo per ottenere il valore tradotto. Bello no ;). Le risorse locali sono quelle definite per ogni singola pagina e vengono definite in una directory speciale (App_LocalResources) creata nella stessa directory in cui si trova la pagina. Queste non hanno autocompletion e soprattutto essendo locali valgono solo per la pagina a cui si riferiscono, quindi non sono riutilizzabili. Infine nela pagina una nuova sintassi permette una facile associazione delle risorse (sia locali che gobali) alle proprietà dei contolli.&lt;br /&gt;&lt;br /&gt;La vera bellezza di questo framework è che non è chiuso. Infatti utilizzando una bruttissima copia del ProviderModel, per cui il .NET 2.0 è famoso, è possibile utilizzare altre risorse per contenere i dati localizzati: file xml, database, ecc ecc. Alla base di tutto c'è la classe ResourceProviderFactory (da cui bisogna derivare) che contiene 2 metodi astratti che devono istanziare le classi che gestiscono le risorse private e quelle publiche. Queste classi devono implementare l'interfaccia IResourceProvider che dichiara i metodi che verranno chiamati al momento di localizzare i contenuti. Si può creare un BuildProvider ad-hoc per leggere le chiavi e creare l'autocompletion anche per la nostra risorsa custom. Nel web.config dell'applicazione si dichiara la classe di factory, l'eventuale BuildProvider ed il gioco è fatto. &lt;br /&gt;&lt;br /&gt;Ma qui scatta la brutta copia del ProviderModel o l'AntiPattern se vogliamo. Se ho già una factory, perchè ereditare da questa e crearne un'altra per istanziare solo una determinata classe? Non ha senso. Avrebbe molto più senso che si definissero in fase di configurazione le 2 classi da istanziare dinamicamente e lasciarlo fare alla factory di base. Bah, certe cose della Class Library mi lasciano un pò perplesso. Ci voleva così poco...&lt;br /&gt;&lt;br /&gt;Stay tuned...&lt;br /&gt;&lt;p&gt;Continua a leggere &lt;a href="https://blogs.aspitalia.com/sm15455/post1246/Localizzazione-Asp.net-2.0.aspx"&gt;&lt;em&gt;Localizzazione con asp.net 2.0&lt;/em&gt;&lt;/a&gt;.&lt;/p&gt;&lt;hr /&gt;&lt;p&gt;&lt;a href="https://www.aspitalia.com/"&gt;(C) 2026 ASPItalia.com Network - All rights reserved&lt;/a&gt;&lt;/p&gt;</description><dc:creator>Stefano Mostarda</dc:creator><category>.Net 2.0</category><guid isPermaLink="true">https://blogs.aspitalia.com/sm15455/post1246/Localizzazione-Asp.net-2.0.aspx</guid><slash:comments>0</slash:comments><wfw:comment>https://blogs.aspitalia.com/sm15455/post1246/Localizzazione-Asp.net-2.0.aspx#feedback</wfw:comment><wfw:commentRss>https://blogs.aspitalia.com/SM15455/CommentRSS1246.aspx</wfw:commentRss><trackback:ping>https://blogs.aspitalia.com/services/trackback.aspx?PostID=1246</trackback:ping></item><item><title>CacheDependency non pi&amp;#249; sealed</title><link>https://blogs.aspitalia.com/sm15455/post1066/CacheDependency-Sealed.aspx</link><pubDate>Mon, 23 May 2005 22:59:00 GMT</pubDate><description>&lt;img src="https://blogs.aspitalia.com/services/counter_rss.aspx?PostID=1066" border="0" style="width:1px; height:1px;" /&gt;&lt;p&gt;All'inizio non ci avevo fatto caso, ma la cosa era abbastanza ovvia vista l'implementazione della classe SqlDependency: finalmente è stata aperta la classe CacheDependency. Nella versione 1.x questa classe è sealed, impedendo quindi una personalizzazione per i propri fini. Nella prossima versione, invece, potremo finalmente creare delle dipendenze customizzate per gli oggetti in cache. Il primo caso che mi viene in mente è far spirare un oggetto in base ad un webservice, per un CMS può essere utile piazzare una dipendenza su un feed RSS, o altro ancora.&lt;/p&gt;&lt;p&gt;L'implementazione è anche piuttosto semplice e si basa su un polling effettuato sulla risorsa da cui dipende l'oggetto in cache. Nel momento in cui il risultato del polling cambia, viene invocato il metodo NotifyDependencyChanged che fa scattare l'invalidazione di tutti gli oggetti della cache che dipendono da questo. In questa implementazione la durata dell'oggetto in cache viene basata sul risultato del metodo GetData del WS WSData.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;code&gt;static Timer _timer;&lt;br /&gt;private int _data;&lt;/p&gt;&lt;p&gt;public WSDependency()&lt;br /&gt;{&lt;br /&gt;  _timer = new Timer(new TimerCallback(CallBack), this, 20, 20000);&lt;br /&gt;  _data = GetData();&lt;br /&gt;}&lt;/p&gt;&lt;p&gt;protected override void DependencyDispose()&lt;br /&gt;{&lt;br /&gt;  _timer.Dispose();&lt;br /&gt;  base.DependencyDispose();&lt;br /&gt;}&lt;/p&gt;&lt;p&gt;protected void CallBack(object sender)&lt;br /&gt;{&lt;br /&gt;  int appData = GetData();&lt;br /&gt;  if (appData != _data)&lt;br /&gt;  {&lt;br /&gt;    ((WSDependency)sender).NotifyDependencyChanged(sender, EventArgs.Empty);&lt;br /&gt;  }&lt;br /&gt;}&lt;/p&gt;&lt;p&gt;public int GetData()&lt;br /&gt;{&lt;br /&gt;  WSData ws = new WSData();&lt;br /&gt;  return ws.GetData();&lt;br /&gt;}&lt;/p&gt;&lt;/code&gt;&lt;p&gt;Continua a leggere &lt;a href="https://blogs.aspitalia.com/sm15455/post1066/CacheDependency-Sealed.aspx"&gt;&lt;em&gt;CacheDependency non pi&amp;#249; sealed&lt;/em&gt;&lt;/a&gt;.&lt;/p&gt;&lt;hr /&gt;&lt;p&gt;&lt;a href="https://www.aspitalia.com/"&gt;(C) 2026 ASPItalia.com Network - All rights reserved&lt;/a&gt;&lt;/p&gt;</description><dc:creator>Stefano Mostarda</dc:creator><category>.Net 2.0</category><guid isPermaLink="true">https://blogs.aspitalia.com/sm15455/post1066/CacheDependency-Sealed.aspx</guid><slash:comments>0</slash:comments><wfw:comment>https://blogs.aspitalia.com/sm15455/post1066/CacheDependency-Sealed.aspx#feedback</wfw:comment><wfw:commentRss>https://blogs.aspitalia.com/SM15455/CommentRSS1066.aspx</wfw:commentRss><trackback:ping>https://blogs.aspitalia.com/services/trackback.aspx?PostID=1066</trackback:ping></item><item><title>Piccolo bug nell&amp;#39;intellisense del Web.config in Whidbey Beta 2</title><link>https://blogs.aspitalia.com/sm15455/post1039/Piccolo-Bug-Nelintellisense-Web.config-Whidbey-Beta.aspx</link><pubDate>Mon, 02 May 2005 22:39:00 GMT</pubDate><description>&lt;img src="https://blogs.aspitalia.com/services/counter_rss.aspx?PostID=1039" border="0" style="width:1px; height:1px;" /&gt;&lt;p&gt;Ieri mentre stavo testando il sistema di profiling di Asp.Net 2.0, mi sono accorto di un bug nell'intellisense di Visual Studio 2005. Questo si manifesta quando si cerca di aggiungere degli elementi nel tag &amp;quot;properties&amp;quot; a sua volta contnuto nel nodo &amp;quot;profile&amp;quot;: VS chiude subito il tag &amp;quot;properties&amp;quot; senza dare alcun aiuto. L'intellisense per questo file viene generata tramite il file DotNetConfig.xsd presente nella cartella Schema/XML di VS. Esaminando questo file, ho visto che qualcuno del DevTeam di Microsoft si è &amp;quot;dimenticato&amp;quot; di inserire il codice per il tag in questione. &lt;/p&gt;&lt;p&gt;Per ora ho fatto una modifica al file e a prima vista sembra funzionare tutto, appena faccio qualche test in più lo pubblicherò. :)&lt;/p&gt;&lt;p /&gt;&lt;p&gt;Stay Tuned...&lt;/p&gt;&lt;p&gt;Continua a leggere &lt;a href="https://blogs.aspitalia.com/sm15455/post1039/Piccolo-Bug-Nelintellisense-Web.config-Whidbey-Beta.aspx"&gt;&lt;em&gt;Piccolo bug nell&amp;#39;intellisense del Web.config in Whidbey Beta 2&lt;/em&gt;&lt;/a&gt;.&lt;/p&gt;&lt;hr /&gt;&lt;p&gt;&lt;a href="https://www.aspitalia.com/"&gt;(C) 2026 ASPItalia.com Network - All rights reserved&lt;/a&gt;&lt;/p&gt;</description><dc:creator>Stefano Mostarda</dc:creator><category>.Net 2.0</category><guid isPermaLink="true">https://blogs.aspitalia.com/sm15455/post1039/Piccolo-Bug-Nelintellisense-Web.config-Whidbey-Beta.aspx</guid><slash:comments>0</slash:comments><wfw:comment>https://blogs.aspitalia.com/sm15455/post1039/Piccolo-Bug-Nelintellisense-Web.config-Whidbey-Beta.aspx#feedback</wfw:comment><wfw:commentRss>https://blogs.aspitalia.com/SM15455/CommentRSS1039.aspx</wfw:commentRss><trackback:ping>https://blogs.aspitalia.com/services/trackback.aspx?PostID=1039</trackback:ping></item><item><title>Post-Cache Substitution</title><link>https://blogs.aspitalia.com/sm15455/post1036/PostCache-Substitution.aspx</link><pubDate>Thu, 28 Apr 2005 18:09:00 GMT</pubDate><description>&lt;img src="https://blogs.aspitalia.com/services/counter_rss.aspx?PostID=1036" border="0" style="width:1px; height:1px;" /&gt;&lt;p&gt;In Whidbey, una delle grandi novità è rappresentata dalla possibilità di far spirare la cache in base alla modifica di una tabella nel db o di un set di dati tornati da un SqlCommand. Sfogliando la rete, ho notato che questa nuova feature ne ha fatta passare in secondo piano un'altra che trovo altrettanto interessante: la Post-Cache Substitution. Grazie a questa si può modificare una porzione di una pagina in cache rendendola dinamica. Ad esempio, si puo mostrare l'ora sempre aggiornata, pur mettendo in cache l'intera pagina per diverso tempo.&lt;/p&gt;&lt;p&gt;Nella versione attuale del Framework la cosa poteva essere ottenuta disabilitando il cache di pagina e spezzettando il codice in diversi usercontrol. &lt;/p&gt;&lt;p&gt;Nel futuro, invece, avremo a disposizione dei controlli di base che già implementano questa tecnica: l'AdRotator e uno che ha un nome che dice tutto &amp;quot;Substitution&amp;quot;. Se poi si volesse creare un proprio controllo che sfrutta questa tecnica, allora dovremo seguire alcuni passi:&lt;/p&gt;&lt;p&gt;1. Creare un metodo che fa da wrapper al rendering del controllo e che accetta in input un oggetto HttpContext.&lt;/p&gt;&lt;p&gt;2. In fase di rendering, creare un delegato di tipo HttpResponseSubstitutionCallback che punta al metodo creato e poi chiamare il metodo WriteSubstitution della classe HttpResponse passando il delegato appena creato.&lt;/p&gt;&lt;p&gt;Io lo trovo eccezionale tanto quanto il SqlCaching, non so voi... :)&lt;/p&gt;&lt;p /&gt;&lt;p&gt;Stay tuned...&lt;/p&gt;&lt;p&gt;Continua a leggere &lt;a href="https://blogs.aspitalia.com/sm15455/post1036/PostCache-Substitution.aspx"&gt;&lt;em&gt;Post-Cache Substitution&lt;/em&gt;&lt;/a&gt;.&lt;/p&gt;&lt;hr /&gt;&lt;p&gt;&lt;a href="https://www.aspitalia.com/"&gt;(C) 2026 ASPItalia.com Network - All rights reserved&lt;/a&gt;&lt;/p&gt;</description><dc:creator>Stefano Mostarda</dc:creator><category>.Net 2.0</category><guid isPermaLink="true">https://blogs.aspitalia.com/sm15455/post1036/PostCache-Substitution.aspx</guid><slash:comments>0</slash:comments><wfw:comment>https://blogs.aspitalia.com/sm15455/post1036/PostCache-Substitution.aspx#feedback</wfw:comment><wfw:commentRss>https://blogs.aspitalia.com/SM15455/CommentRSS1036.aspx</wfw:commentRss><trackback:ping>https://blogs.aspitalia.com/services/trackback.aspx?PostID=1036</trackback:ping></item><item><title>Nullable Types e performance</title><link>https://blogs.aspitalia.com/sm15455/post665/Nullable-Types-Performance.aspx</link><pubDate>Thu, 07 Oct 2004 23:17:00 GMT</pubDate><description>&lt;img src="https://blogs.aspitalia.com/services/counter_rss.aspx?PostID=665" border="0" style="width:1px; height:1px;" /&gt;
NT = Nullable Type/s;&lt;br /&gt;&lt;br /&gt;L'ultimo aspetto che ho voluto analizzare sui NT sono le performance. Un NT può essere assegnato ad un altro nullable type o ad un tipo, viceversa un tipo puo essere assegnato ad un NT.&lt;br /&gt;Traducendo nel buon vecchio caro e amato codice:&lt;br /&gt;Da NT a NT&lt;br /&gt;    int? a = 10;&lt;br /&gt;    int? b = a;&lt;br /&gt;Da NT a tipo&lt;br /&gt;    int? a = 10;&lt;br /&gt;    int b = a.Value;&lt;br /&gt;Da tipo a NT&lt;br /&gt;    int a = 10;&lt;br /&gt;    int? b = a;&lt;br /&gt;&lt;br /&gt;Questo è il risultato di 3 cicli ognuno dei quali esegue un tipo di assegnazione per 100000 volte.&lt;br /&gt;    Da NT a NT - 0.015195&lt;br /&gt;    Da NT a int - 0.025019&lt;br /&gt;    Da int a NT - 0.006064&lt;br /&gt;&lt;br /&gt;Per dare un'idea, facendo un ciclo tra semplici tipi int il tempo impiegato è stato 0.000655.&lt;br /&gt;&lt;br /&gt;E con questo ho concluso il mio excursus sui Nullable Types. :)&lt;br /&gt;&lt;p&gt;Continua a leggere &lt;a href="https://blogs.aspitalia.com/sm15455/post665/Nullable-Types-Performance.aspx"&gt;&lt;em&gt;Nullable Types e performance&lt;/em&gt;&lt;/a&gt;.&lt;/p&gt;&lt;hr /&gt;&lt;p&gt;&lt;a href="https://www.aspitalia.com/"&gt;(C) 2026 ASPItalia.com Network - All rights reserved&lt;/a&gt;&lt;/p&gt;</description><dc:creator>Stefano Mostarda</dc:creator><category>.Net 2.0</category><guid isPermaLink="true">https://blogs.aspitalia.com/sm15455/post665/Nullable-Types-Performance.aspx</guid><slash:comments>0</slash:comments><wfw:comment>https://blogs.aspitalia.com/sm15455/post665/Nullable-Types-Performance.aspx#feedback</wfw:comment><wfw:commentRss>https://blogs.aspitalia.com/SM15455/CommentRSS665.aspx</wfw:commentRss><trackback:ping>https://blogs.aspitalia.com/services/trackback.aspx?PostID=665</trackback:ping></item><item><title>Approfondimento sui Nullable Types</title><link>https://blogs.aspitalia.com/sm15455/post661/Approfondimento-Nullable-Types.aspx</link><pubDate>Wed, 06 Oct 2004 19:45:00 GMT</pubDate><description>&lt;img src="https://blogs.aspitalia.com/services/counter_rss.aspx?PostID=661" border="0" style="width:1px; height:1px;" /&gt;Devo ammetterlo, i Nullable Types mi piacciono molto. Reflector alla mano, sono andato alla scoperta di come questi vengono implementati. &lt;br /&gt;In realta si tratta di un elegante &amp;quot;workaround&amp;quot;. Non potendo un tipo per valore essere null, un Nullable Type non è altro che una struct che fa da wrapper per il tipo. Questo viene definito a Design-Time grazie ai Generics. &lt;br /&gt;La struct ha 2 proprietà, la prima è Value che contiene il valore, la seconda è HasValue che indica se il valore è presente o meno. Quando si assegna il valore null, la proprietà Value viene settata al valore di default del tipo (0 per int, stringa vuota per le string, ecc.) e la proprietà HasValue a false, in caso di assegnazione di un valore corretto Value ha il valore e HasValue è true. Nel getter del Value se il valore di HasValue è false viene generata un'eccezione simulando così il valore null.&lt;br /&gt;&lt;br /&gt;Questo meccanismo può essere implementato anche per la versione attuale del Framework, ma bisogna creare una classe per ogni tipo, mentre per la versione futura, grazie ai Generics questo non è stato necessario.&lt;br /&gt;
&lt;p&gt;Continua a leggere &lt;a href="https://blogs.aspitalia.com/sm15455/post661/Approfondimento-Nullable-Types.aspx"&gt;&lt;em&gt;Approfondimento sui Nullable Types&lt;/em&gt;&lt;/a&gt;.&lt;/p&gt;&lt;hr /&gt;&lt;p&gt;&lt;a href="https://www.aspitalia.com/"&gt;(C) 2026 ASPItalia.com Network - All rights reserved&lt;/a&gt;&lt;/p&gt;</description><dc:creator>Stefano Mostarda</dc:creator><category>.Net 2.0</category><guid isPermaLink="true">https://blogs.aspitalia.com/sm15455/post661/Approfondimento-Nullable-Types.aspx</guid><slash:comments>0</slash:comments><wfw:comment>https://blogs.aspitalia.com/sm15455/post661/Approfondimento-Nullable-Types.aspx#feedback</wfw:comment><wfw:commentRss>https://blogs.aspitalia.com/SM15455/CommentRSS661.aspx</wfw:commentRss><trackback:ping>https://blogs.aspitalia.com/services/trackback.aspx?PostID=661</trackback:ping></item><item><title>Non male questi Nullable Types</title><link>https://blogs.aspitalia.com/sm15455/post660/Male-Nullable-Types.aspx</link><pubDate>Tue, 05 Oct 2004 22:36:00 GMT</pubDate><description>&lt;img src="https://blogs.aspitalia.com/services/counter_rss.aspx?PostID=660" border="0" style="width:1px; height:1px;" /&gt;&lt;p&gt;&lt;!--StartFragment --&gt;Ho finito di leggere le specifiche del C# 2.0, ma, invece che dai Generics, sono rimaso affascinato da altre cose come i Nullable Types. Questi consentono, finalmente, di assegnare un valore nullo anche hai tipi per valore(o Value-Type). &lt;/p&gt;&lt;p&gt;Il campo di applicazione più vasto è quello relativo al colloquio con i DB. Proprio quache giorno fa, mi trovavo davanti alla necessità di dover creare una classe che salvasse dei dati su DB. Questa doveva accettare dei valori interi e stringhe che, però, potevano essere nulli. Potevo creare una classe o una struct che facessero da wrapper, ma per mancanza di tempo (un classico) ho dovuto fare la &amp;quot;zozzata&amp;quot; ed usare un object perdendo così la tipizzazione (Mi sono ripromesso di modificarlo appena possibile). Nel 2.0, con questa nuova feature, si potra mantenere la tipizzazione dei dati senza scrivere codice aggiuntivo.&lt;/p&gt;&lt;p&gt;Esempio&lt;/p&gt;&lt;p&gt;Versione 1.x&lt;/p&gt;&lt;p&gt;void Proc(object dato);&lt;/p&gt;&lt;p&gt;void Proc(IntWrapper dato);&lt;/p&gt;&lt;p&gt;Versione 2.x&lt;/p&gt;&lt;p&gt;void Proc(int? dato);&lt;/p&gt;&lt;p&gt;Elegante no?&lt;/p&gt;&lt;p&gt;Continua a leggere &lt;a href="https://blogs.aspitalia.com/sm15455/post660/Male-Nullable-Types.aspx"&gt;&lt;em&gt;Non male questi Nullable Types&lt;/em&gt;&lt;/a&gt;.&lt;/p&gt;&lt;hr /&gt;&lt;p&gt;&lt;a href="https://www.aspitalia.com/"&gt;(C) 2026 ASPItalia.com Network - All rights reserved&lt;/a&gt;&lt;/p&gt;</description><dc:creator>Stefano Mostarda</dc:creator><category>.Net 2.0</category><guid isPermaLink="true">https://blogs.aspitalia.com/sm15455/post660/Male-Nullable-Types.aspx</guid><slash:comments>0</slash:comments><wfw:comment>https://blogs.aspitalia.com/sm15455/post660/Male-Nullable-Types.aspx#feedback</wfw:comment><wfw:commentRss>https://blogs.aspitalia.com/SM15455/CommentRSS660.aspx</wfw:commentRss><trackback:ping>https://blogs.aspitalia.com/services/trackback.aspx?PostID=660</trackback:ping></item></channel></rss>