<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://dotnetcampania.org/utility/FeedStylesheets/atom.xsl" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="it"><title type="html">Turibbio&amp;#39;s Blog</title><subtitle type="html" /><id>http://dotnetcampania.org/blogs/turibbio/atom.aspx</id><link rel="alternate" type="text/html" href="http://dotnetcampania.org/blogs/turibbio/default.aspx" /><link rel="self" type="application/atom+xml" href="http://dotnetcampania.org/blogs/turibbio/atom.aspx" /><generator uri="http://communityserver.org" version="4.1.40407.4157">Community Server</generator><updated>2012-10-26T23:43:00Z</updated><entry><title>Turitip #47: Sql Server database backup con Powershell</title><link rel="alternate" type="text/html" href="/blogs/turibbio/archive/2013/05/17/turitip-47-sql-server-database-backup-con-powershell.aspx" /><id>/blogs/turibbio/archive/2013/05/17/turitip-47-sql-server-database-backup-con-powershell.aspx</id><published>2013-05-17T14:48:00Z</published><updated>2013-05-17T14:48:00Z</updated><content type="html">&lt;p&gt;Nel seguente link trovato un tutorial molto interessante su come effettuare il backup di un database di SQL Server usando Powershell e i Shared Management Objects (SMO). La fonte è SqlServerCentral.&lt;/p&gt;  &lt;p&gt;&lt;a title="http://www.sqlservercentral.com/articles/Backup+/+Restore/71682/" href="http://www.sqlservercentral.com/articles/Backup+/+Restore/71682/"&gt;http://www.sqlservercentral.com/articles/Backup+/+Restore/71682/&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;Enjoy it!&lt;/em&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://dotnetcampania.org/aggbug.aspx?PostID=2198" width="1" height="1"&gt;</content><author><name>Turibbio</name><uri>http://dotnetcampania.org/members/Turibbio/default.aspx</uri></author><category term="sqlserver" scheme="http://dotnetcampania.org/blogs/turibbio/archive/tags/sqlserver/default.aspx" /><category term="powershell" scheme="http://dotnetcampania.org/blogs/turibbio/archive/tags/powershell/default.aspx" /></entry><entry><title>Turitip #46: Registrare un framework di testing in ASP.NET MVC</title><link rel="alternate" type="text/html" href="/blogs/turibbio/archive/2013/05/09/turitip-46-registrare-un-framework-di-testing-in-asp-net-mvc.aspx" /><id>/blogs/turibbio/archive/2013/05/09/turitip-46-registrare-un-framework-di-testing-in-asp-net-mvc.aspx</id><published>2013-05-09T16:54:00Z</published><updated>2013-05-09T16:54:00Z</updated><content type="html">&lt;p&gt;Quando creiamo un nuovo progetto per ASP.NET MVC abbiamo la possibilit&amp;agrave; di creare associato ad esso un progetto di unit test. Di base possiamo utilizzare il Visual Studio Unit Test, ma &amp;egrave; possibile integrare anche altri framework, come ad esempio NUnit, eseguendo le operazioni disponibili nel seguente link:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/dd381614.aspx" title="http://msdn.microsoft.com/en-us/library/dd381614.aspx"&gt;http://msdn.microsoft.com/en-us/library/dd381614.aspx&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Enjoy it!&lt;/em&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://dotnetcampania.org/aggbug.aspx?PostID=2195" width="1" height="1"&gt;</content><author><name>Turibbio</name><uri>http://dotnetcampania.org/members/Turibbio/default.aspx</uri></author><category term="asp.net" scheme="http://dotnetcampania.org/blogs/turibbio/archive/tags/asp.net/default.aspx" /><category term="asp.net mvc" scheme="http://dotnetcampania.org/blogs/turibbio/archive/tags/asp.net+mvc/default.aspx" /></entry><entry><title>Turitip #45: Configurare i permessi per gli AppPool di IIS 7.5</title><link rel="alternate" type="text/html" href="/blogs/turibbio/archive/2013/04/16/turitip-45-configurare-i-permessi-per-gli-apppool-di-iis-7-5.aspx" /><id>/blogs/turibbio/archive/2013/04/16/turitip-45-configurare-i-permessi-per-gli-apppool-di-iis-7-5.aspx</id><published>2013-04-16T17:09:00Z</published><updated>2013-04-16T17:09:00Z</updated><content type="html">&lt;p&gt;Capita molto spesso che quando configuriamo un nuovo sito in IIS e creiamo un AppPool associato, occorre dare i permessi di scrittura all’utente su cui gira lo stesso. In questa seguente guida, trovate tutte le informazioni necessarie per farlo:&lt;/p&gt;  &lt;p&gt;&lt;a title="http://www.iis.net/learn/manage/configuring-security/application-pool-identities" href="http://www.iis.net/learn/manage/configuring-security/application-pool-identities"&gt;http://www.iis.net/learn/manage/configuring-security/application-pool-identities&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;Enjoy it!&lt;/em&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://dotnetcampania.org/aggbug.aspx?PostID=2185" width="1" height="1"&gt;</content><author><name>Turibbio</name><uri>http://dotnetcampania.org/members/Turibbio/default.aspx</uri></author><category term="IIS" scheme="http://dotnetcampania.org/blogs/turibbio/archive/tags/IIS/default.aspx" /></entry><entry><title>Continuous Testing in Visual Studio 2012</title><link rel="alternate" type="text/html" href="/blogs/turibbio/archive/2013/04/12/continuous-testing-in-visual-studio-2012.aspx" /><id>/blogs/turibbio/archive/2013/04/12/continuous-testing-in-visual-studio-2012.aspx</id><published>2013-04-12T14:14:00Z</published><updated>2013-04-12T14:14:00Z</updated><content type="html">&lt;p&gt;In Visual Studio 2012 è stata aggiunta una nuova funzionalità per chi lavora molto con Test First Development che si chiama &lt;em&gt;Continuous Testing&lt;/em&gt;. Questa funzionalità consente di eseguire in background i test presenti nella soluzione alla fine di ogni compilazione.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Per attivarla occorre abilitare la funzionalità usando il pulsantino in alto alla finestra del Test Explorer.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://dotnetcampania.org/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/turibbio.metablogapi/5857.image_5F00_07D8D12F.png"&gt;&lt;img title="image" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;display:inline;padding-right:0px;" border="0" alt="image" src="http://dotnetcampania.org/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/turibbio.metablogapi/4375.image_5F00_thumb_5F00_2DCE8185.png" width="523" height="225" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Ogni volta che compilate, automaticamente partirà l’esecuzione dei test di cui saranno visualizzati i risultati.&lt;/p&gt;  &lt;p&gt;Questa funzionalità è al momento presente solo in Visual Studio 2012 Ultimate.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;Enjoy it!&lt;/em&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://dotnetcampania.org/aggbug.aspx?PostID=2182" width="1" height="1"&gt;</content><author><name>Turibbio</name><uri>http://dotnetcampania.org/members/Turibbio/default.aspx</uri></author><category term="unit testing" scheme="http://dotnetcampania.org/blogs/turibbio/archive/tags/unit+testing/default.aspx" /><category term="visual studio 2012" scheme="http://dotnetcampania.org/blogs/turibbio/archive/tags/visual+studio+2012/default.aspx" /><category term="ALM" scheme="http://dotnetcampania.org/blogs/turibbio/archive/tags/ALM/default.aspx" /></entry><entry><title>ASP.NET and Web Tools 2012.2</title><link rel="alternate" type="text/html" href="/blogs/turibbio/archive/2013/02/20/asp-net-and-web-tools-2012-2.aspx" /><id>/blogs/turibbio/archive/2013/02/20/asp-net-and-web-tools-2012-2.aspx</id><published>2013-02-20T10:22:00Z</published><updated>2013-02-20T10:22:00Z</updated><content type="html">&lt;p&gt;Il 18 Febbraio sono stati rilasciati gli ASP.NET &amp;amp; Web Tools per Visual Studio 2012. Come anticipa Scott Hanselman nel suo &lt;a href="http://www.hanselman.com/blog/ReleasedASPNETAndWebTools20122InContext.aspx" target="_blank"&gt;post&lt;/a&gt; ci sarannno novità ogni 6 mesi in Visual Studio senza la necessità di attendere una nuova release ogni volta. &lt;/p&gt;  &lt;p&gt;Alcune delle novità introdotte in questa release riguardano:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Editor;&lt;/li&gt;    &lt;li&gt;Browsers;&lt;/li&gt;    &lt;li&gt;Packages;&lt;/li&gt;    &lt;li&gt;ASP.NET;&lt;/li&gt;    &lt;li&gt;Community Project Templates&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;L’elenco completo delle funzionalità lo trovate &lt;a href="http://www.hanselman.com/blog/ReleasedASPNETAndWebTools20122InContext.aspx" target="_blank"&gt;qui&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;Enjoy it!&lt;/em&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://dotnetcampania.org/aggbug.aspx?PostID=2147" width="1" height="1"&gt;</content><author><name>Turibbio</name><uri>http://dotnetcampania.org/members/Turibbio/default.aspx</uri></author><category term="web tools 2012.2" scheme="http://dotnetcampania.org/blogs/turibbio/archive/tags/web+tools+2012.2/default.aspx" /></entry><entry><title>Usare le risorse in WPF 4.0 (Parte 2/4)</title><link rel="alternate" type="text/html" href="/blogs/turibbio/archive/2012/12/21/usare-le-risorse-in-wpf-4-0-parte-2-4.aspx" /><id>/blogs/turibbio/archive/2012/12/21/usare-le-risorse-in-wpf-4-0-parte-2-4.aspx</id><published>2012-12-21T12:15:00Z</published><updated>2012-12-21T12:15:00Z</updated><content type="html">&lt;p&gt;Riprendiamo la serie sulle risorse di WPF parlando dei &lt;strong&gt;Content Files &lt;/strong&gt;(definiti talvolta come &lt;em&gt;Loose file&lt;/em&gt;). &lt;/p&gt;  &lt;p&gt;Molto spesso è necessario, vuoi per frequenti modifiche o per controlli che non accettano la pack URI, utilizzare dei file di risorse che non vengono direttamente inglobati all’interno dell’assembly finale del progetto. Questi file vengono denominati come &lt;em&gt;content files&lt;/em&gt;. &lt;/p&gt;  &lt;p&gt;La procedura di utilizzo di questa tipologia di risorse è semplice come per quella relativa alle risorse binarie viste nell’&lt;a href="http://dotnetcampania.org/blogs/turibbio/archive/2012/11/14/usare-le-risorse-in-wpf-4-0-parte-1-4.aspx" target="_blank"&gt;articolo precedente&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;I passi sono:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Aggiungere la risorsa (il file) al progetto; &lt;/li&gt;    &lt;li&gt;Nella finestra delle proprietà impostare la &lt;em&gt;Build Action&lt;/em&gt; come &lt;strong&gt;&lt;em&gt;Content&lt;/em&gt;&lt;/strong&gt;; &lt;/li&gt;    &lt;li&gt;Imposta, sempre nella finestra delle proprietà, &lt;em&gt;Copy To Output Directory&lt;/em&gt; a &lt;strong&gt;&lt;em&gt;Copy Always.&lt;/em&gt;&lt;/strong&gt; &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;Nella figura 1, abbiamo aggiunto un file sonar.mp3 al nostro progetto e abbiamo impostato le proprietà appena viste:&lt;/p&gt;  &lt;p align="center"&gt;&lt;a href="http://dotnetcampania.org/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/turibbio.metablogapi/7585.image_5F00_381FAE38.png"&gt;&lt;img title="image" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;float:none;padding-top:0px;padding-left:0px;margin-left:auto;display:block;padding-right:0px;border-top-width:0px;margin-right:auto;" border="0" alt="image" src="http://dotnetcampania.org/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/turibbio.metablogapi/1817.image_5F00_thumb_5F00_0F500F23.png" width="244" height="159" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p align="center"&gt;&lt;strong&gt;Figura 1 - Come impostare un content file.&lt;/strong&gt;&lt;/p&gt;  &lt;p align="left"&gt;&lt;strong&gt;&lt;/strong&gt;&amp;#160;&lt;/p&gt;  &lt;p align="left"&gt;Per utilizzare il file all’interno della nostra applicazione possiamo utilizzare la seguente sintassi:&lt;/p&gt;  &lt;pre style="overflow:auto;border-top:#cecece 1px solid;border-right:#cecece 1px solid;border-bottom:#cecece 1px solid;padding-bottom:5px;padding-top:5px;padding-left:5px;min-height:40px;border-left:#cecece 1px solid;padding-right:5px;width:650px;background-color:#fbfbfb;"&gt;&lt;pre style="font-size:12px;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;margin:0em;width:100%;background-color:#fbfbfb;"&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;MediaElement&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Source&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;&amp;quot;Sounds\sonar.mp3&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Name&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;&amp;quot;mediaElement1&amp;quot;&lt;/span&gt;  &lt;span style="color:#ff0000;"&gt;LoadedBehavior&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;&amp;quot;Manual&amp;quot;&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;/pre&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;pre style="overflow:auto;border-top:#cecece 1px solid;border-right:#cecece 1px solid;border-bottom:#cecece 1px solid;padding-bottom:5px;padding-top:5px;padding-left:5px;min-height:40px;border-left:#cecece 1px solid;padding-right:5px;width:650px;background-color:#fbfbfb;"&gt;&lt;pre style="font-size:12px;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;margin:0em;width:100%;background-color:#fbfbfb;"&gt;&lt;span style="color:#0000ff;"&gt;private&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;void&lt;/span&gt; MainWindowTabControl_SelectionChanged(&lt;span style="color:#0000ff;"&gt;object&lt;/span&gt; sender, SelectionChangedEventArgs e)
&lt;/pre&gt;&lt;pre style="font-size:12px;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;margin:0em;width:100%;background-color:#ffffff;"&gt;{
&lt;/pre&gt;&lt;pre style="font-size:12px;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;margin:0em;width:100%;background-color:#fbfbfb;"&gt;    TabItem selectedTab = e.AddedItems[0] &lt;span style="color:#0000ff;"&gt;as&lt;/span&gt; TabItem;
&lt;/pre&gt;&lt;pre style="font-size:12px;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;margin:0em;width:100%;background-color:#ffffff;"&gt;&lt;/pre&gt;&lt;pre style="font-size:12px;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;margin:0em;width:100%;background-color:#fbfbfb;"&gt;    &lt;span style="color:#0000ff;"&gt;if&lt;/span&gt; (selectedTab.Name == &amp;quot;&lt;span style="color:#8b0000;"&gt;Content&lt;/span&gt;&amp;quot;)
&lt;/pre&gt;&lt;pre style="font-size:12px;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;margin:0em;width:100%;background-color:#ffffff;"&gt;    {
&lt;/pre&gt;&lt;pre style="font-size:12px;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;margin:0em;width:100%;background-color:#fbfbfb;"&gt;        mediaElement1.Play();
&lt;/pre&gt;&lt;pre style="font-size:12px;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;margin:0em;width:100%;background-color:#ffffff;"&gt;    }
&lt;/pre&gt;&lt;pre style="font-size:12px;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;margin:0em;width:100%;background-color:#fbfbfb;"&gt;}
&lt;/pre&gt;&lt;pre style="font-size:12px;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;margin:0em;width:100%;background-color:#ffffff;"&gt;&lt;/pre&gt;&lt;/pre&gt;

