<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0"><channel><title>Blogs @ UGIdotNET</title><link>http://blogs.ugidotnet.org/MainFeed.aspx</link><description>Bloggers UGIdotNET</description><generator>Subtext Version 2.1.0.3</generator><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/UgidotnetLatestBlogPosts" /><feedburner:info uri="ugidotnetlatestblogposts" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item><title>Community Days 2012 : cosa seguirete?</title><link>http://feedproxy.google.com/~r/UgidotnetLatestBlogPosts/~3/M5TuHYf77vA/community-days-2012-cosa-seguirete.aspx</link><pubDate>Fri, 10 Feb 2012 08:37:41 GMT</pubDate><guid isPermaLink="false">http://blogs.ugidotnet.org/alessage/archive/2012/02/10/community-days-2012-cosa-seguirete.aspx</guid><wfw:comment>http://blogs.ugidotnet.org/alessage/comments/100766.aspx</wfw:comment><wfw:commentRss>http://blogs.ugidotnet.org/alessage/comments/commentRss/100766.aspx</wfw:commentRss><comments>http://blogs.ugidotnet.org/alessage/archive/2012/02/10/community-days-2012-cosa-seguirete.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://blogs.ugidotnet.org/alessage/services/trackbacks/100766.aspx</trackback:ping><source url="http://blogs.ugidotnet.org/alessage/rss.aspx">Community Days 2012 : cosa seguirete?</source><description>suggerite quali sessioni sono da NON perdere &lt;br /&gt;
io penso di seguire sicuramente:&lt;br /&gt;
&lt;br /&gt;
&lt;h2 class="sessionTitle"&gt;&lt;a href="http://www.communitydays.it/events/communitydays-2012/web01/"&gt;WEB01 -  							ASP.NET MVC on steroids 							&lt;/a&gt;&lt;/h2&gt;
&lt;h2 class="sessionTitle"&gt;&lt;a href="http://www.communitydays.it/events/communitydays-2012/arch02/"&gt;ARCH02 -  							(N)ServiceBus: comunicazione e disaccoppiamento&lt;/a&gt;&lt;/h2&gt;
&lt;h2 class="sessionTitle"&gt;&lt;a href="http://www.communitydays.it/events/communitydays-2012/netfx04/"&gt;NETFX04 -  							What's new in ASP.NET 4.5 							&lt;/a&gt;&lt;/h2&gt;&lt;img src="http://blogs.ugidotnet.org/alessage/aggbug/100766.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/UgidotnetLatestBlogPosts/~4/M5TuHYf77vA" height="1" width="1"/&gt;</description><dc:creator>Alessandro Gervasoni</dc:creator><feedburner:origLink>http://blogs.ugidotnet.org/alessage/archive/2012/02/10/community-days-2012-cosa-seguirete.aspx</feedburner:origLink></item><item><title>EF 4.3 Released</title><link>http://feedproxy.google.com/~r/UgidotnetLatestBlogPosts/~3/6mj0O7Qgeg4/ef-4.3-released.aspx</link><pubDate>Fri, 10 Feb 2012 06:21:00 GMT</pubDate><guid isPermaLink="false">http://blogs.ugidotnet.org/PietroLibroBlog/archive/2012/02/10/ef-4.3-released.aspx</guid><wfw:comment>http://blogs.ugidotnet.org/PietroLibroBlog/comments/100765.aspx</wfw:comment><wfw:commentRss>http://blogs.ugidotnet.org/PietroLibroBlog/comments/commentRss/100765.aspx</wfw:commentRss><comments>http://blogs.ugidotnet.org/PietroLibroBlog/archive/2012/02/10/ef-4.3-released.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://blogs.ugidotnet.org/PietroLibroBlog/services/trackbacks/100765.aspx</trackback:ping><source url="http://blogs.ugidotnet.org/PietroLibroBlog/rss.aspx">EF 4.3 Released</source><description>&lt;p&gt;Rilasciata la versione 4.3 di Entity Framework, tra le novità introdotte in questa release, il più interessante IMHO il supporto all’evoluzione di un database generato utilizzando l’approccio Code First. Installazione semplice ed indolore tramite NuGet &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-smile" alt="Sorriso" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/PietroLibroBlog/Windows-Live-Writer/EF-4.3-Released_6661/wlEmoticon-smile_2.png" /&gt; : Install-Package EntityFramework. Per il supporto agli Enum bisognerà aspettare la versione 5.0 (.Net 4.5). Tutti i dettagli sul post dell’ ADO.NET Team: &lt;a title="http://blogs.msdn.com/b/adonet/archive/2012/02/09/ef-4-3-released.aspx" href="http://blogs.msdn.com/b/adonet/archive/2012/02/09/ef-4-3-released.aspx"&gt;http://blogs.msdn.com/b/adonet/archive/2012/02/09/ef-4-3-released.aspx&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.ugidotnet.org/PietroLibroBlog/aggbug/100765.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/UgidotnetLatestBlogPosts/~4/6mj0O7Qgeg4" height="1" width="1"/&gt;</description><dc:creator>Pietro Libro</dc:creator><feedburner:origLink>http://blogs.ugidotnet.org/PietroLibroBlog/archive/2012/02/10/ef-4.3-released.aspx</feedburner:origLink></item><item><title>Rilasciato Entity Framework 4.3</title><link>http://feedproxy.google.com/~r/UgidotnetLatestBlogPosts/~3/kAjXQLifwRk/rilasciato-entity-framework-4.3.aspx</link><pubDate>Fri, 10 Feb 2012 01:46:34 GMT</pubDate><guid isPermaLink="false">http://blogs.ugidotnet.org/marcom/archive/2012/02/10/rilasciato-entity-framework-4.3.aspx</guid><wfw:comment>http://blogs.ugidotnet.org/marcom/comments/100764.aspx</wfw:comment><wfw:commentRss>http://blogs.ugidotnet.org/marcom/comments/commentRss/100764.aspx</wfw:commentRss><comments>http://blogs.ugidotnet.org/marcom/archive/2012/02/10/rilasciato-entity-framework-4.3.aspx#comment</comments><slash:comments>1</slash:comments><trackback:ping>http://blogs.ugidotnet.org/marcom/services/trackbacks/100764.aspx</trackback:ping><source url="http://blogs.ugidotnet.org/marcom/rss.aspx">Rilasciato Entity Framework 4.3</source><description>&lt;p&gt;E’ stata da poco rilasciata la versione 4.3 di &lt;strong&gt;Entity Framework&lt;/strong&gt;, già disponibile anche su &lt;a href="https://www.nuget.org/packages/EntityFramework" target="_blank"&gt;&lt;strong&gt;NuGet&lt;/strong&gt;&lt;/a&gt;. Sul blog del team di ADO .NET è possibile leggere l’&lt;a href="http://blogs.msdn.com/b/adonet/archive/2012/02/09/ef-4-3-released.aspx" target="_blank"&gt;annuncio ufficiale&lt;/a&gt;.&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:13976443-ce92-4886-848b-38cff19652bf" class="wlWriterEditableSmartContent"&gt;Tag di Technorati: &lt;a href="http://technorati.com/tags/.NET" rel="tag"&gt;.NET&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Programming" rel="tag"&gt;Programming&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Entity+Framework" rel="tag"&gt;Entity Framework&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Updates" rel="tag"&gt;Updates&lt;/a&gt;&lt;/div&gt;&lt;img src="http://blogs.ugidotnet.org/marcom/aggbug/100764.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/UgidotnetLatestBlogPosts/~4/kAjXQLifwRk" height="1" width="1"/&gt;</description><dc:creator>Marco Minerva</dc:creator><feedburner:origLink>http://blogs.ugidotnet.org/marcom/archive/2012/02/10/rilasciato-entity-framework-4.3.aspx</feedburner:origLink></item><item><title>Light Script Engine, una libreria per la compilazione dinamica con C#</title><link>http://feedproxy.google.com/~r/UgidotnetLatestBlogPosts/~3/oYLxFuA7Ezk/light-script-engine-una-libreria-per-la-compilazione-dinamica-con.aspx</link><pubDate>Wed, 08 Feb 2012 23:54:07 GMT</pubDate><guid isPermaLink="false">http://blogs.ugidotnet.org/marcom/archive/2012/02/09/light-script-engine-una-libreria-per-la-compilazione-dinamica-con.aspx</guid><wfw:comment>http://blogs.ugidotnet.org/marcom/comments/100763.aspx</wfw:comment><wfw:commentRss>http://blogs.ugidotnet.org/marcom/comments/commentRss/100763.aspx</wfw:commentRss><comments>http://blogs.ugidotnet.org/marcom/archive/2012/02/09/light-script-engine-una-libreria-per-la-compilazione-dinamica-con.aspx#comment</comments><slash:comments>2</slash:comments><trackback:ping>http://blogs.ugidotnet.org/marcom/services/trackbacks/100763.aspx</trackback:ping><source url="http://blogs.ugidotnet.org/marcom/rss.aspx">Light Script Engine, una libreria per la compilazione dinamica con C#</source><description>&lt;p&gt;Ho pubblicato su MSDN Code Gallery una libreria, chiama &lt;a target="_blank" href="http://code.msdn.microsoft.com/Dynamic-Compilation-with-C-464125f3"&gt;&lt;strong&gt;Light Script Engine&lt;/strong&gt;&lt;/a&gt;, che permette di compilare dinamicamente porzioni di codice C#. Può essere utilizzata, ad esempio, per aggiungere un motore di scripting alle proprie applicazioni. Il&lt;font face="Arial"&gt; sistema, inoltre, fornisce automaticamente un meccanismo con cui passare argomenti al codice dinamico e ricevere valori di ritorno.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;Il file ZIP disponibile contiene, oltre alla libreria vera e propria, anche un’applicazione WPF con alcuni pezzi di codice già impostati, grazie ai quali è possibile verificare immediatamente il funzionamento dell’engine:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/marcom/Windows-Live-Writer/Light-Script-Engine-una-libreria-per-la-_117B0/LightScriptEngine_2.png"&gt;&lt;img width="723" height="502" title="LightScriptEngine" style="border-width: 0px; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin-right: auto; margin-left: auto; float: none; display: block; background-image: none;" alt="LightScriptEngine" border="0" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/marcom/Windows-Live-Writer/Light-Script-Engine-una-libreria-per-la-_117B0/LightScriptEngine_thumb.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Su &lt;a target="_blank" href="http://www.dotnettoscana.org/"&gt;DotNetToscana&lt;/a&gt; è disponibile un &lt;a target="_blank" href="http://www.dotnettoscana.org/compilazione-dinamica-con-c.aspx"&gt;&lt;strong&gt;articolo&lt;/strong&gt;&lt;/a&gt; che illustra più nel dettaglio le sue caratteristiche e fornisce alcuni esempi delle sue potenzialità.&lt;/p&gt;
&lt;p&gt;Light Script Engine, inoltre, è può essere scaricato anche da &lt;a target="_blank" href="https://www.nuget.org/packages/LightScriptEngine"&gt;&lt;strong&gt;NuGet&lt;/strong&gt;&lt;/a&gt; (è sufficiente cercare LightScriptEngine):&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/marcom/Windows-Live-Writer/Light-Script-Engine-una-libreria-per-la-_117B0/LightScriptEngine-NuGet_2.png"&gt;&lt;img width="668" height="289" title="LightScriptEngine-NuGet" style="border-width: 0px; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin-right: auto; margin-left: auto; float: none; display: block; background-image: none;" alt="LightScriptEngine-NuGet" border="0" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/marcom/Windows-Live-Writer/Light-Script-Engine-una-libreria-per-la-_117B0/LightScriptEngine-NuGet_thumb.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Sicuramente c'è molto da aggiungere, questa libreria si limita a fornire il nucleo di base dello script engine, ma fornisce un’idea delle potenzialità di uno strumento del genere: &lt;strong&gt;Light Script Engine&lt;/strong&gt; potrebbe essere il punto di partenza su cui costruire un linguaggio di scripting per la scrittura di macro con cui l'utente può personalizzare le proprie applicazioni.&lt;/p&gt;
&lt;div class="wlWriterEditableSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:b1acf797-749a-459d-b75a-4d59834bfd8c" style="margin: 0px; padding: 0px; float: none; display: inline;"&gt;Tag di Technorati: &lt;a rel="tag" href="http://technorati.com/tags/.NET"&gt;.NET&lt;/a&gt;,&lt;a rel="tag" href="http://technorati.com/tags/Programming"&gt;Programming&lt;/a&gt;,&lt;a rel="tag" href="http://technorati.com/tags/C%23"&gt;C#&lt;/a&gt;&lt;/div&gt;&lt;img src="http://blogs.ugidotnet.org/marcom/aggbug/100763.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/UgidotnetLatestBlogPosts/~4/oYLxFuA7Ezk" height="1" width="1"/&gt;</description><dc:creator>Marco Minerva</dc:creator><feedburner:origLink>http://blogs.ugidotnet.org/marcom/archive/2012/02/09/light-script-engine-una-libreria-per-la-compilazione-dinamica-con.aspx</feedburner:origLink></item><item><title>Table Inheritance</title><link>http://feedproxy.google.com/~r/UgidotnetLatestBlogPosts/~3/75YwLPUWt68/table-inheritance.aspx</link><pubDate>Wed, 08 Feb 2012 19:30:41 GMT</pubDate><guid isPermaLink="false">http://blogs.ugidotnet.org/marcofarina/archive/2012/02/08/table-inheritance.aspx</guid><wfw:comment>http://blogs.ugidotnet.org/marcofarina/comments/100762.aspx</wfw:comment><wfw:commentRss>http://blogs.ugidotnet.org/marcofarina/comments/commentRss/100762.aspx</wfw:commentRss><comments>http://blogs.ugidotnet.org/marcofarina/archive/2012/02/08/table-inheritance.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://blogs.ugidotnet.org/marcofarina/services/trackbacks/100762.aspx</trackback:ping><source url="http://blogs.ugidotnet.org/marcofarina/rss.aspx">Table Inheritance</source><description>&lt;p&gt;Quando utilizziamo un approccio Model First,  abbiamo a disposizione due differenti approcci per la gestione dell'ereditarietà delle nostre entità:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;strong&gt;Table-per-type&lt;/strong&gt;: Vengono utilizzate differenti tabelle per ogni tipo nell'albero gerarchico dell'ereditarietà&lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Table-per-hierarchy&lt;/strong&gt;: Viene utilizzata una sola tabella per lo storage dei differenti tipi nell'albero gerarchico dell'ereditarietà.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Entity framework utilizza un approccio table-per-type e ovviamente la chiave primaria di una tabella che rappresenta un'entità derivata è anche foreign key nella tabella che rappresenta l'entità padre.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;&lt;img src="http://blogs.ugidotnet.org/marcofarina/aggbug/100762.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/UgidotnetLatestBlogPosts/~4/75YwLPUWt68" height="1" width="1"/&gt;</description><dc:creator>Marco Farina</dc:creator><feedburner:origLink>http://blogs.ugidotnet.org/marcofarina/archive/2012/02/08/table-inheritance.aspx</feedburner:origLink></item><item><title>It is not possible to estimate what?</title><link>http://feedproxy.google.com/~r/UgidotnetLatestBlogPosts/~3/YLYHSDCRl8s/it-is-not-possible-to-estimate.aspx</link><pubDate>Wed, 08 Feb 2012 15:10:49 GMT</pubDate><guid isPermaLink="false">http://blogs.ugidotnet.org/luKa/archive/2012/02/08/it-is-not-possible-to-estimate.aspx</guid><wfw:comment>http://blogs.ugidotnet.org/luKa/comments/100760.aspx</wfw:comment><wfw:commentRss>http://blogs.ugidotnet.org/luKa/comments/commentRss/100760.aspx</wfw:commentRss><comments>http://blogs.ugidotnet.org/luKa/archive/2012/02/08/it-is-not-possible-to-estimate.aspx#comment</comments><slash:comments>1</slash:comments><trackback:ping>http://blogs.ugidotnet.org/luKa/services/trackbacks/100760.aspx</trackback:ping><source url="http://blogs.ugidotnet.org/luKa/rss.aspx">It is not possible to estimate what?</source><description>&lt;img hspace="10" border="0" align="left" vspace="10" alt="" src="http://rightpeoplerightroles.com/assets/images/tolerating.jpg.jpg" /&gt;&lt;br style="font-style: italic;" /&gt;
&lt;br style="font-style: italic;" /&gt;
&lt;span style="font-style: italic;"&gt; There are some uncertainties that cannot be avoided or reduced, while instead they can be recognized and managed  &lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Putting more time and effort to improve estimations of the uncertainties that cannot be avoided or reduced, will not &lt;span style="color: rgb(255, 0, 255); font-weight: bold;"&gt;improve the accuracy and reliability&lt;/span&gt; of those estimations. It is a waste. And not recognizing those uncertainties increase the possible &lt;span style="font-weight: bold; color: rgb(255, 0, 255);"&gt;consequences&lt;/span&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;div style="text-align: center;"&gt;&lt;span style="font-style: italic;"&gt;Some problems are so complex that you have to be highly intelligent and well informed just to be undecided about them - Laurence J. Peter&lt;/span&gt;&lt;br /&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It is not possible to estimate what&lt;br /&gt;
&lt;ul&gt;
    &lt;li&gt;you don't know&lt;/li&gt;
    &lt;li&gt;has never been done before&lt;/li&gt;
    &lt;li&gt;has more uncertainty that certainty&lt;/li&gt;
    &lt;li&gt;you do not know that you don't know&lt;/li&gt;
    &lt;li&gt;is not yet invented, discovered or explored&lt;/li&gt;
    &lt;li&gt;you can learn how to do it only doing it for real&lt;/li&gt;
    &lt;li&gt;has no definitive or agreed formulation of the problem &lt;/li&gt;
    &lt;li&gt;is changing more frequently than the frequency you re-estimate it&lt;/li&gt;
    &lt;li&gt;has neither an immediate nor ultimate test/validation of a solution &lt;/li&gt;
    &lt;li&gt;has no "stopping rule" (i.e. we never know when or if the problem has been fully solved).&lt;/li&gt;
    &lt;li&gt;has an unbound set of possible solution and you can know which work only after trying them&lt;/li&gt;
    &lt;li&gt;has no solutions that match world views and frames for understanding for all the stakeholders &lt;/li&gt;
    &lt;li&gt;change substantially in presence of minimum changes of the initial conditions or external perturbations&lt;/li&gt;
    &lt;li&gt;...&lt;/li&gt;
