<?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>nostromo - Il blog di Marco Leoncini</title><link>http://blogs.aspitalia.com/nostromo/</link><description>nostromo - Il blog di Marco Leoncini</description><dc:language>it-it</dc:language><managingEditor>noreply(at)aspitalia.com(nostromo - Il blog di Marco Leoncini)</managingEditor><webMaster>daniele(at)aspitalia.com(Daniele Bochicchio)</webMaster><copyright>1998-2008 ASPItalia.com/nostromo - Il blog di Marco Leoncini</copyright><generator>Generated by feed.ASPItalia.com 'Weyoh' 4.8.708</generator><sy:updatePeriod>hourly</sy:updatePeriod><sy:updateFrequency>1</sy:updateFrequency><sy:updateBase>1998-01-01T12:00+00:00</sy:updateBase><image><title>nostromo - Il blog di Marco Leoncini</title><url>http://blogs.aspitalia.com/blogs.gif</url><link>http://blogs.aspitalia.com/nostromo/</link></image><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 14:56:00 +0100</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>2</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>Wed, 28 May 2008 00:40:00 +0100</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 22:44:00 +0100</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 22:28:00 +0100</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 11:01:00 +0100</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><item><title>MVP Summit 2008 una settimana e oltre dopo</title><link>http://blogs.aspitalia.com/nostromo/post2277/MVP-Summit-2008-Settimana.aspx</link><pubDate>Tue, 29 Apr 2008 00:47:00 +0100</pubDate><description>&lt;img src='http://blogs.aspitalia.com/services/counter_rss.aspx?PostID=2277' border="0" style="width:1px; height:1px;" /&gt;&lt;p&gt;è passata una settimana e qualche giorno da quando sono tornato da Seattle e questa è la faccia che avevo:&lt;br /&gt;&lt;img src="http://tkfiles.storage.live.com/y1pEQteO06Yn2zFYPygkFM-r7RWrzhdusqoyDlt0yqnojPn3ZLYYIq89Jf7lWh49X-UjXxi-ls-y3o" /&gt;&lt;/img /&gt; &lt;/p&gt;&lt;p&gt;dopo aver conosciuto &lt;a href="http://blogs.ugidotnet.org/Box/Default.aspx"&gt;Alessandro&lt;/a&gt;, sto scherzando...ero ancor più terrorizzato ma la foto era irriproducibile.&lt;/p&gt;&lt;p&gt;è stato il mio primo Summit, primo volo intercontinentale e primo viaggio in Usa, che dire è stata davvero una bellissima esperienza, ho avuto la possibilità di stare a contatto con persone che generalmente conosci solo tramite una pagina di un blog come &lt;a href="http://blogs.ugidotnet.org/corrado/Default.aspx"&gt;Corrado&lt;/a&gt; o &lt;a href="http://blogs.ugidotnet.org/raffaele/Default.aspx"&gt;Raffaele&lt;/a&gt; e scopri che oltre che professionisti fantastici sono anche persone estremamente simpatiche e disponibili.&lt;br /&gt;è stata un occasione anche per approfondire i rapporti con &lt;a href="http://blogs.aspitalia.com/daniele/"&gt;Daniele&lt;/a&gt;, &lt;a href="http://www.aspitalia.com/autori/Cristian_Civera.aspx"&gt;Cristian&lt;/a&gt;, &lt;a href="http://blogs.aspitalia.com/sm15455/"&gt;Stefano&lt;/a&gt; e &lt;a href="http://blogs.aspitalia.com/rickyvr/"&gt;Riccardo&lt;/a&gt; con i quali ho passato una fantastica settimana.&lt;/p&gt;&lt;p&gt;dal punto di vista tecnico poco da dire, al di là di cose di cui non posso parlare il resto erano sessioni di basso livello, ma un ripasso non fa mai male.&lt;/p&gt;&lt;p&gt;la settimana è trascorsa tra shopping selvaggio, perorato da un euro forte e gite fuori porta, quà sotto trovare due foto, il personaggio nella prima credo non abbia bisogno di presentazioni, mentre la seconda, potremo definirla un applicazione di un architettura scalabile, per gli amici il totem &lt;/p&gt;&lt;p&gt;&lt;img src="http://tkfiles.storage.live.com/y1pEQteO06Yn2xpyR2h4A6Smz-JaMR4rtdGjUH1iaAnPlOxi4vNrwvRle05POl3vfMnbqg5pnEnUSU" /&gt;&lt;/img /&gt; &lt;img src="http://tkfiles.storage.live.com/y1pEQteO06Yn2xcsj--lfRt8Fw3NEBLTC_F9kE47qlT5uaF2Byh1iQlMDqfCHr8c_bni7SpKT7zxRA" /&gt;&lt;/p&gt;&lt;p&gt;altre foto potete trovarle &lt;a href="http://nostromo.spaces.live.com/default.aspx"&gt;quà:&lt;/a&gt;, per il resto che dire, spero di avere la possibilità di passare un altra settimana così il prossimo anno...o magari addirittura migliore&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/post2277/MVP-Summit-2008-Settimana.aspx</guid><slash:comments>6</slash:comments><wfw:comments>http://blogs.aspitalia.com/nostromo/post2277/MVP-Summit-2008-Settimana.aspx#feedback</wfw:comments><wfw:commentRss>http://blogs.aspitalia.com/nostromo/CommentRSS2277.aspx</wfw:commentRss><trackback:ping>http://blogs.aspitalia.com/services/trackback.aspx?PostID=2277</trackback:ping></item><item><title>arriva P#</title><link>http://blogs.aspitalia.com/nostromo/post2262/Arriva-PSharp.aspx</link><pubDate>Tue, 01 Apr 2008 14:47:00 +0100</pubDate><description>&lt;img src='http://blogs.aspitalia.com/services/counter_rss.aspx?PostID=2262' border="0" style="width:1px; height:1px;" /&gt;&lt;p&gt;arriva oggi la  1° april CTP di un nuovo linguaggio, nato da una costola del C#, è un linguaggio &amp;quot;easy&amp;quot;, facile da imparare ed educato, ecco un esempio di codice:&lt;/p&gt;&lt;p&gt;&lt;code&gt;&lt;/p&gt;&lt;p&gt;Protected void OnNicelyEnter(object sender, NicelyEventArgs e)&lt;br /&gt;{&lt;br /&gt;please&lt;br /&gt;{ &lt;br /&gt;features Render(GridView New(DataSource))&lt;br /&gt;}&lt;br /&gt;lapse&lt;br /&gt;{ &lt;br /&gt; Features Render(Lapse Message Write(oppps)&lt;br /&gt;}&lt;/p&gt;&lt;p&gt;}&lt;br /&gt;&lt;/code&gt;&lt;/p&gt;&lt;p&gt;se vi domandate come e dove funziona quel codice, non perdete tempo a pensarci, il bello del nuovo linguaggio è che non dovete saperlo, lui capirà se si tratta di un applicazione web, WPF, Silverlight o WinForm, il tipo dei dati che utilizzare e il livello di sicurezza che volete.&lt;/p&gt;&lt;p&gt;essendo un linguaggio evoluto non ha bisogno di rigide regolo adatte solo alle macchine, niente punteggiature solo una cosa è importante;  il costrutto please/lapse meno arrogante del imperativo try/catch, gestirà il tutto per noi.&lt;/p&gt;&lt;p&gt;non ci resta che aspettare la release della versione definitiva il prossimo primo aprile&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/post2262/Arriva-PSharp.aspx</guid><slash:comments>0</slash:comments><wfw:comments>http://blogs.aspitalia.com/nostromo/post2262/Arriva-PSharp.aspx#feedback</wfw:comments><wfw:commentRss>http://blogs.aspitalia.com/nostromo/CommentRSS2262.aspx</wfw:commentRss><trackback:ping>http://blogs.aspitalia.com/services/trackback.aspx?PostID=2262</trackback:ping></item><item><title>ListView &amp;#232; DataPager</title><link>http://blogs.aspitalia.com/nostromo/post2230/ListView-DataPager.aspx</link><pubDate>Tue, 19 Feb 2008 15:24:00 +0100</pubDate><description>&lt;img src='http://blogs.aspitalia.com/services/counter_rss.aspx?PostID=2230' border="0" style="width:1px; height:1px;" /&gt;&lt;p&gt;è arrivato il Framework 3.5 e con lui una nuova versione di asp.net, la new entry più gradita è certamente il nuovo controllo ListView.&lt;br /&gt;&lt;br /&gt;il ListView ha il non trascurabile pregio di unire la flessibilità del Repeater in quanto a definizione del layout, e le funzionalità evolute del GridView, come la paginazione.&lt;br /&gt;&lt;br /&gt;in particolare la paginazione è interessante, in quanto svincolata dal controllo stesso e fornita invece attraverso un nuovo controllo, il DataPager.&lt;br /&gt;&lt;br /&gt;il DataPager ha tra le sue caratteristiche la possibilità di visualizzare un numero variabili di campi utili alla navigazione tra le pagine, cose come l'avanti, indietro, numeri di pagina ecc ecc.&lt;br /&gt;&lt;br /&gt;se nessuno dei campi preconfezionati si adattasse alla nostra veste grafica possiamo sempre ricorrere ha campi personalizzati o ad una Template.&lt;br /&gt;&lt;br /&gt;la TemplatePagerField permette di dare libero sfogo alla vostra fantasia, Button, Link, DropDownList e chi più ne ha più ne metta.&lt;br /&gt;&lt;br /&gt;ma ai me...dopo dovrete fare lo sporco lavoro di comunicare la nuova pagina e altre cosette al controllo da paginare, cosa che con il DataGrid in pensione non siamo più abituati a fare.&lt;br /&gt;&lt;br /&gt;visto che uno in un progetto sicuramente utilizzeremo più di una volta il DataPager, e che con altrettanta probabilità lo utilizzeremo in tutti i nostri progetti, mi sono preso la briga di realizzarne uno che usa come Ui un UserControl.&lt;br /&gt;&lt;br /&gt;la prima cosa da fare è estendere la classe TemplatePagerField:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;namespace Soluzioni4D.WebControl&lt;br /&gt;{&lt;br /&gt;public class CustomTemplatePagerField : TemplatePagerField&lt;br /&gt;{&lt;br /&gt;public string PageTemplatePath&lt;br /&gt;{&lt;br /&gt;get&lt;br /&gt;{&lt;br /&gt;if (ViewState[&amp;quot;PageTemplatePath&amp;quot;] == null)&lt;br /&gt;{&lt;br /&gt;return Resources.Navigation.PagerWebUserControl;&lt;br /&gt;}&lt;br /&gt;return (string)ViewState[&amp;quot;PageTemplatePath&amp;quot;];&lt;br /&gt;}&lt;br /&gt;set { ViewState[&amp;quot;PageTemplatePath&amp;quot;] = value; }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public override ITemplate PagerTemplate&lt;br /&gt;{&lt;br /&gt;get&lt;br /&gt;{&lt;br /&gt;return null;&lt;br /&gt;}&lt;br /&gt;set&lt;br /&gt;{&lt;br /&gt;throw new NotSupportedException();&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public override void CreateDataPagers(DataPagerFieldItem container, int startRowIndex, int maximumRows, int totalRowCount, int fieldIndex)&lt;br /&gt;{&lt;br /&gt;base.CreateDataPagers(container, startRowIndex, maximumRows, totalRowCount, fieldIndex);&lt;br /&gt;&lt;br /&gt;if (!string.IsNullOrEmpty(PageTemplatePath))&lt;br /&gt;{&lt;br /&gt;IPagerAccessor _control = container.Page.LoadControl(PageTemplatePath) as IPagerAccessor;&lt;br /&gt;&lt;br /&gt;if (_control != null)&lt;br /&gt;{&lt;br /&gt;_control.PageSize = container.Pager.PageSize;&lt;br /&gt;_control.StartRowIndex = container.Pager.StartRowIndex;&lt;br /&gt;_control.TotalRowCount = container.Pager.TotalRowCount;&lt;br /&gt;container.Controls.Add((Control)_control);&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;protected override void OnPagerCommand(DataPagerCommandEventArgs e)&lt;br /&gt;{&lt;br /&gt;&lt;br /&gt;switch (e.CommandName)&lt;br /&gt;{&lt;br /&gt;case &amp;quot;Next&amp;quot;:&lt;br /&gt;int _newNextIndex = e.Item.Pager.StartRowIndex + e.Item.Pager.PageSize;&lt;br /&gt;&lt;br /&gt;if (_newNextIndex &amp;lt;= e.TotalRowCount)&lt;br /&gt;{&lt;br /&gt;e.NewStartRowIndex = _newNextIndex;&lt;br /&gt;e.NewMaximumRows = e.Item.Pager.MaximumRows;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;break;&lt;br /&gt;case &amp;quot;Previus&amp;quot;:&lt;br /&gt;int _newPreviusIndex = e.Item.Pager.StartRowIndex - e.Item.Pager.PageSize;&lt;br /&gt;&lt;br /&gt;if (_newPreviusIndex &amp;gt;= 0)&lt;br /&gt;{&lt;br /&gt;e.NewStartRowIndex = _newPreviusIndex;&lt;br /&gt;&lt;br /&gt;e.NewMaximumRows = e.Item.Pager.MaximumRows;&lt;br /&gt;}&lt;br /&gt;break;&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;la proprietà PageTemplatePath contiene il percorso dell'UserControl, se non impostato ne restituisce uno predefinito.&lt;br /&gt;&lt;br /&gt;nel metodo CreateDataPager recuperiamo l'UserControl e impostiamo alcuni parametri, usi l'interfaccia IPagerAccessor perche nel mio UserControl voglio utilizzare alcune proprietà del DataPager.&lt;br /&gt;&lt;br /&gt;infine il lavoro sporco e ripetitivo che saremmo stato costretti a inserire in ogni pagina, viene eseguito nel metodo OnPagerCommand.&lt;br /&gt;&lt;br /&gt;infine l'UserControl, il codice è semplice :&lt;br /&gt;&lt;br /&gt;&lt;code&gt;public partial class Shared_UserControl_PagerWebUserControl : UserControlBase&amp;lt;object&amp;gt;, IPagerAccessor&lt;br /&gt;{&lt;br /&gt;public int TotalRowCount { get; set; }&lt;br /&gt;&lt;br /&gt;public int StartRowIndex { get; set; }&lt;br /&gt;&lt;br /&gt;public int PageSize { get; set; }&lt;br /&gt;} &lt;br /&gt;&lt;br /&gt;&lt;/code&gt;ci limitiamo a implementare l'interfaccia IPagerAccessor, è una mia interfaccia il suo utilizzo è facoltativo è utile solo perche devo accedere al numero totale di pagina ed al numero di elementi&lt;br /&gt;&lt;br /&gt;infien L'userControl vero e proprio:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&amp;lt;%--Tasto indietro--%&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;asp:LinkButton CssClass=&amp;quot;PreviusButton&amp;quot; runat=&amp;quot;server&amp;quot; CommandName=&amp;quot;Previus&amp;quot; ID=&amp;quot;_previusLinkButton&amp;quot;&amp;gt;&lt;br /&gt;&amp;lt;span&amp;gt;&lt;br /&gt;&amp;lt;asp:Literal ID=&amp;quot;Literal1&amp;quot; runat=&amp;quot;server&amp;quot; Text=&amp;quot;&amp;lt;%$ Resources:Shared, Indietro %&amp;gt;&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;/span&amp;gt;&lt;br /&gt;&amp;lt;/asp:LinkButton&amp;gt;&lt;br /&gt;&amp;lt;%-- Pagine --%&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;div class=&amp;quot;PagerInfo&amp;quot;&amp;gt;&lt;br /&gt;&amp;lt;div&amp;gt;&lt;br /&gt;&amp;lt;span&amp;gt;&lt;br /&gt;&amp;lt;asp:Literal ID=&amp;quot;_pageLabel&amp;quot; runat=&amp;quot;server&amp;quot; Text=&amp;quot;&amp;lt;%$ Resources:Shared, Pagina %&amp;gt;&amp;quot;&amp;gt;&amp;lt;/asp:Literal&amp;gt;&lt;br /&gt;&amp;lt;/span&amp;gt;&lt;br /&gt;&amp;lt;span&amp;gt;&lt;br /&gt;&amp;lt;asp:Literal ID=&amp;quot;_currentPage&amp;quot; runat=&amp;quot;server&amp;quot; Text=&amp;quot;&amp;lt;%# TotalRowCount&amp;gt;0 ? (StartRowIndex / PageSize) + 1 : 0 %&amp;gt;&amp;quot;&amp;gt;&amp;lt;/asp:Literal&amp;gt;&lt;br /&gt;&amp;lt;/span&amp;gt;&lt;br /&gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&amp;lt;div&amp;gt;&lt;br /&gt;&amp;lt;span&amp;gt;&lt;br /&gt;&amp;lt;asp:Literal ID=&amp;quot;_ofPageLabel&amp;quot; runat=&amp;quot;server&amp;quot; Text=&amp;quot;&amp;lt;%$ Resources:Shared, PaginaDi %&amp;gt;&amp;quot;&amp;gt;&amp;lt;/asp:Literal&amp;gt;&lt;br /&gt;&amp;lt;/span&amp;gt;&lt;br /&gt;&amp;lt;span&amp;gt;&lt;br /&gt;&amp;lt;asp:Literal ID=&amp;quot;_totalPages&amp;quot; runat=&amp;quot;server&amp;quot; Text=&amp;quot;&amp;lt;%# Math.Ceiling ((double)TotalRowCount / PageSize)%&amp;gt;&amp;quot;&amp;gt;&amp;lt;/asp:Literal&amp;gt;&lt;br /&gt;&amp;lt;/span&amp;gt;&lt;br /&gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&amp;lt;%--Tasto avanti--%&amp;gt;&lt;br /&gt;&amp;lt;asp:LinkButton CssClass=&amp;quot;NextButton&amp;quot; runat=&amp;quot;server&amp;quot; CommandName=&amp;quot;Next&amp;quot; ID=&amp;quot;_nextLinkkButton&amp;quot;&amp;gt;&lt;br /&gt;&amp;lt;span&amp;gt;&lt;br /&gt;&amp;lt;asp:Literal ID=&amp;quot;Literal2&amp;quot; runat=&amp;quot;server&amp;quot; Text=&amp;quot;&amp;lt;%$ Resources:Shared, Avanti %&amp;gt;&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;/span&amp;gt;&lt;br /&gt;&amp;lt;/asp:LinkButton&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;e questo è tutto, se magari non avete la necessità di visualizzare il numero di pagine, e vi limitate al solo tasto avanti e indietro, è possibile non implementare l'interfaccia IPagerAccessor e modificare leggermente il codice della classe CustomTemplatePagerField&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_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/ASP.NET_3.5/" rel="tag"&gt;ASP.NET 3.5&lt;/a&gt;, &lt;a href="http://tags.aspitalia.com/Custom_Control/" rel="tag"&gt;Custom Control&lt;/a&gt;, &lt;a href="http://tags.aspitalia.com/User_Control/" rel="tag"&gt;User 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, ASP.NET 3.5, Custom Control, User Control</category><guid isPermaLink="true">http://blogs.aspitalia.com/nostromo/post2230/ListView-DataPager.aspx</guid><slash:comments>6</slash:comments><wfw:comments>http://blogs.aspitalia.com/nostromo/post2230/ListView-DataPager.aspx#feedback</wfw:comments><wfw:commentRss>http://blogs.aspitalia.com/nostromo/CommentRSS2230.aspx</wfw:commentRss><trackback:ping>http://blogs.aspitalia.com/services/trackback.aspx?PostID=2230</trackback:ping></item><item><title>qualcuno mi spia</title><link>http://blogs.aspitalia.com/nostromo/post2221/Spia.aspx</link><pubDate>Fri, 08 Feb 2008 15:36:00 +0100</pubDate><description>&lt;img src='http://blogs.aspitalia.com/services/counter_rss.aspx?PostID=2221' border="0" style="width:1px; height:1px;" /&gt;&lt;p&gt;scherzi apparte, pochi minuti fa scrivevo che sono pochi i tool 3d che esportano nativamente in XAML e che possono soddisfare un grafico professionista, per questo motivo molti preferisco utilizzare dei convertitori.&lt;/p&gt;&lt;p&gt;é di poco fa la &lt;a href="http://www.hunterstrat.com/news/2008/02/08/microsoft-acquires-3d-modeling-company-caligari/"&gt;notizia&lt;/a&gt; che MS acquista &lt;a href="http://www.caligari.com/"&gt;Caligari&lt;/a&gt; creatori di ottimi prodotti, anche se di nicchia, per l'animazione e la grafica tridimensionale.&lt;/p&gt;&lt;p&gt;a quanto pare ufficialmente le conoscenze verranno riversate su Virtual Earth, ma spero che non si dimentichino che WPF ha delle funzionalità 3D.&lt;/p&gt;&lt;p&gt;Penso che MS debba ancora lavorare in abito 3D per spingere  WPF, magari introducendo la possibilità di importare animazioni complesse, come quelle realizzate con &lt;a href="http://usa.autodesk.com/adsk/servlet/item?siteID=123112&amp;amp;id=5659402"&gt;Character Studio&lt;/a&gt; ,non che. introdurre la possibilità di applicare Texture diverse su le superfici di una mesh senza obbligarmi a &amp;quot;sbriciolarla&amp;quot; aumentando il numero dei vertici da calcolare, avere il bump mapping poi sarebbe il massimo.&lt;/p&gt;&lt;p&gt;Adesso che MS ha in corpo una compagnia che è nata con L'Amiga, il primo vero pc che potesse fare grafica ad un livello decente, spero che nasca qualcosa di buono e non solo per le mappe online.&lt;/p&gt;&lt;p /&gt;&lt;p&gt;&lt;strong&gt;Tags:&lt;/strong&gt; &lt;a href="http://tags.aspitalia.com/Windows_Presentation_Foundation/" rel="tag"&gt;Windows Presentation Foundation&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>Live Life, Windows Presentation Foundation, XAML</category><guid isPermaLink="true">http://blogs.aspitalia.com/nostromo/post2221/Spia.aspx</guid><slash:comments>0</slash:comments><wfw:comments>http://blogs.aspitalia.com/nostromo/post2221/Spia.aspx#feedback</wfw:comments><wfw:commentRss>http://blogs.aspitalia.com/nostromo/CommentRSS2221.aspx</wfw:commentRss><trackback:ping>http://blogs.aspitalia.com/services/trackback.aspx?PostID=2221</trackback:ping></item><item><title>la voglia matta!!</title><link>http://blogs.aspitalia.com/nostromo/post2220/Matta.aspx</link><pubDate>Fri, 08 Feb 2008 09:34:00 +0100</pubDate><description>&lt;img src='http://blogs.aspitalia.com/services/counter_rss.aspx?PostID=2220' border="0" style="width:1px; height:1px;" /&gt;&lt;p&gt;Mi riferisco naturalmente alla possibilità di vincere una camicia MVP, e vista la penuria di camice che attanaglia il mio guardaroba, io ci provo: ecco il &lt;a href="http://blogs.technet.com/alead_msft/archive/2008/02/07/giro-link-in-vista-del-lancio.aspx"&gt;link&lt;/a&gt; e adesso con l'aiuto della forza, inizio a lavorare e voi partecipate numerosi al lancio del VS 2008  :D&lt;/p&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</category><guid isPermaLink="true">http://blogs.aspitalia.com/nostromo/post2220/Matta.aspx</guid><slash:comments>0</slash:comments><wfw:comments>http://blogs.aspitalia.com/nostromo/post2220/Matta.aspx#feedback</wfw:comments><wfw:commentRss>http://blogs.aspitalia.com/nostromo/CommentRSS2220.aspx</wfw:commentRss><trackback:ping>http://blogs.aspitalia.com/services/trackback.aspx?PostID=2220</trackback:ping></item><item><title>Disponibile parte del codice sorgente del Framework</title><link>http://blogs.aspitalia.com/nostromo/post2209/Disponibile-Parte-Codice-Sorgente-Framework.aspx</link><pubDate>Thu, 17 Jan 2008 10:47:00 +0100</pubDate><description>&lt;img src='http://blogs.aspitalia.com/services/counter_rss.aspx?PostID=2209' border="0" style="width:1px; height:1px;" /&gt;&lt;p&gt;Come promesso tempo fa da &lt;a href="http://weblogs.asp.net/scottgu/default.aspx"&gt;ScottGu&lt;/a&gt; finalmente è disponibile il codice sorgente del &lt;a href="http://weblogs.asp.net/scottgu/archive/2008/01/16/net-framework-library-source-code-now-available.aspx"&gt;Framework&lt;/a&gt; trovate tutti i dettagli di come utilizzarlo nel debugger del VS &lt;a href="http://blogs.msdn.com/sburke/archive/2008/01/16/configuring-visual-studio-to-debug-net-framework-source-code.aspx"&gt;qua&lt;/a&gt;&lt;/p&gt;&lt;p&gt;unica nota negativa non è possibile scaricarlo con la versione express&lt;/p&gt;&lt;p&gt;ciao marco&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/.NET_Framework_3.0/" rel="tag"&gt;.NET Framework 3.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;a href="http://tags.aspitalia.com/ASP.NET_3.5/" rel="tag"&gt;ASP.NET 3.5&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, .NET Framework 3.0, ASP.NET, ASP.NET 2.0, ASP.NET 3.5</category><guid isPermaLink="true">http://blogs.aspitalia.com/nostromo/post2209/Disponibile-Parte-Codice-Sorgente-Framework.aspx</guid><slash:comments>0</slash:comments><wfw:comments>http://blogs.aspitalia.com/nostromo/post2209/Disponibile-Parte-Codice-Sorgente-Framework.aspx#feedback</wfw:comments><wfw:commentRss>http://blogs.aspitalia.com/nostromo/CommentRSS2209.aspx</wfw:commentRss><trackback:ping>http://blogs.aspitalia.com/services/trackback.aspx?PostID=2209</trackback:ping></item><item><title>un altro anno da MVP</title><link>http://blogs.aspitalia.com/nostromo/post2201/Anno-MVP.aspx</link><pubDate>Fri, 04 Jan 2008 14:57:00 +0100</pubDate><description>&lt;img src='http://blogs.aspitalia.com/services/counter_rss.aspx?PostID=2201' border="0" style="width:1px; height:1px;" /&gt;&lt;p&gt;Se da un punto di vista generale le notizie provenienti dal mondo non mettono certo di buon umore, restringendo un pò il tiro e accantonando i pensieri di pace nel mondo mutuati da miss italia, per quanto mi riguarda l'anno è iniziato decisamente bene, con la mail di riconferma a MVP per ASP.net.&lt;/p&gt;&lt;p&gt;difficile trovare qualche parola che possa esprimere la contentezza e soddisfazione.&lt;/p&gt;&lt;p&gt;la conferma mi porta soprattutto a fare autocritica, il 2007 non è stato un anno fantastico, tanti errori, forse poca professionalità, avvolte anche nel forum, con risposte frettolose che mi hanno costretto più volte a rispiegare il solito concetto, ecco perché ho sfondato il tetto dei 10000 messaggi.&lt;/p&gt;&lt;p&gt;per il 2008 spero di ridurre i messaggi, non per ridurre il supporto nel forum ma per aumentare la qualità dei miei interventi, non so se ci riuscirò, ma almeno ci proverò, iniziando con l'installare un correttore ortografico in IE :D&lt;/p&gt;&lt;p&gt;Ringrazio tutto lo staff di  &lt;a href="http://www.aspitalia.com/autori/"&gt;aspitalia&lt;/a&gt; , il mio &lt;a href="http://blogs.aspitalia.com/novecento/"&gt;collega&lt;/a&gt; che inizierete ad apprezzare.... forse :D e il nostro &lt;a href="http://blogs.technet.com/alead_msft/"&gt;MVP Lead Alessandro Teglia &lt;/a&gt; giocatore di Halo 3 niente male&lt;/p&gt;&lt;p&gt;saluti marco&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/post2201/Anno-MVP.aspx</guid><slash:comments>7</slash:comments><wfw:comments>http://blogs.aspitalia.com/nostromo/post2201/Anno-MVP.aspx#feedback</wfw:comments><wfw:commentRss>http://blogs.aspitalia.com/nostromo/CommentRSS2201.aspx</wfw:commentRss><trackback:ping>http://blogs.aspitalia.com/services/trackback.aspx?PostID=2201</trackback:ping></item><item><title>uno snippet per inserire riga di commento</title><link>http://blogs.aspitalia.com/nostromo/post2195/Snippet-Inserire-Riga-Commento.aspx</link><pubDate>Fri, 28 Dec 2007 14:26:00 +0100</pubDate><description>&lt;img src='http://blogs.aspitalia.com/services/counter_rss.aspx?PostID=2195' border="0" style="width:1px; height:1px;" /&gt;&lt;p&gt;più volte mi sono provato ad utilizzare le &amp;quot;region&amp;quot; per suddividere il codice, ma proprio non ci riesco, alla fine il codice mi appare più disordinato, certo è una sensazione, ma le region mi danno fastidio.&lt;/p&gt;&lt;p&gt;così oggi mi sono realizzato un semplice snippet per inserire una riga di commento per separare le varie parti del codice, sarà che all'università con il pascal facevo così....&lt;/p&gt;&lt;p&gt;&amp;lt;CodeSnippets&lt;br /&gt;    xmlns=&amp;quot;&lt;a href="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet"&gt;http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet&lt;/a&gt;&amp;quot;&amp;gt;&lt;br /&gt;  &amp;lt;CodeSnippet Format=&amp;quot;1.0.0&amp;quot;&amp;gt;&lt;br /&gt;    &amp;lt;Header&amp;gt;&lt;br /&gt;      &amp;lt;Title&amp;gt;&lt;br /&gt;        My Comment Snippet&lt;br /&gt;      &amp;lt;/Title&amp;gt;&lt;br /&gt;    &amp;lt;/Header&amp;gt;&lt;br /&gt;    &amp;lt;Snippet&amp;gt;&lt;br /&gt;      &amp;lt;Declarations&amp;gt;&lt;br /&gt;        &amp;lt;Literal&amp;gt;&lt;br /&gt;          &amp;lt;ID&amp;gt;Message&amp;lt;/ID&amp;gt;&lt;br /&gt;          &amp;lt;ToolTip&amp;gt;inserisci il commeto&amp;lt;/ToolTip&amp;gt;&lt;br /&gt;          &amp;lt;Default&amp;gt;Commento&amp;lt;/Default&amp;gt;&lt;br /&gt;        &amp;lt;/Literal&amp;gt;&lt;br /&gt;      &amp;lt;/Declarations&amp;gt;&lt;br /&gt;      &amp;lt;Code Language=&amp;quot;CSharp&amp;quot;&amp;gt;&lt;br /&gt;        &amp;lt;![CDATA[//---------------------------------------------- $Message$ --------------------------------------------------------------------//]]&amp;gt;&lt;br /&gt;      &amp;lt;/Code&amp;gt;&lt;br /&gt;    &amp;lt;/Snippet&amp;gt;&lt;br /&gt;  &amp;lt;/CodeSnippet&amp;gt;&lt;br /&gt;&amp;lt;/CodeSnippets&amp;gt; &lt;/p&gt;&lt;p&gt;uno snippet consiste in un semplice file xml, contenente il codice, nel mio caso solo un commento che viene inserito nel &amp;quot;segna posto&amp;quot; $message$&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/post2195/Snippet-Inserire-Riga-Commento.aspx</guid><slash:comments>0</slash:comments><wfw:comments>http://blogs.aspitalia.com/nostromo/post2195/Snippet-Inserire-Riga-Commento.aspx#feedback</wfw:comments><wfw:commentRss>http://blogs.aspitalia.com/nostromo/CommentRSS2195.aspx</wfw:commentRss><trackback:ping>http://blogs.aspitalia.com/services/trackback.aspx?PostID=2195</trackback:ping></item><item><title>Extension Method per semplificare la Reflection</title><link>http://blogs.aspitalia.com/nostromo/post2194/Extension-Method-Semplificare-Reflection.aspx</link><pubDate>Fri, 28 Dec 2007 14:25:00 +0100</pubDate><description>&lt;img src='http://blogs.aspitalia.com/services/counter_rss.aspx?PostID=2194' border="0" style="width:1px; height:1px;" /&gt;&lt;p&gt;per esigenze personali, che poi condividerò tramite script o blog, avevo la necessità di assegnare runtime un event handler per una serie di controlli.&lt;/p&gt;&lt;p&gt;per rendere il codice più semplice e riutilizzabile ho deciso di realizzare 4 semplici Extension Method che sono più o meno questi:&lt;/p&gt;&lt;code&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(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;br /&gt;                &lt;br /&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;    }&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;p&gt;&lt;/p&gt;&lt;/code&gt;&lt;br /&gt;associare ad un oggetto che erediti da DataSourceControl un evento tramite reflection diventa davverso semplice: &lt;br /&gt;&lt;br /&gt;dataSourceControl.AddInsertedHandler(this, &amp;quot;InsertedHandler&amp;quot;); &lt;br /&gt;&lt;br /&gt;nati a supporto di Linq gli Extension Method risulatno davvero utili a scriver codice manutenibile e altamente riutilizzabile. &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_3.5/" rel="tag"&gt;ASP.NET 3.5&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 3.5</category><guid isPermaLink="true">http://blogs.aspitalia.com/nostromo/post2194/Extension-Method-Semplificare-Reflection.aspx</guid><slash:comments>0</slash:comments><wfw:comments>http://blogs.aspitalia.com/nostromo/post2194/Extension-Method-Semplificare-Reflection.aspx#feedback</wfw:comments><wfw:commentRss>http://blogs.aspitalia.com/nostromo/CommentRSS2194.aspx</wfw:commentRss><trackback:ping>http://blogs.aspitalia.com/services/trackback.aspx?PostID=2194</trackback:ping></item><item><title>Buon Natale</title><link>http://blogs.aspitalia.com/nostromo/post2192/Buon-Natale.aspx</link><pubDate>Fri, 21 Dec 2007 16:38:00 +0100</pubDate><description>&lt;img src='http://blogs.aspitalia.com/services/counter_rss.aspx?PostID=2192' border="0" style="width:1px; height:1px;" /&gt;Auguro a tutti un buon natale e un felice anno nuovo.&lt;br /&gt;Mi auguro che il nuovo anno non porti nulla di più di quello che già a portato, ma spero che non tolga nulla.&lt;br /&gt;&lt;img hspace="0" src="http://masseffect.bioware.com/_commonext/images/me/desktops/holiday/masseffect_desktop_hol01_640x480.jpg" align="baseline" border="0" /&gt;&lt;br /&gt;La cartolina di auguri lo presa in prestito dal team bella Bioware, che recentemente a pubblicato uno dei giochi più belli per la 360, se non il più bello.&lt;br /&gt;Ecco forse una cosa vorrei portasse il nuovo anno, la passione, guardando le inteviste agli sviluppatori ho notato una cosa che temo di aver perso, quell'euforia che traspare parlano del proprio progetto.&lt;br /&gt;&lt;br /&gt;buon natale marco &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/post2192/Buon-Natale.aspx</guid><slash:comments>3</slash:comments><wfw:comments>http://blogs.aspitalia.com/nostromo/post2192/Buon-Natale.aspx#feedback</wfw:comments><wfw:commentRss>http://blogs.aspitalia.com/nostromo/CommentRSS2192.aspx</wfw:commentRss><trackback:ping>http://blogs.aspitalia.com/services/trackback.aspx?PostID=2192</trackback:ping></item></channel></rss>