&lt;p&gt;In fase di compilazione dell’applicativo, quello che succede è che il file Sonar.mp3 viene copiato nella directory dove risiede l’assembly (Figura 2) e in fase di esecuzione sarà letto dalla stessa posizione.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://dotnetcampania.org/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/turibbio.metablogapi/6354.image_5F00_73F76A87.png"&gt;&lt;img title="image" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;float:none;padding-top:0px;padding-left:0px;margin-left:auto;display:block;padding-right:0px;border-top-width:0px;margin-right:auto;" border="0" alt="image" src="http://dotnetcampania.org/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/turibbio.metablogapi/0250.image_5F00_thumb_5F00_5C3C1F22.png" width="202" height="113" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p align="center"&gt;&lt;strong&gt;Figura 2. Locazione di un Content File.&lt;/strong&gt;&lt;/p&gt;

&lt;p align="left"&gt;&amp;#160;&lt;/p&gt;

&lt;p align="left"&gt;Anche per i content files, è possibile utilizzare la pack URI per referenziare files. L’unica differenza è che invece di “application” (che viene usato per trovare una risorsa all’interno dell’assembly) occorre utilizzare la sintassi “&lt;strong&gt;siteOfOrigin&lt;/strong&gt;”: &lt;/p&gt;

&lt;pre style="overflow:auto;border-top:#cecece 1px solid;border-right:#cecece 1px solid;border-bottom:#cecece 1px solid;padding-bottom:5px;padding-top:5px;padding-left:5px;min-height:40px;border-left:#cecece 1px solid;padding-right:5px;width:650px;background-color:#fbfbfb;"&gt;&lt;pre style="font-size:12px;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;margin:0em;width:100%;background-color:#fbfbfb;"&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;Grid&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="font-size:12px;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;margin:0em;width:100%;background-color:#ffffff;"&gt;    &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;Label&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;Esempio Media Element&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;Label&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="font-size:12px;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;margin:0em;width:100%;background-color:#fbfbfb;"&gt;    &lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;MediaElement&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Source&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;&amp;quot;pack://siteOfOrigin:,,,/Sounds/sonar.mp3&amp;quot;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="font-size:12px;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;margin:0em;width:100%;background-color:#ffffff;"&gt;                  &lt;span style="color:#ff0000;"&gt;Name&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;&amp;quot;mediaElement1&amp;quot;&lt;/span&gt;  &lt;span style="color:#ff0000;"&gt;LoadedBehavior&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;&amp;quot;Manual&amp;quot;&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="font-size:12px;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;margin:0em;width:100%;background-color:#fbfbfb;"&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;Grid&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="font-size:12px;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;margin:0em;width:100%;background-color:#ffffff;"&gt;&lt;/pre&gt;&lt;/pre&gt;