&lt;/ul&gt;
&lt;span style="font-weight: bold; color: rgb(255, 0, 255);"&gt;What else ?&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
And finally a &lt;span style="font-weight: bold; color: rgb(255, 0, 255);"&gt;Quiz &lt;/span&gt;to check if everything is crystal clear.&lt;br /&gt;
&lt;span style="font-weight: bold; color: rgb(255, 0, 255);"&gt;Given that:&lt;/span&gt;&lt;br /&gt;
- It is possible to reduce the consequence of uncertainty and risks, i.e. buy an insurance&lt;br /&gt;
- It is possible to have what you want at an arbitrary deadline, i.e. get a loan&lt;br /&gt;
- It is possible to make good profits from diversity in opinions/forecast, i.e. betting or investing in the stock market&lt;br /&gt;
&lt;span style="color: rgb(255, 0, 255); font-weight: bold;"&gt;What if &lt;/span&gt;someone want an high ROI without uncertainty/risks, at a pre-fixed deadline agreed by everyone? &lt;br /&gt;
Solution by &lt;a href="https://twitter.com/#!/mostalive/status/167610131914301440"&gt;Willem van den Ende&lt;/a&gt; :  that is called a software project ;-) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
See also:&lt;br /&gt;
- &lt;a href="http://blogs.ugidotnet.org/luKa/archive/0001/01/01/requirements-principles.aspx"&gt;Requirement's principles &lt;/a&gt;&lt;br /&gt;
- &lt;a href="http://blogs.ugidotnet.org/luKa/archive/2012/02/03/the-dimensions-of-agile.aspx"&gt;The dimensions of Agile&lt;/a&gt;&lt;img src="http://blogs.ugidotnet.org/luKa/aggbug/100760.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/UgidotnetLatestBlogPosts/~4/YLYHSDCRl8s" height="1" width="1"/&gt;</description><dc:creator>Luca Minudel</dc:creator><feedburner:origLink>http://blogs.ugidotnet.org/luKa/archive/2012/02/08/it-is-not-possible-to-estimate.aspx</feedburner:origLink></item><item><title>Emergenza Twitter (web)</title><link>http://feedproxy.google.com/~r/UgidotnetLatestBlogPosts/~3/tYOyl1eQxy0/emergenza-twitter-web.aspx</link><pubDate>Wed, 08 Feb 2012 10:31:43 GMT</pubDate><guid isPermaLink="false">http://blogs.ugidotnet.org/odamiani/archive/2012/02/08/emergenza-twitter-web.aspx</guid><wfw:comment>http://blogs.ugidotnet.org/odamiani/comments/100759.aspx</wfw:comment><wfw:commentRss>http://blogs.ugidotnet.org/odamiani/comments/commentRss/100759.aspx</wfw:commentRss><comments>http://blogs.ugidotnet.org/odamiani/archive/2012/02/08/emergenza-twitter-web.aspx#comment</comments><slash:comments>3</slash:comments><trackback:ping>http://blogs.ugidotnet.org/odamiani/services/trackbacks/100759.aspx</trackback:ping><source url="http://blogs.ugidotnet.org/odamiani/rss.aspx">Emergenza Twitter (web)</source><description>&lt;p&gt;Lo dico già da mesi, ma a questo punto, proprio perchè credo davvero in quello che sto per dirvi, lo devo anche scrivere in un posto diverso da twitter.&lt;/p&gt;  &lt;p&gt;Eh si, perchè twitter è stupendo: si micro-blogga in pochissimi secondi, si seguono le persone senza che loro debbano “accettarti” come amico (facebook faceva così, poi si è parzialmente adeguato, ma questa è un’altra storia), e in poche settimane si può avere un grande successo (inteso come numero di follower e/o tam-tam) tra mentions e retweet.&lt;/p&gt;  &lt;p&gt;Però…&lt;/p&gt;  &lt;p&gt;Però pecca alla grande su una singola, piccola cosa: la Storia.&lt;/p&gt;  &lt;p&gt;Su twitter non c’è Storia, o meglio: non c’è storico.&lt;/p&gt;  &lt;p&gt;Si ok, qualche API ci sarà, bla bla…ma io parlo di “cognizione storica” dei vari utenti, non del fatto che *probabilmente*, con qualche strumento avanzato, da sviluppatore posso “fare tutto”.&lt;/p&gt;  &lt;p&gt;Facciamo un esempio, un cambio di contesto, giusto per renderci conto di cosa potrebbe essere.&lt;/p&gt;  &lt;p&gt;Il mondo “fuori” dai social: quello che abbiamo conosciuto diciamo fino agli anni 60 (così teniamo una certa “distanza di sicurezza”).&lt;/p&gt;  &lt;p&gt;La Storia non esiste (ok, senza la Storia staremmo ancora nelle caverne, ma non è questo il punto, seguitemi).&lt;/p&gt;  &lt;p&gt;Bene: uno nasce, vive ed a un certo punto, diciamo intorno ai 20 anni (la nascita dello spirito critico) uno comincia, in piazza o nei bar, a dire la sua.&lt;/p&gt;  &lt;p&gt;Immaginate in quanti e quali casi si direbbero le stesse cose, e “comincerebbero” (in realtà per l’ennesima volta) le “solite” correnti di pensiero e filosofiche, per non parlare degli errori commessi e reiterati/reiterabili.&lt;/p&gt;  &lt;p&gt;Gli scenari sarebbero semplicemente milioni, e so già che a questo punto starete tutti pensando che è aria fritta.&lt;/p&gt;  &lt;p&gt;Bene: e allora siamo tutti d’accordo.&lt;/p&gt;  &lt;p&gt;Su twitter (ho l’account dal 20 Dicembre 2007, non lo dico certo per vanto ma per dire che è un’esperienza “di qualche mese”) vedo sempre più spesso persone che ritweettano battute, post, blog, scrivono teorie (copiate o meno) ma il problema è sempre quello: son cose già dette? Già dette da chi? E chi certifica?&lt;/p&gt;  &lt;p&gt;Continuando il parallelo: io non ho fatto nemmeno un’ora di filosofia in vita mia e spesso mi sono ritrovato con amici più eruditi dirmi “ma questo è come la pensa Platone”, “questo è quello che dice Kant”.&lt;/p&gt;  &lt;p&gt;Mai rivendicata paternalità per pensieri, frasi, teorie che pur avendo “teorizzato” in autonomia ho scoperto esistere già.&lt;/p&gt;  &lt;p&gt;E questo solo perchè è “umanamente riconosciuto” che quella tal teoria è di quel tal tizio.&lt;/p&gt;  &lt;p&gt;E su twitter? E sul web?&lt;/p&gt;  &lt;p&gt;Beh sul web finora ci siamo goduti che uno possa diventare “fashion blogger” o “social expert” o “travel blogger” ecc, ecc, gratuitamente, senza dover essere iscritto ad albi giornalistici (nè altre associazioni/organi) ma ora stanno saltando fuori i limiti di questo: nessuna paternalità delle informazioni scritte se non il “buon senso” di chi le diffonde (che dovrebbe citare la fonte e non prenderla ex-novo in modo che, forse, se ne accorge solo chi sa. E ovviamente non “sa” in senso oggettivo, ma fa anche preferenze, in ordine: Io, i miei follower, i miei following, altri. Storicamente inaccettabile).&lt;/p&gt;  &lt;p&gt;E gli scenari vanno da quelli più stupidi: “c’è sto nuovo iscritto su twitter che ha scritto una battuta che io facevo a voce già nell’87, per me è vecchia e a lui l’hanno retwittata in 1234” a “questa è vecchia, l’hanno già twettata la settimana scorsa”).&lt;/p&gt;  &lt;p&gt;Il tutto a seconda della propria memoria e conoscenze.&lt;/p&gt;  &lt;p&gt;E occhio che non è un problema di invidia (io non sono invidioso che Kant abbia detto prima di me una certa cosa) ma di conoscenza (perchè ovviamente questo discorso non vale certo solo per le battute, ma visto che il Popolo della Rete si è “svegliato” per questo ho sfruttato questa onda).&lt;/p&gt;  &lt;p&gt;Un po’ come nei popoli antichi, prima della nascita di un certo &lt;a href="http://it.wikipedia.org/wiki/Erodoto" target="_blank"&gt;Erodoto di Alicarnasso&lt;/a&gt; (considerato il padre della Storia o della storiografia), quando le conoscenze erano trasmesse a voce dai capi-tribù (con evidenti limitazioni).&lt;/p&gt;  &lt;p&gt;E si arriva ad accusare Crozza (io per primo eh, sono appunto mesi che dico che i comici non fanno più ridere da quando twitter è arrivato anche alla maggioranza degli italiani) &lt;a href="http://ilpopolodellaretenonperdona.tumblr.com/" target="_blank"&gt;di “plagio”&lt;/a&gt; delle battute di twitter o di fare #copiaeinCrozza.&lt;/p&gt;  &lt;p&gt;Solo perchè lui è famoso e va in TV? Questo problema c’è sempre stato, voi forse siete su twitter da 4 mesi, o magari non twittate contenuti che possano essere copiati, o forse non avete la sensibilità per notarlo o forse ancora non ve ne può fregare de meno ma c’è sempre stato.&lt;/p&gt;  &lt;p&gt;Solo che del vostro follower vicino vi “preoccupate” meno perchè al massimo vi ha “fregato” la battuta e ha “conquistato” così altri tre follower (ovviamente è peggio se tali follower sono anche appetibili), se invece sentite la “vostra” battuta in TV, detta da Crozza vi inalberate.&lt;/p&gt;  &lt;p&gt;Ma pensate di poter rivendicare “vostri” i “vostri” tweet?&lt;/p&gt;  &lt;p&gt;Dove sta scritto? Chi è lo storiografo? Dov’è documentata tutta la Storia?&lt;/p&gt;&lt;img src="http://blogs.ugidotnet.org/odamiani/aggbug/100759.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/UgidotnetLatestBlogPosts/~4/tYOyl1eQxy0" height="1" width="1"/&gt;</description><dc:creator>Omar Damiani</dc:creator><feedburner:origLink>http://blogs.ugidotnet.org/odamiani/archive/2012/02/08/emergenza-twitter-web.aspx</feedburner:origLink></item><item><title>Community days -7</title><link>http://feedproxy.google.com/~r/UgidotnetLatestBlogPosts/~3/OMto1I58Az0/community-days-7.aspx</link><pubDate>Wed, 08 Feb 2012 08:09:54 GMT</pubDate><guid isPermaLink="false">http://blogs.ugidotnet.org/rgm/archive/2012/02/08/community-days-7.aspx</guid><wfw:comment>http://blogs.ugidotnet.org/rgm/comments/100758.aspx</wfw:comment><wfw:commentRss>http://blogs.ugidotnet.org/rgm/comments/commentRss/100758.aspx</wfw:commentRss><comments>http://blogs.ugidotnet.org/rgm/archive/2012/02/08/community-days-7.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://blogs.ugidotnet.org/rgm/services/trackbacks/100758.aspx</trackback:ping><source url="http://blogs.ugidotnet.org/rgm/rss.aspx">Community days -7</source><description>&lt;p&gt;Tra una settimana esatta ci saranno i &lt;a href="http://www.communitydays.it/events/communitydays-2012/"&gt;community days&lt;/a&gt;, dove io ho il piacere di tenere una &lt;a href="http://www.communitydays.it/events/communitydays-2012/netfx03/"&gt;sessione su VS11 e TFS11&lt;/a&gt;. Quest’anno l’evento è decisamente Mastodontico, ci saranno infatti Tre track parallele, più una di Lab dove poter sperimentare Windows Phone, windows Azure e molto altro. &lt;/p&gt;  &lt;p&gt;Windows 8 è alle porte per cui non potete mancare la track dedicata del 17 febbraio ;), ma si parlerà anche di concetti non strettamente legati al mondo .NET, come MongoDB, insomma ci sono sessioni per tutti i gusti in modo da poter veramente soddisfare tutti.&lt;/p&gt;  &lt;p&gt;L’hastag ufficiale è #csdays12 dove verranno date tutte le notizie dell’ultima ora.&lt;/p&gt;  &lt;p&gt;Quindi non potete mancare assolutamente, vi aspetto :)&lt;/p&gt;  &lt;p&gt;Gian Maria.   &lt;/p&gt;&lt;img src="http://blogs.ugidotnet.org/rgm/aggbug/100758.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/UgidotnetLatestBlogPosts/~4/OMto1I58Az0" height="1" width="1"/&gt;</description><dc:creator>Gian Maria  Ricci</dc:creator><feedburner:origLink>http://blogs.ugidotnet.org/rgm/archive/2012/02/08/community-days-7.aspx</feedburner:origLink></item><item><title>LINQ to CSV</title><link>http://feedproxy.google.com/~r/UgidotnetLatestBlogPosts/~3/mhsAOHva8LQ/linq-to-csv.aspx</link><pubDate>Wed, 08 Feb 2012 07:59:00 GMT</pubDate><guid isPermaLink="false">http://blogs.ugidotnet.org/alessage/archive/2012/02/08/linq-to-csv.aspx</guid><wfw:comment>http://blogs.ugidotnet.org/alessage/comments/100757.aspx</wfw:comment><wfw:commentRss>http://blogs.ugidotnet.org/alessage/comments/commentRss/100757.aspx</wfw:commentRss><comments>http://blogs.ugidotnet.org/alessage/archive/2012/02/08/linq-to-csv.aspx#comment</comments><slash:comments>4</slash:comments><trackback:ping>http://blogs.ugidotnet.org/alessage/services/trackbacks/100757.aspx</trackback:ping><source url="http://blogs.ugidotnet.org/alessage/rss.aspx">LINQ to CSV</source><description>forse lo conoscevate già, cmq in questi giorni ho avuto pesantemente a che fare con gli "immancabili/intramontabili" file cvs, per gestire in modo agile questa situazione ho cominciato ad adottare la seguente libreria:&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.codeproject.com/Articles/25133/LINQ-to-CSV-library"&gt;LinqToCsv Library&lt;/a&gt; &lt;br /&gt;
&lt;br /&gt;
che ti consente di mappare facilmente il contenuto di un file csv su di un classe&lt;img src="http://blogs.ugidotnet.org/alessage/aggbug/100757.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/UgidotnetLatestBlogPosts/~4/mhsAOHva8LQ" height="1" width="1"/&gt;</description><dc:creator>Alessandro Gervasoni</dc:creator><feedburner:origLink>http://blogs.ugidotnet.org/alessage/archive/2012/02/08/linq-to-csv.aspx</feedburner:origLink></item><item><title>Social Comments e Security Trimming</title><link>http://feedproxy.google.com/~r/UgidotnetLatestBlogPosts/~3/wOIi89ElcjI/social-comments-e-security-trimming.aspx</link><pubDate>Tue, 07 Feb 2012 21:24:01 GMT</pubDate><guid isPermaLink="false">http://blogs.ugidotnet.org/spboss/archive/2012/02/07/social-comments-e-security-trimming.aspx</guid><wfw:comment>http://blogs.ugidotnet.org/spboss/comments/100756.aspx</wfw:comment><wfw:commentRss>http://blogs.ugidotnet.org/spboss/comments/commentRss/100756.aspx</wfw:commentRss><comments>http://blogs.ugidotnet.org/spboss/archive/2012/02/07/social-comments-e-security-trimming.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://blogs.ugidotnet.org/spboss/services/trackbacks/100756.aspx</trackback:ping><source url="http://blogs.ugidotnet.org/spboss/rss.aspx">Social Comments e Security Trimming</source><description>&lt;p&gt;Eccomi qui a scrivere un bel post sui Commenti di SharePoint, che mi ha fatto tribolare per un pò ma che alla fine sono riuscito a svangarla (direi come al solito :P).&lt;/p&gt;  &lt;p&gt;In un ambiente enterprise dove la security trimming è attivata potremmo avere qualche difficoltà con alcuni oggetti "social" di SharePoint, in particolare io mi sono scontrato con il metodo GetComments dell'oggetto SocialCommentManager, perchè? Perchè avevo la necessità di far visualizzare a livello pubblico i commenti inseriti su una determinata Uri dagli utenti della intranet che sto sviluppando. Il risultato era che sul mio ambiente di sviluppo, come al solito, tutto fila liscio, mentre una volta fatto il deploy dal cliente...succedeva che ogni utente vedeva i propri commenti :( azz!&lt;/p&gt;  &lt;p&gt;Il seguente snippet riporta il modo con cui richiamavo il metodo GetComments:&lt;/p&gt;  &lt;p&gt;&lt;code&gt;SPWeb web = SPContext.Current.Web;&lt;/code&gt;&lt;/p&gt;  &lt;p&gt;&lt;code&gt;SPServiceContext context = SPServiceContext.Current;&lt;/code&gt;&lt;/p&gt;  &lt;p&gt;&lt;code&gt;Uri uri = &lt;/code&gt;&lt;code&gt;new&lt;/code&gt; &lt;code&gt;Uri(web.Url + pageUrl);&lt;/code&gt;&lt;/p&gt;  &lt;p&gt;&lt;code&gt;SocialCommentManager cm = &lt;/code&gt;&lt;code&gt;new&lt;/code&gt; &lt;code&gt;SocialCommentManager(context);&lt;/code&gt;&lt;/p&gt;  &lt;p&gt;&lt;code&gt;SocialComment[] commenti = cm.GetComments(uri);&lt;/code&gt;&lt;/p&gt;  &lt;p&gt;Ma non finisce qui, dopo che ho certificato che il codice era giusto ma il risultato atteso non era esatto, provo con il web service di SharePoint e quindi altro snippet:&lt;/p&gt;  &lt;p&gt;&lt;code&gt;SocialDataService sds = &lt;/code&gt;&lt;code&gt;new&lt;/code&gt; &lt;code&gt;SocialDataService();&lt;/code&gt;&lt;/p&gt;  &lt;p&gt;&lt;code&gt;Microsoft.Office.Server.SocialData.SocialDataService.SocialCommentDetail[] comments = sds.GetCommentsOnUrl(&lt;/code&gt;&lt;code&gt;string&lt;/code&gt;&lt;code&gt;.Concat(SPContext.Current.Site.Url, pageUrl), &lt;/code&gt;&lt;code&gt;null&lt;/code&gt;&lt;code&gt;, &lt;/code&gt;&lt;code&gt;null&lt;/code&gt;&lt;code&gt;, &lt;/code&gt;&lt;code&gt;null&lt;/code&gt;&lt;code&gt;);&lt;/code&gt;&lt;/p&gt;  &lt;p&gt;Niente, sempre lo stesso risultato :(&lt;/p&gt;  &lt;p&gt;Bene, disassembliamo e vediamo che cosa fanno i metodi e faccio una scoperta che mi lascia stupefatto. C'è un bel metodo INTERNAL ..... GetComments che accetta un parametro bool &lt;strong&gt;needSecurityTrim&lt;/strong&gt; e ora?&lt;/p&gt;  &lt;p&gt;&lt;img alt="" src="http://www.stefanopaterno.com/image.axd?picture=2012%2f2%2fSocialComments.PNG" width="900" /&gt;&lt;/p&gt;  &lt;p&gt;Sia lodata la Reflection, con l'ultimo snippet potrete avere la soluzione ai vostri problemi, senza dover ricorrere a disabilitare il Security Trimming via PowerShell:&lt;/p&gt;  &lt;p&gt;&lt;code&gt;var type = &lt;/code&gt;&lt;code&gt;typeof&lt;/code&gt;&lt;code&gt;(SocialCommentManager);&lt;/code&gt;&lt;/p&gt;  &lt;p&gt;&lt;code&gt;var methods = type.GetMethods(System.Reflection.BindingFlags.DeclaredOnly | System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance);&lt;/code&gt;&lt;/p&gt;  &lt;p&gt;&lt;code&gt;var method = methods.FirstOrDefault(m =&amp;gt; m.ToString() == &lt;/code&gt;&lt;code&gt;"Microsoft.Office.Server.SocialData.SocialComment[] GetComments(System.Uri, Int32, Int32, System.DateTime, Boolean)"&lt;/code&gt;&lt;code&gt;);&lt;/code&gt;&lt;/p&gt;  &lt;p&gt;&lt;code&gt;if&lt;/code&gt; &lt;code&gt;(method == &lt;/code&gt;&lt;code&gt;null&lt;/code&gt;&lt;code&gt;) &lt;/code&gt;&lt;code&gt;throw&lt;/code&gt; &lt;code&gt;new&lt;/code&gt; &lt;code&gt;MissingMethodException(&lt;/code&gt;&lt;code&gt;"Social GetComment method not found."&lt;/code&gt;&lt;code&gt;);&lt;/code&gt;&lt;/p&gt;  &lt;p&gt;&lt;code&gt;var comments = method.Invoke(cm, &lt;/code&gt;&lt;code&gt;new&lt;/code&gt; &lt;code&gt;object&lt;/code&gt;&lt;code&gt;[] { uri, 10000, 0, DateTime.MinValue, &lt;/code&gt;&lt;code&gt;false&lt;/code&gt; &lt;code&gt;}) &lt;/code&gt;&lt;code&gt;as&lt;/code&gt; &lt;code&gt;SocialComment[];&lt;/code&gt;&lt;/p&gt;&lt;img src="http://blogs.ugidotnet.org/spboss/aggbug/100756.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/UgidotnetLatestBlogPosts/~4/wOIi89ElcjI" height="1" width="1"/&gt;</description><dc:creator>Stefano Paterno</dc:creator><feedburner:origLink>http://blogs.ugidotnet.org/spboss/archive/2012/02/07/social-comments-e-security-trimming.aspx</feedburner:origLink></item><item><title>Knockout containerless binding</title><link>http://feedproxy.google.com/~r/UgidotnetLatestBlogPosts/~3/FYR95QxKjN8/knockout-containerless-binding.aspx</link><pubDate>Mon, 06 Feb 2012 22:09:47 GMT</pubDate><guid isPermaLink="false">http://blogs.ugidotnet.org/ainotame/archive/2012/02/06/knockout-containerless-binding.aspx</guid><wfw:comment>http://blogs.ugidotnet.org/ainotame/comments/100755.aspx</wfw:comment><wfw:commentRss>http://blogs.ugidotnet.org/ainotame/comments/commentRss/100755.aspx</wfw:commentRss><comments>http://blogs.ugidotnet.org/ainotame/archive/2012/02/06/knockout-containerless-binding.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://blogs.ugidotnet.org/ainotame/services/trackbacks/100755.aspx</trackback:ping><source url="http://blogs.ugidotnet.org/ainotame/rss.aspx">Knockout containerless binding</source><description>&lt;p&gt;&lt;t&gt;In ambito XAML per mostrare una lista di elementi occorre impostare il datacontext di un ItemsControl ad una IEnumerable&lt;t&gt;. L’ItemsControl poi rendererizza la lista in base al DataTemplate specificato nella proprietà ItemTemplate. Per aggiungere oggetti nuovi ho sempre usato ItemTemplateSelector e/o CompositeCollection, ma la presenza di un container l’ho sempre considerata obbligatoria (correggetemi se sbaglio).&lt;/t&gt;&lt;/t&gt;&lt;/p&gt;
&lt;p&gt;&lt;t&gt;Ho considerato l’assioma valido anche in Knockout, ma non è così. Con knockout è possibile scrivere un “contenitore fittizio” tramite commenti:&lt;/t&gt;&lt;/p&gt;
&lt;p&gt;&lt;t&gt;&amp;lt;!-- ko ... --&amp;gt;&lt;br /&gt;
&amp;lt;!-- /ko --&amp;gt;&lt;/t&gt;&lt;/p&gt;
&lt;p&gt;&lt;t&gt;Tramite questa feature è possibile (come nel mio caso particolare) creare una tabella con un numero di colonne variabili:&lt;/t&gt;&lt;/p&gt;
&lt;p&gt;&lt;t /&gt;&lt;/p&gt;
&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;table&lt;/span&gt; &lt;span class="attr"&gt;id&lt;/span&gt;&lt;span class="kwrd"&gt;="classificationTable"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;br /&gt;&lt;/span&gt;     &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;thead&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;br /&gt;&lt;/span&gt;         &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;tr&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;br /&gt;&lt;/span&gt;             &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;td&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;Rank&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;td&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;br /&gt;&lt;/span&gt;             &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;td&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;Country&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;td&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;br /&gt;&lt;/span&gt;             &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;td&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;Full Name&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;td&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;br /&gt;&lt;/span&gt;             &lt;strong&gt;&lt;span class="rem"&gt;&amp;lt;!-- ko foreach: batteries --&amp;gt;&lt;br /&gt;&lt;/span&gt;                 &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;td&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;R&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;span&lt;/span&gt; &lt;span class="attr"&gt;data-bind&lt;/span&gt;&lt;span class="kwrd"&gt;="text: $data"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;span&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;td&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;br /&gt;&lt;/span&gt;             &lt;span class="rem"&gt;&amp;lt;!-- /ko --&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;             &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;td&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;TOT&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;td&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;br /&gt;&lt;/span&gt;         &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;tr&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;br /&gt;&lt;/span&gt;     &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;thead&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;br /&gt;&lt;/span&gt;     &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;tbody&lt;/span&gt; &lt;span class="attr"&gt;data-bind&lt;/span&gt;&lt;span class="kwrd"&gt;="foreach: positions"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;br /&gt;&lt;/span&gt;         &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;tr&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;br /&gt;&lt;/span&gt;             &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;td&lt;/span&gt; &lt;span class="attr"&gt;data-bind&lt;/span&gt;&lt;span class="kwrd"&gt;="text: rank"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;td&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;br /&gt;&lt;/span&gt;             &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;td&lt;/span&gt; &lt;span class="attr"&gt;data-bind&lt;/span&gt;&lt;span class="kwrd"&gt;="text: country"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;td&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;br /&gt;&lt;/span&gt;             &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;td&lt;/span&gt; &lt;span class="attr"&gt;data-bind&lt;/span&gt;&lt;span class="kwrd"&gt;="text: fullname"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;td&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;br /&gt;&lt;/span&gt;             &lt;strong&gt;&lt;span class="rem"&gt;&amp;lt;!-- ko foreach: regularShots --&amp;gt;&lt;br /&gt;&lt;/span&gt;                 &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;td&lt;/span&gt; &lt;span class="attr"&gt;data-bind&lt;/span&gt;&lt;span class="kwrd"&gt;="text: $data"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;td&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt; &lt;br /&gt;            &lt;span class="rem"&gt;&amp;lt;!-- /ko --&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;             &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;td&lt;/span&gt; &lt;span class="attr"&gt;data-bind&lt;/span&gt;&lt;span class="kwrd"&gt;="text: totalRegularPoints"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;td&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;br /&gt;&lt;/span&gt;         &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;tr&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;br /&gt;&lt;/span&gt;     &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;tbody&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;br /&gt;&lt;/span&gt; &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;table&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;Comodo, utile, veloce.&lt;/p&gt;
&lt;p&gt;Ps: gli elementi &amp;lt;td&amp;gt; chiudeteli sempre con un tag &amp;lt;/td&amp;gt;, non scriveteli con un tags self-closing &amp;lt;td data-bind="" /&amp;gt; altrimenti KnockoutJs potrebbe dare qualche problemino (e &lt;a target="_blank" href="http://dev.w3.org/html5/spec-author-view/syntax.html#syntax-start-tag"&gt;non solo lui&lt;/a&gt;)&lt;/p&gt;&lt;img src="http://blogs.ugidotnet.org/ainotame/aggbug/100755.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/UgidotnetLatestBlogPosts/~4/FYR95QxKjN8" height="1" width="1"/&gt;</description><dc:creator>Roberto Sarati</dc:creator><feedburner:origLink>http://blogs.ugidotnet.org/ainotame/archive/2012/02/06/knockout-containerless-binding.aspx</feedburner:origLink></item><item><title>[SEMI-OT] How to Shoot Yourself in the Foot in Any Programming Language</title><link>http://feedproxy.google.com/~r/UgidotnetLatestBlogPosts/~3/o90glDPe0BI/semi-ot-how-to-shoot-yourself-in-the-foot-in-any.aspx</link><pubDate>Mon, 06 Feb 2012 18:33:04 GMT</pubDate><guid isPermaLink="false">http://blogs.ugidotnet.org/ddl/archive/2012/02/06/semi-ot-how-to-shoot-yourself-in-the-foot-in-any.aspx</guid><wfw:comment>http://blogs.ugidotnet.org/ddl/comments/100754.aspx</wfw:comment><wfw:commentRss>http://blogs.ugidotnet.org/ddl/comments/commentRss/100754.aspx</wfw:commentRss><comments>http://blogs.ugidotnet.org/ddl/archive/2012/02/06/semi-ot-how-to-shoot-yourself-in-the-foot-in-any.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://blogs.ugidotnet.org/ddl/services/trackbacks/100754.aspx</trackback:ping><source url="http://blogs.ugidotnet.org/ddl/rss.aspx">[SEMI-OT] How to Shoot Yourself in the Foot in Any Programming Language</source><description>&lt;p&gt;The proliferation of modern programming languages (all of which seem to have stolen countless features from one another) sometimes makes it difficult to remember what language you’re currently using. This guide is offered as a public service to help programmers who find themselves in such dilemmas. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;a href="http://en.wikipedia.org/wiki/C_language" target="_blank"&gt;C&lt;/a&gt;&lt;/strong&gt;    &lt;br /&gt;You shoot yourself in the foot.     &lt;br /&gt;&lt;strong&gt;&lt;a href="http://en.wikipedia.org/wiki/C%2B%2B" target="_blank"&gt;C++&lt;/a&gt;&lt;/strong&gt;     &lt;br /&gt;You accidentally create a dozen clones of yourself and shoot them all in the foot. Providing emergency medical assistance is impossible since you can’t tell which are bitwise copies and which are just pointing at others and saying, “That’s me, over there.”     &lt;br /&gt;&lt;strong&gt;&lt;a href="http://en.wikipedia.org/wiki/Java" target="_blank"&gt;JAVA&lt;/a&gt;&lt;/strong&gt;     &lt;br /&gt;After importing java.awt.right.foot.* and java.awt.gun.right.hand.*, and writing the classes and methods of those classes needed, you’ve forgotten what the hell you’re doing.     &lt;br /&gt;&lt;strong&gt;&lt;a href="http://en.wikipedia.org/wiki/Ruby_language" target="_blank"&gt;Ruby&lt;/a&gt;&lt;/strong&gt;     &lt;br /&gt;Your foot is ready to be shot in roughly five minutes, but you just can’t find anywhere to shoot it.     &lt;br /&gt;&lt;strong&gt;&lt;a href="http://en.wikipedia.org/wiki/Php" target="_blank"&gt;PHP&lt;/a&gt;&lt;/strong&gt;     &lt;br /&gt;You shoot yourself in the foot with a gun made with pieces from 300 other guns.     &lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/ASP.NET" target="_blank"&gt;&lt;strong&gt;ASP.NET&lt;/strong&gt;&lt;/a&gt;     &lt;br /&gt;Find a gun, it falls apart. Put it back together, it falls apart again. You try using the .GUN Framework, it falls apart. You stab yourself in the foot instead.     &lt;br /&gt;&lt;strong&gt;&lt;a href="http://en.wikipedia.org/wiki/Sql" target="_blank"&gt;SQL&lt;/a&gt;&lt;/strong&gt;     &lt;br /&gt;SELECT @ammo:=bullet FROM gun WHERE trigger = ‘PULLED’;     &lt;br /&gt;INSERT INTO leg (foot) VALUES (@ammo);     &lt;br /&gt;&lt;strong&gt;&lt;a href="http://en.wikipedia.org/wiki/Perl" target="_blank"&gt;Perl&lt;/a&gt;&lt;/strong&gt;     &lt;br /&gt;You shoot yourself in the foot, but nobody can understand how you did it. Six months later, neither can you.     &lt;br /&gt;&lt;strong&gt;&lt;a href="http://en.wikipedia.org/wiki/JavaScript" target="_blank"&gt;Javascript&lt;/a&gt;&lt;/strong&gt;     &lt;br /&gt;You’ve perfected a robust, rich user experience for shooting yourself in the foot. You then find that bullets are disabled on your gun.     &lt;br /&gt;&lt;strong&gt;&lt;a href="http://en.wikipedia.org/wiki/Css" target="_blank"&gt;CSS&lt;/a&gt;&lt;/strong&gt;     &lt;br /&gt;You shoot your right foot with one hand, then switch hands to shoot your left foot but you realize that the gun has turned into a banana.     &lt;br /&gt;&lt;strong&gt;&lt;a href="http://en.wikipedia.org/wiki/Fortran" target="_blank"&gt;FORTRAN&lt;/a&gt;&lt;/strong&gt;     &lt;br /&gt;You shoot yourself in each toe, iteratively, until you run out of toes, then you read in the next foot and repeat. If you run out of bullets, you continue anyway because you have no exception-handling ability.     &lt;br /&gt;&lt;strong&gt;&lt;a href="http://en.wikipedia.org/wiki/Modula2" target="_blank"&gt;Modula2&lt;/a&gt;&lt;/strong&gt;     &lt;br /&gt;After realizing that you can’t actually accomplish anything in this language, you shoot yourself in the head.     &lt;br /&gt;&lt;strong&gt;&lt;a href="http://en.wikipedia.org/wiki/Cobol" target="_blank"&gt;COBOL&lt;/a&gt;&lt;/strong&gt;     &lt;br /&gt;Using a COLT 45 HANDGUN, AIM gun at LEG.FOOT, THEN place ARM.HAND.FINGER. on HANDGUN.TRIGGER and SQUEEZE. THEN return HANDGUN to HOLSTER. CHECK whether shoelace needs to be retied.     &lt;br /&gt;&lt;strong&gt;&lt;a href="http://en.wikipedia.org/wiki/Lisp" target="_blank"&gt;LISP&lt;/a&gt;&lt;/strong&gt;     &lt;br /&gt;You shoot yourself in the appendage which holds the gun with which     &lt;br /&gt;you shoot yourself in the appendage which holds the gun with which     &lt;br /&gt;you shoot yourself in the appendage which holds the gun with which     &lt;br /&gt;you shoot yourself in the appendage which holds the gun with which     &lt;br /&gt;you shoot yourself in the appendage which holds ….     &lt;br /&gt;&lt;strong&gt;&lt;a href="http://en.wikipedia.org/wiki/BASIC" target="_blank"&gt;BASIC&lt;/a&gt;&lt;/strong&gt;     &lt;br /&gt;Shoot yourself in the foot with a water pistol. On big systems, continue until entire lower body is waterlogged.     &lt;br /&gt;&lt;strong&gt;&lt;a href="http://en.wikipedia.org/wiki/Forth_%28programming_language%29" target="_blank"&gt;FORTH&lt;/a&gt;&lt;/strong&gt;     &lt;br /&gt;Foot in yourself shoot.     &lt;br /&gt;&lt;strong&gt;&lt;a href="http://en.wikipedia.org/wiki/APL_%28programming_language%29" target="_blank"&gt;APL&lt;/a&gt;&lt;/strong&gt;     &lt;br /&gt;You shoot yourself in the foot, then spend all day figuring out how to do it in fewer characters.     &lt;br /&gt;&lt;strong&gt;&lt;a href="http://en.wikipedia.org/wiki/Pascal_%28programming_language%29" target="_blank"&gt;Pascal&lt;/a&gt;&lt;/strong&gt;     &lt;br /&gt;The compiler won’t let you shoot yourself in the foot.     &lt;br /&gt;&lt;strong&gt;&lt;a href="http://en.wikipedia.org/wiki/Snobol" target="_blank"&gt;SNOBOL&lt;/a&gt;&lt;/strong&gt;     &lt;br /&gt;If you succeed, shoot yourself in the left foot.     &lt;br /&gt;If you fail, shoot yourself in the right foot.     &lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/Concurrent_Euclid" target="_blank"&gt;&lt;strong&gt;Concurrent Euclid&lt;/strong&gt;&lt;/a&gt;     &lt;br /&gt;You shoot yourself in somebody else’s foot.     &lt;br /&gt;&lt;strong&gt;&lt;a href="http://en.wikipedia.org/wiki/HyperTalk" target="_blank"&gt;HyperTalk&lt;/a&gt;&lt;/strong&gt;     &lt;br /&gt;Put the first bullet of the gun into the foot of the left leg of you.     &lt;br /&gt;Answer the result.     &lt;br /&gt;&lt;strong&gt;&lt;a href="http://en.wikipedia.org/wiki/Motif_%28widget_toolkit%29" target="_blank"&gt;Motif&lt;/a&gt;&lt;/strong&gt;     &lt;br /&gt;You spend days writing a UIL description of your foot, the trajectory, the bullet, and the intricate scrollwork on the ivory handles of the gun. When you finally get around to pulling the trigger, the gun jams.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;a href="http://en.wikipedia.org/wiki/Unix" target="_blank"&gt;Unix&lt;/a&gt;&lt;/strong&gt;     &lt;br /&gt;% ls     &lt;br /&gt;foot.c foot.h foot.o toe.c toe.o     &lt;br /&gt;% rm * .o     &lt;br /&gt;rm: .o: No such file or directory     &lt;br /&gt;% ls     &lt;br /&gt;%     &lt;br /&gt;&lt;strong&gt;Paradox&lt;/strong&gt;     &lt;br /&gt;Not only can you shoot yourself in the foot, your users can too.     &lt;br /&gt;&lt;strong&gt;Revelation&lt;/strong&gt;     &lt;br /&gt;You’ll be able to shoot yourself in the foot just as soon as you figure out what all these bullets are for.     &lt;br /&gt;&lt;strong&gt;&lt;a href="http://en.wikipedia.org/wiki/Visual_basic" target="_blank"&gt;Visual Basic&lt;/a&gt;&lt;/strong&gt;     &lt;br /&gt;You’ll shoot yourself in the foot, but you’ll have so much fun doing it that you won’t care.     &lt;br /&gt;&lt;strong&gt;&lt;a href="http://en.wikipedia.org/wiki/Prolog" target="_blank"&gt;Prolog&lt;/a&gt;&lt;/strong&gt;     &lt;br /&gt;You tell your program you want to be shot in the foot. The program figures out how to do it, but the syntax doesn’t allow it to explain.     &lt;br /&gt;&lt;strong&gt;&lt;a href="http://en.wikipedia.org/wiki/Ada_%28programming_language%29" target="_blank"&gt;Ada&lt;/a&gt;&lt;/strong&gt;     &lt;br /&gt;After correctly packaging your foot, you attempt to concurrently load the gun, pull the trigger, scream and shoot yourself in the foot. When you try, however, you discover that your foot is of the wrong type.     &lt;br /&gt;&lt;strong&gt;&lt;a href="http://en.wikipedia.org/wiki/Assembly_language" target="_blank"&gt;Assembly&lt;/a&gt;&lt;/strong&gt;     &lt;br /&gt;You try to shoot yourself in the foot only to discover you must first reinvent the gun, the bullet, and your foot. After that’s done, you pull the trigger, the gun beeps several times, then crashes.     &lt;br /&gt;&lt;strong&gt;&lt;a href="http://en.wikipedia.org/wiki/Job_Control_Language" target="_blank"&gt;370 JCL&lt;/a&gt;&lt;/strong&gt;     &lt;br /&gt;You send your foot down to MIS with a 4000-page document explaining how you want it to be shot. Three years later, your foot comes back deep-fried.     &lt;br /&gt;&lt;strong&gt;&lt;a href="http://en.wikipedia.org/wiki/Pyton" target="_blank"&gt;Python&lt;/a&gt;&lt;/strong&gt;     &lt;br /&gt;You try to shoot yourself in the foot but you just keep hitting the whitespace between your toes.&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:88ae5ff1-173b-4012-bf67-3c56fe2b0028" class="wlWriterEditableSmartContent"&gt;Tag di Technorati: &lt;a href="http://technorati.com/tags/Programming+languages" rel="tag"&gt;Programming languages&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Joke" rel="tag"&gt;Joke&lt;/a&gt;&lt;/div&gt;&lt;img src="http://blogs.ugidotnet.org/ddl/aggbug/100754.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/UgidotnetLatestBlogPosts/~4/o90glDPe0BI" height="1" width="1"/&gt;</description><dc:creator>Nazareno</dc:creator><feedburner:origLink>http://blogs.ugidotnet.org/ddl/archive/2012/02/06/semi-ot-how-to-shoot-yourself-in-the-foot-in-any.aspx</feedburner:origLink></item><item><title>Dependency Injection. Un esempio in microsoft MVC</title><link>http://feedproxy.google.com/~r/UgidotnetLatestBlogPosts/~3/vCRpi4P0Q5Q/dependency-injection.-un-esempio-in-microsoft-mvc.aspx</link><pubDate>Sun, 05 Feb 2012 22:09:00 GMT</pubDate><guid isPermaLink="false">http://blogs.ugidotnet.org/fpranio/archive/2012/02/05/dependency-injection.-un-esempio-in-microsoft-mvc.aspx</guid><wfw:comment>http://blogs.ugidotnet.org/fpranio/comments/100753.aspx</wfw:comment><wfw:commentRss>http://blogs.ugidotnet.org/fpranio/comments/commentRss/100753.aspx</wfw:commentRss><comments>http://blogs.ugidotnet.org/fpranio/archive/2012/02/05/dependency-injection.-un-esempio-in-microsoft-mvc.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://blogs.ugidotnet.org/fpranio/services/trackbacks/100753.aspx</trackback:ping><source url="http://blogs.ugidotnet.org/fpranio/rss.aspx">Dependency Injection. Un esempio in microsoft MVC</source><description>MVC è un pattern dalle ottime potenzialità. Una pillola su come costruire applicazioni con Microsoft MVC3&lt;br /&gt;&lt;br /&gt;
&lt;span style="font-size:16px" text-align="center"&gt;&lt;b&gt;&lt;a href="http://blogs.ugidotnet.org/fpranio/archive/2012/02/08/dependency-injection.-un-esempio-in-microsoft-mvc-again.aspx"&gt;Clicca qui per andare all'articolo&lt;/a&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;img src="http://blogs.ugidotnet.org/fpranio/aggbug/100753.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/UgidotnetLatestBlogPosts/~4/vCRpi4P0Q5Q" height="1" width="1"/&gt;</description><dc:creator>Federico Pranio</dc:creator><feedburner:origLink>http://blogs.ugidotnet.org/fpranio/archive/2012/02/05/dependency-injection.-un-esempio-in-microsoft-mvc.aspx</feedburner:origLink></item><item><title>Superare il limite sulla lunghezza dei file con le funzioni native di Windows</title><link>http://feedproxy.google.com/~r/UgidotnetLatestBlogPosts/~3/DnDyBF7whV4/superare-il-limite-sulla-lunghezza-dei-file-con-le-funzioni.aspx</link><pubDate>Sun, 05 Feb 2012 19:40:20 GMT</pubDate><guid isPermaLink="false">http://blogs.ugidotnet.org/marcom/archive/2012/02/05/superare-il-limite-sulla-lunghezza-dei-file-con-le-funzioni.aspx</guid><wfw:comment>http://blogs.ugidotnet.org/marcom/comments/100752.aspx</wfw:comment><wfw:commentRss>http://blogs.ugidotnet.org/marcom/comments/commentRss/100752.aspx</wfw:commentRss><comments>http://blogs.ugidotnet.org/marcom/archive/2012/02/05/superare-il-limite-sulla-lunghezza-dei-file-con-le-funzioni.aspx#comment</comments><slash:comments>2</slash:comments><trackback:ping>http://blogs.ugidotnet.org/marcom/services/trackbacks/100752.aspx</trackback:ping><source url="http://blogs.ugidotnet.org/marcom/rss.aspx">Superare il limite sulla lunghezza dei file con le funzioni native di Windows</source><description>&lt;p&gt;Utilizzando i metodi per la copia e lo spostamento dei file messi a disposizione dalla classe System.IO.File, se si lavora con percorsi troppo lunghi, si ottiene una &lt;a href="http://msdn.microsoft.com/it-it/library/system.io.pathtoolongexception.aspx" target="_blank"&gt;PathTooLongException&lt;/a&gt;, secondo cui i path devono essere minori di 248 caratteri e i nomi dei file non possono avere più di 260 caratteri.&lt;/p&gt;  &lt;p&gt;Per aggirare il problema, si possono utilizzare le funzioni delle API di Windows, avendo l'accortezza di specificare il prefisso &lt;a href="file:///?\" rel="nofollow"&gt;&lt;span style="color: rgb(0,51,204)"&gt;\\?\&lt;/span&gt;&lt;/a&gt; davanti al nome del file. Nel post &lt;a href="http://galratner.com/blogs/net/archive/2011/02/13/getting-around-pathtoolongexception-on-file-move-with-windows-native-api.aspx" target="_blank"&gt;Getting around PathTooLongException on file move with Windows Native API&lt;/a&gt; di &lt;a href="http://blogs.ugidotnet.org/members/admin/default.aspx" target="_blank"&gt;Gal Ratner&lt;/a&gt; è descritta una semplice classe che mostra l'utilizzo di questo sistema.&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:a2d53965-326a-480d-8e5f-d32c142f4305" class="wlWriterEditableSmartContent"&gt;Tag di Technorati: &lt;a href="http://technorati.com/tags/.NET" rel="tag"&gt;.NET&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Programming" rel="tag"&gt;Programming&lt;/a&gt;,&lt;a href="http://technorati.com/tags/C%23" rel="tag"&gt;C#&lt;/a&gt;&lt;/div&gt;&lt;img src="http://blogs.ugidotnet.org/marcom/aggbug/100752.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/UgidotnetLatestBlogPosts/~4/DnDyBF7whV4" height="1" width="1"/&gt;</description><dc:creator>Marco Minerva</dc:creator><feedburner:origLink>http://blogs.ugidotnet.org/marcom/archive/2012/02/05/superare-il-limite-sulla-lunghezza-dei-file-con-le-funzioni.aspx</feedburner:origLink></item><item><title>WP7 Bing Map</title><link>http://feedproxy.google.com/~r/UgidotnetLatestBlogPosts/~3/cbXxVlWAvRc/wp7-bing-map.aspx</link><pubDate>Sun, 05 Feb 2012 11:58:33 GMT</pubDate><guid isPermaLink="false">http://blogs.ugidotnet.org/Nick60/archive/2012/02/05/wp7-bing-map.aspx</guid><wfw:comment>http://blogs.ugidotnet.org/Nick60/comments/100751.aspx</wfw:comment><wfw:commentRss>http://blogs.ugidotnet.org/Nick60/comments/commentRss/100751.aspx</wfw:commentRss><comments>http://blogs.ugidotnet.org/Nick60/archive/2012/02/05/wp7-bing-map.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://blogs.ugidotnet.org/Nick60/services/trackbacks/100751.aspx</trackback:ping><source url="http://blogs.ugidotnet.org/Nick60/rss.aspx">WP7 Bing Map</source><description>&lt;p&gt;E anche la Mappa delle segnalazioni di Decoro Urbano è completata.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/Nick60/Windows-Live-Writer/WP7-Bing-Map-e-custom-pushpin_AACA/PushpinsMappa.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="PushpinsMappa" border="0" alt="PushpinsMappa" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/Nick60/Windows-Live-Writer/WP7-Bing-Map-e-custom-pushpin_AACA/PushpinsMappa_thumb.png" width="450" height="339" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Prima di tutto devo dire che l’emulatore di Windows Phone è una grande comodità, perché consente di simulare lo spostamento del telefono in giro per il mondo senza muoversi di un metro, risparmiandoci la “fatica” di dover mockare il servizio di posizionamento.&lt;/p&gt;  &lt;p&gt;Ma veniamo alla gestione della mappa delle segnalazioni di Decoro Urbano, per la quale è necessario:&lt;/p&gt;  &lt;p&gt;1. Aggiornare l’area visualizzata al variare della posizione dell’utente;&lt;/p&gt;  &lt;p&gt;2. Recuperare dal servizio web di Decoro Urbano le segnalazioni relative all’area geografica visualizzata nella mappa e mostrare i relativi “pushpin”.&lt;/p&gt;  &lt;p&gt;Il primo punto è facilmente realizzabile usufruendo del metodo &lt;strong&gt;&lt;font color="#0000ff"&gt;SetView(GeoCoordinate center, double zoomLevel)&lt;/font&gt;&lt;/strong&gt; del “Bing Map Control” (Microsoft.Phone.Controls.Maps.Map), dove lo ZoomLevel è il livello di dettaglio richiesto e center è la posizione ottenuta del servizio di localizzazione di cui ho già parlato in un mio precedente post.&lt;/p&gt;  &lt;p&gt;Per il secondo punto occorre fare una breve premessa.&lt;/p&gt;  &lt;p&gt;Colacolare l’area geografica a partire dalle dimensioni del controllo (in termini di pixel, intendo) non è una cosa facile, tutt’altro. Poiché la terra non è piatta e il Sole non gira intorno alla Terra, rappresentare la geometria sferica su di un piano comporta l’uso di una proiezione. Nella cartografia vi sono svariati metodi, ciascuno adatto ad un particolare scopo. A noi serve ottenere la latitudine e la longitudine minima e massima visibili nella mappa, e per tale scopo il Bing Map control offre un paio di metodi.&lt;/p&gt;  &lt;p&gt;Inizialmente ho usato una proprietà che mi sembrava calzasse a pennello: &lt;strong&gt;&lt;font color="#2ccbd3"&gt;LocationRect&lt;/font&gt;&lt;/strong&gt; &lt;font color="#000000"&gt;&lt;strong&gt;BoundingRectangle&lt;/strong&gt; dove Microsoft.Phone.Controls.Maps.LocationRect è una classe che ha le seguenti proprietà:&lt;/font&gt;&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:812efc78-97ff-4b2b-9d11-8dcc6b886e10" class="wlWriterEditableSmartContent"&gt; &lt;div class="le-pavsc-container"&gt; &lt;div style="background-color: #ffffff; max-height: 300px; overflow: auto; padding: 2px 5px; white-space: nowrap"&gt;&lt;span style="color:#2b91af"&gt;GeoCoordinate&lt;/span&gt; Center { &lt;span style="color:#0000ff"&gt;get&lt;/span&gt;; }&lt;br /&gt; &lt;span style="color:#0000ff"&gt;double&lt;/span&gt; East { &lt;span style="color:#0000ff"&gt;get&lt;/span&gt;; &lt;span style="color:#0000ff"&gt;set&lt;/span&gt;; }&lt;br /&gt; &lt;span style="color:#0000ff"&gt;double&lt;/span&gt; Height { &lt;span style="color:#0000ff"&gt;get&lt;/span&gt;; }&lt;br /&gt; &lt;span style="color:#0000ff"&gt;double&lt;/span&gt; North { &lt;span style="color:#0000ff"&gt;get&lt;/span&gt;; &lt;span style="color:#0000ff"&gt;set&lt;/span&gt;; }&lt;br /&gt; &lt;span style="color:#2b91af"&gt;GeoCoordinate&lt;/span&gt; Northeast { &lt;span style="color:#0000ff"&gt;get&lt;/span&gt;; &lt;span style="color:#0000ff"&gt;set&lt;/span&gt;; }&lt;br /&gt; &lt;span style="color:#2b91af"&gt;GeoCoordinate&lt;/span&gt; Northwest { &lt;span style="color:#0000ff"&gt;get&lt;/span&gt;; &lt;span style="color:#0000ff"&gt;set&lt;/span&gt;; }&lt;br /&gt; &lt;span style="color:#0000ff"&gt;double&lt;/span&gt; South { &lt;span style="color:#0000ff"&gt;get&lt;/span&gt;; &lt;span style="color:#0000ff"&gt;set&lt;/span&gt;; }&lt;br /&gt; &lt;span style="color:#2b91af"&gt;GeoCoordinate&lt;/span&gt; Southeast { &lt;span style="color:#0000ff"&gt;get&lt;/span&gt;; &lt;span style="color:#0000ff"&gt;set&lt;/span&gt;; }&lt;br /&gt; &lt;span style="color:#2b91af"&gt;GeoCoordinate&lt;/span&gt; Southwest { &lt;span style="color:#0000ff"&gt;get&lt;/span&gt;; &lt;span style="color:#0000ff"&gt;set&lt;/span&gt;; }&lt;br /&gt; &lt;span style="color:#0000ff"&gt;double&lt;/span&gt; West { &lt;span style="color:#0000ff"&gt;get&lt;/span&gt;; &lt;span style="color:#0000ff"&gt;set&lt;/span&gt;; }&lt;br /&gt; &lt;span style="color:#0000ff"&gt;double&lt;/span&gt; Width { &lt;span style="color:#0000ff"&gt;get&lt;/span&gt;; }&lt;/div&gt; &lt;/div&gt; &lt;/div&gt;  &lt;p&gt;Ma dato che la mappa è asincrona nel recuperare le immagini dal sito per spostarsi con fluidità, dall’istante in cui impostiamo il centro e lo zoom level della mappa al momento in cui la proprietà BoundingRectangle restituisce i dati che ci interessano passa ovviamente del tempo, ovvero quello necessario per spostarsi nella nuova posizione.&lt;/p&gt;  &lt;p&gt;Per fortuna esiste un’altra proprietà, la &lt;strong&gt;TargetBoundingRectangle&lt;/strong&gt; che restituisce immediatamente i dati a noi necessari. In questo modo è stato facile usare le proprietà North e South per ricavare la minima e massima latitudine, West ed East per la minima e massima longitudine, infine passare la richiesta al web service di Decoro Urbano e ottenere le segnalazioni comprese nell’area visualizzata in mappa.&lt;/p&gt;    &lt;p&gt;Nel prossimo post vedremo come bindare l’elenco delle segnalazioni ai pushpins della mappa e personalizzarne l’aspetto.&lt;/p&gt;&lt;img src="http://blogs.ugidotnet.org/Nick60/aggbug/100751.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/UgidotnetLatestBlogPosts/~4/cbXxVlWAvRc" height="1" width="1"/&gt;</description><dc:creator>Nicolò Carandini</dc:creator><feedburner:origLink>http://blogs.ugidotnet.org/Nick60/archive/2012/02/05/wp7-bing-map.aspx</feedburner:origLink></item><item><title>LightSwitch &amp; SQLite</title><link>http://feedproxy.google.com/~r/UgidotnetLatestBlogPosts/~3/0UWNtvKJ8Ek/lightswitch-sqlite.aspx</link><pubDate>Sat, 04 Feb 2012 13:03:16 GMT</pubDate><guid isPermaLink="false">http://blogs.ugidotnet.org/ainotame/archive/2012/02/04/lightswitch-sqlite.aspx</guid><wfw:comment>http://blogs.ugidotnet.org/ainotame/comments/100750.aspx</wfw:comment><wfw:commentRss>http://blogs.ugidotnet.org/ainotame/comments/commentRss/100750.aspx</wfw:commentRss><comments>http://blogs.ugidotnet.org/ainotame/archive/2012/02/04/lightswitch-sqlite.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://blogs.ugidotnet.org/ainotame/services/trackbacks/100750.aspx</trackback:ping><source url="http://blogs.ugidotnet.org/ainotame/rss.aspx">LightSwitch &amp; SQLite</source><description>&lt;p&gt;&lt;font face="Arial"&gt;Premetto che non avrei mai scritto un post sull'argomento, però dato che mi piace fare delle considerazioni, ne sfrutto l'occasione.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial"&gt;Partiamo subito dalle considerazioni. LightSwitch è un prodotto Microsoft che permette di realizzare applicazioni 3-Tier in modo molto semplice e veloce.&lt;br /&gt;
Dall'uscita del prodotto, subito sono sorte domande la cui risposta (imho) è negativa ovvero:&lt;/font&gt;&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;font face="Arial"&gt;Lightswitch è/tenta di sostituire Access? No. Access è Access, ha un altro target. Può sembrare simile, ma solo in lontananza.&lt;/font&gt;&lt;/li&gt;
    &lt;li&gt;&lt;font face="Arial"&gt;E' possibile creare applicazioni 1-Tier? No. O meglio, LightSwitch non è pensato per questo.&lt;/font&gt;&lt;/li&gt;
    &lt;li&gt;&lt;font face="Arial"&gt;E' possibile utilizzare strumenti/tecniche che l'ide non permette velocemente di utilizzare? Ni. Si può fare ma a vostro rischio e pericolo. Questo significa che si può fare con difficoltà, con difficoltà si manterrà nelle prossime versioni, con difficoltà si potrà deployare ecc ecc&lt;/font&gt;&lt;font face="Arial" /&gt;&lt;/li&gt;
    &lt;font face="Arial"&gt;     &lt;font face="Arial" /&gt;&lt;/font&gt;&lt;/ul&gt;
    &lt;font face="Arial"&gt;&lt;font face="Arial"&gt;     &lt;font face="Arial"&gt;
    &lt;p&gt; Detto questo veniamo al punto. Imho, LS + SQLite = No. No perchè SQLite non è pensato per avere multiutenza (i lock vengono messi sul file intero==è come avere un lock su tutto il db), si può usare sqlserver express senza problemi, è 'complicato' da deployare.&lt;/p&gt;
    &lt;/font&gt;
    &lt;p&gt;&lt;font face="Arial"&gt;Avendo premesso tutto questo (la parte secondo me importante), ecco come usare SQLite:&lt;/font&gt;&lt;/p&gt;
    &lt;ol&gt;
        &lt;li&gt;&lt;font face="Arial"&gt;Utilizzare il provider ADO.NET scaricabile all'indirizzo http://system.data.sqlite.org.&lt;br /&gt;
        Attualmente non è incluso l'addin per visual studio. Se servisse, installare il pacchetto (non più mantenuto) da &lt;a href="http://sqlite.phxsoftware.com"&gt;http://sqlite.phxsoftware.com&lt;/a&gt;&lt;/font&gt;&lt;/li&gt;
        &lt;li&gt;&lt;font face="Arial"&gt;Sviluppare aggiungendo un nuovo datasource e selezionando il provider SQLite.&lt;/font&gt;&lt;/li&gt;
        &lt;li&gt;&lt;font face="Arial"&gt;Deployare l'applicazione normalmente.&lt;/font&gt;&lt;/li&gt;
        &lt;li&gt;&lt;font face="Arial"&gt;Una volta effettuato il deploy, LS funziona correttamente ma è necessario configurare SQLite:&lt;/font&gt;&lt;font face="Arial" /&gt;&lt;/li&gt;
        &lt;font face="Arial"&gt;         &lt;font face="Arial"&gt;  - aggiungere nella cartella di bin su IIS gli assembly dei provider: System.Data.Sqlite.dll e System.Data.Sqlite.Linq.dll. (attenzione alla versione x86 o x64)&lt;br /&gt;
         - modificare il web.config per aggiungere il provider:&lt;br /&gt;
         &amp;lt;system.data&amp;gt;&lt;br /&gt;
           &amp;lt;DbProviderFactories&amp;gt;&lt;br /&gt;
             &amp;lt;remove invariant="System.Data.SQLite"/&amp;gt;&lt;br /&gt;
             &amp;lt;add name="SQLite Data Provider" invariant="System.Data.SQLite" description=".Net Framework Data Provider for  SQLite" type="System.Data.SQLite.SQLiteFactory, System.Data.SQLite" /&amp;gt;&lt;br /&gt;
           &amp;lt;/DbProviderFactories&amp;gt;&lt;br /&gt;
         &amp;lt;/system.data&amp;gt;&lt;br /&gt;
         - copiare il database di SQLite in una cartella nuova (che chiamerò dbfolder).&lt;br /&gt;
         - occorre dare i permessi di modifica/scrittura alla cartella dbfolder all'application pool (quindi IIS AppPool/DefaultAppPool o altro)&lt;br /&gt;
         - modificare la connection string nel web.config con il percorso del database SQLit&lt;/font&gt;&lt;/font&gt;&lt;/ol&gt;
        &lt;font face="Arial"&gt;
        &lt;p&gt;&lt;font face="Arial"&gt;Come si può notare, non è tanto un problema di LightSwitch, quanto di SQLite, dei provider ADO ecc.&lt;br /&gt;
        E' vero che LS non è perfetto e migliorabile (cosa non lo è) però a volte la strada più semplice è la migliore.&lt;br /&gt;
        &lt;/font&gt;&lt;/p&gt;
        &lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;img src="http://blogs.ugidotnet.org/ainotame/aggbug/100750.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/UgidotnetLatestBlogPosts/~4/0UWNtvKJ8Ek" height="1" width="1"/&gt;</description><dc:creator>Roberto Sarati</dc:creator><feedburner:origLink>http://blogs.ugidotnet.org/ainotame/archive/2012/02/04/lightswitch-sqlite.aspx</feedburner:origLink></item><item><title>Playing transitions with WinJS and Expression Blend for HTML</title><link>http://feedproxy.google.com/~r/UgidotnetLatestBlogPosts/~3/m9BreEpGK6g/playing-with-transitions-with-winjs-and-expression-blend-for-html.aspx</link><pubDate>Fri, 03 Feb 2012 18:30:50 GMT</pubDate><guid isPermaLink="false">http://blogs.ugidotnet.org/corrado/archive/2012/02/03/playing-with-transitions-with-winjs-and-expression-blend-for-html.aspx</guid><wfw:comment>http://blogs.ugidotnet.org/corrado/comments/100749.aspx</wfw:comment><wfw:commentRss>http://blogs.ugidotnet.org/corrado/comments/commentRss/100749.aspx</wfw:commentRss><comments>http://blogs.ugidotnet.org/corrado/archive/2012/02/03/playing-with-transitions-with-winjs-and-expression-blend-for-html.aspx#comment</comments><slash:comments>1</slash:comments><trackback:ping>http://blogs.ugidotnet.org/corrado/services/trackbacks/100749.aspx</trackback:ping><source url="http://blogs.ugidotnet.org/corrado/rss.aspx">Playing transitions with WinJS and Expression Blend for HTML</source><description>&lt;p&gt;Here’s a simple tutorial about using Expression Blend for HTML5 and some little Javascript to create a simple transition effect.&lt;/p&gt;  &lt;p&gt;Fire up Expression Blend 5 and by double clicking the elements on Assets library add a button and a div, let’s rename it by double clicking them in&lt;strong&gt; LiveDOM&lt;/strong&gt; pane.&lt;/p&gt;  &lt;p&gt;Here’s live DOM contents and it’s HTML counterpart (I’ve manually added button Go! content)&lt;/p&gt;  &lt;table border="0" cellspacing="0" cellpadding="2" width="400"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td width="200"&gt;&lt;a href="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/corrado/Windows-Live-Writer/Playing-with-transitions-in-WinJS_10548/image_8.png" rel="lightbox"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/corrado/Windows-Live-Writer/Playing-with-transitions-in-WinJS_10548/image_thumb_3.png" width="326" height="212" /&gt;&lt;/a&gt;&lt;/td&gt;        &lt;td valign="top" width="200"&gt;         &lt;div id="codeSnippetWrapper"&gt;           &lt;div id="codeSnippetWrapper"&gt;             &lt;div id="codeSnippetWrapper"&gt;               &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 212.23%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; height: 288px; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;&amp;lt;!DOCTYPE html&amp;gt;&lt;br /&gt;&amp;lt;html&amp;gt;&lt;br /&gt;&amp;lt;head&amp;gt;&lt;br /&gt;    &amp;lt;meta charset=&lt;span style="color: #006080"&gt;"utf-8"&lt;/span&gt; /&amp;gt;&lt;br /&gt;    &amp;lt;title&amp;gt;WinJSTransitions&amp;lt;/title&amp;gt;&lt;br /&gt;    &amp;lt;!-- WinJS references --&amp;gt;&lt;br /&gt;    &amp;lt;link rel=&lt;span style="color: #006080"&gt;"stylesheet"&lt;/span&gt; href=&lt;span style="color: #006080"&gt;"/winjs/css/ui-dark.css"&lt;/span&gt; /&amp;gt;&lt;br /&gt;    &amp;lt;script src=&lt;span style="color: #006080"&gt;"/winjs/js/base.js"&lt;/span&gt;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;    &amp;lt;script src=&lt;span style="color: #006080"&gt;"/winjs/js/wwaapp.js"&lt;/span&gt;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;    &amp;lt;!-- WinJSTransitions references --&amp;gt;&lt;br /&gt;    &amp;lt;link rel=&lt;span style="color: #006080"&gt;"stylesheet"&lt;/span&gt; href=&lt;span style="color: #006080"&gt;"/css/default.css"&lt;/span&gt; /&amp;gt;&lt;br /&gt;    &amp;lt;script src=&lt;span style="color: #006080"&gt;"/js/default.js"&lt;/span&gt;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&amp;lt;/head&amp;gt;&lt;br /&gt;&amp;lt;body&amp;gt;&lt;br /&gt;    &amp;lt;button id=&lt;span style="color: #006080"&gt;"btn"&lt;/span&gt;&amp;gt;Go!&amp;lt;/button&amp;gt;&lt;br /&gt;    &amp;lt;div id=&lt;span style="color: #006080"&gt;"box"&lt;/span&gt;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&amp;lt;/body&amp;gt;&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;/pre&gt;

              &lt;br /&gt;&lt;/div&gt;

            &lt;br /&gt;&lt;/div&gt;

          &lt;br /&gt;&lt;/div&gt;
      &lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;&lt;/table&gt;

