<?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:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>blogs.ASPItalia.com</title><link>http://blogs.aspitalia.com/nostromo/</link><description>blogs.ASPItalia.com</description><language>it-it</language><managingEditor>noreply(at)aspitalia.com(blogs.ASPItalia.com)</managingEditor><webMaster>daniele(at)aspitalia.com(Daniele Bochicchio)</webMaster><copyright>1998-2008 ASPItalia.com/blogs.ASPItalia.com</copyright><generator>Generated by feed.ASPItalia.com 'Weyoh' 2008.10.11</generator><sy:updatePeriod>hourly</sy:updatePeriod><sy:updateFrequency>1</sy:updateFrequency><sy:updateBase>1998-01-01T12:00+00:00</sy:updateBase><image><title>blogs.ASPItalia.com</title><url>http://gui.aspitalia.com/images/aspitalia_syndication.gif</url><link>http://blogs.aspitalia.com/nostromo/</link></image><item><title>Un DataSource per il Profile</title><link>http://blogs.aspitalia.com/nostromo/post2403/DataSource-Profile.aspx</link><pubDate>Fri, 10 Oct 2008 16:32:00 GMT</pubDate><description>&lt;img src='http://blogs.aspitalia.com/services/counter_rss.aspx?PostID=2403' border="0" style="width:1px; height:1px;" /&gt;&lt;p&gt;se come me diventare sempre pià prigri e anche un FindControl diventa faticoso, apprezzere sicuramente i vari xxxDataSource.&lt;/p&gt;&lt;p&gt;ma quando avete a che fare con il Profile? &lt;/p&gt;&lt;p&gt;bhe realizziamone uno ad hoc, così non ci perdiamo nessun automatismo &lt;img alt="smile_teeth" src="http://spaces.live.com/rte/emoticons/smile_teeth.gif" /&gt;&lt;/p&gt;&lt;code&gt;&lt;p&gt;using System;&lt;br /&gt;using System.Web;&lt;br /&gt;using System.Collections.ObjectModel;&lt;br /&gt;using System.Web.UI;&lt;br /&gt;using System.Web.Profile;&lt;br /&gt;using System.Collections;&lt;/p&gt;&lt;p&gt;namespace MyCustomControl&lt;br /&gt;{&lt;br /&gt;    public class ProfileDataSourceControl : DataSourceControl&lt;br /&gt;    {&lt;br /&gt;        protected override DataSourceView GetView(string viewName)&lt;br /&gt;        {&lt;br /&gt;            return new ProfileView(this, viewName);&lt;br /&gt;        }&lt;br /&gt;    }&lt;/p&gt;&lt;p&gt;    public class ProfileView : DataSourceView&lt;br /&gt;    {&lt;br /&gt;        private ProfileBase _profile = null;&lt;br /&gt;        private HttpContext _context = null;&lt;/p&gt;&lt;p&gt;        public ProfileView(IDataSource owner, string viewName): base(owner, viewName)&lt;br /&gt;        {&lt;br /&gt;            _context = HttpContext.Current;&lt;br /&gt;            if (_context == null)&lt;br /&gt;            {&lt;br /&gt;                throw new ApplicationException(&amp;quot;Impossibile ricavare il contesto della chiamata&amp;quot;);&lt;br /&gt;            }&lt;br /&gt;            _profile = _context.Profile;&lt;br /&gt;        }&lt;/p&gt;&lt;p&gt;        protected override System.Collections.IEnumerable ExecuteSelect(DataSourceSelectArguments arguments)&lt;br /&gt;        {&lt;br /&gt;            return new Collection&lt;profilebase /&gt;() { _profile };&lt;br /&gt;        }&lt;/p&gt;&lt;p&gt;        protected override int ExecuteInsert(IDictionary values)&lt;br /&gt;        {&lt;br /&gt;            _profile = ProfileBase.Create(_context.User.Identity.Name, _context.User.Identity.IsAuthenticated);&lt;br /&gt;            foreach (DictionaryEntry item in values)&lt;br /&gt;            {&lt;br /&gt;                _profile[item.Key.ToString()] = item.Value;&lt;br /&gt;            }&lt;br /&gt;            _profile.Save();&lt;br /&gt;            return 0;&lt;br /&gt;        }&lt;/p&gt;&lt;p&gt;        protected override int ExecuteUpdate(IDictionary keys, IDictionary values, IDictionary oldValues)&lt;br /&gt;        {&lt;br /&gt;            foreach (DictionaryEntry item in values)&lt;br /&gt;            {&lt;br /&gt;                _profile[item.Key.ToString()] = values[item.Key.ToString()];&lt;br /&gt;            }&lt;br /&gt;            _profile.Save();&lt;br /&gt;            return 0;&lt;br /&gt;        }&lt;/p&gt;&lt;p&gt;        protected override int ExecuteDelete(IDictionary keys, IDictionary oldValues)&lt;br /&gt;        {&lt;br /&gt;            foreach (DictionaryEntry item in oldValues)&lt;br /&gt;            {&lt;br /&gt;                _profile[item.Key.ToString()] = null;&lt;br /&gt;            }&lt;br /&gt;            _profile.Save();&lt;br /&gt;            return 0;&lt;br /&gt;        }&lt;br /&gt;    }&lt;/p&gt;&lt;p&gt;}&lt;/p&gt;&lt;/code&gt;il codice non è completo, ad esempio non prendo mai in cosiderazione mai i vecchi valori e le chiavi, ma per farlo ci vuole davvero poco&lt;p /&gt;&lt;p&gt;nel lab trovare altri &lt;a onclick="function anonymous()
{
function anonymous()
{
function anonymous()
{
function anonymous()
{
blankUrl(this.href); return false;
}
}
}
}" href="http://lab.aspitalia.com/50/ftpdatasource-datasource-ftp.aspx"&gt;xxxDataSource&lt;/a&gt; creati da &lt;a onclick="function anonymous()
{
function anonymous()
{
function anonymous()
{
function anonymous()
{
blankUrl(this.href); return false;
}
}
}
}" href="http://www.aspitalia.com/autori/cristian_civera.aspx"&gt;Cristian&lt;/a&gt;&lt;/p&gt;&lt;hr /&gt;&lt;p&gt;&lt;a href="http://www.aspitalia.com/"&gt;(C) 2008 ASPItalia.com Network - All rights reserved&lt;/a&gt;&lt;/p&gt;</description><dc:creator>Marco Leoncini</dc:creator><category>asp.net</category><guid isPermaLink="true">http://blogs.aspitalia.com/nostromo/post2403/DataSource-Profile.aspx</guid><slash:comments>2</slash:comments><wfw:comments>http://blogs.aspitalia.com/nostromo/post2403/DataSource-Profile.aspx#feedback</wfw:comments><wfw:commentRss>http://blogs.aspitalia.com/nostromo/CommentRSS2403.aspx</wfw:commentRss><trackback:ping>http://blogs.aspitalia.com/services/trackback.aspx?PostID=2403</trackback:ping></item><item><title>Un Anello per domarli, un Anello per trovarli, Un Anello per ghernirli e nel buio incatenarli,</title><link>http://blogs.aspitalia.com/nostromo/post2381/Anello-Domarli-Anello-Trovarli-Anello-Ghernirli-Buio.aspx</link><pubDate>Wed, 03 Sep 2008 23:24:00 GMT</pubDate><description>&lt;img src='http://blogs.aspitalia.com/services/counter_rss.aspx?PostID=2381' border="0" style="width:1px; height:1px;" /&gt;&lt;p&gt;&lt;img align="baseline" src="http://byfiles.storage.live.com/y1pYs5ikKNrAg8aiPYYSPWYSjLjomDPOGeZ6-M2Tdlu6dhTQr2kVmtKTv0VMfykovf1" border="0" hspace="0" complete="true" /&gt;&lt;br /&gt;il giorno si sta sempre più avvicinando...di che giorno si tratta? del giorno in cui ricevo l'anello... ma con meno poteri...l'anello del matrimonio.&lt;/p&gt;&lt;p&gt;Domenica 7 settembre alle 16:00:00&lt;/p&gt;&lt;p&gt;con tutta probabilità sarò un pò assente da giovedi sera, fino alla fine di settembre, a presto!&lt;/p&gt;&lt;p&gt;ciao marco&lt;/p&gt;&lt;p /&gt;&lt;p /&gt;&lt;p&gt;&lt;strong&gt;Tags:&lt;/strong&gt; &lt;a href="http://tags.aspitalia.com/Off_Topic/" rel="tag"&gt;Off Topic&lt;/a&gt;&lt;/p&gt;&lt;hr /&gt;&lt;p&gt;&lt;a href="http://www.aspitalia.com/"&gt;(C) 2008 ASPItalia.com Network - All rights reserved&lt;/a&gt;&lt;/p&gt;</description><dc:creator>Marco Leoncini</dc:creator><category>Live Life, Off Topic</category><guid isPermaLink="true">http://blogs.aspitalia.com/nostromo/post2381/Anello-Domarli-Anello-Trovarli-Anello-Ghernirli-Buio.aspx</guid><slash:comments>20</slash:comments><wfw:comments>http://blogs.aspitalia.com/nostromo/post2381/Anello-Domarli-Anello-Trovarli-Anello-Ghernirli-Buio.aspx#feedback</wfw:comments><wfw:commentRss>http://blogs.aspitalia.com/nostromo/CommentRSS2381.aspx</wfw:commentRss><trackback:ping>http://blogs.aspitalia.com/services/trackback.aspx?PostID=2381</trackback:ping></item><item><title>Blend ostaggio di WPF</title><link>http://blogs.aspitalia.com/nostromo/post2347/Blend-Ostaggio-WPF.aspx</link><pubDate>Wed, 30 Jul 2008 15:20:00 GMT</pubDate><description>&lt;img src='http://blogs.aspitalia.com/services/counter_rss.aspx?PostID=2347' border="0" style="width:1px; height:1px;" /&gt;&lt;p&gt;Si Blend è ostaggio di WPF, o meglio del modello a oggetti di WPF.&lt;/p&gt;&lt;p&gt;Quello che un tool dovrebbe fare è nascondere la complessità di un sistema, o quanto meno renderne agevole l'utilizzo.&lt;/p&gt;&lt;p&gt;Prendiamo un esempio, una semplice animazione, il classico rettangolo che si sposta per lo schermo, in Blend selezionato un KeyFrame e vi trovate le proprietà del KeyFrame: &lt;a href="http://blogs.aspitalia.com/img/nostromo/MS1.jpg"&gt; fig1&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Secondo me è un errore, se selezione un KeyFrame mi aspetto di vedere i valori della proprietà in quell'istante, per far questo, con precisione certosina (azzardatevi a disattivare lo snap sulla TimeLine) spostate la testina di riproduzione sul KeyFrame.&lt;/p&gt;&lt;p&gt;Quello che Blend dovrebbe fare  &lt;a href="http://blogs.aspitalia.com/img/nostromo/NV1.jpg"&gt;fig2&lt;/a&gt; è visualizzare come detto, le proprietà dell'oggetto in quel KeyFrame e permetterne la modifica, di conseguenza spostare le impostazione relative all'accelerazione sotto la TimeLine mostrando l'andamento completo tra i vari KeyFrame in modo da avere una visione completa.&lt;/p&gt;&lt;p&gt;Come accennai tempo &lt;a href="http://blogs.aspitalia.com/nostromo/post2316/Volta-Scorda-Mai.aspx"&gt;fa&lt;/a&gt; non mi va di criticare e basta, mi piace proporre, questo è uno dei tanti (spero) post che farò su Blend&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Tags:&lt;/strong&gt; &lt;a href="http://tags.aspitalia.com/.NET_Framework_3.0/" rel="tag"&gt;.NET Framework 3.0&lt;/a&gt;, &lt;a href="http://tags.aspitalia.com/Expression_Blend/" rel="tag"&gt;Expression Blend&lt;/a&gt;, &lt;a href="http://tags.aspitalia.com/Microsoft_Expression/" rel="tag"&gt;Microsoft Expression&lt;/a&gt;, &lt;a href="http://tags.aspitalia.com/Windows_Presentation_Foundation/" rel="tag"&gt;Windows Presentation Foundation&lt;/a&gt;&lt;/p&gt;&lt;hr /&gt;&lt;p&gt;&lt;a href="http://www.aspitalia.com/"&gt;(C) 2008 ASPItalia.com Network - All rights reserved&lt;/a&gt;&lt;/p&gt;</description><dc:creator>Marco Leoncini</dc:creator><category>work in progress, .NET Framework 3.0, Expression Blend, Microsoft Expression, Windows Presentation Foundation</category><guid isPermaLink="true">http://blogs.aspitalia.com/nostromo/post2347/Blend-Ostaggio-WPF.aspx</guid><slash:comments>5</slash:comments><wfw:comments>http://blogs.aspitalia.com/nostromo/post2347/Blend-Ostaggio-WPF.aspx#feedback</wfw:comments><wfw:commentRss>http://blogs.aspitalia.com/nostromo/CommentRSS2347.aspx</wfw:commentRss><trackback:ping>http://blogs.aspitalia.com/services/trackback.aspx?PostID=2347</trackback:ping></item><item><title>Vacanze</title><link>http://blogs.aspitalia.com/nostromo/post2348/Vacanze.aspx</link><pubDate>Wed, 30 Jul 2008 14:16:00 GMT</pubDate><description>&lt;img src='http://blogs.aspitalia.com/services/counter_rss.aspx?PostID=2348' border="0" style="width:1px; height:1px;" /&gt;&lt;p&gt;Più o meno &lt;a href="http://blogs.aspitalia.com/nostromo/post2102/Ore-Fine.aspx"&gt;in questo periodo dell'anno&lt;/a&gt; mi preparavo per partire per il mare e chiudere l'anno.&lt;/p&gt;&lt;p&gt;Si per me l'anno non finisce a dicembre ma ad agosto, che ci volete fare sono strano (ho comprato un iPhone).&lt;br /&gt;Ma quest'anno niente, solo lavoro.&lt;/p&gt;&lt;p&gt;Tirando un bilancio dell'anno appena concluso :D , non posso fare a meno di notare luci e ombre, tra le luci l'esperienza di &lt;a href="http://blogs.aspitalia.com/nostromo/post2316/Volta-Scorda-Mai.aspx"&gt;speaker&lt;/a&gt;, veramente istruttiva, la conferma della nomina &lt;a href="http://blogs.aspitalia.com/nostromo/post2201/Anno-MVP.aspx"&gt;MVP&lt;/a&gt; e la visita a &lt;a href="http://blogs.aspitalia.com/nostromo/post2277/MVP-Summit-2008-Settimana.aspx"&gt;Seattle&lt;/a&gt;, per ultima ma non per importanza l'esperienza di lavorare in MTV con &lt;a href="http://blogs.aspitalia.com/imperugo/"&gt;Ugo&lt;/a&gt;, &lt;a href="http://blogs.aspitalia.com/daniele/"&gt;Daniele&lt;/a&gt;, &lt;a href="http://blogs.aspitalia.com/SM15455/"&gt;Stefano&lt;/a&gt; e &lt;a href="http://blogs.aspitalia.com/novecento/"&gt;Alessio&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Ombre, le ombre sono tutte personali, onestamente sono poco soddisfatto delle &amp;quot;performance&amp;quot; di quest'anno sia sul lavoro sia come collaboratore del network.&lt;/p&gt;&lt;p&gt;Stanco e poco lucido mi distraggo facilmente, tutto questo ha fatto calare la qualità dei miei contributi sia sul forum sia  nel lavoro.&lt;/p&gt;&lt;p&gt;Questa scarsa attenzione e fatica mi ha fatto pensare che forse il Developer non fosse il lavoro per me, e magari che le mia erano due braccia rubate all'agricoltura.&lt;/p&gt;&lt;p&gt;Non sono del tutto convito che il realtà non sia così, ma ho deciso di continuare, continuare a farvi compagnia che sia piacevole o meno :D&lt;/p&gt;&lt;p&gt;a quelli che possono, buone vacanze!&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Tags:&lt;/strong&gt; &lt;a href="http://tags.aspitalia.com/Off_Topic/" rel="tag"&gt;Off Topic&lt;/a&gt;&lt;/p&gt;&lt;hr /&gt;&lt;p&gt;&lt;a href="http://www.aspitalia.com/"&gt;(C) 2008 ASPItalia.com Network - All rights reserved&lt;/a&gt;&lt;/p&gt;</description><dc:creator>Marco Leoncini</dc:creator><category>Live Life, Off Topic</category><guid isPermaLink="true">http://blogs.aspitalia.com/nostromo/post2348/Vacanze.aspx</guid><slash:comments>0</slash:comments><wfw:comments>http://blogs.aspitalia.com/nostromo/post2348/Vacanze.aspx#feedback</wfw:comments><wfw:commentRss>http://blogs.aspitalia.com/nostromo/CommentRSS2348.aspx</wfw:commentRss><trackback:ping>http://blogs.aspitalia.com/services/trackback.aspx?PostID=2348</trackback:ping></item><item><title>TrueSpace 7 gratuito</title><link>http://blogs.aspitalia.com/nostromo/post2343/TrueSpace-Gratuito.aspx</link><pubDate>Thu, 24 Jul 2008 08:59:00 GMT</pubDate><description>&lt;img src='http://blogs.aspitalia.com/services/counter_rss.aspx?PostID=2343' border="0" style="width:1px; height:1px;" /&gt;&lt;p&gt;Tempo fa MS acquista Caligari, è di ieri &lt;a href="http://blogs.msdn.com/virtualearth/archive/2008/07/23/announcing-truespace-for-virtual-earth-3d-development.aspx"&gt;l'annuncio&lt;/a&gt; che TrueSpace diventa completamente gratuito e si integra con VE (Virtual Earth).&lt;/p&gt;&lt;p&gt;OK BELLO (scusate mi sto alterando)&lt;/p&gt;&lt;p&gt;qualcuno potrebbe rammentare a MS che WPF offre un supporto 3D, e che ancora oggi passati 2 anni dall'uscita non esiste un modellatore serio (non mi parlate di ZAM 3D per carità) che possa aiutare un grafico a creare qualcosa di più complesso di un cubo.&lt;/p&gt;&lt;p&gt;detto questo correte a scaricarlo&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Tags:&lt;/strong&gt; &lt;a href="http://tags.aspitalia.com/.NET_Framework_3.0/" rel="tag"&gt;.NET Framework 3.0&lt;/a&gt;, &lt;a href="http://tags.aspitalia.com/Windows_Presentation_Foundation/" rel="tag"&gt;Windows Presentation Foundation&lt;/a&gt;&lt;/p&gt;&lt;hr /&gt;&lt;p&gt;&lt;a href="http://www.aspitalia.com/"&gt;(C) 2008 ASPItalia.com Network - All rights reserved&lt;/a&gt;&lt;/p&gt;</description><dc:creator>Marco Leoncini</dc:creator><category>asp.net, .NET Framework 3.0, Windows Presentation Foundation</category><guid isPermaLink="true">http://blogs.aspitalia.com/nostromo/post2343/TrueSpace-Gratuito.aspx</guid><slash:comments>0</slash:comments><wfw:comments>http://blogs.aspitalia.com/nostromo/post2343/TrueSpace-Gratuito.aspx#feedback</wfw:comments><wfw:commentRss>http://blogs.aspitalia.com/nostromo/CommentRSS2343.aspx</wfw:commentRss><trackback:ping>http://blogs.aspitalia.com/services/trackback.aspx?PostID=2343</trackback:ping></item><item><title>adesso dico la mia sull'Iphone</title><link>http://blogs.aspitalia.com/nostromo/post2341/Adesso-Dico-Iphone.aspx</link><pubDate>Tue, 22 Jul 2008 08:33:00 GMT</pubDate><description>&lt;img src='http://blogs.aspitalia.com/services/counter_rss.aspx?PostID=2341' border="0" style="width:1px; height:1px;" /&gt;&lt;p&gt;Prendo spunto da questo post di &lt;a href="http://community.ugiss.org/blogs/lbianchi/archive/2008/07/22/bellissima-sull-iphone.aspx"&gt;Luca Bianchi&lt;/a&gt; per dire la mia sull'IPhone che possiedo più o meno da Aprile.&lt;/p&gt;&lt;p&gt;Premessa non ricordo soldi spesi peggio.&lt;br /&gt;&lt;br /&gt;Il telefono si è bello da vedere, ma i mille sensori di cui è costellato iphone servono solo per TRE applicazioni, le foto e ipod e safari.&lt;/p&gt;&lt;p&gt;Per il resto se siete abituati a cambiare l'orientamento del desktop del vostro smartphone, cosa che con un banale Windows Mobile 6 è possibile fare con la pressione di un tasto, scordatevelo non è possibile.&lt;/p&gt;&lt;p&gt;volete scorrere le vostre chiamate recenti mentre telefonate per dare un numero ad un amico? scordatevelo&lt;/p&gt;&lt;p&gt;volete cancellare un file sincronizzato con itunes? scordatevelo&lt;/p&gt;&lt;p&gt;volete sincronizzare la posta? scordatevelo, io ci ho rinunciato, cosa che il mio vecchio HTC Touch facevo senza cliccare nulla.&lt;/p&gt;&lt;p&gt;volete cancellare un singolo sms? scordatevelo dovete cancellare tutta la conversazione, perché gli sms sono memorizzati a mo di chat.&lt;/p&gt;&lt;p&gt;Che dire, venderà e ha veduto un botto perché è apple.&lt;/p&gt;&lt;p&gt;sono ancora indeciso su cosa farne, se usarlo come ferma carte, visto quanto pesa o come tostapane visto quanto scalda dopo 10 minuti di telefonate.&lt;/p&gt;&lt;p&gt; la tanto decantata durata della batterie, insostituibile se non in un centro assistenza, è solo un illusione anche senza telefonare ogni 2 gg va caricata.&lt;/p&gt;&lt;p&gt;insomma passata l'euforia iniziale passati a giocherellare con le icone non rimane veramente nulla, niente video, niente mms, niente download niente copia&amp;amp;incolla e la lista è veramente lunga...&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt;&lt;strong&gt;Tags:&lt;/strong&gt; &lt;a href="http://tags.aspitalia.com/Off_Topic/" rel="tag"&gt;Off Topic&lt;/a&gt;&lt;/p&gt;&lt;hr /&gt;&lt;p&gt;&lt;a href="http://www.aspitalia.com/"&gt;(C) 2008 ASPItalia.com Network - All rights reserved&lt;/a&gt;&lt;/p&gt;</description><dc:creator>Marco Leoncini</dc:creator><category>asp.net, Off Topic</category><guid isPermaLink="true">http://blogs.aspitalia.com/nostromo/post2341/Adesso-Dico-Iphone.aspx</guid><slash:comments>7</slash:comments><wfw:comments>http://blogs.aspitalia.com/nostromo/post2341/Adesso-Dico-Iphone.aspx#feedback</wfw:comments><wfw:commentRss>http://blogs.aspitalia.com/nostromo/CommentRSS2341.aspx</wfw:commentRss><trackback:ping>http://blogs.aspitalia.com/services/trackback.aspx?PostID=2341</trackback:ping></item><item><title>Come tutto ebbe inizio</title><link>http://blogs.aspitalia.com/nostromo/post2337/Inizio.aspx</link><pubDate>Mon, 21 Jul 2008 07:22:00 GMT</pubDate><description>&lt;img src='http://blogs.aspitalia.com/services/counter_rss.aspx?PostID=2337' border="0" style="width:1px; height:1px;" /&gt;&lt;p&gt;Visto che &lt;a href="http://blogs.aspitalia.com/imperugo/post2329/How-Got-Started-Software-Development.aspx"&gt;Ughetto&lt;/a&gt; minaccia di non parlarmi più eccomi quà  raccontarvi la mia poca originale storia di Dev.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;A quale età hai cominciato a programmare?&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Onestamente penso di non aver ancora iniziato, ma ricordi fumosi puntano al periodo C64 appena uscito e dei libroni di Basic.&lt;strong&gt;&lt;br /&gt;&lt;br /&gt;Come hai cominciato a programmare?&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Quando me lo hanno chiesto, prima era un hobby poco frequentato pure.&lt;strong&gt;&lt;br /&gt;&lt;br /&gt;Qual?è stato il tuo primo linguaggio di programmazione?&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Basic.&lt;br /&gt;&lt;strong&gt;&lt;br /&gt;Qual?è stato il primo programma vero che hai scritto?&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Una form Basic per l'inserimento di qualcosa che non ricordo :D, era un esempio preso da un libro&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Quali linguaggi hai usato da quando hai cominciato a programmare?&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Diciamo C#, prima ne ho utilizzati altri tipo Lingo :D :D&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Quando è stato il tuo primo vero lavoro da programmatore?&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;C'è poco che sento mio, quindi per adesso risposta non pervenuta&lt;strong&gt;&lt;br /&gt;&lt;br /&gt;Con il senno di poi, rifaresti lo stesso il programmatore? Ricominceresti a programmare?&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;No credo di no, sarei un biologo, un ricercatore un archeologo o un astronauta o un XMan.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Se ci fosse una cosa che hai imparato nella tua carriera e che vorresti dire ai giovani programmatori, cosa diresti?&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Non programmare il prevedibile ma pensare all'imprevedibile, non escludere l'impossibile perché spesso è la prima cosa che si verifica.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Qual?è la cosa più divertente che hai programmato?&lt;br /&gt;&lt;br /&gt;&lt;/strong&gt;L'addio al celibato di un mio amico.&lt;br /&gt;&lt;strong&gt;&lt;br /&gt;Adesso è l?ora di taggare qualcun?altro...&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;vediamo, il mio collega che è in ferie &lt;a href="http://blogs.aspitalia.com/novecento/"&gt;novecento&lt;/a&gt;, e poi &lt;a href="http://blogs.aspitalia.com/az/"&gt;Andrea Zani&lt;/a&gt;, perche ho avuto il piacere di incontrarlo una volta sola &lt;/p&gt;&lt;p&gt;&lt;strong&gt;Tags:&lt;/strong&gt; &lt;a href="http://tags.aspitalia.com/Off_Topic/" rel="tag"&gt;Off Topic&lt;/a&gt;&lt;/p&gt;&lt;hr /&gt;&lt;p&gt;&lt;a href="http://www.aspitalia.com/"&gt;(C) 2008 ASPItalia.com Network - All rights reserved&lt;/a&gt;&lt;/p&gt;</description><dc:creator>Marco Leoncini</dc:creator><category>asp.net, Off Topic</category><guid isPermaLink="true">http://blogs.aspitalia.com/nostromo/post2337/Inizio.aspx</guid><slash:comments>5</slash:comments><wfw:comments>http://blogs.aspitalia.com/nostromo/post2337/Inizio.aspx#feedback</wfw:comments><wfw:commentRss>http://blogs.aspitalia.com/nostromo/CommentRSS2337.aspx</wfw:commentRss><trackback:ping>http://blogs.aspitalia.com/services/trackback.aspx?PostID=2337</trackback:ping></item><item><title>un Provider Custom per l'health monitoring</title><link>http://blogs.aspitalia.com/nostromo/post2325/Provider-Custom-Health-Monitoring.aspx</link><pubDate>Mon, 14 Jul 2008 23:11:00 GMT</pubDate><description>&lt;img src='http://blogs.aspitalia.com/services/counter_rss.aspx?PostID=2325' border="0" style="width:1px; height:1px;" /&gt;&lt;p&gt;In un &lt;a href="http://blogs.aspitalia.com/nostromo/post2317/MailWebEventProvider-Perche-Public-Abstract.aspx"&gt;precedente&lt;/a&gt; post mi lamentavo della scarsa estendibilità della classe MailWebEventProvider e affini , alla fine mi sono deciso a implementare un provider completamente personalizzato, più semplice, senza buffer.&lt;br /&gt;Ho già parlato del &lt;a href="http://www.aspitalia.com/script/789/Custom-Provider-Health-Monitoring-Output-Formato-RSS.aspx"&gt;Health Monitoring&lt;/a&gt; Lo trovo comodo e quando posso mi piace estenderlo.&lt;br /&gt;&lt;br /&gt;using System;&lt;br /&gt;using System.Web.Management;&lt;br /&gt;using System.Web;&lt;br /&gt;using System.Net.Mail;&lt;br /&gt;using System.IO;&lt;br /&gt;using System.Collections.Specialized;&lt;br /&gt;using log4net;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;namespace TopSeed&lt;br /&gt;{&lt;br /&gt;    public class MyTemplatedMailWebEventProvidert : WebEventProvider&lt;br /&gt;    {&lt;br /&gt;        #region CAMPI PRIVATI&lt;/p&gt;&lt;p&gt;        private static readonly object _lockObject = new object();&lt;br /&gt;        private static ILog _logger = LogManager.GetLogger(&amp;quot;TopSeed&amp;quot;);&lt;/p&gt;&lt;p&gt;        #endregion &lt;/p&gt;&lt;p&gt;        #region PROPRIETA' PUBBLICHE&lt;br /&gt;       &lt;br /&gt;        public string Subject { get; set; }&lt;br /&gt;        public string Template { get; set; }&lt;br /&gt;        public string To { get; set; }&lt;br /&gt;        public string From { get; set; }&lt;br /&gt;        &lt;br /&gt;        #endregion&lt;/p&gt;&lt;p&gt;        #region METODI PUBBLICI&lt;br /&gt;       &lt;br /&gt;        public MyTemplatedMailWebEventProvidert() { }&lt;/p&gt;&lt;p&gt;        public override void Initialize(string name, NameValueCollection config)&lt;br /&gt;        {&lt;br /&gt;            base.Initialize(name, config);&lt;/p&gt;&lt;p&gt;            lock (_lockObject)&lt;br /&gt;            {&lt;br /&gt;                Subject =  HttpUtility.HtmlEncode(GetAndRemoveConfig(&amp;quot;subject&amp;quot;, config));&lt;br /&gt;                Template = GetAndRemoveConfig(&amp;quot;template&amp;quot;, config);&lt;br /&gt;                To = GetAndRemoveConfig(&amp;quot;to&amp;quot;, config);&lt;br /&gt;                From = GetAndRemoveConfig(&amp;quot;from&amp;quot;, config);&lt;br /&gt;            }&lt;/p&gt;&lt;p&gt;        }&lt;/p&gt;&lt;p&gt;        public override void ProcessEvent(WebBaseEvent raisedEvent)&lt;br /&gt;        {&lt;br /&gt;            if (raisedEvent != null)&lt;br /&gt;            {&lt;br /&gt;                HttpContext.Current.Items.Add(&amp;quot;MyTemplatedMailWebEventProvidertCurrentEvent&amp;quot;, raisedEvent);&lt;br /&gt;                SendMail();&lt;br /&gt;            }&lt;br /&gt;        }&lt;/p&gt;&lt;p&gt;        public override void Shutdown() { }&lt;/p&gt;&lt;p&gt;        public override void Flush() { }&lt;br /&gt;        &lt;br /&gt;        #endregion&lt;/p&gt;&lt;p&gt;        #region METODI PROTETTI&lt;/p&gt;&lt;p&gt;        protected string GetMailBody()&lt;br /&gt;        {&lt;br /&gt;            using (TextWriter stringWriter = new StringWriter())&lt;br /&gt;            {&lt;br /&gt;                HttpContext.Current.Server.Execute(&amp;quot;~/MailMessage.aspx&amp;quot;, stringWriter);&lt;/p&gt;&lt;p&gt;                return stringWriter.ToString();&lt;br /&gt;            }&lt;br /&gt;        }&lt;/p&gt;&lt;p&gt;        protected void SendMail()&lt;br /&gt;        {&lt;br /&gt;            try&lt;br /&gt;            {&lt;br /&gt;                SmtpClient _smtpClient = new SmtpClient();&lt;/p&gt;&lt;p&gt;                using (MailMessage _message = new MailMessage(From, To))&lt;br /&gt;                {&lt;br /&gt;                    _message.Body = GetMailBody();&lt;br /&gt;                    _message.IsBodyHtml = true;&lt;br /&gt;                    _message.Subject = Subject;&lt;br /&gt;                    _smtpClient.Send(_message);&lt;br /&gt;                }&lt;/p&gt;&lt;p&gt;            }&lt;br /&gt;            catch(Exception ex)&lt;br /&gt;            {&lt;br /&gt;                LogError(ex);&lt;br /&gt;            }&lt;br /&gt;        }&lt;/p&gt;&lt;p&gt;        protected void LogError(Exception ex)&lt;br /&gt;        {&lt;br /&gt;            _logger.Error(&amp;quot;Impossibile inviare la mail&amp;quot;, ex);&lt;br /&gt;        }&lt;/p&gt;&lt;p&gt;        protected void LogInfo(string message)&lt;br /&gt;        {&lt;br /&gt;            _logger.Info(message);&lt;br /&gt;        }&lt;/p&gt;&lt;p&gt;        #endregion&lt;/p&gt;&lt;p&gt;        #region METODI SATICI&lt;br /&gt;       &lt;br /&gt;        public static WebBaseEvent CurrentNotification()&lt;br /&gt;        {&lt;br /&gt;            if (HttpContext.Current != null)&lt;br /&gt;            {&lt;br /&gt;                return (WebBaseEvent)HttpContext.Current.Items[&amp;quot;MyTemplatedMailWebEventProvidertCurrentEvent&amp;quot;];&lt;br /&gt;            }&lt;br /&gt;            else&lt;br /&gt;            {&lt;br /&gt;                throw new ApplicationException(&amp;quot;Impossibile recuperare il contesto http corrente&amp;quot;);&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;        &lt;br /&gt;        #endregion &lt;/p&gt;&lt;p&gt;        #region METODI PRIVATI&lt;br /&gt;       &lt;br /&gt;        private string GetAndRemoveConfig(string key, NameValueCollection config)&lt;br /&gt;        {&lt;br /&gt;            if (config[key] == null)&lt;br /&gt;            {&lt;br /&gt;                throw new ApplicationException(string.Format(&amp;quot;Impossibile recuperare il campo {0} delle impostazioni&amp;quot;, key));&lt;br /&gt;            }&lt;br /&gt;            else&lt;br /&gt;            {&lt;br /&gt;                string _value = config[key];&lt;br /&gt;                config.Remove(key);&lt;br /&gt;                return _value;&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;        &lt;br /&gt;        #endregion&lt;br /&gt;    }&lt;br /&gt;}&lt;/p&gt;&lt;p&gt;il funzionamento è simile alla classe &lt;span id="nsrTitle"&gt;TemplatedMailWebEventProvider, è possibile specificare una pagina aspx da utilizzare come template, ed è possibile recuperare l'evento corrente per estrarne le informazioni&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Tags:&lt;/strong&gt; &lt;a href="http://tags.aspitalia.com/.NET_Framework/" rel="tag"&gt;.NET Framework&lt;/a&gt;, &lt;a href="http://tags.aspitalia.com/.NET_Framework_2.0/" rel="tag"&gt;.NET Framework 2.0&lt;/a&gt;, &lt;a href="http://tags.aspitalia.com/ASP.NET/" rel="tag"&gt;ASP.NET&lt;/a&gt;&lt;/p&gt;&lt;hr /&gt;&lt;p&gt;&lt;a href="http://www.aspitalia.com/"&gt;(C) 2008 ASPItalia.com Network - All rights reserved&lt;/a&gt;&lt;/p&gt;</description><dc:creator>Marco Leoncini</dc:creator><category>asp.net, .NET Framework, .NET Framework 2.0, ASP.NET</category><guid isPermaLink="true">http://blogs.aspitalia.com/nostromo/post2325/Provider-Custom-Health-Monitoring.aspx</guid><slash:comments>2</slash:comments><wfw:comments>http://blogs.aspitalia.com/nostromo/post2325/Provider-Custom-Health-Monitoring.aspx#feedback</wfw:comments><wfw:commentRss>http://blogs.aspitalia.com/nostromo/CommentRSS2325.aspx</wfw:commentRss><trackback:ping>http://blogs.aspitalia.com/services/trackback.aspx?PostID=2325</trackback:ping></item><item><title>MailWebEventProvider  perche sei public e abstract</title><link>http://blogs.aspitalia.com/nostromo/post2317/MailWebEventProvider-Perche-Public-Abstract.aspx</link><pubDate>Thu, 10 Jul 2008 15:30:00 GMT</pubDate><description>&lt;img src='http://blogs.aspitalia.com/services/counter_rss.aspx?PostID=2317' border="0" style="width:1px; height:1px;" /&gt;&lt;p&gt;in questi giorni di calura, volevo utilizzare l' health monitoring per inviare una semplice mail, all'inserimento di un nuovo record in un db.&lt;/p&gt;&lt;p&gt;non mi dilungo troppo, volevo estendere la classe TemplatedMailWebEventProvider perché ho la necessità di cambiare il subject della mail.&lt;/p&gt;&lt;p&gt;questo non è stato possibile perchè TemplatedMailWebEventProvider è sealed, ok mi dico io, no problem, estendo MailWebEventProvider che è public e abstract.&lt;/p&gt;&lt;p&gt;ok la guida dice chiaramente:&lt;/p&gt;&lt;p&gt;&lt;strong&gt;This API supports the .NET Framework infrastructure and is not intended to be used directly from your code.&lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;scioccamente penso: ma io devo fare solo due cosine semplici, istanziare tramite reflection TemplatedMailWebEventProvider, perché il costruttore è internal e utilizzarne le caratteriste di &amp;quot;templating&amp;quot; che mi piacciono.&lt;/p&gt;&lt;p&gt;ok diciamo subito che non è possibile, visto che i metodi abstract della classe MailWebEventProvider sono anche internal, quindi per me inutilizzabili.&lt;/p&gt;&lt;p&gt;quindi alla fine della fiera mi tocca ricreare una classe nuova da zero con le stesse caratteristiche di TemplatedMailWebEventProvider e tutto questo solo per cambiare il subject della mail.&lt;/p&gt;&lt;p&gt;ok magari sono io pigro e sfaticato, ma la versione asp.net 2.0 è sarà ricordata da tutti per aver introdotto l'architettura a provider, ok il provider c'è, le classi pure, solo che non puoi estenderle nemmeno per le cose semplici&lt;/p&gt;&lt;p&gt;ditemi sbaglio io?&lt;/p&gt;&lt;p&gt;visto che ci sono rifarò una classe simile a TemplatedMailWebEventProvider o la istanzierò in un provider che estende WebEventProvider, devo ancora pensare a quale soluzione adottare&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Tags:&lt;/strong&gt; &lt;a href="http://tags.aspitalia.com/.NET_Framework/" rel="tag"&gt;.NET Framework&lt;/a&gt;, &lt;a href="http://tags.aspitalia.com/.NET_Framework_2.0/" rel="tag"&gt;.NET Framework 2.0&lt;/a&gt;, &lt;a href="http://tags.aspitalia.com/ASP.NET/" rel="tag"&gt;ASP.NET&lt;/a&gt;&lt;/p&gt;&lt;hr /&gt;&lt;p&gt;&lt;a href="http://www.aspitalia.com/"&gt;(C) 2008 ASPItalia.com Network - All rights reserved&lt;/a&gt;&lt;/p&gt;</description><dc:creator>Marco Leoncini</dc:creator><category>asp.net, .NET Framework, .NET Framework 2.0, ASP.NET</category><guid isPermaLink="true">http://blogs.aspitalia.com/nostromo/post2317/MailWebEventProvider-Perche-Public-Abstract.aspx</guid><slash:comments>1</slash:comments><wfw:comments>http://blogs.aspitalia.com/nostromo/post2317/MailWebEventProvider-Perche-Public-Abstract.aspx#feedback</wfw:comments><wfw:commentRss>http://blogs.aspitalia.com/nostromo/CommentRSS2317.aspx</wfw:commentRss><trackback:ping>http://blogs.aspitalia.com/services/trackback.aspx?PostID=2317</trackback:ping></item><item><title>la prima volta non si scorda mai</title><link>http://blogs.aspitalia.com/nostromo/post2316/Volta-Scorda-Mai.aspx</link><pubDate>Thu, 10 Jul 2008 12:13:00 GMT</pubDate><description>&lt;img src='http://blogs.aspitalia.com/services/counter_rss.aspx?PostID=2316' border="0" style="width:1px; height:1px;" /&gt;&lt;p&gt;Per prima volta intendo la prima volta da speaker, ad un evento come i &lt;a href="http://www.communitydays.it/"&gt;Community Days&lt;/a&gt;, per prima cosa voglio ringraziare &lt;a href="http://blogs.aspitalia.com/daniele/"&gt;Daniele&lt;/a&gt; per la Fiducia, affidarsi a due toscanacci è sempre un incognita, come seconda cosa ringrazio le persone presenti alla sessione loro non sapevano che eravamo toscanacci :D.&lt;/p&gt;&lt;p&gt;tra i presenti un ringraziamento particolare va a &lt;a href="http://www.aspitalia.com/autori/Marco_De_Sanctis.aspx"&gt;Marco&lt;/a&gt; (non me stesso) valido collaboratore di SilverlightItalia, a &lt;a href="http://www.aspitalia.com/autori/Riccardo_Golia.aspx"&gt;Riccardo&lt;/a&gt; architetto super scalare :D, per i compliementi che ci hanno fatto, fanno molto piacere e ci spingono a fare meglio la prossima volta.&lt;/p&gt;&lt;p&gt;Un ringraziamento a &lt;a href="http://www.aspitalia.com/autori/Cristian_Civera.aspx"&gt;Cicciolo&lt;/a&gt; solo per il fatto di essere cicciolo :D, e a &lt;a href="http://www.aspitalia.com/autori/Stefano_Mostarda.aspx"&gt;Stefano&lt;/a&gt; con cui riesco sempre a scovare nuove parole....bhe non vi dico che tipo di nuove parole :D.&lt;/p&gt;&lt;p&gt;Infine le mie sensazioni, nessuno lo sa ma sono un incosciente sono pronto a dire si a qualsiasi cosa, quindi sono arrivato al giorno dell'evento abbastanza tranquillo almeno apparentemente.&lt;/p&gt;&lt;p&gt;ma l'ascella pezzata dopo i primi 30 minuti sta li ad dirmi che la tensione c'era, ma tutto sommato è andata bene, mi sono divertito e spero che al pubblico sia piaciuto il materiale che abbiamo prodotto insieme ad &lt;a href="http://www.aspitalia.com/autori/Alessio_Leoncini.aspx"&gt;Alessssssio&lt;/a&gt; (fatevi dire da lui perche ci sono tante s).&lt;/p&gt;&lt;p&gt;ci sono state alcune domande, ma ne voglio riportare solo una:&lt;/p&gt;&lt;p&gt;D: pensi che sarà mai introdotto l'intellisense in Blend, intendo nella vista XAML?&lt;/p&gt;&lt;p&gt;R: io spero che la vista XAML sparisca, perche un tool che si propone ad un pubblico di designer e creativi non deve e non può obbligarli a fare le cose a &amp;quot;mano&amp;quot;.&lt;/p&gt;&lt;p&gt;questa è una prima critica che muovo a Blend, ma siccome non mi piace criticare a  vanvera nei prossimi giorni proporrò quello che secondo me dovrebbe essere Blend, con testo e immagini.&lt;/p&gt;&lt;p&gt;concludo ringraziando davvero tutti è sempre un piacere passare anche 5 minuti con voi&lt;/p&gt;&lt;hr /&gt;&lt;p&gt;&lt;a href="http://www.aspitalia.com/"&gt;(C) 2008 ASPItalia.com Network - All rights reserved&lt;/a&gt;&lt;/p&gt;</description><dc:creator>Marco Leoncini</dc:creator><category>Live Life</category><guid isPermaLink="true">http://blogs.aspitalia.com/nostromo/post2316/Volta-Scorda-Mai.aspx</guid><slash:comments>2</slash:comments><wfw:comments>http://blogs.aspitalia.com/nostromo/post2316/Volta-Scorda-Mai.aspx#feedback</wfw:comments><wfw:commentRss>http://blogs.aspitalia.com/nostromo/CommentRSS2316.aspx</wfw:commentRss><trackback:ping>http://blogs.aspitalia.com/services/trackback.aspx?PostID=2316</trackback:ping></item><item><title>un visualizzatore di eccezioni parte 1: helper</title><link>http://blogs.aspitalia.com/nostromo/post2291/Visualizzatore-Eccezioni-Parte-1-Helper.aspx</link><pubDate>Wed, 28 May 2008 12:56:00 GMT</pubDate><description>&lt;img src='http://blogs.aspitalia.com/services/counter_rss.aspx?PostID=2291' border="0" style="width:1px; height:1px;" /&gt;&lt;p&gt;a questo&lt;a href="http://www.aspitalia.com/script/848/Gestire-Intercettare-Eccezioni-Controlli-SqlDataSource.aspx"&gt; link&lt;/a&gt; trovare un eccellente esempio di come gestire l'eccezioni sollevate dal controllo SqlDataSource.&lt;/p&gt;&lt;p&gt;Analogamente è possibile gestire l'eccezioni sollevate dai controlli ObjectDataSource e LinqDataSource.&lt;/p&gt;&lt;p&gt;Utilizzando molto, ognuno dei suddetti controlli, mi sono trovato presto a affrontare la manutenzione di una marea di pagine contenente la logica di visualizzazione delle eccezioni.&lt;/p&gt;&lt;p&gt;ho deciso quindi di realizzare un WebControl che associato a un DataSourceControl potesse intercettare l'eccezioni e visualizzare.&lt;/p&gt;&lt;p&gt;per prima cosa ci creeremo una serie di metodi helper, per associare runtime un gestore all'evento , in particolare realizzeremo degli Extension Methods.&lt;/p&gt;&lt;code&gt;&lt;p /&gt;&lt;p&gt;using System;&lt;br /&gt;using System.Web;&lt;br /&gt;using System.Web.UI;&lt;br /&gt;using System.Web.UI.WebControls;&lt;br /&gt;using System.Reflection;&lt;br /&gt;using ReflectionExtension;&lt;/p&gt;&lt;p&gt;namespace ReflectionExtension&lt;br /&gt;{&lt;br /&gt;    public static class ObjectReflectionExtension&lt;br /&gt;    {&lt;br /&gt;        public static void AddHanlder(this Object objectEventRaiser, object objectBoundToDelegate, string methodName, string eventName)&lt;br /&gt;        {&lt;br /&gt;            if (objectEventRaiser == null | objectBoundToDelegate == null | string.IsNullOrEmpty(methodName) | string.IsNullOrEmpty(eventName))&lt;br /&gt;            {&lt;br /&gt;                throw new ArgumentNullException();&lt;br /&gt;            }&lt;br /&gt;            else&lt;br /&gt;            {&lt;br /&gt;                Type _dataSourceType = objectEventRaiser.GetType();&lt;/p&gt;&lt;p&gt;                EventInfo _eventInfo = _dataSourceType.GetEvent(eventName);&lt;/p&gt;&lt;p&gt;                if (_eventInfo == null)&lt;br /&gt;                {&lt;br /&gt;                    throw new ArgumentException(string.Format(&amp;quot;Impossibile trovare l'evento {0}&amp;quot;, eventName));&lt;br /&gt;                }&lt;br /&gt;                else&lt;br /&gt;                {&lt;br /&gt;                    MethodInfo _methodInfo = objectBoundToDelegate.GetType().GetMethod(methodName, BindingFlags.NonPublic | BindingFlags.Instance);&lt;/p&gt;&lt;p&gt;                    if (_eventInfo == null)&lt;br /&gt;                    {&lt;br /&gt;                        throw new ArgumentException(string.Format(&amp;quot;Impossibile trovare il metodo {0}&amp;quot;, methodName));&lt;br /&gt;                    }&lt;br /&gt;                    else&lt;br /&gt;                    {&lt;br /&gt;                        Delegate _delegate = Delegate.CreateDelegate(_eventInfo.EventHandlerType, objectBoundToDelegate, _methodInfo);&lt;/p&gt;&lt;p&gt;                        _eventInfo.AddEventHandler(objectEventRaiser, _delegate);&lt;br /&gt;                    }&lt;br /&gt;                }&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;        public static bool IsNull(this Object item)&lt;br /&gt;        {&lt;br /&gt;            return item == null;&lt;br /&gt;        }&lt;/p&gt;&lt;p&gt;    }&lt;br /&gt;}&lt;/p&gt;&lt;p&gt;namespace WebControlReflectionExtension&lt;br /&gt;{&lt;br /&gt;    public static class WebControlReflectionExtension&lt;br /&gt;    {&lt;/p&gt;&lt;p&gt;        public static void AddInsertedHandler(this DataSourceControl dataSourceControl, object objectBoundToDelegate, string methodName)&lt;br /&gt;        {&lt;br /&gt;            ObjectReflectionExtension.AddHanlder(dataSourceControl, objectBoundToDelegate, methodName, &amp;quot;Inserted&amp;quot;);&lt;br /&gt;        }&lt;/p&gt;&lt;p&gt;        public static void AddDeleteddHandler(this DataSourceControl dataSourceControl, object objectBoundToDelegate, string methodName)&lt;br /&gt;        {&lt;br /&gt;            ObjectReflectionExtension.AddHanlder(dataSourceControl, objectBoundToDelegate, methodName, &amp;quot;Deleted&amp;quot;);&lt;br /&gt;        }&lt;/p&gt;&lt;p&gt;        public static void AddUpdateddHandler(this DataSourceControl dataSourceControl, object objectBoundToDelegate, string methodName)&lt;br /&gt;        {&lt;br /&gt;            ObjectReflectionExtension.AddHanlder(dataSourceControl, objectBoundToDelegate, methodName, &amp;quot;Updated&amp;quot;);&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;}&lt;/p&gt;&lt;p /&gt;&lt;/code&gt;&lt;p&gt;&lt;strong&gt;Tags:&lt;/strong&gt; &lt;a href="http://tags.aspitalia.com/.NET_Framework/" rel="tag"&gt;.NET Framework&lt;/a&gt;, &lt;a href="http://tags.aspitalia.com/.NET_Framework_3.5/" rel="tag"&gt;.NET Framework 3.5&lt;/a&gt;, &lt;a href="http://tags.aspitalia.com/ASP.NET/" rel="tag"&gt;ASP.NET&lt;/a&gt;, &lt;a href="http://tags.aspitalia.com/Custom_Control/" rel="tag"&gt;Custom Control&lt;/a&gt;&lt;/p&gt;&lt;hr /&gt;&lt;p&gt;&lt;a href="http://www.aspitalia.com/"&gt;(C) 2008 ASPItalia.com Network - All rights reserved&lt;/a&gt;&lt;/p&gt;</description><dc:creator>Marco Leoncini</dc:creator><category>asp.net, .NET Framework, .NET Framework 3.5, ASP.NET, Custom Control</category><guid isPermaLink="true">http://blogs.aspitalia.com/nostromo/post2291/Visualizzatore-Eccezioni-Parte-1-Helper.aspx</guid><slash:comments>4</slash:comments><wfw:comments>http://blogs.aspitalia.com/nostromo/post2291/Visualizzatore-Eccezioni-Parte-1-Helper.aspx#feedback</wfw:comments><wfw:commentRss>http://blogs.aspitalia.com/nostromo/CommentRSS2291.aspx</wfw:commentRss><trackback:ping>http://blogs.aspitalia.com/services/trackback.aspx?PostID=2291</trackback:ping></item><item><title>StringValidatorAttribute ConfigurationProperty e DefaultValue</title><link>http://blogs.aspitalia.com/nostromo/post2290/StringValidatorAttribute-ConfigurationProperty-DefaultValue.aspx</link><pubDate>Tue, 27 May 2008 22:40:00 GMT</pubDate><description>&lt;img src='http://blogs.aspitalia.com/services/counter_rss.aspx?PostID=2290' border="0" style="width:1px; height:1px;" /&gt;&lt;p&gt;se come me amate fare una sezione di configurazione custom per ogni tipo di impostazione, fate attenzione quando decorare una proprietà con StringValidatorAttribute, in particolare quando specificate la lunghezza minima di una stringa impostando la proprietà &lt;span class="identifier"&gt;MinLength.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span class="identifier"&gt;a causa del particolare sistema di parserizzazione del file di configurazione e inizializzazione&lt;/span&gt; degli oggetti &amp;quot;nati&amp;quot; da questo processo, la validazione è destinata a fallire miseramente se non si specifica mediante l'attributo ConfigurationProperty un valore predefinito che soddisfi i requisiti di validazione.&lt;/p&gt;&lt;p&gt;        [ConfigurationProperty(&amp;quot;Type&amp;quot;,DefaultValue = &amp;quot;object&amp;quot;)]&lt;br /&gt;        [StringValidator(InvalidCharacters = &amp;quot;&lt;a href="mailto:~!-@#$%^&amp;amp;*(){}/;'\&amp;quot;|\\"&gt;~!-@#$%^&amp;amp;*(){}/;'\&amp;quot;|\\&lt;/a&gt;&amp;quot;, MinLength= 1, MaxLength = 60)]&lt;br /&gt;        public string Type&lt;br /&gt;        {&lt;br /&gt;            get&lt;br /&gt;            {&lt;br /&gt;                return (string)base[&amp;quot;Type&amp;quot;];&lt;br /&gt;            }&lt;br /&gt;        } &lt;/p&gt;&lt;p&gt;&lt;strong&gt;Tags:&lt;/strong&gt; &lt;a href="http://tags.aspitalia.com/.NET_Framework/" rel="tag"&gt;.NET Framework&lt;/a&gt;, &lt;a href="http://tags.aspitalia.com/.NET_Framework_2.0/" rel="tag"&gt;.NET Framework 2.0&lt;/a&gt;, &lt;a href="http://tags.aspitalia.com/ASP.NET/" rel="tag"&gt;ASP.NET&lt;/a&gt;, &lt;a href="http://tags.aspitalia.com/ASP.NET_2.0/" rel="tag"&gt;ASP.NET 2.0&lt;/a&gt;&lt;/p&gt;&lt;hr /&gt;&lt;p&gt;&lt;a href="http://www.aspitalia.com/"&gt;(C) 2008 ASPItalia.com Network - All rights reserved&lt;/a&gt;&lt;/p&gt;</description><dc:creator>Marco Leoncini</dc:creator><category>asp.net, .NET Framework, .NET Framework 2.0, ASP.NET, ASP.NET 2.0</category><guid isPermaLink="true">http://blogs.aspitalia.com/nostromo/post2290/StringValidatorAttribute-ConfigurationProperty-DefaultValue.aspx</guid><slash:comments>0</slash:comments><wfw:comments>http://blogs.aspitalia.com/nostromo/post2290/StringValidatorAttribute-ConfigurationProperty-DefaultValue.aspx#feedback</wfw:comments><wfw:commentRss>http://blogs.aspitalia.com/nostromo/CommentRSS2290.aspx</wfw:commentRss><trackback:ping>http://blogs.aspitalia.com/services/trackback.aspx?PostID=2290</trackback:ping></item><item><title>Modificare i CSS Friendly Control Adapters </title><link>http://blogs.aspitalia.com/nostromo/post2289/Modificare-CSS-Friendly-Control-Adapters.aspx</link><pubDate>Tue, 27 May 2008 20:44:00 GMT</pubDate><description>&lt;img src='http://blogs.aspitalia.com/services/counter_rss.aspx?PostID=2289' border="0" style="width:1px; height:1px;" /&gt;&lt;p&gt;in particolare mi occuperò del WebControl Menu.&lt;/p&gt;&lt;p&gt;Utilizzando l'adapter il funzionamento del menu è completamente basato su css, cosa buona e giusta, ma solo fino a quando desideriamo che il menù si apra al passaggio del mouse.&lt;/p&gt;&lt;p&gt;ma naturalmente presto il vostro progetto richiederà che il menu su apra al click, la cosa non è difficile da realizzare, per prima cosa modifichiamo il css in modo da evitare la visualizzazione del menu al passaggio del mouse, cambiamo questo:&lt;/p&gt;&lt;p&gt;ul.AspNet-Menu li:hover ul,&lt;br /&gt;ul.AspNet-Menu li li:hover ul,&lt;br /&gt;ul.AspNet-Menu li li li:hover ul,&lt;br /&gt;ul.AspNet-Menu li.AspNet-Menu-Hover ul,&lt;br /&gt;ul.AspNet-Menu li li.AspNet-Menu-Hover ul,&lt;br /&gt;ul.AspNet-Menu li li li.AspNet-Menu-Hover ul&lt;br /&gt;{&lt;br /&gt;    visibility: visible;&lt;br /&gt;}&lt;br /&gt;&lt;/p&gt;&lt;p&gt;in :&lt;/p&gt;&lt;p&gt;ul.AspNet-Menu li.AspNet-Menu-Hover ul,&lt;br /&gt;ul.AspNet-Menu li li.AspNet-Menu-Hover ul,&lt;br /&gt;ul.AspNet-Menu li li li.AspNet-Menu-Hover ul&lt;br /&gt;{&lt;br /&gt;    visibility: visible;&lt;br /&gt;}&lt;/p&gt;&lt;p&gt;è il momento di passare al javascript, apriamo il file MenuAdapter.js, in particolare nella funzione SetHover__AspNetMenu modifichiaro la registrazione dell'event handler:&lt;/p&gt;&lt;p&gt;if(items[k].className.indexOf(menuWithChildren) &amp;gt; -1 &amp;amp; items[k].parentNode.className == topmostClass)&lt;br /&gt;                {&lt;br /&gt;                    if (items[k].addEventListener)&lt;br /&gt;                    {&lt;br /&gt;                        items[k].addEventListener('click', Click__AspNetMenu, false); &lt;br /&gt;                    } &lt;br /&gt;                    else if (items[k].attachEvent)&lt;br /&gt;                    {&lt;br /&gt;                        items[k].onclick = function() { Click__AspNetMenuie(this);} &lt;br /&gt;                    }&lt;br /&gt;                }&lt;/p&gt;&lt;p&gt;il passo successivo è creare i due gestori per l'evento click:&lt;br /&gt;&lt;br /&gt;function Click__AspNetMenu(e)&lt;br /&gt;{&lt;br /&gt;    if(typeof(e) != &amp;quot;undefined&amp;quot;)&lt;br /&gt;    {&lt;br /&gt;        e.stopPropagation();&lt;br /&gt; }&lt;br /&gt;    Unhover__AspNetMenu(openTab);&lt;br /&gt;    openTab = this;&lt;br /&gt;    Hover__AspNetMenu(this);&lt;br /&gt;}&lt;/p&gt;&lt;p&gt;function Click__AspNetMenuie(element)&lt;br /&gt;{&lt;br /&gt;  var e = window.event;&lt;br /&gt;     Unhover__AspNetMenu(openTab);&lt;br /&gt;    openTab = element;&lt;br /&gt;    Hover__AspNetMenu(element);&lt;br /&gt;    e.cancelBubble=true;&lt;br /&gt;}&lt;/p&gt;&lt;p&gt;infine è necessario modificare nelle funzioni Unhover__AspNetMenu e Hover__AspNetMenu la condizione per la creazioni di quelli elementi che permettono di aggirare alcune limitazioni di ie6&lt;/p&gt;&lt;p&gt; if (isPreIE7 &amp;amp; typeof(element) != &amp;quot;undefined&amp;quot;)&lt;/p&gt;&lt;p&gt;ed infine non dimentichiamoci di associare al click anche la chiusura del menu correntemente aperto&lt;/p&gt;&lt;p&gt;document.onclick = function() { Unhover__AspNetMenu(openTab);} &lt;/p&gt;&lt;p&gt;nei prossimi giorni dovrei riuscire a inserire tutto nel Lab&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Tags:&lt;/strong&gt; &lt;a href="http://tags.aspitalia.com/.NET_Framework/" rel="tag"&gt;.NET Framework&lt;/a&gt;, &lt;a href="http://tags.aspitalia.com/.NET_Framework_2.0/" rel="tag"&gt;.NET Framework 2.0&lt;/a&gt;, &lt;a href="http://tags.aspitalia.com/ASP.NET/" rel="tag"&gt;ASP.NET&lt;/a&gt;, &lt;a href="http://tags.aspitalia.com/CSS/" rel="tag"&gt;CSS&lt;/a&gt;, &lt;a href="http://tags.aspitalia.com/Custom_Control/" rel="tag"&gt;Custom Control&lt;/a&gt;&lt;/p&gt;&lt;hr /&gt;&lt;p&gt;&lt;a href="http://www.aspitalia.com/"&gt;(C) 2008 ASPItalia.com Network - All rights reserved&lt;/a&gt;&lt;/p&gt;</description><dc:creator>Marco Leoncini</dc:creator><category>asp.net, .NET Framework, .NET Framework 2.0, ASP.NET, CSS, Custom Control</category><guid isPermaLink="true">http://blogs.aspitalia.com/nostromo/post2289/Modificare-CSS-Friendly-Control-Adapters.aspx</guid><slash:comments>0</slash:comments><wfw:comments>http://blogs.aspitalia.com/nostromo/post2289/Modificare-CSS-Friendly-Control-Adapters.aspx#feedback</wfw:comments><wfw:commentRss>http://blogs.aspitalia.com/nostromo/CommentRSS2289.aspx</wfw:commentRss><trackback:ping>http://blogs.aspitalia.com/services/trackback.aspx?PostID=2289</trackback:ping></item><item><title>Create i vostri giochi in Silverlight con Popfly</title><link>http://blogs.aspitalia.com/nostromo/post2281/Create-Giochi-Silverlight-Popfly.aspx</link><pubDate>Sun, 04 May 2008 20:28:00 GMT</pubDate><description>&lt;img src='http://blogs.aspitalia.com/services/counter_rss.aspx?PostID=2281' border="0" style="width:1px; height:1px;" /&gt;&lt;p&gt;il 30 aprile è stata ufficialmente &lt;a href="http://blogs.msdn.com/johnmont/archive/2008/04/30/the-new-popfly-game-creator.aspx"&gt;presentata&lt;/a&gt; la versione alpha di Popfly Game Creator, un abiente di sviluppo per videogame interamente sviluppato utilizzando Silverlight.&lt;/p&gt;&lt;p&gt;i giochi creati naturalmente utilizzano Silverlight, è possibile partire da zero, scegliere uno scenario, l'attori , le azioni e i comportamenti, o in alternativa partire da una numerose template, che mostrano una grande varietà di tipologie di giochi.&lt;/p&gt;&lt;p&gt;non resta che scatenare la fantasia partendo dal sito &lt;a href="http://www.popfly.com/"&gt;Popfly.com&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Tags:&lt;/strong&gt; &lt;a href="http://tags.aspitalia.com/Silverlight/" rel="tag"&gt;Silverlight&lt;/a&gt;, &lt;a href="http://tags.aspitalia.com/XAML/" rel="tag"&gt;XAML&lt;/a&gt;&lt;/p&gt;&lt;hr /&gt;&lt;p&gt;&lt;a href="http://www.aspitalia.com/"&gt;(C) 2008 ASPItalia.com Network - All rights reserved&lt;/a&gt;&lt;/p&gt;</description><dc:creator>Marco Leoncini</dc:creator><category>link utili, Silverlight, XAML</category><guid isPermaLink="true">http://blogs.aspitalia.com/nostromo/post2281/Create-Giochi-Silverlight-Popfly.aspx</guid><slash:comments>0</slash:comments><wfw:comments>http://blogs.aspitalia.com/nostromo/post2281/Create-Giochi-Silverlight-Popfly.aspx#feedback</wfw:comments><wfw:commentRss>http://blogs.aspitalia.com/nostromo/CommentRSS2281.aspx</wfw:commentRss><trackback:ping>http://blogs.aspitalia.com/services/trackback.aspx?PostID=2281</trackback:ping></item><item><title>quasi babbo di photoshop passa a MS</title><link>http://blogs.aspitalia.com/nostromo/post2278/Quasi-Babbo-Photoshop-Passa-MS.aspx</link><pubDate>Thu, 01 May 2008 09:01:00 GMT</pubDate><description>&lt;img src='http://blogs.aspitalia.com/services/counter_rss.aspx?PostID=2278' border="0" style="width:1px; height:1px;" /&gt;&lt;p&gt;la &lt;a href="http://www.news.com/8301-13580_3-9929989-39.html?tag=nefd.top"&gt;notizia&lt;/a&gt; non è recentissima, è di qualche giorno fa, uno dei programmatori più anziani, in termini di esperienza, in quanto si occupata dei Photoshop fin dalla versione 2.0, lascia Adobe per passare a MS...&lt;/p&gt;&lt;p&gt;speriamo che tutta questa esperienza non vada dispersa ma che serva a migliorare Design e Blend...attendo fiducioso&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Tags:&lt;/strong&gt; &lt;a href="http://tags.aspitalia.com/Expression_Blend/" rel="tag"&gt;Expression Blend&lt;/a&gt;, &lt;a href="http://tags.aspitalia.com/Expression_Design/" rel="tag"&gt;Expression Design&lt;/a&gt;, &lt;a href="http://tags.aspitalia.com/Expression_Media/" rel="tag"&gt;Expression Media&lt;/a&gt;, &lt;a href="http://tags.aspitalia.com/Microsoft_Expression/" rel="tag"&gt;Microsoft Expression&lt;/a&gt;, &lt;a href="http://tags.aspitalia.com/Off_Topic/" rel="tag"&gt;Off Topic&lt;/a&gt;&lt;/p&gt;&lt;hr /&gt;&lt;p&gt;&lt;a href="http://www.aspitalia.com/"&gt;(C) 2008 ASPItalia.com Network - All rights reserved&lt;/a&gt;&lt;/p&gt;</description><dc:creator>Marco Leoncini</dc:creator><category>Live Life, Expression Blend, Expression Design, Expression Media, Microsoft Expression, Off Topic</category><guid isPermaLink="true">http://blogs.aspitalia.com/nostromo/post2278/Quasi-Babbo-Photoshop-Passa-MS.aspx</guid><slash:comments>0</slash:comments><wfw:comments>http://blogs.aspitalia.com/nostromo/post2278/Quasi-Babbo-Photoshop-Passa-MS.aspx#feedback</wfw:comments><wfw:commentRss>http://blogs.aspitalia.com/nostromo/CommentRSS2278.aspx</wfw:commentRss><trackback:ping>http://blogs.aspitalia.com/services/trackback.aspx?PostID=2278</trackback:ping></item></channel></rss>