&lt;p&gt;L’aspetto interessante è la polivalenza che può assumere la parola siteOfOrigin in base alla tipologia di installazione/applicazione: infatti in base a quest’ultima, siteOfOrigin può puntare&lt;/p&gt;

&lt;p&gt;1) Alla cartella d’installazione dell’applicativo, se installato tramite Windows Installer (Full-Trust);&lt;/p&gt;

&lt;p&gt;2)All’URL o al path UNC dove l’applicativo è stato originariamente deployato, se installato tramite ClickOnce (Full-Trust);&lt;/p&gt;

&lt;p&gt;3)All’URI o al path UNC dove l’applicativo è hostato, se installato tramite ClickOnce (Partial-Trust) o XBAP;&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;E’ inoltre anche possibile accedere alle risorse in maniera programmatica utilizzando il metodo &lt;strong&gt;GetContentStream&lt;/strong&gt;. Questo metodo ritorna un oggetto di tipo &lt;strong&gt;StreamResourceInfo&lt;/strong&gt; la cui proprietà &lt;strong&gt;Stream &lt;/strong&gt;contiene lo stream (UnmanagedMemoryStream) di byte del file che cerchiamo. &lt;/p&gt;

&lt;p&gt;Ecco un esempio di utilizzo:&lt;/p&gt;

&lt;pre style="overflow:auto;border-top:#cecece 1px solid;border-right:#cecece 1px solid;border-bottom:#cecece 1px solid;padding-bottom:5px;padding-top:5px;padding-left:5px;min-height:40px;border-left:#cecece 1px solid;padding-right:5px;width:650px;background-color:#fbfbfb;"&gt;&lt;pre style="font-size:12px;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;margin:0em;width:100%;background-color:#fbfbfb;"&gt;&lt;span style="color:#008000;"&gt;//Access a content file programmatically&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="font-size:12px;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;margin:0em;width:100%;background-color:#ffffff;"&gt;&lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; exampleTxt = String.Empty;
&lt;/pre&gt;&lt;pre style="font-size:12px;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;margin:0em;width:100%;background-color:#fbfbfb;"&gt;System.Windows.Resources.StreamResourceInfo myInfo;
&lt;/pre&gt;&lt;pre style="font-size:12px;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;margin:0em;width:100%;background-color:#ffffff;"&gt;myInfo = Application.GetContentStream(&lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; Uri(&amp;quot;&lt;span style="color:#8b0000;"&gt;Data\\Example.txt&lt;/span&gt;&amp;quot;, UriKind.Relative));
&lt;/pre&gt;&lt;pre style="font-size:12px;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;margin:0em;width:100%;background-color:#fbfbfb;"&gt;System.IO.StreamReader myReader = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; System.IO.StreamReader(myInfo.Stream);
&lt;/pre&gt;&lt;pre style="font-size:12px;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;margin:0em;width:100%;background-color:#ffffff;"&gt;TextExample.Text = myReader.ReadToEnd();
&lt;/pre&gt;&lt;pre style="font-size:12px;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;margin:0em;width:100%;background-color:#fbfbfb;"&gt;&lt;/pre&gt;&lt;/pre&gt;

&lt;p&gt;E’ naturalmente possibile usare i metodi &lt;strong&gt;GetResourceStream()&lt;/strong&gt; e &lt;strong&gt;GetRemoteStream()&lt;/strong&gt; della classe Application per recuperare rispettivamente sia un file di risorsa (binary resource) che un file usando la pack URI (siteOfOrigin).&lt;/p&gt;

&lt;p&gt;E’ anche possibile usare un pizzico di reflection per accedere ad risorse presenti in un assembly di risorse (in tal caso, la BuildAction del file deve essere impostata in &lt;strong&gt;EmbeddedResource&lt;/strong&gt;). &lt;/p&gt;