&lt;p&gt;It’s time to make the box div look like a rectangle by applying a style: Select box element inside Live DOM and click on the little down arrow inside &lt;strong&gt;CSS Properties&lt;/strong&gt; tab and by using &lt;strong&gt;CSS Properties&lt;/strong&gt; tab let’s add some style properties.

  &lt;br /&gt;On right you see the Css that Blend generated while playing with properties (approach is very similar to Blend for XAML BTW…)&lt;/p&gt;

&lt;table border="0" cellspacing="0" cellpadding="2" width="664"&gt;&lt;tbody&gt;
    &lt;tr&gt;
      &lt;td valign="top" width="305"&gt;&lt;a href="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/corrado/Windows-Live-Writer/Playing-with-transitions-in-WinJS_10548/image_12.png" rel="lightbox"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/corrado/Windows-Live-Writer/Playing-with-transitions-in-WinJS_10548/image_thumb_5.png" width="299" height="287" /&gt;&lt;/a&gt;&lt;/td&gt;

      &lt;td width="244"&gt;
        &lt;div id="codeSnippetWrapper"&gt;
          &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;#box {&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;border&lt;/span&gt;-radius: &lt;span style="color: #006080"&gt;20px;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;width&lt;/span&gt;: &lt;span style="color: #006080"&gt;200px;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;height&lt;/span&gt;: &lt;span style="color: #006080"&gt;200px;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;background-color&lt;/span&gt;: &lt;span style="color: #006080"&gt;#4292B0;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;margin&lt;/span&gt;-&lt;span style="color: #0000ff"&gt;top&lt;/span&gt;: &lt;span style="color: #006080"&gt;20px;&lt;/span&gt;&lt;br /&gt;}&lt;/pre&gt;

          &lt;br /&gt;&lt;/div&gt;
      &lt;/td&gt;

      &lt;td valign="top" width="113"&gt;
        &lt;p align="left"&gt;&lt;a href="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/corrado/Windows-Live-Writer/Playing-with-transitions-in-WinJS_10548/image_14.png" rel="lightbox"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/corrado/Windows-Live-Writer/Playing-with-transitions-in-WinJS_10548/image_thumb_6.png" width="244" height="212" /&gt;&lt;/a&gt;

          &lt;br /&gt;&lt;em&gt;&lt;font size="2"&gt;
              &lt;br /&gt;Actual preview output&lt;/font&gt;&lt;/em&gt;&lt;/p&gt;
      &lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;&lt;/table&gt;