&lt;p&gt;Il procedimento consiste nel localizzare l’assembly e caricarlo in memoria, e poi leggere la risorsa usando i metodi &lt;strong&gt;GetManifestResourceNames() &lt;/strong&gt;e &lt;strong&gt;GetManifestResourceStream()&lt;/strong&gt;. &lt;/p&gt;

&lt;p&gt;Ecco un esempio pratico:&lt;/p&gt;

&lt;pre style="overflow:auto;border-top:#cecece 1px solid;border-right:#cecece 1px solid;border-bottom:#cecece 1px solid;padding-bottom:5px;padding-top:5px;padding-left:5px;min-height:40px;border-left:#cecece 1px solid;padding-right:5px;width:650px;background-color:#fbfbfb;"&gt;&lt;pre style="font-size:12px;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;margin:0em;width:100%;background-color:#fbfbfb;"&gt;System.Reflection.AssemblyName asmName;
&lt;/pre&gt;&lt;pre style="font-size:12px;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;margin:0em;width:100%;background-color:#ffffff;"&gt;asmName = System.Reflection.AssemblyName.GetAssemblyName(
&lt;/pre&gt;&lt;pre style="font-size:12px;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;margin:0em;width:100%;background-color:#fbfbfb;"&gt;    Application.ResourceAssembly.Location.Substring(
&lt;/pre&gt;&lt;pre style="font-size:12px;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;margin:0em;width:100%;background-color:#ffffff;"&gt;        0, Application.ResourceAssembly.Location.LastIndexOf(&amp;quot;&lt;span style="color:#8b0000;"&gt;\\&lt;/span&gt;&amp;quot;) + 1) + &amp;quot;&lt;span style="color:#8b0000;"&gt;ResourceLibrary.dll&lt;/span&gt;&amp;quot;);
&lt;/pre&gt;&lt;pre style="font-size:12px;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;margin:0em;width:100%;background-color:#fbfbfb;"&gt;&lt;/pre&gt;&lt;pre style="font-size:12px;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;margin:0em;width:100%;background-color:#ffffff;"&gt;System.Reflection.Assembly asm;
&lt;/pre&gt;&lt;pre style="font-size:12px;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;margin:0em;width:100%;background-color:#fbfbfb;"&gt;asm = System.Reflection.Assembly.Load(asmName);
&lt;/pre&gt;&lt;pre style="font-size:12px;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;margin:0em;width:100%;background-color:#ffffff;"&gt;&lt;/pre&gt;&lt;pre style="font-size:12px;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;margin:0em;width:100%;background-color:#fbfbfb;"&gt;&lt;span style="color:#0000ff;"&gt;string&lt;/span&gt;[] res = asm.GetManifestResourceNames();
&lt;/pre&gt;&lt;pre style="font-size:12px;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;margin:0em;width:100%;background-color:#ffffff;"&gt;myImageRefl.Source = BitmapFrame.Create(
&lt;/pre&gt;&lt;pre style="font-size:12px;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;margin:0em;width:100%;background-color:#fbfbfb;"&gt;    asm.GetManifestResourceStream(res[0]), BitmapCreateOptions.None, BitmapCacheOption.OnLoad);
&lt;/pre&gt;&lt;pre style="font-size:12px;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;margin:0em;width:100%;background-color:#ffffff;"&gt;&lt;/pre&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;/pre&gt;

&lt;p&gt;Con questo finiamo l’accesso delle risorse fisiche. Nel prossimo articolo invece vedremo come utilizzare le risorse logiche.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://dotnetcampania.org/aggbug.aspx?PostID=2109" width="1" height="1"&gt;</content><author><name>Turibbio</name><uri>http://dotnetcampania.org/members/Turibbio/default.aspx</uri></author><category term="wpf4" scheme="http://dotnetcampania.org/blogs/turibbio/archive/tags/wpf4/default.aspx" /></entry><entry><title>Full Text Search in JS per Windows 8</title><link rel="alternate" type="text/html" href="/blogs/turibbio/archive/2012/12/13/full-text-search-in-js-per-windows-8.aspx" /><id>/blogs/turibbio/archive/2012/12/13/full-text-search-in-js-per-windows-8.aspx</id><published>2012-12-13T22:01:00Z</published><updated>2012-12-13T22:01:00Z</updated><content type="html">&lt;p&gt;Vi lascio un link ad un interessante articolo su come implementare la full text search in Javascript in una applicazione per Windows 8:&lt;/p&gt;  &lt;p&gt;&lt;a title="http://blogs.msdn.com/b/eternalcoding/archive/2012/11/29/tips-and-tricks-for-windows-8-javascript-developer-creating-a-local-full-text-search-index.aspx" href="http://blogs.msdn.com/b/eternalcoding/archive/2012/11/29/tips-and-tricks-for-windows-8-javascript-developer-creating-a-local-full-text-search-index.aspx"&gt;http://blogs.msdn.com/b/eternalcoding/archive/2012/11/29/tips-and-tricks-for-windows-8-javascript-developer-creating-a-local-full-text-search-index.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;Buona lettura!&lt;/em&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://dotnetcampania.org/aggbug.aspx?PostID=2105" width="1" height="1"&gt;</content><author><name>Turibbio</name><uri>http://dotnetcampania.org/members/Turibbio/default.aspx</uri></author><category term="windows 8" scheme="http://dotnetcampania.org/blogs/turibbio/archive/tags/windows+8/default.aspx" /><category term="full text search" scheme="http://dotnetcampania.org/blogs/turibbio/archive/tags/full+text+search/default.aspx" /></entry><entry><title>Windows Server 2012 Remote Desktop Services Videos</title><link rel="alternate" type="text/html" href="/blogs/turibbio/archive/2012/12/12/windows-server-2012-remote-desktop-services-video.aspx" /><id>/blogs/turibbio/archive/2012/12/12/windows-server-2012-remote-desktop-services-video.aspx</id><published>2012-12-12T12:37:00Z</published><updated>2012-12-12T12:37:00Z</updated><content type="html">&lt;p&gt;Tra le varie funzionalità introdotte da Windows Server 2012 ci sono anche una serie di migliorie relative all’uso dei Remote Desktop Services. In questi video, recuperati da un post di ieri sul blog di Windows Server (&lt;a title="http://blogs.msdn.com/b/rds/archive/2012/12/11/new-windows-server-2012-remote-desktop-services-showcase-videos.aspx" href="http://blogs.msdn.com/b/rds/archive/2012/12/11/new-windows-server-2012-remote-desktop-services-showcase-videos.aspx"&gt;http://blogs.msdn.com/b/rds/archive/2012/12/11/new-windows-server-2012-remote-desktop-services-showcase-videos.aspx&lt;/a&gt;) sono spiegate quali sono e come funzionano queste nuove features:&lt;/p&gt;  &lt;p&gt;· &lt;a href="http://www.microsoft.com/EN-US/showcase/details.aspx?uuid=a65ba4e2-c82e-4730-88e2-bed9f3818ad8"&gt;Virtual Desktop Infrastructure Overview&lt;/a&gt; – Summary of the value of Remote Desktop Services in Windows Server 2012&lt;/p&gt;  &lt;p&gt;· &lt;a href="http://www.microsoft.com/EN-US/showcase/details.aspx?uuid=581494a9-fb6e-4db6-af95-e3dbcce50104"&gt;Quick VDI Wizard&lt;/a&gt; – Set up a virtual machine based deployment on a single server.&lt;/p&gt;  &lt;p&gt;· &lt;a href="http://www.microsoft.com/EN-US/showcase/details.aspx?uuid=97a2314f-7aa6-42ac-bcbf-656bc91247f4"&gt;Set up an RDS VDI deployment&lt;/a&gt; – Set up a virtual machine-based deployment.&lt;/p&gt;  &lt;p&gt;· &lt;a href="http://www.microsoft.com/EN-US/showcase/details.aspx?uuid=49df40b2-64e1-437c-a22e-b76bf2bd396e"&gt;Set up an RDS session deployment&lt;/a&gt;&amp;#160;&amp;#160; – Set up a session-based deployment.&lt;/p&gt;  &lt;p&gt;· &lt;a href="http://www.microsoft.com/EN-US/showcase/details.aspx?uuid=3c3be783-511e-40cf-95c4-ed119136376c"&gt;RemoteFX&lt;/a&gt; – Learn about the enhancements made for end user discovery and experience.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;Buona visione!&lt;/em&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://dotnetcampania.org/aggbug.aspx?PostID=2103" width="1" height="1"&gt;</content><author><name>Turibbio</name><uri>http://dotnetcampania.org/members/Turibbio/default.aspx</uri></author><category term="windows server 2012" scheme="http://dotnetcampania.org/blogs/turibbio/archive/tags/windows+server+2012/default.aspx" /></entry><entry><title>Real Life Scrum</title><link rel="alternate" type="text/html" href="/blogs/turibbio/archive/2012/12/11/real-life-scrum.aspx" /><id>/blogs/turibbio/archive/2012/12/11/real-life-scrum.aspx</id><published>2012-12-11T23:39:00Z</published><updated>2012-12-11T23:39:00Z</updated><content type="html">&lt;p&gt;Scrum resta ad oggi la metodologia agile di più semplice adozione. Purtroppo però non sempre è facile trovare una mini-guida che affronti diverse problematiche consigliandone una strada da seguire. Ho &lt;em&gt;leggiucchiato&lt;/em&gt; un pò questo ebook offerto gratuitamente da InfoQ e devo dire che lo trovo abbastanza diretto, analizzando volta per volta le domande/problematiche comuni e cercando di dare dei suggerimenti o delle osservazioni da poter seguire.&lt;/p&gt;  &lt;p&gt;Vi lascio il link qui sotto e… buona lettura!&lt;/p&gt;  &lt;p&gt;&lt;a title="http://www.infoq.com/minibooks/real-life-scrum" href="http://www.infoq.com/minibooks/real-life-scrum"&gt;http://www.infoq.com/minibooks/real-life-scrum&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://dotnetcampania.org/aggbug.aspx?PostID=2101" width="1" height="1"&gt;</content><author><name>Turibbio</name><uri>http://dotnetcampania.org/members/Turibbio/default.aspx</uri></author><category term="scrum" scheme="http://dotnetcampania.org/blogs/turibbio/archive/tags/scrum/default.aspx" /></entry><entry><title>Implementing Domain-Driven Design Meetup con Vaughn Vernon</title><link rel="alternate" type="text/html" href="/blogs/turibbio/archive/2012/12/06/implementing-domain-driven-design-meetup-con-vaughn-vernon.aspx" /><id>/blogs/turibbio/archive/2012/12/06/implementing-domain-driven-design-meetup-con-vaughn-vernon.aspx</id><published>2012-12-06T10:50:00Z</published><updated>2012-12-06T10:50:00Z</updated><content type="html">&lt;p&gt;Ieri sera, presso “The Hub Roma”, ho seguito una interessante sessione di Vaughn Vernon su DDD. L’intero evento è stato organizzato da Alberto Brandolini di Avanscoperta. &lt;/p&gt;  &lt;p&gt;Vaughn Vernon è un architetto/sviluppatore con oltre 25 anni di esperienza, ed è l’autore del libro &amp;quot;Implementing Domain-Driven Design&amp;quot; pubblicato da Addison-Wesley.&lt;/p&gt;  &lt;p&gt;Partendo dai concetti alla base di DDD, Vaughn ha illustrato i diversi approcci possibili con DDD e i fattori di rischio o i benefici che ne derivano dal suo utilizzo. Il tutto esemplificato da esempi reali, basati sulla sua esperienza lavorativa. &lt;/p&gt;  &lt;p&gt;Tra i vari concetti esposti quello che sicuramente mi ha colpito di più è l’&lt;strong&gt;Hyperbolic Discounting&lt;/strong&gt;. Si tratta in sostanza di un modello di sconto &lt;em&gt;time-inconsistent&lt;/em&gt; presente in economia che si basa sul concetto che l’uomo tende a preferire una minore quantità di un bene subito, piuttosto che una quantità maggiore in un futuro. &lt;/p&gt;  &lt;p&gt;Funny story: sono stato l’unico in sala che alla domanda di Vaughn ha scelto la seconda! Questo potrebbe fare di me un buon &lt;em&gt;business-man &lt;/em&gt;(commento di Vaughn a Brando &lt;img class="wlEmoticon wlEmoticon-smile" style="border-top-style:none;border-left-style:none;border-bottom-style:none;border-right-style:none;" alt="Sorriso" src="http://dotnetcampania.org/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/turibbio.metablogapi/2843.wlEmoticon_2D00_smile_5F00_2B67A00F.png" /&gt;).&lt;/p&gt;  &lt;p&gt;&lt;a href="http://thedailyomnivore.net/2012/05/21/hyperbolic-discounting/" target="_blank"&gt;&lt;img style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;float:none;padding-top:0px;padding-left:0px;margin-left:auto;display:block;padding-right:0px;border-top-width:0px;margin-right:auto;" border="0" src="http://pbmo.files.wordpress.com/2012/05/hyperbolic-discounting.png?w=370" width="300" height="141" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p align="center"&gt;&lt;strong&gt;Hyperbolic Discount&lt;/strong&gt;&lt;/p&gt;  &lt;p align="center"&gt;&lt;font size="1"&gt;[fonte: &lt;/font&gt;&lt;a title="http://thedailyomnivore.net/2012/05/21/hyperbolic-discounting/" href="http://thedailyomnivore.net/2012/05/21/hyperbolic-discounting/"&gt;&lt;font size="1"&gt;http://thedailyomnivore.net/2012/05/21/hyperbolic-discounting/&lt;/font&gt;&lt;/a&gt;&lt;font size="1"&gt;]&lt;/font&gt;&lt;/p&gt;  &lt;p align="left"&gt;&amp;#160;&lt;/p&gt;  &lt;p align="left"&gt;Altro aspetto interessante, su cui voglio approfondire, è l’&lt;strong&gt;Exagonal Domain&lt;/strong&gt;. &lt;/p&gt;  &lt;p align="left"&gt;&lt;img style="float:none;margin-left:auto;display:block;margin-right:auto;" src="http://a.pragprog.com/magazines/2009-12/images/HexagonalArchitecture__1v0xbw__.jpg" width="475" height="299" alt="" /&gt;&lt;/p&gt;  &lt;p align="center"&gt;&lt;font size="2"&gt;Exagonal Architecture&lt;/font&gt;&lt;/p&gt;  &lt;p align="center"&gt;&lt;font size="1"&gt;[fonte: &lt;/font&gt;&lt;a title="http://pragprog.com/magazines/2009-12/going-naked" href="http://pragprog.com/magazines/2009-12/going-naked"&gt;&lt;font size="1"&gt;http://pragprog.com/magazines/2009-12/going-naked&lt;/font&gt;&lt;/a&gt;&lt;font size="1"&gt;]&lt;/font&gt;&lt;/p&gt;  &lt;p align="left"&gt;Definito da Alistair Cockburn (&lt;a title="http://alistair.cockburn.us/Hexagonal+architecture" href="http://alistair.cockburn.us/Hexagonal+architecture"&gt;http://alistair.cockburn.us/Hexagonal+architecture&lt;/a&gt;), è una metodologia di sviluppo che si prefigge l’obiettivo di essere egualmente utilizzato da utenti o test in un ambiente isolato da runtime devices e database. Il tutto si fonda poi sul concetto di &lt;em&gt;adapter &lt;/em&gt;che ha l’obiettivo di essere il mezzo di comunicazione tra la nostra applicazione/dominio e l’ambiente esterno (lasciatemi passare la definizione, sono un newbie sull’argomento e lo desidero approfondire).&lt;/p&gt;  &lt;p align="left"&gt;Una serata davvero interessante ed istruttiva, e ancora una volta ripenso al fatto di come ci sia la voglia (e aggiungerei anche la premura) da parte di persone (che come me erano presenti all’evento) di voler creare architetture per le proprie applicazioni con maggiore cognizione di causa. Di sicuro dobbiamo renderci conto che non esiste una risposta sempre ben precisa ad un’architettura da applicare ad una determinata applicazione. Dipende sempre dal famigerato &lt;strong&gt;&lt;em&gt;context&lt;/em&gt;&lt;/strong&gt; e dagli attori che ci girano intorno. E poi aggiungerei anche un pò di &lt;em&gt;culo &lt;/em&gt;nelle scelte fatte…&lt;/p&gt;  &lt;p align="left"&gt;&amp;#160;&lt;/p&gt;  &lt;p align="left"&gt;&lt;strong&gt;[UPDATE]&lt;/strong&gt;: come suggerisce @ZioBrando: &lt;em&gt;...più che &amp;quot;culo&amp;quot; il segreto è la reversibilità. O di tenere basso il costo delle correzioni di rotta. &lt;/em&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://dotnetcampania.org/aggbug.aspx?PostID=2096" width="1" height="1"&gt;</content><author><name>Turibbio</name><uri>http://dotnetcampania.org/members/Turibbio/default.aspx</uri></author><category term="domain-driven design" scheme="http://dotnetcampania.org/blogs/turibbio/archive/tags/domain-driven+design/default.aspx" /></entry><entry><title>Turitip #44: Usare la connessione Wireless con Hyper-V</title><link rel="alternate" type="text/html" href="/blogs/turibbio/archive/2012/12/04/turitip-44-usare-la-connessione-wireless-con-hyper-v.aspx" /><id>/blogs/turibbio/archive/2012/12/04/turitip-44-usare-la-connessione-wireless-con-hyper-v.aspx</id><published>2012-12-04T10:22:00Z</published><updated>2012-12-04T10:22:00Z</updated><content type="html">&lt;p&gt;Per usare la connessione wireless del proprio notebook con Windows 8 e Hyper-V si può andare nel gestore delle reti (Virtual Switch Manager), selezionare l’External Network che avete precedentemente creato e impostare la scheda da utilizzare per la connessione come da figura:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://dotnetcampania.org/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/turibbio.metablogapi/0083.image_5F00_1DE7BAC4.png"&gt;&lt;img title="image" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;float:none;padding-top:0px;padding-left:0px;margin-left:auto;display:block;padding-right:0px;border-top-width:0px;margin-right:auto;" border="0" alt="image" src="http://dotnetcampania.org/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/turibbio.metablogapi/6837.image_5F00_thumb_5F00_242E9152.png" width="403" height="169" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;Enjoy it!&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;[UPDATE]&lt;/strong&gt;: Nel momento in cui si imposta la connessione wifi per la macchina virtuale, purtroppo l’host perde la connessione. Questo è dovuto dal fatto che host e VM condividono lo stesso MAC address su cui non è possibile assegnare contemporaneamente 2 IP. Per raggirare il problema potete utilizzare i seguenti link:&lt;/p&gt;  &lt;p&gt;&lt;a title="http://social.technet.microsoft.com/Forums/en/winserverhyperv/thread/d9fb7866-0fbc-4c06-b8ea-df3c35c75c74" href="http://social.technet.microsoft.com/Forums/en/winserverhyperv/thread/d9fb7866-0fbc-4c06-b8ea-df3c35c75c74"&gt;http://social.technet.microsoft.com/Forums/en/winserverhyperv/thread/d9fb7866-0fbc-4c06-b8ea-df3c35c75c74&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a title="http://blogs.msdn.com/b/b8/archive/2011/09/07/bringing-hyper-v-to-windows-8.aspx" href="http://blogs.msdn.com/b/b8/archive/2011/09/07/bringing-hyper-v-to-windows-8.aspx"&gt;http://blogs.msdn.com/b/b8/archive/2011/09/07/bringing-hyper-v-to-windows-8.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a title="http://social.technet.microsoft.com/wiki/contents/articles/185.hyper-v-how-to-run-hyper-v-on-a-laptop-en-us.aspx" href="http://social.technet.microsoft.com/wiki/contents/articles/185.hyper-v-how-to-run-hyper-v-on-a-laptop-en-us.aspx"&gt;http://social.technet.microsoft.com/wiki/contents/articles/185.hyper-v-how-to-run-hyper-v-on-a-laptop-en-us.aspx&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://dotnetcampania.org/aggbug.aspx?PostID=2094" width="1" height="1"&gt;</content><author><name>Turibbio</name><uri>http://dotnetcampania.org/members/Turibbio/default.aspx</uri></author><category term="windows 8" scheme="http://dotnetcampania.org/blogs/turibbio/archive/tags/windows+8/default.aspx" /><category term="hyper-v" scheme="http://dotnetcampania.org/blogs/turibbio/archive/tags/hyper-v/default.aspx" /></entry><entry><title>Turitup #43: Remote Desktop Connection Manager</title><link rel="alternate" type="text/html" href="/blogs/turibbio/archive/2012/11/22/turitup-43-remote-desktop-connection-manager.aspx" /><id>/blogs/turibbio/archive/2012/11/22/turitup-43-remote-desktop-connection-manager.aspx</id><published>2012-11-22T14:38:00Z</published><updated>2012-11-22T14:38:00Z</updated><content type="html">&lt;p&gt;Chi come me si destreggia tra le mille attività in azienda, indossando diversi cappellini tra cui sviluppatore, sistemista, DBA e trainer, avrà di sicuro affrontato il problema di salvare le decine di indirizzi IP dei server o delle macchine virtuali con cui si lavora.&lt;/p&gt;  &lt;p&gt;Devo ammettere che in passato, prima di conoscere la snap-in della console MMC, tendevo a crearmi dei file txt con tutte le informazioni all’interno (ebbene sì, anche le pwd &lt;img class="wlEmoticon wlEmoticon-smile" style="border-top-style:none;border-left-style:none;border-bottom-style:none;border-right-style:none;" alt="Sorriso" src="http://dotnetcampania.org/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/turibbio.metablogapi/7536.wlEmoticon_2D00_smile_5F00_358153B6.png" /&gt;). Ma poi con il tempo mi sono anche io un po&amp;#39; evoluto e ho cercato di utilizzare gli strumenti adatti. &lt;/p&gt;  &lt;p&gt;Nei giorni passati, girovagando sulla rete per installare gli RSAT su Windows 8, ho trovato qualcosa di veramente straordinario che si chiama &lt;strong&gt;Remote Desktop Connection Manager&lt;/strong&gt;. A primo colpo ho detto: “vabbè saranno gli RSAT con nome diverso”. &lt;/p&gt;  &lt;p&gt;In realtà RDCM, oltre ad integrare le funzionalità della classica snap-in per MMC, aggiunge quelle features che a mio parere lo rendono uno strumento indispensabile per chi gestisce macchine. Vi elenco un esempio:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Possibilità di raggruppare anche in base alla foresta del dominio le diverse macchine&lt;/li&gt;    &lt;li&gt;Supporto integrato per le credenziali con la funzionalità &lt;em&gt;parent&lt;/em&gt;&lt;/li&gt;    &lt;li&gt;Possibilità di gestire in maniera semplice la risoluzione grafica, i dischi locali da connettere, le stampanti&lt;/li&gt;    &lt;li&gt;Interfaccia user-friendly con sommario di tutte le macchine connesse.&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;a href="http://www.petri.co.il/wp-content/uploads/using-remote-desktop-connection-manager-17.png"&gt;&lt;img title="Remote Desktop Connection Manager: Connect Server Group" style="float:none;margin-left:auto;display:block;margin-right:auto;" alt="Remote Desktop Connection Manager: Connect Server Group" src="http://www.petri.co.il/wp-content/uploads/using-remote-desktop-connection-manager-17-590x363.png" width="590" height="363" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Vi lascio qui sotto i links per provarlo e un post che riepiloga tutte le funzionalità in maniera dettagliata.&lt;/p&gt;  &lt;p&gt;&lt;a title="http://www.microsoft.com/en-us/download/details.aspx?id=21101" href="http://www.microsoft.com/en-us/download/details.aspx?id=21101"&gt;http://www.microsoft.com/en-us/download/details.aspx?id=21101&lt;/a&gt; (download)&lt;/p&gt;  &lt;p&gt;&lt;a title="http://www.petri.co.il/remote-desktop-connection-manager.htm" href="http://www.petri.co.il/remote-desktop-connection-manager.htm"&gt;http://www.petri.co.il/remote-desktop-connection-manager.htm&lt;/a&gt; (how-to)&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;Enjoy it!&lt;/em&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://dotnetcampania.org/aggbug.aspx?PostID=2085" width="1" height="1"&gt;</content><author><name>Turibbio</name><uri>http://dotnetcampania.org/members/Turibbio/default.aspx</uri></author><category term="TuriTip" scheme="http://dotnetcampania.org/blogs/turibbio/archive/tags/TuriTip/default.aspx" /><category term="remote desktop connection manager" scheme="http://dotnetcampania.org/blogs/turibbio/archive/tags/remote+desktop+connection+manager/default.aspx" /></entry><entry><title>Usare le risorse in WPF 4.0 (Parte 1/4)</title><link rel="alternate" type="text/html" href="/blogs/turibbio/archive/2012/11/14/usare-le-risorse-in-wpf-4-0-parte-1-4.aspx" /><id>/blogs/turibbio/archive/2012/11/14/usare-le-risorse-in-wpf-4-0-parte-1-4.aspx</id><published>2012-11-14T15:41:00Z</published><updated>2012-11-14T15:41:00Z</updated><content type="html">&lt;p&gt;In questa serie di articoli vedremo come utilizzare le risorse all’interno delle nostre applicazioni WPF. &lt;/p&gt;  &lt;p&gt;Possiamo distinguere due principali insiemi di risorse: binarie e logiche.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h2&gt;Risorse Binarie&lt;/h2&gt;  &lt;p&gt;Le risorse binarie prevedono la possibilità di poter aggiungere dei file binari all’interno delle applicazioni. Tali file, sono poi compilati insieme all’eseguibile finale. Per utilizzare questa tipologia di risorse, basta aggiungere un file al progetto, e impostare la &lt;em&gt;Build Action&lt;/em&gt; a &lt;strong&gt;Resource&lt;/strong&gt;. Ogni volta che il progetto in cui è presente il file viene ricompilato, anche il file stesso è automaticamente compilato ed aggiunto nell’eseguibile finale.&lt;/p&gt;  &lt;p&gt;Nella seguente figura vediamo come aggiungere una immagine al progetto posizionata all’interno della cartella “Images” precedentemente creata (Figura 1):&lt;/p&gt;  &lt;p align="center"&gt;&lt;a href="http://dotnetcampania.org/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/turibbio.metablogapi/6131.image_5F00_5E80CBEA.png"&gt;&lt;img title="image" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;float:none;padding-top:0px;padding-left:0px;margin-left:auto;display:block;padding-right:0px;border-top-width:0px;margin-right:auto;" border="0" alt="image" src="http://dotnetcampania.org/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/turibbio.metablogapi/1307.image_5F00_thumb_5F00_1104295D.png" width="596" height="305" /&gt;&lt;/a&gt;&amp;#160;&lt;em&gt;Figura 1. Aggiunta di un file di risorse&lt;/em&gt;&lt;/p&gt;  &lt;p align="left"&gt;&amp;#160;&lt;/p&gt;  &lt;p align="left"&gt;Nella figura 2 vediamo invece come impostare la Build Action dalle proprietà del file:&lt;/p&gt;  &lt;p align="left"&gt;&lt;a href="http://dotnetcampania.org/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/turibbio.metablogapi/0523.image_5F00_46A948EA.png"&gt;&lt;img title="image" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;float:none;padding-top:0px;padding-left:0px;margin-left:auto;display:block;padding-right:0px;border-top-width:0px;margin-right:auto;" border="0" alt="image" src="http://dotnetcampania.org/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/turibbio.metablogapi/1651.image_5F00_thumb_5F00_574143D8.png" width="244" height="133" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p align="center"&gt;&lt;em&gt;Figura 2. Impostare la Build Action&lt;/em&gt;&lt;/p&gt;  &lt;p align="left"&gt;&amp;#160;&lt;/p&gt;  &lt;p align="left"&gt;Se compiliamo e apriamo l’eseguibile generato con un tool come .Net Reflector o ILSpy, notiamo la presenza dell’immagine all’interno dello stesso (Figura 3): &lt;/p&gt;  &lt;p align="left"&gt;&lt;a href="http://dotnetcampania.org/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/turibbio.metablogapi/5722.image_5F00_3F79E6A5.png"&gt;&lt;img title="image" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;float:none;padding-top:0px;padding-left:0px;margin-left:auto;display:block;padding-right:0px;border-top-width:0px;margin-right:auto;" border="0" alt="image" src="http://dotnetcampania.org/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/turibbio.metablogapi/7065.image_5F00_thumb_5F00_0A3CE60E.png" width="333" height="358" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p align="center"&gt;&lt;em&gt;Figura 3. L’eseguibile decompilato con ILSpy&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Resta da vedere come poter utilizzare questa immagine nella nostra applicazione. Il modo più semplice è aggiungere un oggetto Image nello XAML e impostare l’attributo &lt;em&gt;Source&lt;/em&gt; per puntare all’immagine:&lt;/p&gt;  &lt;pre style="overflow:auto;border-top:#cecece 1px solid;border-right:#cecece 1px solid;border-bottom:#cecece 1px solid;padding-bottom:5px;padding-top:5px;padding-left:5px;min-height:40px;border-left:#cecece 1px solid;padding-right:5px;width:650px;background-color:#fbfbfb;"&gt;&lt;pre style="font-size:12px;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;margin:0em;width:100%;background-color:#fbfbfb;"&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;Image&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Name&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;&amp;quot;myImage&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Source&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;&amp;quot;Images/burns.jpg&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Margin&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;&amp;quot;10&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Stretch&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;&amp;quot;None&amp;quot;&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;/pre&gt;