&lt;p&gt;Since I want to use transition for &lt;em&gt;margin-left&lt;/em&gt; and &lt;em&gt;opacity&lt;/em&gt; properties let’s use Blend capability for this:&lt;/p&gt;

&lt;table border="0" cellspacing="0" cellpadding="2" width="400"&gt;&lt;tbody&gt;
    &lt;tr&gt;
      &lt;td valign="top" width="200"&gt;&lt;a href="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/corrado/Windows-Live-Writer/Playing-with-transitions-in-WinJS_10548/image_16.png" rel="lightbox"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/corrado/Windows-Live-Writer/Playing-with-transitions-in-WinJS_10548/image_thumb_7.png" width="402" height="110" /&gt;&lt;/a&gt;&lt;/td&gt;

      &lt;td valign="top" width="200"&gt;
        &lt;div id="codeSnippetWrapper"&gt;
          &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 183.22%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; height: 160px; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;#box {&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;border&lt;/span&gt;-radius: &lt;span style="color: #006080"&gt;20px;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;width&lt;/span&gt;: &lt;span style="color: #006080"&gt;200px;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;height&lt;/span&gt;: &lt;span style="color: #006080"&gt;200px;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;background-color&lt;/span&gt;: &lt;span style="color: #006080"&gt;#4292B0;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;margin&lt;/span&gt;-&lt;span style="color: #0000ff"&gt;top&lt;/span&gt;: &lt;span style="color: #006080"&gt;20px;&lt;/span&gt;&lt;br /&gt;    -ms-transition-property: &lt;span style="color: #0000ff"&gt;margin&lt;/span&gt;&lt;span style="color: #006080"&gt;-left, opacity;&lt;/span&gt;&lt;br /&gt;    -ms-transition-duration: &lt;span style="color: #006080"&gt;0.7s, 1.26s;&lt;/span&gt;&lt;br /&gt;    -ms-transition-timing-function: &lt;span style="color: #006080"&gt;linear, linear;&lt;/span&gt;&lt;br /&gt;}&lt;/pre&gt;

          &lt;br /&gt;&lt;/div&gt;
      &lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;&lt;/table&gt;

&lt;p&gt;As you see I’ve added the two properties inside &lt;strong&gt;Transition&lt;/strong&gt; pane, set it’s duration by dragging the slider on right and set both to use linear easing, on right you can see how the css looks like now.&lt;/p&gt;

&lt;p&gt;To trigger the transitions I’m going to dynamically add a class to box div, so let’s define them using Blend by first selecting the &lt;strong&gt;default.css&lt;/strong&gt; file inside &lt;strong&gt;Styles&lt;/strong&gt; &lt;strong&gt;tab&lt;/strong&gt; then clicking on “&lt;strong&gt;+&lt;/strong&gt;” button to create two class definition named “&lt;em&gt;in&lt;/em&gt;” and “&lt;em&gt;out&lt;/em&gt;” (see below)&lt;/p&gt;

&lt;p&gt;&lt;a href="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/corrado/Windows-Live-Writer/Playing-with-transitions-in-WinJS_10548/image_18.png" rel="lightbox"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/corrado/Windows-Live-Writer/Playing-with-transitions-in-WinJS_10548/image_thumb_8.png" width="396" height="282" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now, with “&lt;em&gt;in&lt;/em&gt;” class selected let change the value of opacity and margin-left to 1 and 0px respectively then select “&lt;em&gt;out&lt;/em&gt;” class and change same properties to 0 and 300px, the related css entries should now look:&lt;/p&gt;

&lt;div id="codeSnippetWrapper"&gt;
  &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;&lt;span style="color: #cc6633"&gt;.in&lt;/span&gt; {&lt;br /&gt;    opacity: 1;&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;margin&lt;/span&gt;-&lt;span style="color: #0000ff"&gt;left&lt;/span&gt;: &lt;span style="color: #006080"&gt;0px;&lt;/span&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #cc6633"&gt;.out&lt;/span&gt; {&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;margin&lt;/span&gt;-&lt;span style="color: #0000ff"&gt;left&lt;/span&gt;: &lt;span style="color: #006080"&gt;300px;&lt;/span&gt;&lt;br /&gt;    opacity: 0;&lt;br /&gt;}&lt;/pre&gt;

  &lt;br /&gt;&lt;/div&gt;

&lt;p&gt;Let’s add the “in” class to our div by selecting it and typing “in” inside Attributes pane (manually editing the HTML is probably easier in this case…)&lt;/p&gt;

&lt;p&gt;&lt;a href="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/corrado/Windows-Live-Writer/Playing-with-transitions-in-WinJS_10548/image_22.png" rel="lightbox"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/corrado/Windows-Live-Writer/Playing-with-transitions-in-WinJS_10548/image_thumb_10.png" width="329" height="165" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It’s now time to write to code (or should I say script? &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-smile" alt="Smile" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/corrado/Windows-Live-Writer/Playing-with-transitions-in-WinJS_10548/wlEmoticon-smile_2.png" /&gt;) right click the project inside Blend and select “&lt;strong&gt;Edit in Visual Studio&lt;/strong&gt;” to open the project in Visual Studio 2011&lt;/p&gt;

&lt;p&gt;&lt;a href="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/corrado/Windows-Live-Writer/Playing-with-transitions-in-WinJS_10548/image_20.png" rel="lightbox"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/corrado/Windows-Live-Writer/Playing-with-transitions-in-WinJS_10548/image_thumb_9.png" width="326" height="201" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Code should look very straightforward: we’re going to subscribe to click event to add and remove “in” and “out” classes to the div element.
  &lt;br /&gt;Before typing any code is necessary to &lt;u&gt;add a reference to&lt;/u&gt; &lt;em&gt;ui.js&lt;/em&gt; file from our HTML page because is there that &lt;a href="http://msdn.microsoft.com/en-us/library/windows/apps/br229798.aspx" target="_blank"&gt;addClass&lt;/a&gt; and &lt;a href="http://msdn.microsoft.com/en-us/library/windows/apps/br229848.aspx" target="_blank"&gt;removeClass&lt;/a&gt; methods live.&lt;/p&gt;

&lt;div id="codeSnippetWrapper"&gt;
  &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;(&lt;span style="color: #0000ff"&gt;function&lt;/span&gt; () {&lt;br /&gt;    &lt;span style="color: #006080"&gt;'use strict'&lt;/span&gt;;&lt;br /&gt;    &lt;span style="color: #008000"&gt;// Uncomment the following line to enable first chance exceptions.&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: #008000"&gt;// Debug.enableFirstChanceException(true);&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;var&lt;/span&gt; isVisible=&lt;span style="color: #0000ff"&gt;true&lt;/span&gt;;&lt;br /&gt;    WinJS.Application.onmainwindowactivated = &lt;span style="color: #0000ff"&gt;function&lt;/span&gt; (e) {&lt;br /&gt;        &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (e.detail.kind === Windows.ApplicationModel.Activation.ActivationKind.launch) {&lt;br /&gt;            document.getElementById(&lt;span style="color: #006080"&gt;"btn"&lt;/span&gt;).addEventListener(&lt;span style="color: #006080"&gt;"click"&lt;/span&gt;, &lt;span style="color: #0000ff"&gt;function&lt;/span&gt; (e)&lt;br /&gt;            {&lt;br /&gt;                &lt;span style="color: #0000ff"&gt;var&lt;/span&gt; box = document.getElementById(&lt;span style="color: #006080"&gt;"box"&lt;/span&gt;);&lt;br /&gt;                &lt;span style="color: #0000ff"&gt;var&lt;/span&gt; toAdd = isVisible ? &lt;span style="color: #006080"&gt;"out"&lt;/span&gt; : &lt;span style="color: #006080"&gt;"in"&lt;/span&gt;;&lt;br /&gt;                &lt;span style="color: #0000ff"&gt;var&lt;/span&gt; toRemove = isVisible ? &lt;span style="color: #006080"&gt;"in"&lt;/span&gt; : &lt;span style="color: #006080"&gt;"out"&lt;/span&gt;;&lt;br /&gt;                WinJS.Utilities.removeClass(box, toRemove);&lt;br /&gt;                WinJS.Utilities.addClass(box, toAdd);&lt;br /&gt;                isVisible = !isVisible;&lt;br /&gt;            }, &lt;span style="color: #0000ff"&gt;false&lt;/span&gt;);&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    WinJS.Application.start();&lt;br /&gt;})();&lt;/pre&gt;

  &lt;br /&gt;&lt;/div&gt;

&lt;p&gt;Press F5 and you’ll see the rectangle moving and fading to the right and viceversa each time you click the button.
  &lt;br /&gt;&lt;/p&gt;

&lt;p&gt;No rocket science here, but it works… &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-winkingsmile" alt="Winking smile" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/corrado/Windows-Live-Writer/Playing-with-transitions-in-WinJS_10548/wlEmoticon-winkingsmile_2.png" /&gt;&lt;/p&gt;

&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:986a10ba-1b39-4a57-8af0-c5c74593b616" class="wlWriterEditableSmartContent"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/WinRT" rel="tag"&gt;WinRT&lt;/a&gt;,&lt;a href="http://technorati.com/tags/WinJS" rel="tag"&gt;WinJS&lt;/a&gt;&lt;/div&gt;&lt;img src="http://blogs.ugidotnet.org/corrado/aggbug/100749.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/UgidotnetLatestBlogPosts/~4/m9BreEpGK6g" height="1" width="1"/&gt;</description><dc:creator>Corrado Cavalli</dc:creator><feedburner:origLink>http://blogs.ugidotnet.org/corrado/archive/2012/02/03/playing-with-transitions-with-winjs-and-expression-blend-for-html.aspx</feedburner:origLink></item><item><title>Sapevatelo: tfpt connections</title><link>http://feedproxy.google.com/~r/UgidotnetLatestBlogPosts/~3/1YDLTPU3vSg/sapevatelo-tfpt-connections.aspx</link><pubDate>Fri, 03 Feb 2012 18:21:52 GMT</pubDate><guid isPermaLink="false">http://blogs.ugidotnet.org/rgm/archive/2012/02/03/sapevatelo-tfpt-connections.aspx</guid><wfw:comment>http://blogs.ugidotnet.org/rgm/comments/100748.aspx</wfw:comment><wfw:commentRss>http://blogs.ugidotnet.org/rgm/comments/commentRss/100748.aspx</wfw:commentRss><comments>http://blogs.ugidotnet.org/rgm/archive/2012/02/03/sapevatelo-tfpt-connections.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://blogs.ugidotnet.org/rgm/services/trackbacks/100748.aspx</trackback:ping><source url="http://blogs.ugidotnet.org/rgm/rss.aspx">Sapevatelo: tfpt connections</source><description>&lt;p&gt;Tra le varie utility dei TFS Power Tools vi segnalo la &lt;strong&gt;tfpt connections&lt;/strong&gt;, lanciabile da riga di comando, ma che apre una comoda User Interface che permette di visualizzare tutte le varie connessioni ai server TFS effettuate dalla macchina attuale. Tra le varie informazioni che trovate vi è la possibilità di decidere se volete effettuare una riconnessione automatica al server &lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/rgm/Windows-Live-Writer/Sapevatelo-tfpt-connections_10DF4/SNAGHTML20d58f3.png"&gt;&lt;img style="border: 0px currentcolor; display: inline; background-image: none;" title="SNAGHTML20d58f3" border="0" alt="SNAGHTML20d58f3" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/rgm/Windows-Live-Writer/Sapevatelo-tfpt-connections_10DF4/SNAGHTML20d58f3_thumb.png" width="460" height="535" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Questa funzionalità è utile se ad esempio lavorate spesso disconnessi e quindi volete evitare che ad ogni avvio di VS venga effettuata una riconnessione automatica all’ultimo TFS Server utilizzato. Nella figura sopra ho infatti disabilitato la connessinoe automatica al TFS PREVIEW.&lt;/p&gt;  &lt;p&gt;Tra le altre opzioni trovate la possibilità di abilitare o disabilitare la compressione, di bypassare il proxy e di limitare il numero di connessioni concorrenti.&lt;/p&gt;  &lt;p&gt;Un grazie a &lt;a href="http://blogs.ugidotnet.org/j3r/Default.aspx"&gt;Matteo&lt;/a&gt; che mi ha rinfrescato la memoria, dato che non mi ricordavo più dove stava questa finestra :), le feature di TFS sono cosi tante che è veramente difficile ricordarle tutte :P&lt;/p&gt;  &lt;p&gt;Gian Maria&lt;/p&gt;&lt;img src="http://blogs.ugidotnet.org/rgm/aggbug/100748.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/UgidotnetLatestBlogPosts/~4/1YDLTPU3vSg" height="1" width="1"/&gt;</description><dc:creator>Gian Maria  Ricci</dc:creator><feedburner:origLink>http://blogs.ugidotnet.org/rgm/archive/2012/02/03/sapevatelo-tfpt-connections.aspx</feedburner:origLink></item><item><title>The dimensions of Agile</title><link>http://feedproxy.google.com/~r/UgidotnetLatestBlogPosts/~3/svCN1u7YfFk/the-dimensions-of-agile.aspx</link><pubDate>Fri, 03 Feb 2012 08:03:08 GMT</pubDate><guid isPermaLink="false">http://blogs.ugidotnet.org/luKa/archive/2012/02/03/the-dimensions-of-agile.aspx</guid><wfw:comment>http://blogs.ugidotnet.org/luKa/comments/100747.aspx</wfw:comment><wfw:commentRss>http://blogs.ugidotnet.org/luKa/comments/commentRss/100747.aspx</wfw:commentRss><comments>http://blogs.ugidotnet.org/luKa/archive/2012/02/03/the-dimensions-of-agile.aspx#comment</comments><slash:comments>3</slash:comments><trackback:ping>http://blogs.ugidotnet.org/luKa/services/trackbacks/100747.aspx</trackback:ping><source url="http://blogs.ugidotnet.org/luKa/rss.aspx">The dimensions of Agile</source><description>&lt;br /&gt;
&lt;img hspace="10" border="0" align="left" vspace="10" src="http://www.marieclaire.com/cm/marieclaire/images/Eb/how-good-is-your-gut-instinct-results-7-de.jpg" style="width: 368px; height: 276px;" alt="" /&gt;&lt;br /&gt;
&lt;br /&gt;
After hands-on experience with Agile practices, working in Agile environments and attending conferences with Agile experts, I have annotated what I think could be &lt;span style="color: rgb(0, 153, 255); font-weight: bold;"&gt;the dimensions of Agile&lt;/span&gt; that detail and expand &lt;span style="color: rgb(255, 0, 255); font-weight: bold;"&gt;the original motto&lt;/span&gt; Embrace Change:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
    &lt;li&gt;dealing with &lt;span style="font-weight: bold; color: rgb(153, 204, 0);"&gt;uncertainty&lt;/span&gt;&lt;br /&gt;
    &lt;br /&gt;
    &lt;/li&gt;
    &lt;li&gt;managing the &lt;span style="font-weight: bold; color: rgb(153, 204, 0);"&gt;unexpected&lt;/span&gt;&lt;br /&gt;
    &lt;br /&gt;
    &lt;/li&gt;
    &lt;li&gt; recognizing the &lt;span style="color: rgb(153, 204, 0); font-weight: bold;"&gt;unknowns&lt;/span&gt;&lt;br /&gt;
    &lt;br /&gt;
    &lt;/li&gt;
    &lt;li&gt;exploring through &lt;span style="font-weight: bold; color: rgb(153, 204, 0);"&gt;discovery &amp;amp; invention&lt;/span&gt;&lt;br /&gt;
    &lt;br /&gt;
    &lt;/li&gt;
    &lt;li&gt;balancing &lt;span style="font-weight: bold; color: rgb(153, 204, 0);"&gt;anticipation &amp;amp; adaptation&lt;/span&gt;&lt;br /&gt;
    &lt;br /&gt;
    &lt;/li&gt;
    &lt;li&gt;combining &lt;span style="font-weight: bold; color: rgb(153, 204, 0);"&gt;instinct &amp;amp; thought &amp;amp; experience&lt;/span&gt; &lt;span style="color: rgb(153, 204, 0);"&gt;(as learning from action)&lt;/span&gt;&lt;br /&gt;
    &lt;br /&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;span style="font-weight: bold; color: rgb(153, 204, 0);"&gt;making sense&lt;/span&gt; in complex contexts&lt;br /&gt;
    &lt;br /&gt;
    &lt;/li&gt;
    &lt;li&gt;amplify the &lt;span style="font-weight: bold; color: rgb(255, 102, 0);"&gt;&lt;span style="color: rgb(153, 204, 0);"&gt;emergence&lt;/span&gt; &lt;/span&gt;of beneficial behaviors and outcomes&lt;br /&gt;
    &lt;br /&gt;
    &lt;/li&gt;
    &lt;li&gt;continuing the &lt;span style="font-weight: bold; color: rgb(153, 204, 0);"&gt;quest for craftsmanship&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;span style="color: rgb(0, 153, 255); font-weight: bold;"&gt; Dimensions&lt;/span&gt; &lt;span style="color: rgb(128, 128, 128);"&gt;are  intended here in the sense that the values and principles in the Agile  Manifesto, the values and principles and practices of XP, the 3 legs the  3 artifacts the 3 roles and the 3 meetings of Scrum as well as the  foundations the roles and the activities and artifacts of OpenAgile and  the values and the principles of Lean can all be directly related and derilved from one  or more dimensions.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-weight: bold; color: rgb(255, 0, 255);"&gt; Can you suggest other dimensions?&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style="text-align: center;"&gt; Tags :  &lt;a href="http://blogs.ugidotnet.org/luKa/Tags/Team+Work" rel="tag"&gt;Team Work&lt;/a&gt; | &lt;a href="http://blogs.ugidotnet.org/luKa/Tags/Agile" rel="tag"&gt;Agile&lt;/a&gt; | &lt;a href="http://blogs.ugidotnet.org/luKa/Tags/Lean+Agile" rel="tag"&gt;Lean Agile&lt;/a&gt; | &lt;a href="http://blogs.ugidotnet.org/luKa/Tags/Complessità" rel="tag"&gt;Complessità&lt;/a&gt; |   &lt;br /&gt;
&lt;/div&gt;
&lt;div style="text-align: center;"&gt; &lt;a href="javascript:var%20t=((window.getSelection&amp;amp;&amp;amp;window.getSelection())||(document.getSelection&amp;amp;&amp;amp;document.getSelection())||(document.selection&amp;amp;&amp;amp;document.selection.createRange&amp;amp;&amp;amp;document.selection.createRange().text));var%20e=(document.charset||document.characterSet);if(t!=''){location.href='http://translate.google.com/translate_t?text='+t+'&amp;amp;hl=en&amp;amp;langpair=en|it&amp;amp;tbb=1&amp;amp;ie='+e;}else{location.href='http://translate.google.com/translate?u='+escape(location.href)+'&amp;amp;hl=en&amp;amp;langpair=en|it&amp;amp;tbb=1&amp;amp;ie='+e;};" title="Clicca per tradurre questa pagina Web. Seleziona e clicca per tradurre la selezione."&gt;Traduci al ITALIANO &amp;gt;&amp;gt;&amp;gt;&lt;/a&gt; &lt;/div&gt;&lt;img src="http://blogs.ugidotnet.org/luKa/aggbug/100747.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/UgidotnetLatestBlogPosts/~4/svCN1u7YfFk" height="1" width="1"/&gt;</description><dc:creator>Luca Minudel</dc:creator><feedburner:origLink>http://blogs.ugidotnet.org/luKa/archive/2012/02/03/the-dimensions-of-agile.aspx</feedburner:origLink></item><item><title>Quasi XML e Regular Expressions Negative Lookup</title><link>http://feedproxy.google.com/~r/UgidotnetLatestBlogPosts/~3/zp7iu8qBFk0/quasi-xml-e-regular-expressions-negative-lookup.aspx</link><pubDate>Thu, 02 Feb 2012 17:43:15 GMT</pubDate><guid isPermaLink="false">http://blogs.ugidotnet.org/Nick60/archive/2012/02/02/quasi-xml-e-regular-expressions-negative-lookup.aspx</guid><wfw:comment>http://blogs.ugidotnet.org/Nick60/comments/100746.aspx</wfw:comment><wfw:commentRss>http://blogs.ugidotnet.org/Nick60/comments/commentRss/100746.aspx</wfw:commentRss><comments>http://blogs.ugidotnet.org/Nick60/archive/2012/02/02/quasi-xml-e-regular-expressions-negative-lookup.aspx#comment</comments><slash:comments>6</slash:comments><trackback:ping>http://blogs.ugidotnet.org/Nick60/services/trackbacks/100746.aspx</trackback:ping><source url="http://blogs.ugidotnet.org/Nick60/rss.aspx">Quasi XML e Regular Expressions Negative Lookup</source><description>&lt;p&gt;Premessa:&lt;/p&gt;  &lt;p&gt;Oggi mi sono trovato a dover risolvere una questione relativa alla “pulizia” di dati “quasi XML”, che all’interno dei tag XML possono eventualmente contenere il carattere “proibito” &amp;amp; (ampersand).&lt;/p&gt;  &lt;p&gt;Com’è noto, tale carattere è un metacarattere che serve a rappresentare i caratteri non consentiti all’interno dei tags XML, secondo la nota tabella:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/Nick60/Windows-Live-Writer/Quasi-XML-e-Regular-expressions_FA6E/Tabella%20Metachars%20XML_4.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="Tabella Metachars XML" border="0" alt="Tabella Metachars XML" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/Nick60/Windows-Live-Writer/Quasi-XML-e-Regular-expressions_FA6E/Tabella%20Metachars%20XML_thumb_1.png" width="240" height="145" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;La cosa è complicata per il fatto che i dati suddetti possono contenere sia ampersand errate (un ampersand solo soletto) e sia corretti (&amp;amp;amp;), com’è possibile vedere nell’esempio dove il valore contenuto nel &amp;lt;tag&amp;gt; è &lt;font color="#0000ff"&gt;&lt;strong&gt;Mario scrive: "You &amp;amp; Me, forever!"&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;font size="4" face="Courier New"&gt;&amp;lt;tag&amp;gt;&lt;font color="#0000ff"&gt;Mario scrive: &amp;amp;quot;You &lt;font color="#ff0000"&gt;&amp;amp;&lt;/font&gt; Me, forever!&amp;amp;quot;&lt;/font&gt;&amp;lt;/tag&amp;gt;&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;che dobbiamo trasformare in&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;font size="4" face="Courier New"&gt;&amp;lt;tag&amp;gt;&lt;font color="#0000ff"&gt;Mario scrive: &amp;amp;quot;You &lt;font color="#00ff00"&gt;&amp;amp;amp;&lt;/font&gt; Me, forever!&amp;amp;quot;&lt;/font&gt;&amp;lt;/tag&amp;gt;&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;E’ evidente che non possiamo semplicemente sostituire ogni ampersand con &amp;amp;amp; perchè altrimenti otterremmo:&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;font size="4" face="Courier New"&gt;&amp;lt;tag&amp;gt;&lt;font color="#0000ff"&gt;Mario scrive: &lt;font color="#ff0000"&gt;&amp;amp;amp;quot;&lt;/font&gt;You &lt;font color="#00ff00"&gt;&amp;amp;amp;&lt;/font&gt; Me, forever&lt;/font&gt;&lt;font color="#ff0000"&gt;!&amp;amp;amp;quot;&lt;/font&gt;&amp;lt;/tag&amp;gt;&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Veniamo quindi all’oggetto di questo post:&lt;/p&gt;  &lt;p&gt;Nelle espressioni regolari è possibile utilizzare il “Negative Lookup” per NON riconoscere un costrutto SE DOPO ce n’è un’altro.&lt;/p&gt;  &lt;p&gt;Nel nostro caso in esempio, l’espressione regolare è&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff" size="4" face="Courier New"&gt;&lt;strong&gt;&amp;amp;&lt;font color="#9b00d3"&gt;(?!&lt;/font&gt;quot;&lt;font color="#9b00d3"&gt;)&lt;/font&gt;&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;che troverà tutti gli &lt;strong&gt;&lt;font color="#0000ff"&gt;&amp;amp;&lt;/font&gt;&lt;/strong&gt; non seguiti da &lt;font color="#0000ff"&gt;&lt;strong&gt;quot;&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;e più in generale:&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff" size="4" face="Courier New"&gt;&lt;strong&gt;&amp;amp;&lt;font color="#9b00d3"&gt;(?!&lt;/font&gt;lt;|gt;|amp;|apos;|quot;&lt;font color="#9b00d3"&gt;)&lt;/font&gt;&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;That’s all folks!&lt;/p&gt;&lt;img src="http://blogs.ugidotnet.org/Nick60/aggbug/100746.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/UgidotnetLatestBlogPosts/~4/zp7iu8qBFk0" height="1" width="1"/&gt;</description><dc:creator>Nicolò Carandini</dc:creator><feedburner:origLink>http://blogs.ugidotnet.org/Nick60/archive/2012/02/02/quasi-xml-e-regular-expressions-negative-lookup.aspx</feedburner:origLink></item><item><title>Rappresentare la &amp;ldquo;Definition of Done&amp;rdquo;</title><link>http://feedproxy.google.com/~r/UgidotnetLatestBlogPosts/~3/eS8VtFtmE2g/rappresentare-la-ldquodefinition-of-donerdquo.aspx</link><pubDate>Thu, 02 Feb 2012 11:15:03 GMT</pubDate><guid isPermaLink="false">http://blogs.ugidotnet.org/j3r/archive/2012/02/02/rappresentare-la-ldquodefinition-of-donerdquo.aspx</guid><wfw:comment>http://blogs.ugidotnet.org/j3r/comments/100745.aspx</wfw:comment><wfw:commentRss>http://blogs.ugidotnet.org/j3r/comments/commentRss/100745.aspx</wfw:commentRss><comments>http://blogs.ugidotnet.org/j3r/archive/2012/02/02/rappresentare-la-ldquodefinition-of-donerdquo.aspx#comment</comments><slash:comments>3</slash:comments><trackback:ping>http://blogs.ugidotnet.org/j3r/services/trackbacks/100745.aspx</trackback:ping><source url="http://blogs.ugidotnet.org/j3r/rss.aspx">Rappresentare la &amp;ldquo;Definition of Done&amp;rdquo;</source><description>&lt;p&gt;Uno dei punti cardine di un buon processo di sviluppo è stabilire chiaramente cosa significhi che un &lt;em&gt;qualcosa&lt;/em&gt; sia &lt;strong&gt;completato&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt;La cosiddetta &lt;em&gt;Definition of Done &lt;/em&gt;[DoD] nasce in Scrum, ma è evidente che può, anzi deve, essere adattata a qualunque processo per raggiungere dei risultati accettabili&lt;/p&gt;  &lt;p&gt;Sostanzialmente si tratta di una lista di attività, che vanno dallo scrivere codice, al testing, arrivando fino alle release note che aggiungono valore al prodotto. In Scrum è estremamente enfatizzata, cosiccome dalla Continuous Delivery, che quindi pretende che &lt;em&gt;done&lt;/em&gt; corrisponda a &lt;em&gt;shippable.&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;Naturalmente non esiste una DoD universale: va adattata in base allo scenario, al processo utilizzato e soprattutto al livello in cui la stiamo applicando: una DoD di un check-in non corrisponde alla DoD di uno sprint o di un backlog.&lt;/p&gt;  &lt;p&gt;E’ essenziale che sia trasparente a tutti i membri del team, e tutti i criteri della DoD devono essere soddisfatti per ogni Product Backlog Item.&lt;/p&gt;  &lt;p&gt;Modellare la DoD sul processo significa sostanzialmente utilizzare gli strumenti a disposizione per far si che il workflow di lavoro vada a configurarsi per seguire i passaggi della DoD del team.&lt;/p&gt;  &lt;p&gt;Team Foundation Server ci aiuta in vari modi: innanzitutto con le &lt;strong&gt;Check-In Policy&lt;/strong&gt;. Rispettare una serie di Check-In Policy significa dover rispettare alcune regole, quindi aderire alla DoD. Queste regole raggiungono il loro apice con un &lt;strong&gt;Gated Check-In&lt;/strong&gt;, che funge da barriera netta: dentro o fuori. Ovviamente è possibile scrivere altre policy oltre a quelle presenti di default in TFS oppure utilizzare il &lt;a href="http://checkinpolicypack.codeplex.com/"&gt;Check-In Policy Pack for TFS&lt;/a&gt;, disponibile su CodePlex.&lt;/p&gt;  &lt;p&gt;Nel caso in cui il check-in sia rigettato, è possibile eseguire uno &lt;strong&gt;shelve &lt;/strong&gt;(che purtroppo vedo ancora poco utilizzato in molti casi). Con lo shelve, oltre a poter accantonare quel determinato task e quindi essere pronti per eseguirne un altro in attesa di nuovi sviluppi, si hanno molti piacevoli &lt;em&gt;side effects&lt;/em&gt;.&lt;/p&gt;  &lt;p&gt;Il primo è sempre in ombra ma in realtà estremamente importante: il backup. Infatti tutti gli shelveset sono coperti dal backup di Team Foundation Server.    &lt;br /&gt;Inoltre uno shelveset può essere oggetto di Code Review (in vari modi, a breve dedicherò un post alla nuova funzionalità in Visual Studio 11) da parte di altri membri del team, a tutto vantaggio della qualità.     &lt;br /&gt;Senza contare poi che gli shelveset rimangono &lt;em&gt;proprietà intellettuale&lt;/em&gt; del proprietario, non essendo solamente un pezzo di codice che rimane lato client ma comunque qualcosa che rimane lato server e quindi all’interno dell’organizzazione.&lt;/p&gt;&lt;img src="http://blogs.ugidotnet.org/j3r/aggbug/100745.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/UgidotnetLatestBlogPosts/~4/eS8VtFtmE2g" height="1" width="1"/&gt;</description><dc:creator>Matteo Emili</dc:creator><feedburner:origLink>http://blogs.ugidotnet.org/j3r/archive/2012/02/02/rappresentare-la-ldquodefinition-of-donerdquo.aspx</feedburner:origLink></item><item><title>[.NET Gadgeteer] La mia applicazione sul sito ufficiale</title><link>http://feedproxy.google.com/~r/UgidotnetLatestBlogPosts/~3/_iUcW2jbi-k/.net-gadgeteer-la-mia-applicazione-sul-sito-ufficiale.aspx</link><pubDate>Tue, 31 Jan 2012 22:16:58 GMT</pubDate><guid isPermaLink="false">http://blogs.ugidotnet.org/marcom/archive/2012/01/31/.net-gadgeteer-la-mia-applicazione-sul-sito-ufficiale.aspx</guid><wfw:comment>http://blogs.ugidotnet.org/marcom/comments/100744.aspx</wfw:comment><wfw:commentRss>http://blogs.ugidotnet.org/marcom/comments/commentRss/100744.aspx</wfw:commentRss><comments>http://blogs.ugidotnet.org/marcom/archive/2012/01/31/.net-gadgeteer-la-mia-applicazione-sul-sito-ufficiale.aspx#comment</comments><slash:comments>2</slash:comments><trackback:ping>http://blogs.ugidotnet.org/marcom/services/trackbacks/100744.aspx</trackback:ping><source url="http://blogs.ugidotnet.org/marcom/rss.aspx">[.NET Gadgeteer] La mia applicazione sul sito ufficiale</source><description>&lt;p&gt;L’applicazione per .NET Gadgeteer che ho realizzato insieme a &lt;a href="http://mikedodaro.net/" target="_blank"&gt;Micheal Dodaro&lt;/a&gt;, &lt;a href="http://www.netmf.com/showcase.aspx?ShowcaseID=2&amp;amp;id=185" target="_blank"&gt;.NET Gadgeteer Servo Camera &amp;amp; Windows Phone Client&lt;/a&gt;, è stata inserita nel sito ufficiale di &lt;a href="http://www.netmf.com/gadgeteer/" target="_blank"&gt;.NET Gadgeteer&lt;/a&gt;. In questo momento compare direttamente nella Home Page come Featured Project.&lt;/p&gt;  &lt;p&gt;Anche queste sono soddisfazioni, e un chiaro stimolo a continuare sulla strada che ho intrapreso.&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:e8b1410a-be9a-4a8d-a8b8-7c07af2d26c3" class="wlWriterEditableSmartContent"&gt;Tag di Technorati: &lt;a href="http://technorati.com/tags/.NET" rel="tag"&gt;.NET&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Programming" rel="tag"&gt;Programming&lt;/a&gt;,&lt;a href="http://technorati.com/tags/.NET+Micro+Framework" rel="tag"&gt;.NET Micro Framework&lt;/a&gt;&lt;/div&gt;&lt;img src="http://blogs.ugidotnet.org/marcom/aggbug/100744.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/UgidotnetLatestBlogPosts/~4/_iUcW2jbi-k" height="1" width="1"/&gt;</description><dc:creator>Marco Minerva</dc:creator><feedburner:origLink>http://blogs.ugidotnet.org/marcom/archive/2012/01/31/.net-gadgeteer-la-mia-applicazione-sul-sito-ufficiale.aspx</feedburner:origLink></item><item><title>Using JQuery with WinJS</title><link>http://feedproxy.google.com/~r/UgidotnetLatestBlogPosts/~3/Bsl5b094t1M/using-jquery-with-winjs.aspx</link><pubDate>Tue, 31 Jan 2012 18:20:32 GMT</pubDate><guid isPermaLink="false">http://blogs.ugidotnet.org/corrado/archive/2012/01/31/using-jquery-with-winjs.aspx</guid><wfw:comment>http://blogs.ugidotnet.org/corrado/comments/100743.aspx</wfw:comment><wfw:commentRss>http://blogs.ugidotnet.org/corrado/comments/commentRss/100743.aspx</wfw:commentRss><comments>http://blogs.ugidotnet.org/corrado/archive/2012/01/31/using-jquery-with-winjs.aspx#comment</comments><slash:comments>15</slash:comments><trackback:ping>http://blogs.ugidotnet.org/corrado/services/trackbacks/100743.aspx</trackback:ping><source url="http://blogs.ugidotnet.org/corrado/rss.aspx">Using JQuery with WinJS</source><description>&lt;p&gt;I can hardly imagine any serious web development without &lt;a href="http://jquery.com/" target="_blank"&gt;JQuery&lt;/a&gt; so I did  a quick test to check if it can be used inside a WinJS project and answer is: &lt;strong&gt;yes!&lt;/strong&gt; even if not in its total completeness.     &lt;br /&gt;You can’t use any CDN to get JQuery library, it must be included in your project (quite obvious since application must load even without any network connection) so I’ve grabbed latest version and added it to my WinJS project&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/corrado/Windows-Live-Writer/Using-JQuery-with-WinJS_10A55/image_4.png" rel="lightbox"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/corrado/Windows-Live-Writer/Using-JQuery-with-WinJS_10A55/image_thumb_1.png" width="260" height="272" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;I then later created a very naïve HTML page:&lt;/p&gt;  &lt;div id="codeSnippetWrapper"&gt;   &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;!&lt;/span&gt;&lt;span style="color: #800000"&gt;DOCTYPE&lt;/span&gt; &lt;span style="color: #ff0000"&gt;html&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;html&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;head&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;   &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;meta&lt;/span&gt; &lt;span style="color: #ff0000"&gt;charset&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="utf-8"&lt;/span&gt; &lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;   &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;title&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;WinJsJQuery&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;title&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;   &lt;span style="color: #008000"&gt;&amp;lt;!-- WinJS references --&amp;gt;&lt;/span&gt;&lt;br /&gt;   &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;link&lt;/span&gt; &lt;span style="color: #ff0000"&gt;rel&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="stylesheet"&lt;/span&gt; &lt;span style="color: #ff0000"&gt;href&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="/winjs/css/ui-dark.css"&lt;/span&gt; &lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;   &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;script&lt;/span&gt; &lt;span style="color: #ff0000"&gt;src&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="/winjs/js/base.js"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;script&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum1"&gt;   1:&lt;/span&gt;  &lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum2"&gt;   2:&lt;/span&gt;    &amp;lt;script src=&lt;span style="color: #006080"&gt;"/winjs/js/wwaapp.js"&lt;/span&gt;&amp;gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum1"&gt;   1:&lt;/span&gt; &amp;lt;/script&amp;gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum2"&gt;   2:&lt;/span&gt;    &amp;lt;!-- WinJsJQuery references --&amp;gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum3"&gt;   3:&lt;/span&gt;    &amp;lt;link rel=&lt;span style="color: #006080"&gt;"stylesheet"&lt;/span&gt; href=&lt;span style="color: #006080"&gt;"/css/default.css"&lt;/span&gt; /&amp;gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum4"&gt;   4:&lt;/span&gt;    &amp;lt;script src=&lt;span style="color: #006080"&gt;"/js/default.js"&lt;/span&gt;&amp;gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum1"&gt;   1:&lt;/span&gt; &amp;lt;/script&amp;gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060" id="lnum2"&gt;   2:&lt;/span&gt;    &amp;lt;script src=&lt;span style="color: #006080"&gt;"lib/jquery-1.7.1.min.js"&lt;/span&gt; type=&lt;span style="color: #006080"&gt;"text/javascript"&lt;/span&gt;&amp;gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;script&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;head&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;body&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;   &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;button&lt;/span&gt; &lt;span style="color: #ff0000"&gt;id&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="loadButton"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;Load content&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;button&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;   &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;div&lt;/span&gt; &lt;span style="color: #ff0000"&gt;id&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="host"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;   &lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;div&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;body&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;html&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;br /&gt;&lt;/div&gt;

&lt;p&gt;then fired some JQuery code:&lt;/p&gt;

&lt;div id="codeSnippetWrapper"&gt;
  &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;WinJS.Application.onmainwindowactivated = &lt;span style="color: #0000ff"&gt;function&lt;/span&gt; (e)&lt;br /&gt;    {&lt;br /&gt;        &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (e.detail.kind === Windows.ApplicationModel.Activation.ActivationKind.launch)&lt;br /&gt;        {&lt;br /&gt;            $(&lt;span style="color: #006080"&gt;"#loadButton"&lt;/span&gt;).click(&lt;span style="color: #0000ff"&gt;function&lt;/span&gt; (e)&lt;br /&gt;            {&lt;br /&gt;                $(&lt;span style="color: #006080"&gt;"&amp;lt;h3&amp;gt;Hello from JQuery&amp;lt;/h3&amp;gt;"&lt;/span&gt;).appendTo($(&lt;span style="color: #006080"&gt;"#host"&lt;/span&gt;));&lt;br /&gt;            });&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    WinJS.Application.start();&lt;/pre&gt;

  &lt;br /&gt;&lt;/div&gt;

&lt;p&gt;and everything works expected.&lt;/p&gt;

&lt;p&gt;Tried then adding some dynamic content using JQuery’s &lt;a href="http://api.jquery.com/load/" target="_blank"&gt;load&lt;/a&gt; method:&lt;/p&gt;

&lt;div id="codeSnippetWrapper"&gt;
  &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;$("#host").load("fragment.html");&lt;/pre&gt;

  &lt;br /&gt;&lt;/div&gt;
but got a security exception (well, it make sense…) 

&lt;p&gt;&lt;a href="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/corrado/Windows-Live-Writer/Using-JQuery-with-WinJS_10A55/image_2.png" rel="lightbox"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/corrado/Windows-Live-Writer/Using-JQuery-with-WinJS_10A55/image_thumb.png" width="372" height="236" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Ok, what if content comes from an external site? something like:&lt;/p&gt;

&lt;div id="codeSnippetWrapper"&gt;
  &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;$("#host").load("http://www.mysite.it/public/fragment.html", function (content, status, xhr){});&lt;br /&gt;..&lt;br /&gt;&lt;br /&gt;$.get("http://www.mysite.it/public/fragment.html", function (response){});&lt;/pre&gt;

  &lt;br /&gt;&lt;/div&gt;

&lt;p&gt;Well, none of the seems to work, load method returns a status=”error” while $.get simply doesn’t invokes callback function.&lt;/p&gt;

&lt;p&gt;I finally ended up using WinJs.xhr method and it works:&lt;/p&gt;

&lt;div id="codeSnippetWrapper"&gt;
  &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;WinJS.xhr({ url: "http://www.mysite.it/fragment.html" }).then(function (request)&lt;br /&gt;{                    &lt;br /&gt;  $(request.responseText).appendTo($("#host"));&lt;br /&gt;}, function (){});&lt;/pre&gt;

  &lt;br /&gt;&lt;/div&gt;

&lt;p&gt;Just some tests, nothing more (let’s not forget that it’s just a developer preview) but glad to see that JQuery’s power is available even in WinJS client application.&lt;/p&gt;

&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:f6df11c1-50cd-4154-b82c-1cb54280d246" class="wlWriterEditableSmartContent"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/WinJS" rel="tag"&gt;WinJS&lt;/a&gt;,&lt;a href="http://technorati.com/tags/JQuery" rel="tag"&gt;JQuery&lt;/a&gt;&lt;/div&gt;&lt;img src="http://blogs.ugidotnet.org/corrado/aggbug/100743.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/UgidotnetLatestBlogPosts/~4/Bsl5b094t1M" height="1" width="1"/&gt;</description><dc:creator>Corrado Cavalli</dc:creator><feedburner:origLink>http://blogs.ugidotnet.org/corrado/archive/2012/01/31/using-jquery-with-winjs.aspx</feedburner:origLink></item><item><title>Festa patronale</title><link>http://feedproxy.google.com/~r/UgidotnetLatestBlogPosts/~3/r_JPCYYbb_0/festa-patronale.aspx</link><pubDate>Tue, 31 Jan 2012 12:02:18 GMT</pubDate><guid isPermaLink="false">http://blogs.ugidotnet.org/manuel0081/archive/2012/01/31/festa-patronale.aspx</guid><wfw:comment>http://blogs.ugidotnet.org/manuel0081/comments/100741.aspx</wfw:comment><wfw:commentRss>http://blogs.ugidotnet.org/manuel0081/comments/commentRss/100741.aspx</wfw:commentRss><comments>http://blogs.ugidotnet.org/manuel0081/archive/2012/01/31/festa-patronale.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://blogs.ugidotnet.org/manuel0081/services/trackbacks/100741.aspx</trackback:ping><source url="http://blogs.ugidotnet.org/manuel0081/rss.aspx">Festa patronale</source><description>&lt;p&gt;Un pensiero a tutti quei datori di lavoro che inventano mille scuse per non far festeggiare il patrono. Ricordo che è un sacrosanto diritto del lavoratore e che la festa, come i ponti e le ferie, aiuta altri rami del commercio che hanno diritto alla sopravvivenza proprio come il vostro.&lt;/p&gt;
&lt;p&gt;Ultimamente poi c'è la brutta usanza di concedere la festività perchè non c'è lavoro.&lt;/p&gt;
&lt;p&gt;Contrario anche a chi vuole eliminare le feste patronali e spostare le feste non sacre al lunedi. Evitare i ponti? Che assurdità... invece di prendere il venerdi o il lunedi di ferie, potrei sempre prendere il martedi no?!&lt;/p&gt;
&lt;p&gt;Spero davvero in maggiore serietà da parte di tutti...&lt;/p&gt;
&lt;p&gt;E se la neve lo permette, farò a breve un giro in fiera &lt;img alt="" src="/Providers/BlogEntryEditor/FCKeditor/editor/images/smiley/msn/regular_smile.gif" /&gt;&lt;/p&gt;
&lt;hr /&gt;
Technorati tags: &lt;a rel="tag" href="http://technorati.com/tags/Lavoro"&gt;Lavoro&lt;/a&gt;&lt;img src="http://blogs.ugidotnet.org/manuel0081/aggbug/100741.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/UgidotnetLatestBlogPosts/~4/r_JPCYYbb_0" height="1" width="1"/&gt;</description><dc:creator>Emanuele Prato</dc:creator><feedburner:origLink>http://blogs.ugidotnet.org/manuel0081/archive/2012/01/31/festa-patronale.aspx</feedburner:origLink></item><item><title>[db] Confronto database (sql server)</title><link>http://feedproxy.google.com/~r/UgidotnetLatestBlogPosts/~3/KifRZVkZkQY/db-confronto-database-sql-server.aspx</link><pubDate>Mon, 30 Jan 2012 10:05:43 GMT</pubDate><guid isPermaLink="false">http://blogs.ugidotnet.org/alessage/archive/2012/01/30/db-confronto-database-sql-server.aspx</guid><wfw:comment>http://blogs.ugidotnet.org/alessage/comments/100740.aspx</wfw:comment><wfw:commentRss>http://blogs.ugidotnet.org/alessage/comments/commentRss/100740.aspx</wfw:commentRss><comments>http://blogs.ugidotnet.org/alessage/archive/2012/01/30/db-confronto-database-sql-server.aspx#comment</comments><slash:comments>6</slash:comments><trackback:ping>http://blogs.ugidotnet.org/alessage/services/trackbacks/100740.aspx</trackback:ping><source url="http://blogs.ugidotnet.org/alessage/rss.aspx">[db] Confronto database (sql server)</source><description>all'indirizzo &lt;a href="http://dbcomparer.com/"&gt;http://dbcomparer.com&lt;/a&gt;&lt;br /&gt;
potete trovare un tool free che vi consente di analizzare le differenze tra 2 database sql server &lt;br /&gt;
utile&lt;img src="http://blogs.ugidotnet.org/alessage/aggbug/100740.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/UgidotnetLatestBlogPosts/~4/KifRZVkZkQY" height="1" width="1"/&gt;</description><dc:creator>Alessandro Gervasoni</dc:creator><feedburner:origLink>http://blogs.ugidotnet.org/alessage/archive/2012/01/30/db-confronto-database-sql-server.aspx</feedburner:origLink></item><item><title>WP7 e la geolocalizzazione</title><link>http://feedproxy.google.com/~r/UgidotnetLatestBlogPosts/~3/9CCvN_k7Niw/wp7-e-la-geolocalizzazione.aspx</link><pubDate>Sun, 29 Jan 2012 18:25:26 GMT</pubDate><guid isPermaLink="false">http://blogs.ugidotnet.org/Nick60/archive/2012/01/29/wp7-e-la-geolocalizzazione.aspx</guid><wfw:comment>http://blogs.ugidotnet.org/Nick60/comments/100739.aspx</wfw:comment><wfw:commentRss>http://blogs.ugidotnet.org/Nick60/comments/commentRss/100739.aspx</wfw:commentRss><comments>http://blogs.ugidotnet.org/Nick60/archive/2012/01/29/wp7-e-la-geolocalizzazione.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://blogs.ugidotnet.org/Nick60/services/trackbacks/100739.aspx</trackback:ping><source url="http://blogs.ugidotnet.org/Nick60/rss.aspx">WP7 e la geolocalizzazione</source><description>&lt;p&gt;Nello sviluppo del client per Decoro Urbano, un aspetto essenziale è quello della localizzazione.&lt;/p&gt;  &lt;p&gt;WP7 mette a disposizione un servizio che utilizza in modo efficiente tre fonti di dati, secondo la disponibilità: GPS, Wi-Fi e rete cellulare. vi sono due livelli di precisione (standard e alta) e la possibilità di definire un valore di distanza minima entro la quale non deve essere segnalata alcuna variazione di posizione. In tal modo il consumo della batteria viene ridotto al minimo. E’ comunque buona prassi, nello sviluppo della propria applicazione, attenersi alle buone pratiche d’uso descritte &lt;a href="http://msdn.microsoft.com/en-us/library/ff431814(v=vs.92).aspx" target="_blank"&gt;qui&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Io, per maggiore comodità, ho wrappato il servizio in una classe “GeoPosition” che gestisce il servizio (più o meno secondo qaunto descritto &lt;a href="http://msdn.microsoft.com/en-us/library/ff431782(v=vs.92).aspx" target="_blank"&gt;qui&lt;/a&gt;) esponendo le proprietà utili quali lo stato del servizio, la posizione, ecc. attraverso l’ INotifyPropertyChanged. In questo modo, inserendo nel ViewModel una proprietà di tipo GeoPosition posso aggiornare la view utilizzando il classico meccanismo di binding. Poiché al cambio di posizione corrisponde una chiamata al web service di Decoro Urbano che ritorna il nome del Comune ed alcune informazioni associate (ad esempio se tale Comune partecipa al progetto), è stato divertente provare sull’emulatore e scoprire che mi trovavo a Redmon, che al momento non partecipa a Decoro Urbano (ma mai dire mai!) :-D&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/Nick60/Windows-Live-Writer/f30759ba9504_FAAA/PosizioneRedmond_4.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="PosizioneRedmond" border="0" alt="PosizioneRedmond" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/Nick60/Windows-Live-Writer/f30759ba9504_FAAA/PosizioneRedmond_thumb_1.png" width="450" height="339" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Il motivo è semplice. Nell’emulatore il servizio fornisce la posizione di default. Cambiando manualmente la posizione nella mappa dall’apposita finestra dell’emulatore (ad esempio su viale Mazzini, a Roma), otteniamo in asincrono la modifica del testo nella view:&lt;/p&gt;        &lt;p&gt;&lt;a href="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/Nick60/Windows-Live-Writer/f30759ba9504_FAAA/PosizioneRoma_2.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="PosizioneRoma" border="0" alt="PosizioneRoma" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/Nick60/Windows-Live-Writer/f30759ba9504_FAAA/PosizioneRoma_thumb.png" width="450" height="338" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Riassumendo: il Location Service aggiorna la proprietà posizione della classe“GeoPosition” che notifica il suo cambiamento mediante INotifyPropertyChanged, il mio ViewModel lancia una richiesta HTTP asincrona al servizio web di Decoro Urbano. Quando viene ricevuta la risposta viene modificata la proprietà “UserStatAndPositionDescription” che restituisce il testo da mostrare nella view. Anche quest’ultima modifica è segnalata tramite INotifyPropertyChanged e quindi la view viene automaticamente aggiornata.&lt;/p&gt;  &lt;p&gt;Windows Phone Rulez!&lt;/p&gt;&lt;img src="http://blogs.ugidotnet.org/Nick60/aggbug/100739.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/UgidotnetLatestBlogPosts/~4/9CCvN_k7Niw" height="1" width="1"/&gt;</description><dc:creator>Nicolò Carandini</dc:creator><feedburner:origLink>http://blogs.ugidotnet.org/Nick60/archive/2012/01/29/wp7-e-la-geolocalizzazione.aspx</feedburner:origLink></item><item><title>Questo blog e&amp;rsquo; stato spostato&amp;hellip;</title><link>http://feedproxy.google.com/~r/UgidotnetLatestBlogPosts/~3/EprtHOselqo/questo-blog-ersquo-stato-spostatohellip.aspx</link><pubDate>Sun, 29 Jan 2012 14:50:26 GMT</pubDate><guid isPermaLink="false">http://blogs.ugidotnet.org/angellaa/archive/2012/01/29/questo-blog-ersquo-stato-spostatohellip.aspx</guid><wfw:comment>http://blogs.ugidotnet.org/angellaa/comments/100737.aspx</wfw:comment><wfw:commentRss>http://blogs.ugidotnet.org/angellaa/comments/commentRss/100737.aspx</wfw:commentRss><comments>http://blogs.ugidotnet.org/angellaa/archive/2012/01/29/questo-blog-ersquo-stato-spostatohellip.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://blogs.ugidotnet.org/angellaa/services/trackbacks/100737.aspx</trackback:ping><source url="http://blogs.ugidotnet.org/angellaa/rss.aspx">Questo blog e&amp;rsquo; stato spostato&amp;hellip;</source><description>&lt;p&gt; &lt;/p&gt;  &lt;p&gt;Questo e’ il mio nuovo blog:&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;font size="3"&gt;&lt;a href="http://andrea-angella.blogspot.com/"&gt;Andrea Angella – Official Blog&lt;/a&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;Ciao a tutti ragazzi,   &lt;br /&gt;ormai e’ venuto il tempo anche per me di avere il mio spazio personale.&lt;/p&gt;  &lt;p&gt;I motivi sono tanti e sono riassunti nel mio primo post che potete trovare qui:&lt;/p&gt;  &lt;p&gt;&lt;a title="http://andrea-angella.blogspot.com/2012/01/my-new-official-blog.html" href="http://andrea-angella.blogspot.com/2012/01/my-new-official-blog.html"&gt;http://andrea-angella.blogspot.com/2012/01/my-new-official-blog.html&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Questo non e’ certamente un addio, continuero’ a seguire la community Italiana come ho sempre fatto, aiutare DotNetToscana a crescere. Spero che questa sia l’occasione di iniziare a bloggare piu’ frequentemente e che alcuni di voi avranno voglia di registrarsi al mio nuovo feed. &lt;/p&gt;  &lt;p&gt;&lt;a title="http://feeds.feedburner.com/AndreaAngella-OfficialBlog" href="http://feeds.feedburner.com/AndreaAngella-OfficialBlog"&gt;http://feeds.feedburner.com/AndreaAngella-OfficialBlog&lt;/a&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;Un grazie di cuore ad &lt;a href="http://www.ugidotnet.org/"&gt;UgiDotNet&lt;/a&gt; per tutti questi anni di servizio&lt;/p&gt;  &lt;p&gt;Un abbraccio&lt;/p&gt;  &lt;p&gt;Andrea&lt;/p&gt;&lt;img src="http://blogs.ugidotnet.org/angellaa/aggbug/100737.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/UgidotnetLatestBlogPosts/~4/EprtHOselqo" height="1" width="1"/&gt;</description><dc:creator>Andrea Angella</dc:creator><feedburner:origLink>http://blogs.ugidotnet.org/angellaa/archive/2012/01/29/questo-blog-ersquo-stato-spostatohellip.aspx</feedburner:origLink></item><item><title>This blog has been moved&amp;hellip;</title><link>http://feedproxy.google.com/~r/UgidotnetLatestBlogPosts/~3/DQ-nVcS-GaY/this-blog-has-been-movedhellip.aspx</link><pubDate>Sun, 29 Jan 2012 14:55:39 GMT</pubDate><guid isPermaLink="false">http://blogs.ugidotnet.org/angellaa-en/archive/2012/01/29/this-blog-has-been-movedhellip.aspx</guid><wfw:comment>http://blogs.ugidotnet.org/angellaa-en/comments/100738.aspx</wfw:comment><wfw:commentRss>http://blogs.ugidotnet.org/angellaa-en/comments/commentRss/100738.aspx</wfw:commentRss><comments>http://blogs.ugidotnet.org/angellaa-en/archive/2012/01/29/this-blog-has-been-movedhellip.aspx#comment</comments><slash:comments>6</slash:comments><trackback:ping>http://blogs.ugidotnet.org/angellaa-en/services/trackbacks/100738.aspx</trackback:ping><source url="http://blogs.ugidotnet.org/angellaa-en/rss.aspx">This blog has been moved&amp;hellip;</source><description>&lt;p&gt; &lt;/p&gt;  &lt;p&gt;This is my new blog:&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;font size="3"&gt;&lt;a href="http://andrea-angella.blogspot.com/"&gt;Andrea Angella – Official Blog&lt;/a&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;Hello everybody,&lt;/p&gt;  &lt;p&gt;It is time for me to have my personal space.&lt;/p&gt;  &lt;p&gt;There are many reasons and you can find a description in the following post:&lt;/p&gt;  &lt;p&gt;&lt;a title="http://andrea-angella.blogspot.com/2012/01/my-new-official-blog.html" href="http://andrea-angella.blogspot.com/2012/01/my-new-official-blog.html"&gt;http://andrea-angella.blogspot.com/2012/01/my-new-official-blog.html&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;This is not certainty an goodbye because I will continue to follow all the Italian community as I always did and help DotNetToscana to grow.&lt;/p&gt;  &lt;p&gt;I hope that this will be the opportunity to blog more and that some of you will subscribe to my new feed:&lt;/p&gt;  &lt;p&gt;&lt;a title="http://feeds.feedburner.com/AndreaAngella-OfficialBlog" href="http://feeds.feedburner.com/AndreaAngella-OfficialBlog"&gt;http://feeds.feedburner.com/AndreaAngella-OfficialBlog&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Thanks a lot to &lt;a href="http://www.ugidotnet.org/"&gt;UgiDotNet&lt;/a&gt; for all these yeas of service&lt;/p&gt;  &lt;p&gt;Regards&lt;/p&gt;  &lt;p&gt;Andrea&lt;/p&gt;&lt;img src="http://blogs.ugidotnet.org/angellaa-en/aggbug/100738.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/UgidotnetLatestBlogPosts/~4/DQ-nVcS-GaY" height="1" width="1"/&gt;</description><dc:creator>Angella Andrea</dc:creator><feedburner:origLink>http://blogs.ugidotnet.org/angellaa-en/archive/2012/01/29/this-blog-has-been-movedhellip.aspx</feedburner:origLink></item><item><title>Metro e l&amp;rsquo;armonia perfetta</title><link>http://feedproxy.google.com/~r/UgidotnetLatestBlogPosts/~3/8_6jTbjEYbg/metro-e-lrsquoarmonia-perfetta.aspx</link><pubDate>Sat, 28 Jan 2012 18:21:04 GMT</pubDate><guid isPermaLink="false">http://blogs.ugidotnet.org/allePalle_blog/archive/2012/01/28/metro-e-lrsquoarmonia-perfetta.aspx</guid><wfw:comment>http://blogs.ugidotnet.org/allePalle_blog/comments/100736.aspx</wfw:comment><wfw:commentRss>http://blogs.ugidotnet.org/allePalle_blog/comments/commentRss/100736.aspx</wfw:commentRss><comments>http://blogs.ugidotnet.org/allePalle_blog/archive/2012/01/28/metro-e-lrsquoarmonia-perfetta.aspx#comment</comments><slash:comments>1</slash:comments><trackback:ping>http://blogs.ugidotnet.org/allePalle_blog/services/trackbacks/100736.aspx</trackback:ping><source url="http://blogs.ugidotnet.org/allePalle_blog/rss.aspx">Metro e l&amp;rsquo;armonia perfetta</source><description>&lt;p&gt;&lt;img style="margin: 0px 6px 0px 0px; display: inline; float: left" alt="File:Theo van Doesburg Composition VII (the three graces).jpg" align="left" src="http://upload.wikimedia.org/wikipedia/commons/4/4f/Theo_van_Doesburg_Composition_VII_%28the_three_graces%29.jpg" width="192" height="192" /&gt;&lt;/p&gt;  &lt;p&gt;Metro è un Design Language, (potremmo definirlo anche un “pattern di User Experience”) introdotto da Microsoft, prima con Encarta 95, poi Windows Media Center e  Zune (&lt;a href="http://en.wikipedia.org/wiki/Metro_(design_language)" target="_blank"&gt;fonte&lt;/a&gt;). La sua introduzione è abbastanza datata, ma è da poco più di un anno che con Windows Phone 7 gli sviluppatori e i designer hanno iniziato a lavorarci.&lt;/p&gt;  &lt;p&gt;Spesso ridotto alla leggenda che lo vuole “ispirato dalle stazioni delle metropolitane”, in realtà Metro ha una storia molto più interessante.&lt;/p&gt;  &lt;p&gt;Metro è basato sui principi stilistici dell’&lt;em&gt;International Typographic Style,&lt;/em&gt; sviluppatosi negli anni ‘50 in Svizzera; lo stile è infatti anche chiamato Swiss Style. Lo stile svizzero si basa su tre punti cardinali: chiarezza, leggibilità e obiettività. (&lt;a href="http://it.wikipedia.org/wiki/Stile_tipografico_internazionale" target="_blank"&gt;Fonte&lt;/a&gt;) E’ uno stile freddo, impersonale e per questo poco utilizzato in pubblicità ma che ha trovato largo impego nell’architettura moderna e per la sua leggibilità nei cartelli informativi.&lt;/p&gt;  &lt;p&gt;In realtà Metro si ispira più direttamente agli stessi principi a cui si riconosce lo stile svizzero degli anni ‘50, attingendo direttamente alle idee nate nel cosiddetto Movimento Moderno, un movimento multidisciplinare che intorno agli anni venti e trenta del XX secolo ha cercato di migliorare l’architettura, l’urbanistica, la pittura e il design concentrandosi sulla funzionalità e introducendo nuovi concetti estetici.&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;Al Movimento Moderno, appartiene in particolare una rivista fondata in Olanda nel 1917 chiamata De Stijl. Lo stile.&lt;/p&gt;  &lt;p&gt;&lt;img alt="" src="http://upload.wikimedia.org/wikipedia/commons/thumb/4/4d/Destijl_anthologiebonset.jpg/300px-Destijl_anthologiebonset.jpg" width="175" height="137" /&gt;&lt;/p&gt;  &lt;p&gt;Il contributo dato alla rivista De Stijl  da Theo van Doesburg e  Piet Mondrian ha il suo apice con la definzione di un termine che in segna un punto fermo nell’arte astratta: in neo-plasticismo. Il critico d’arte Giulio Carlo Argan, intellettuale e sindaco di Roma, nel 1976 scrive :&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;“Nella poetica neo-plastica è estetico il puro atto costruttivo: combinare una verticale ed una orizzontale oppure due colori elementari è già costruzione.” &lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;In pratica è una grafica “pura” che combina linee e colori esclusivamente con un obiettivo estetico . Il De Stijl  introduce uno stile interdiscipliare che si basa su alcuni principi che ritroviamo in Metro.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Astrazione &lt;/li&gt;    &lt;li&gt;Essenzialità &lt;/li&gt;    &lt;li&gt;Geometria &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Negli elementi che compongono l’interfaccia utente, dobbiamo tenere conto di questi principi; per esempio, se dobbiamo disegnare un pulsante esso dovrà essere un rettangolo oppure un cerchio, non una forma complessa che ricorda un pulsante fisico, come il classico rettangolo con angoli arrotondati che troviamo tra i controlli di Windows. La nostra interfaccia utente dovrà essere essenziale, ma non minimale: dovrà contenere tutto ciò che serve e soltanto ciò che serve, senza però mettere in difficoltà l’utente con elementi troppo piccoli.&lt;/p&gt;  &lt;p&gt;Seguendo questi semplici principi e &lt;a href="http://msdn.microsoft.com/en-us/library/windows/apps/" target="_blank"&gt;le linee guida&lt;/a&gt; ufficiali, riuscirete a realizzare applicazioni funzionali e belle da usare.&lt;/p&gt;  &lt;p&gt;Buon Metro!&lt;/p&gt;&lt;img src="http://blogs.ugidotnet.org/allePalle_blog/aggbug/100736.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/UgidotnetLatestBlogPosts/~4/8_6jTbjEYbg" height="1" width="1"/&gt;</description><dc:creator>Alessandro Scardova</dc:creator><feedburner:origLink>http://blogs.ugidotnet.org/allePalle_blog/archive/2012/01/28/metro-e-lrsquoarmonia-perfetta.aspx</feedburner:origLink></item><item><title>L&amp;rsquo;ultima UGIALT.net conference</title><link>http://feedproxy.google.com/~r/UgidotnetLatestBlogPosts/~3/PJCOG32kk6A/lrsquoultima-ugialt.net-conference.aspx</link><pubDate>Thu, 26 Jan 2012 19:28:07 GMT</pubDate><guid isPermaLink="false">http://blogs.ugidotnet.org/piyo/archive/2012/01/26/lrsquoultima-ugialt.net-conference.aspx</guid><wfw:comment>http://blogs.ugidotnet.org/piyo/comments/100734.aspx</wfw:comment><wfw:commentRss>http://blogs.ugidotnet.org/piyo/comments/commentRss/100734.aspx</wfw:commentRss><comments>http://blogs.ugidotnet.org/piyo/archive/2012/01/26/lrsquoultima-ugialt.net-conference.aspx#comment</comments><slash:comments>4</slash:comments><trackback:ping>http://blogs.ugidotnet.org/piyo/services/trackbacks/100734.aspx</trackback:ping><source url="http://blogs.ugidotnet.org/piyo/rss.aspx">L&amp;rsquo;ultima UGIALT.net conference</source><description>&lt;p align="center"&gt;&lt;a href="http://ugialt.net/"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="logo_big" border="0" alt="logo_big" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/piyo/Windows-Live-Writer/Lultima-UGIALT.net-conference_1121E/logo_big_3.png" width="550" height="157" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Sabato scorso si è tenuta a Milano, la settima e ultima UGIALT.net conference: ebbene si, ultima come in “non ce ne saranno più altre”.&lt;/p&gt;  &lt;h4&gt;La fine&lt;/h4&gt;  &lt;p&gt;Se avete partecipato alla conferenza avete anche sentito la spiegazione del motivo durante la keynote tenuta da &lt;a href="http://blog.codiceplastico.com/ema/"&gt;Emanuele&lt;/a&gt; e &lt;a href="http://www.jitidea.net/blog/"&gt;Claudio&lt;/a&gt;. Se invece non avete partecipato potete leggere le &lt;a href="http://www.slideshare.net/simonech/ugialtnet"&gt;slide della keynote&lt;/a&gt;, vedere il &lt;a href="http://vimeo.com/35745492"&gt;video della keynote&lt;/a&gt;, o leggere il post di Emanuele: &lt;a href="http://blog.codiceplastico.com/ema/?p=224"&gt;Perchè UGIALT.net ha chiuso? &lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Quando siamo partiti, più di 4 anni fa (&lt;a href="http://blogs.ugidotnet.org/BlogEma/archive/2007/10/30/89306.aspx"&gt;UGIALT.net è stata fondata a fine Ottobre 2007&lt;/a&gt;), il nostro obiettivo era quello di portare una visione “ALTernativa” della programmazione su .NET. A mio avviso ci siamo riusciti, visto che anche gli altri usergroup hanno iniziato ad introdurre nelle loro agende sessioni su argomenti più “agili” e meno “corporate”, e tra i partecipanti alle nostro conferenze hanno iniziato a venire anche sviluppatori più “mainstream”. E forse l’essere riusciti nel nostro scopo è stato anche uno dei motivi della chiusura della attività. Lo step successivo sarebbe stato organizzare eventi da 300-500 persone. Ma qui interviene un’altro fattore: dei 5 iniziali fondatori, 2 sono spariti dopo un’annetto, e in 3, ciasucuno con i propri problemi lavorativi e le sue attività extra-lavorative, già si fa fatica ad organizzare un evento da 150 persone, con la sala offerta (e ringraziamo Avanade per averci ospitato per 4 edizioni nelle loro sale), figuriamoci un evento da 400 persone con anche la necessità di cercare la location.&lt;/p&gt;  &lt;p&gt;Abbiamo quindi reputato, con grande amarezza, di terminare questa avventura: ora tocca ad altri continuare sulla strada tracciata, e continuare ad organizzare eventi aperti, indipendenti, che guardino senza paura a quello che succede nelle altre community.&lt;/p&gt;  &lt;h4&gt;La conferenza&lt;/h4&gt;  &lt;p&gt;Tornando al resoconto della conferenza, bisogna dire che è stata l’edizione dei record: oltre 240 tra iscritti e waitlist (compresi speaker e staff), quasi 150 partecipanti (la capienza massima della location… e forse anche un po’ oltre) e, per la prima volta, abbiamo dovuto lasciare a casa 30 persone iscritte in waitlist sulle 60 registrate.&lt;/p&gt;  &lt;p align="left"&gt;Anche record di premi: tra i buoni offerti da &lt;a href="http://umbraco.com"&gt;Umbraco&lt;/a&gt; a tutti i partecipanti e tutte le licenze omaggio estratte a sorte, il valore complessivo dei premi ha superato i 50.000€.&lt;/p&gt;  &lt;p align="left"&gt;E ultimo record: siamo la prima conferenza per developers in Italia ad essere entrata nei trending topic su twitter in Italia.&lt;/p&gt;  &lt;p align="left"&gt;Abbiamo già pubblicato quasi tutte le slide e le demo delle presentazioni su Joind.in: &lt;a title="http://joind.in/event/uan12" href="http://joind.in/event/uan12"&gt;http://joind.in/event/uan12&lt;/a&gt;&lt;/p&gt;  &lt;p align="left"&gt;Se avete partecipato vi chiedo di lasciare il vostro feedback, sia sulla conferenza che sulle singole sessioni.&lt;/p&gt;  &lt;p align="left"&gt;Inoltre, grazie all’aiuto di DotNetMarche (nostro erede spirituale) e agli scatolotti prestatici da &lt;a href="https://twitter.com/#!/_geniodelmale"&gt;Lorenzo&lt;/a&gt;, sono disponibili anche i video di quasi tutte le presentazioni: &lt;a title="http://vimeo.com/album/1814185" href="http://vimeo.com/album/1814185"&gt;http://vimeo.com/album/1814185&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Ed in ultimo, per rivivere l'atmosfera, il &lt;a href="http://uan12.peppertweet.com/"&gt;foto twitter wall realizzato da PepperTweet per la UAN12&lt;/a&gt;&lt;/p&gt;  &lt;h4 align="left"&gt;E ora?&lt;/h4&gt;  &lt;p&gt;E ora confidiamo che le altre community proseguano sulla nostra strada: sappiamo di sicuro che &lt;a href="http://dotnetmarche.org/"&gt;DotNetMarche&lt;/a&gt; ha in mente qualche cosa oppure, se volete seguire quello che c’è oltre a .NET, &lt;a href="http://www.webdebs.org/"&gt;WEBdeBS&lt;/a&gt; è sicuramente lo usergroup da seguire (ed Emanuele è entrato a far parte del gruppo).&lt;/p&gt;  &lt;p align="center"&gt;&lt;a href="http://www.webdebs.org/2012/grazie-ugialt-net/"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="407693_3108061259636_1207452102_3374094_2060978480_n" border="0" alt="407693_3108061259636_1207452102_3374094_2060978480_n" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/piyo/Windows-Live-Writer/Lultima-UGIALT.net-conference_1121E/407693_3108061259636_1207452102_3374094_2060978480_n_3.jpg" width="350" height="350" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p align="left"&gt;Per quel che mi riguarda, collaborerò un poco pure io con WEBdeBS,  e poi mi dedicherò maggiormento a opensource e all’interazione con le community locali (ovvero Belghe).&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:52df5e56-0b75-45c5-b7cd-b4bc5f395301" class="wlWriterSmartContent"&gt;del.icio.us Tags: &lt;a href="http://del.icio.us/popular/ugialtnet" rel="tag"&gt;ugialtnet&lt;/a&gt;&lt;/div&gt;&lt;img src="http://blogs.ugidotnet.org/piyo/aggbug/100734.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/UgidotnetLatestBlogPosts/~4/PJCOG32kk6A" height="1" width="1"/&gt;</description><dc:creator>Simone Chiaretta</dc:creator><feedburner:origLink>http://blogs.ugidotnet.org/piyo/archive/2012/01/26/lrsquoultima-ugialt.net-conference.aspx</feedburner:origLink></item><item><title>Speaker ai Microsoft Days 2012 in Bulgaria &amp;ndash; Sofia</title><link>http://feedproxy.google.com/~r/UgidotnetLatestBlogPosts/~3/bm90aJ52MuQ/speaker-ai-microsoft-days-2012-in-bulgaria-ndash-sofia.aspx</link><pubDate>Thu, 26 Jan 2012 14:42:12 GMT</pubDate><guid isPermaLink="false">http://blogs.ugidotnet.org/raffaele/archive/2012/01/26/speaker-ai-microsoft-days-2012-in-bulgaria-ndash-sofia.aspx</guid><wfw:comment>http://blogs.ugidotnet.org/raffaele/comments/100732.aspx</wfw:comment><wfw:commentRss>http://blogs.ugidotnet.org/raffaele/comments/commentRss/100732.aspx</wfw:commentRss><comments>http://blogs.ugidotnet.org/raffaele/archive/2012/01/26/speaker-ai-microsoft-days-2012-in-bulgaria-ndash-sofia.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://blogs.ugidotnet.org/raffaele/services/trackbacks/100732.aspx</trackback:ping><source url="http://blogs.ugidotnet.org/raffaele/rss.aspx">Speaker ai Microsoft Days 2012 in Bulgaria &amp;ndash; Sofia</source><description>&lt;p&gt;I giorni 28 e 29 Marzo, Microsoft Bulgaria terrà il tradizionale evento "Microsoft Days".&lt;/p&gt;  &lt;p&gt;È con molto piacere che annuncio di essere speaker per due argomenti di grande rilievo per la prossima ondata di tecnologie:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://www.msbgregistration.com/Programme.aspx?SelectLecture=276"&gt;Introduction to Windows Runtime (WinRT) &lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.msbgregistration.com/Programme.aspx?SelectLecture=288"&gt;The Asynchronous Pattern in WinRT/Metro and .NET 4.5 &lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Gli abstract sono pubblicati qui:&lt;/p&gt;  &lt;p&gt;&lt;a title="http://www.msbgregistration.com/Presenter.aspx?PresenterId=257" href="http://www.msbgregistration.com/Presenter.aspx?PresenterId=257"&gt;http://www.msbgregistration.com/Presenter.aspx?PresenterId=257&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/raffaele/Windows-Live-Writer/8930f74eee24_DA38/MS-Days-Sofia-Bulgaria_2.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="MS-Days-Sofia-Bulgaria" border="0" alt="MS-Days-Sofia-Bulgaria" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/raffaele/Windows-Live-Writer/8930f74eee24_DA38/MS-Days-Sofia-Bulgaria_thumb.png" width="199" height="244" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;A presto Sofia!!!&lt;/p&gt;&lt;img src="http://blogs.ugidotnet.org/raffaele/aggbug/100732.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/UgidotnetLatestBlogPosts/~4/bm90aJ52MuQ" height="1" width="1"/&gt;</description><dc:creator>Raffaele Rialdi</dc:creator><feedburner:origLink>http://blogs.ugidotnet.org/raffaele/archive/2012/01/26/speaker-ai-microsoft-days-2012-in-bulgaria-ndash-sofia.aspx</feedburner:origLink></item><item><title>Inutile, ma essenziale!</title><link>http://feedproxy.google.com/~r/UgidotnetLatestBlogPosts/~3/9XF5D3ztots/inutile-ma-essenziale.aspx</link><pubDate>Thu, 26 Jan 2012 10:41:11 GMT</pubDate><guid isPermaLink="false">http://blogs.ugidotnet.org/Nick60/archive/2012/01/26/inutile-ma-essenziale.aspx</guid><wfw:comment>http://blogs.ugidotnet.org/Nick60/comments/100731.aspx</wfw:comment><wfw:commentRss>http://blogs.ugidotnet.org/Nick60/comments/commentRss/100731.aspx</wfw:commentRss><comments>http://blogs.ugidotnet.org/Nick60/archive/2012/01/26/inutile-ma-essenziale.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://blogs.ugidotnet.org/Nick60/services/trackbacks/100731.aspx</trackback:ping><source url="http://blogs.ugidotnet.org/Nick60/rss.aspx">Inutile, ma essenziale!</source><description>&lt;p&gt;Alle volte le piccole cose inutili sono essenziali per per aggiungere un po’ di sale alla quotidianità.&lt;/p&gt;  &lt;p&gt;Tra queste, a mio umilissimo parere, c’è la possibilità di modificare la skin dell’emulatore Windows Phone 7:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/Nick60/Windows-Live-Writer/9b53da9aeca5_A2EB/image_2.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/Nick60/Windows-Live-Writer/9b53da9aeca5_A2EB/image_thumb.png" width="250" height="472" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Questa e altre cose più serie nel post di Doug Rathbone: &lt;a href="http://www.diaryofaninja.com/blog/2012/01/23/8-musthave-tools-for-windows-phone-7-development"&gt;8 Must-Have Tools for Windows Phone 7 Development&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.ugidotnet.org/Nick60/aggbug/100731.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/UgidotnetLatestBlogPosts/~4/9XF5D3ztots" height="1" width="1"/&gt;</description><dc:creator>Nicolò Carandini</dc:creator><feedburner:origLink>http://blogs.ugidotnet.org/Nick60/archive/2012/01/26/inutile-ma-essenziale.aspx</feedburner:origLink></item><item><title>After 10 years of Agile Manifesto, Agile is mainstream, maybe the time has come for the next generation</title><link>http://feedproxy.google.com/~r/UgidotnetLatestBlogPosts/~3/1U0lKbDR-nY/after-10-years-of-agile-manifesto-agile-is-mainstream-maybe.aspx</link><pubDate>Wed, 25 Jan 2012 23:28:02 GMT</pubDate><guid isPermaLink="false">http://blogs.ugidotnet.org/luKa/archive/2012/01/26/after-10-years-of-agile-manifesto-agile-is-mainstream-maybe.aspx</guid><wfw:comment>http://blogs.ugidotnet.org/luKa/comments/100730.aspx</wfw:comment><wfw:commentRss>http://blogs.ugidotnet.org/luKa/comments/commentRss/100730.aspx</wfw:commentRss><comments>http://blogs.ugidotnet.org/luKa/archive/2012/01/26/after-10-years-of-agile-manifesto-agile-is-mainstream-maybe.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://blogs.ugidotnet.org/luKa/services/trackbacks/100730.aspx</trackback:ping><source url="http://blogs.ugidotnet.org/luKa/rss.aspx">After 10 years of Agile Manifesto, Agile is mainstream, maybe the time has come for the next generation</source><description>&lt;a href="http://youtu.be/GD47SDMVO8U"&gt;&lt;img hspace="10" border="0" align="left" vspace="10" alt="" src="http://navigenics.pmhclients.com/images/uploads/FamilyTreeIllo.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
10 years have passed, bringing successes &lt;span style="color: rgb(128, 128, 128);"&gt;[1]&lt;/span&gt;, and bringing new challenges for the next 10 years &lt;span style="color: rgb(128, 128, 128);"&gt;[2][3][4][5]&lt;/span&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Also now, Agile is mainstream. &lt;br /&gt;
And this can be &lt;span style="color: rgb(0, 153, 255); font-weight: bold;"&gt;the major change after these 10 years&lt;/span&gt;.&lt;br /&gt;
Indeed this is something that cannot be changed, controlled or forced into a predefined plan. &lt;br /&gt;
Instead is something to welcome and to adapt to, searching for the best possible outcomes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This event, Agile that from a minority is turned into a mainstream approach, also&lt;span style="color: rgb(255, 0, 255); font-weight: bold;"&gt; has the potential to be a  disruptive event&lt;/span&gt;, because it can change the game and this could fade away most of the original Agile ideas.&lt;br /&gt;
For example the &lt;span style="color: rgb(255, 0, 255); font-weight: bold;"&gt;lack of openness&lt;/span&gt;  could lead to fundamentalist adherence to misunderstood rules and could cause the  loss of the expected benefit/advantages of Agile.  And the &lt;span style="color: rgb(255, 0, 255); font-weight: bold;"&gt;loss of the key Agile foundations&lt;/span&gt; could lead to a fictional representation of Agile that doesn't produce real benefits/advantages and that justify fake evolutions that are founded on misunderstandings and misinterpretations. Nat Pryce expressed the latter idea with these words: In software "X improves upon Y" seems to mean "X improves upon the bit of Y that the author of X learned about". &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For what I understand, when a minority turn  mainstream, to survive and to evolve needs to &lt;span style="color: rgb(0, 153, 255); font-weight: bold;"&gt;preserve the most valuable  traits of its identity&lt;/span&gt; and at the same time needs to be open to changes and  contaminations, be curious, &lt;span style="color: rgb(0, 153, 255); font-weight: bold;"&gt;exploit diversity&lt;/span&gt; &lt;span style="color: rgb(128, 128, 128);"&gt;[6]&lt;/span&gt; be inclusive and &lt;span style="color: rgb(0, 153, 255); font-weight: bold;"&gt;build bridges&lt;/span&gt;.  A  prerequisite for this is to &lt;span style="color: rgb(0, 153, 255); font-weight: bold;"&gt;deepen and strength the understanding of  the key valuable factors of Agile&lt;/span&gt;, its identity behind rituals and  conventions, and to spread the key knowledge and key practices, make them  &lt;span style="color: rgb(0, 153, 255); font-weight: bold;"&gt;resilient to&lt;/span&gt; the ongoing &lt;span style="font-weight: bold; color: rgb(0, 153, 255);"&gt;Mash-up and crossover&lt;/span&gt; that is happening with  lot of contributions from different sources, fields, people, background. And be open to let all the others non essentials/key things go.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
How ? &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here I try to propose a possible answer, for example I would like to read more books/articles and see more discussions and teams deepening &lt;br /&gt;
&lt;ul&gt;
    &lt;li&gt;more  about Agile values and principles, enough to become able to recognize  in everyday real situation whether an action/decision/practice in that specific context adhere to Agile values and principles and whether not and what are the practical consequences&lt;br /&gt;
    &lt;br /&gt;
    &lt;/li&gt;
    &lt;li&gt;the internals of Scrum and XP practices, know and understand exactly what  effects each practice is expected to produce in combination with the  others, enough to  recognize when a team is already achieving all the outcomes  expected from a  practice and so the team does not need to enforce that  practice explicitly anymore (e.g. as Kent Beck describes in &lt;a href="http://www.slideshare.net/KentBeck/software-g-forces"&gt;Software G forces&lt;/a&gt;), and enough to understand how a modification to a practice could affect the  overall productivity quality and chances of success (e.g. becoming able to adapt/modify Scrum effectively as Jeff Sutherland and Ken Schwaber &lt;a href="http://www.scrum.org/scrum-guide-proposal/"&gt;would do&lt;/a&gt; and not the way they &lt;a href="http://www.scrum.org/scrumbut"&gt;wouldn't do&lt;/a&gt;)&lt;br /&gt;
    &lt;br /&gt;
    &lt;/li&gt;
    &lt;li&gt;social complexity and self-organisation enough to be able to distinguish between simple complicated and complex problems, make sense of complex contexts, have the tools to identify and explore the unknowns, deal with inherent uncertainty, inspect and adapt to react properly to unpredictable events, to make proper use of available levers to direct and influence the emergence of behaviors toward positive directions to the advantage of the organization the team and to the project success, to amplify the emergence of beneficial behaviors and to reduce or revert the non beneficial ones &lt;br /&gt;
    &lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-weight: bold; color: rgb(0, 153, 255);"&gt;And you, how would you answer to this challenge?&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[1] &lt;a href="http://www.ambysoft.com/surveys/success2011.html"&gt;http://www.ambysoft.com/surveys/success2011.html&lt;/a&gt;&lt;br /&gt;
[2] &lt;a href="http://10yearsagile.org/"&gt;http://10yearsagile.org/&lt;/a&gt;&lt;br /&gt;
[3] &lt;a href="http://drdobbs.com/architecture-and-design/229301128"&gt;http://drdobbs.com/architecture-and-design/229301128&lt;/a&gt;&lt;br /&gt;
[4] &lt;a href="http://scrum.jeffsutherland.com/2011/11/agile-manifesto-10-year-reunion-full.html"&gt;http://scrum.jeffsutherland.com/2011/11/agile-manifesto-10-year-reunion-full.html&lt;/a&gt;&lt;br /&gt;
[5] &lt;a href="http://msdn.microsoft.com/en-us/library/hh350860.aspx"&gt;http://msdn.microsoft.com/en-us/library/hh350860.aspx&lt;/a&gt;&lt;br /&gt;
[6] &lt;a href="http://blogs.ugidotnet.org/luKa/archive/0001/01/01/abide-model-an-exercise-diversitydissent.aspx"&gt;http://blogs.ugidotnet.org/luKa/archive/0001/01/01/abide-model-an-exercise-diversitydissent.aspx&lt;/a&gt;  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style="text-align: center;"&gt; Tags :  &lt;a rel="tag" href="http://blogs.ugidotnet.org/luKa/Tags/Team+Work"&gt;Team Work&lt;/a&gt; | &lt;a rel="tag" href="http://blogs.ugidotnet.org/luKa/Tags/Agile"&gt;Agile&lt;/a&gt; | &lt;a rel="tag" href="http://blogs.ugidotnet.org/luKa/Tags/Creatività"&gt;Creatività&lt;/a&gt; | &lt;a rel="tag" href="http://blogs.ugidotnet.org/luKa/Tags/Innovazione"&gt;Innovazione&lt;/a&gt; |   &lt;!-- TRANSLATE ITALIAN START --&gt; &lt;/div&gt;
&lt;div style="text-align: center;"&gt; &lt;a href="javascript:var%20t=((window.getSelection&amp;amp;&amp;amp;window.getSelection())||(document.getSelection&amp;amp;&amp;amp;document.getSelection())||(document.selection&amp;amp;&amp;amp;document.selection.createRange&amp;amp;&amp;amp;document.selection.createRange().text));var%20e=(document.charset||document.characterSet);if(t!=''){location.href='http://translate.google.com/translate_t?text='+t+'&amp;amp;hl=en&amp;amp;langpair=en|it&amp;amp;tbb=1&amp;amp;ie='+e;}else{location.href='http://translate.google.com/translate?u='+escape(location.href)+'&amp;amp;hl=en&amp;amp;langpair=en|it&amp;amp;tbb=1&amp;amp;ie='+e;};" title="Clicca per tradurre questa pagina Web. Seleziona e clicca per tradurre la selezione."&gt;Traduci al ITALIANO &amp;gt;&amp;gt;&amp;gt;&lt;/a&gt; &lt;/div&gt;
&lt;!-- TRANSLATE END --&gt;&lt;img src="http://blogs.ugidotnet.org/luKa/aggbug/100730.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/UgidotnetLatestBlogPosts/~4/1U0lKbDR-nY" height="1" width="1"/&gt;</description><dc:creator>Luca Minudel</dc:creator><feedburner:origLink>http://blogs.ugidotnet.org/luKa/archive/2012/01/26/after-10-years-of-agile-manifesto-agile-is-mainstream-maybe.aspx</feedburner:origLink></item><item><title>DomusDotNet: WCF Data Services (Terza Parte)</title><link>http://feedproxy.google.com/~r/UgidotnetLatestBlogPosts/~3/jd-hYwTQ31Y/domusdotnet-wcf-data-services-terza-parte.aspx</link><pubDate>Wed, 25 Jan 2012 12:59:00 GMT</pubDate><guid isPermaLink="false">http://blogs.ugidotnet.org/PietroLibroBlog/archive/2012/01/25/domusdotnet-wcf-data-services-terza-parte.aspx</guid><wfw:comment>http://blogs.ugidotnet.org/PietroLibroBlog/comments/100729.aspx</wfw:comment><wfw:commentRss>http://blogs.ugidotnet.org/PietroLibroBlog/comments/commentRss/100729.aspx</wfw:commentRss><comments>http://blogs.ugidotnet.org/PietroLibroBlog/archive/2012/01/25/domusdotnet-wcf-data-services-terza-parte.aspx#comment</comments><slash:comments>2</slash:comments><trackback:ping>http://blogs.ugidotnet.org/PietroLibroBlog/services/trackbacks/100729.aspx</trackback:ping><source url="http://blogs.ugidotnet.org/PietroLibroBlog/rss.aspx">DomusDotNet: WCF Data Services (Terza Parte)</source><description>&lt;p&gt;Terzo ed ultimo articolo (qualcuno dirà finalmente &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-smile" alt="Sorriso" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/PietroLibroBlog/Windows-Live-Writer/DomusDotNet-WCF-Data-Services-Terza-Part_C471/wlEmoticon-smile_2.png" /&gt;) della serie dedicata ai WCF Data Services. Articolo completo su &lt;a href="http://www.domusdotnet.org/articoli/wcf-data-services-%28parte-3%29.aspx" target="_blank"&gt;DomusDotNet&lt;/a&gt;. Critiche, consigli e suggerimenti sono sempre ben accetti.&lt;/p&gt;&lt;img src="http://blogs.ugidotnet.org/PietroLibroBlog/aggbug/100729.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/UgidotnetLatestBlogPosts/~4/jd-hYwTQ31Y" height="1" width="1"/&gt;</description><dc:creator>Pietro Libro</dc:creator><feedburner:origLink>http://blogs.ugidotnet.org/PietroLibroBlog/archive/2012/01/25/domusdotnet-wcf-data-services-terza-parte.aspx</feedburner:origLink></item><item><title>Kanban</title><link>http://feedproxy.google.com/~r/UgidotnetLatestBlogPosts/~3/eRTGYssEr_U/kanban.aspx</link><pubDate>Tue, 24 Jan 2012 23:13:17 GMT</pubDate><guid isPermaLink="false">http://blogs.ugidotnet.org/rcappe/archive/2012/01/25/kanban.aspx</guid><wfw:comment>http://blogs.ugidotnet.org/rcappe/comments/100728.aspx</wfw:comment><wfw:commentRss>http://blogs.ugidotnet.org/rcappe/comments/commentRss/100728.aspx</wfw:commentRss><comments>http://blogs.ugidotnet.org/rcappe/archive/2012/01/25/kanban.aspx#comment</comments><slash:comments>2</slash:comments><trackback:ping>http://blogs.ugidotnet.org/rcappe/services/trackbacks/100728.aspx</trackback:ping><source url="http://blogs.ugidotnet.org/rcappe/rss.aspx">Kanban</source><description>&lt;p&gt;&lt;strong&gt;&lt;font size="3"&gt;Dove vogliamo andare?&lt;/font&gt;&lt;/strong&gt;     &lt;br /&gt;
Quest'anno in &lt;a target="_blank" href="http://www.elfo.net/"&gt;azienda&lt;/a&gt; tra gli obbiettivi che ci siamo dati per il 2012 c'è la necessità di migliorare il processo di sviluppo software.     &lt;br /&gt;
Due aspetti su cui vogliamo concentrarci sono la visibilità delle informazioni e la gestione del cambiamento perché sono quelli che ci danno maggiori difficoltà.&lt;/p&gt;
&lt;p&gt;&lt;font size="3"&gt;&lt;strong&gt;Dove siamo?&lt;/strong&gt;&lt;/font&gt;     &lt;br /&gt;
Facciamo un passo indietro; quale metodologia e quali strumenti utilizziamo?     &lt;br /&gt;
La metodologia è incrementale adattativa, basata sul nostro modello di business, prende spunto per la parte di project management da Scrum e per la parte di sviluppo dalle pratiche di Xp (Continuous Integration, Testing …).     &lt;br /&gt;
Lo strumento principe è ovviamente Tfs (Source Control, Work Item Tracking, Build) a cui si agganciano altri strumenti creati ad hoc.     &lt;br /&gt;
Tfs è veramente eccezionale sul tracking ma, purtroppo è dentro un pc, NON lo &lt;strong&gt;vedo&lt;/strong&gt; e NON lo &lt;strong&gt;tocco,&lt;/strong&gt; perciò ci serviva qualcosa su cui “sbattere la faccia”.     &lt;br /&gt;
Scrum è una ottima metodologia ma, ci siamo resi conto di non riuscire a mantenere Sprint con time box fisso e Sprint Backlog rigidi.     &lt;br /&gt;
Quindi pur essendo Scrum poco prescrittivo abbiamo avuto il timore di snaturare la metodologia.&lt;/p&gt;
&lt;p&gt;&lt;font size="3"&gt;&lt;strong&gt;Cosa è Kanban?        &lt;br /&gt;
&lt;/strong&gt;&lt;/font&gt;Kanban letteralmente significa Cartellino e arriva dal mondo Lean Development.     &lt;br /&gt;
Si basa su 3 concetti base:     &lt;br /&gt;
- Rendere il lavoro visibile     &lt;br /&gt;
- Limitare il work in process     &lt;br /&gt;
- Aiutare il flusso a scorrere&lt;/p&gt;
&lt;p&gt;Solitamente viene utilizzata una Kanban Board cioè una lavagna suddivisa in colonne che rappresentano gli stati.    &lt;br /&gt;
Il lavoro viene diviso in parti e scritto sulle card, e queste sono appese sulla board.     &lt;br /&gt;
Agli stati vengono assegnati dei limiti che vincolano il lavoro contemporaneo.     &lt;br /&gt;
L’obbiettivo è ottimizzare il processo per rendere il lead time (il tempo di attraversamento) quanto più piccolo e prevedibile possibile.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/rcappe/Windows-Live-Writer/Kanban_F8F7/kanban-3f_2.jpg"&gt;&lt;img width="242" height="185" title="kanban-3f" style="border-width: 0px; padding-top: 0px; padding-right: 0px; padding-left: 0px; display: inline; background-image: none;" alt="kanban-3f" border="0" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/rcappe/Windows-Live-Writer/Kanban_F8F7/kanban-3f_thumb.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;font size="3"&gt;Come vogliamo adottarlo?        &lt;br /&gt;
&lt;/font&gt;&lt;/strong&gt;L’idea è di partire con una sperimentazione su alcuni team e di estendere poi il modello a tutti i team dell’azienda.     &lt;br /&gt;
Non volevamo stravolgere il modo di lavorare quindi tutti gli strumenti e i processi nella prima fase resteranno invariati. Per fare una esempio chiarificatore i work item saranno ancora presenti in tfs, semplicemente saranno visibili anche sulla Kanban bord.     &lt;br /&gt;
Ogni team avrà la sua board.     &lt;br /&gt;
I post-it saranno di più colori e ogni colore rappresenterà una iterazione. Accade infatti che nel nostro modello di business, un team lavori per più clienti contemporaneamente o anche su più iterazioni contemporanee magari legate a branches differenti.     &lt;br /&gt;
La board ci consentirà visualmente di monitorare l’avanzamento, le code e i colli di bottiglia, limitando i continui cambi di contesto sulle attività parallele.     &lt;br /&gt;
Ricordo una bella sessione di Brandolini che mostrava come il costo di una funzionalità crescesse quanto più questa rimaneva bloccata e al tempo stesso impediva di fare crescere il Roi derivato.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/rcappe/Windows-Live-Writer/Kanban_F8F7/Untitled2_2.png"&gt;&lt;img width="550" height="197" title="Untitled2" style="border-width: 0px; padding-top: 0px; padding-right: 0px; padding-left: 0px; display: inline; background-image: none;" alt="Untitled2" border="0" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/rcappe/Windows-Live-Writer/Kanban_F8F7/Untitled2_thumb.png" /&gt;&lt;/a&gt;     &lt;br /&gt;
Sulla card abbiamo deciso di riportare il numero di work item, una descrizione sintetica della richiesta, dei pallini neri che visivamente ci indicano che quella richiesta è stata soggetta a dei bug, e un peso indicativo in ore.    &lt;br /&gt;
Durante l’incontro che abbiamo fatto insieme al team, che è partito per primo, abbiamo definito quali erano i limiti per ogni stato partendo dalla formula (numero dei componenti del team * 2 -1) e fatto piccoli adattamenti al modello della bord generale che avevamo preparato.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/rcappe/Windows-Live-Writer/Kanban_F8F7/Untitled_2.png"&gt;&lt;img width="550" height="396" title="Untitled" style="border-width: 0px; padding-top: 0px; padding-right: 0px; padding-left: 0px; display: inline; background-image: none;" alt="Untitled" border="0" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/rcappe/Windows-Live-Writer/Kanban_F8F7/Untitled_thumb.png" /&gt;&lt;/a&gt;  &lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;Per trarre conclusioni è presto ma, sicuramente sono emerse due evidenze:   &lt;br /&gt;
Una pratica all’apparenza semplice (carta su una lavagna) in poco tempo fa emergere problemi invisibili prima e attira la non facile attenzione del management.&lt;/p&gt;
&lt;p&gt;   &lt;/p&gt;
&lt;div class="wlWriterEditableSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:8f2f5f03-74cc-4d85-8c50-8d64634d4279" style="margin: 0px; padding: 0px; float: none; display: inline;"&gt;Tag di Technorati: &lt;a rel="tag" href="http://technorati.com/tags/Kanban"&gt;Kanban&lt;/a&gt;,&lt;a rel="tag" href="http://technorati.com/tags/Lean"&gt;Lean&lt;/a&gt;,&lt;a rel="tag" href="http://technorati.com/tags/Metodologie"&gt;Metodologie&lt;/a&gt;&lt;/div&gt;&lt;img src="http://blogs.ugidotnet.org/rcappe/aggbug/100728.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/UgidotnetLatestBlogPosts/~4/eRTGYssEr_U" height="1" width="1"/&gt;</description><dc:creator>Roberto Cappelletti</dc:creator><feedburner:origLink>http://blogs.ugidotnet.org/rcappe/archive/2012/01/25/kanban.aspx</feedburner:origLink></item></channel></rss>