&lt;p&gt;La sintassi appena utilizzata è una versione abbreviata di quella che in XAML viene definita come &lt;strong&gt;Pack Uri&lt;/strong&gt;. La sintassi completa di un Pack Uri è la seguente:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;pack://&amp;lt;Authority&amp;gt;/&amp;lt;Folder&amp;gt;/&amp;lt;Filename&amp;gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Il campo Authority può assumere due diversi valori: “application:,,,” e “siteOfOrigin:,,,”. Il primo valore indica che la risorsa è presente nell’assembly dell’applicazione, il secondo invece indica che la risorsa deve essere ricercata altrove come vedremo successivamente parlando dei &lt;em&gt;Loose Files&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Tornando all’esempio precedente, avremmo quindi potuto visualizzare la nostra immagine utilizzando nello XAML la seguente sintassi:&lt;/p&gt;

&lt;pre style="overflow:auto;border-top:#cecece 1px solid;border-right:#cecece 1px solid;border-bottom:#cecece 1px solid;padding-bottom:5px;padding-top:5px;padding-left:5px;min-height:40px;border-left:#cecece 1px solid;padding-right:5px;width:650px;background-color:#fbfbfb;"&gt;&lt;pre style="font-size:12px;font-family:consolas,&amp;#39;Courier New&amp;#39;,courier,monospace;margin:0em;width:100%;background-color:#fbfbfb;"&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;Image&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Name&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;&amp;quot;myImage&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Source&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;&amp;quot;pack://application:,,,/Images/burns.jpg&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Margin&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;&amp;quot;10&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;Stretch&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;&amp;quot;None&amp;quot;&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;/pre&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;Si può inoltre utilizzare in maniera simile la stessa sintassi per accedere ad una risorsa presente in un altro assembly:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;pack://application:,,,/&amp;lt;AssemblyName&amp;gt;;component/&amp;lt;Folder&amp;gt;/&amp;lt;Filename&amp;gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Nel prossimo post della serie vedremo come utilizzare i Content Files. &lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://dotnetcampania.org/aggbug.aspx?PostID=2071" width="1" height="1"&gt;</content><author><name>Turibbio</name><uri>http://dotnetcampania.org/members/Turibbio/default.aspx</uri></author><category term="TuriTip" scheme="http://dotnetcampania.org/blogs/turibbio/archive/tags/TuriTip/default.aspx" /><category term="net4" scheme="http://dotnetcampania.org/blogs/turibbio/archive/tags/net4/default.aspx" /><category term="wpf4" scheme="http://dotnetcampania.org/blogs/turibbio/archive/tags/wpf4/default.aspx" /></entry><entry><title>Windows 8 è arrivato</title><link rel="alternate" type="text/html" href="/blogs/turibbio/archive/2012/10/27/windows-8-232-arrivato.aspx" /><id>/blogs/turibbio/archive/2012/10/27/windows-8-232-arrivato.aspx</id><published>2012-10-27T18:54:00Z</published><updated>2012-10-27T18:54:00Z</updated><content type="html">&lt;p&gt;Finalmente, dopo tanta attesa, è stato finalmente rilasciato Windows 8. Tutte le informazioni le trovate qui: &lt;a href="http://windows.microsoft.com/IT-IT/windows-8/meet?ocid=CPRP_r_announce_na_hero_1_1"&gt;http://windows.microsoft.com/IT-IT/windows-8/meet?ocid=CPRP_r_announce_na_hero_1_1&lt;/a&gt;.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://dotnetcampania.org/aggbug.aspx?PostID=2033" width="1" height="1"&gt;</content><author><name>Turibbio</name><uri>http://dotnetcampania.org/members/Turibbio/default.aspx</uri></author><category term="windows8" scheme="http://dotnetcampania.org/blogs/turibbio/archive/tags/windows8/default.aspx" /></entry><entry><title>Turitip #42: Spooler di stampa: impossibile trovare il contenitore della coda di stampa perché non è stato possibile recuperare il nome DNS (Domain Name System) del server: Errore 5b1</title><link rel="alternate" type="text/html" href="/blogs/turibbio/archive/2012/10/26/turitip-42-spooler-di-stampa-impossibile-trovare-il-contenitore-della-coda-di-stampa-perch-233-non-232-stato-possibile-recuperare-il-nome-dns-domain-name-system-del-server-errore-5b1.aspx" /><id>/blogs/turibbio/archive/2012/10/26/turitip-42-spooler-di-stampa-impossibile-trovare-il-contenitore-della-coda-di-stampa-perch-233-non-232-stato-possibile-recuperare-il-nome-dns-domain-name-system-del-server-errore-5b1.aspx</id><published>2012-10-26T23:43:00Z</published><updated>2012-10-26T23:43:00Z</updated><content type="html">&lt;p&gt;Stamane mi sono imbattuto in questo strano errore da un cliente. La macchina interessata, su cui gira Windows XP SP3, impiegava circa 20 minuti per avviarsi, in particolare dopo aver inserito le credenziali nella fase di “applicazione delle impostazioni utente”. La cosa mi ha lasciato perplesso ed incuriosito al momento stesso. All’inizio ho provato a fare scansioni antivirus e scansioni con CCleaner, provato a fare qualche tweak su qualche chiave di registro per &lt;em&gt;boostare&lt;/em&gt; l’avvio, ma nulla ha avuto successo. Dopo l’ennesima attesa, ho deciso di aprire l’EventViewer e da lì ho notato un errore che conteneva questa descrizione. Come potete notare, riporta anche la dicitura: “non è stato possibile recuperare il nome DNS…”. Subito ho aperto il commando prompt e ho digitato&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;ipconfig /all&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Dai risultati ho notato che l’indirizzo DNS della connessione di rete non puntava al DNS del dominio bensì ad un DNS fornito in genere dagli ISP come Telecom o Fastweb. Ho modificato l’indirizzo DNS in modo da farlo puntare al server DNS interno al dominio, ho riavviato e &lt;em&gt;bam!,&lt;/em&gt; ci ha impiegato 20 minuti. Il cliente tutto contento, mi ha dato una bella pacca sulla spalla. Spero di averla anche da voi &lt;img class="wlEmoticon wlEmoticon-smile" style="border-top-style:none;border-left-style:none;border-bottom-style:none;border-right-style:none;" alt="Sorriso" src="http://dotnetcampania.org/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/turibbio.metablogapi/7750.wlEmoticon_2D00_smile_5F00_3CECE509.png" /&gt;…&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;ps: se avete il sistema in inglese, l’errore è questo: &lt;em&gt;The print spooler could not find the print queue container because the Domain Name System (DNS) server name could not be retrieved.&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;Enjoy it!&lt;/em&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://dotnetcampania.org/aggbug.aspx?PostID=2032" width="1" height="1"&gt;</content><author><name>Turibbio</name><uri>http://dotnetcampania.org/members/Turibbio/default.aspx</uri></author><category term="TuriTip" scheme="http://dotnetcampania.org/blogs/turibbio/archive/tags/TuriTip/default.aspx" /></entry></feed>