<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Blog Informatico &#187; Visual Studio</title>
	<atom:link href="http://www.bloginformatico.net/tag/visual-studio/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.bloginformatico.net</link>
	<description>L'informatica come non l'avete mai letta</description>
	<lastBuildDate>Sat, 08 Jan 2011 10:19:52 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.4</generator>
		<item>
		<title>Errore di lingua non supportata nella creazione di un sito Sharepoint 2010 con Team Foundation Server 2010</title>
		<link>http://www.bloginformatico.net/2010/10/05/errore-di-lingua-non-supportata-nella-creazione-di-un-sito-sharepoint-2010-con-team-foundation-server-2010/</link>
		<comments>http://www.bloginformatico.net/2010/10/05/errore-di-lingua-non-supportata-nella-creazione-di-un-sito-sharepoint-2010-con-team-foundation-server-2010/#comments</comments>
		<pubDate>Tue, 05 Oct 2010 13:09:50 +0000</pubDate>
		<dc:creator>Massimo</dc:creator>
				<category><![CDATA[Programmazione]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[SharePoint 2010]]></category>
		<category><![CDATA[Team Foundation Server]]></category>
		<category><![CDATA[Visual Studio]]></category>
		<category><![CDATA[Visual Studio 2010]]></category>

		<guid isPermaLink="false">http://www.bloginformatico.net/2010/10/05/errore-di-lingua-non-supportata-nella-creazione-di-un-sito-sharepoint-2010-con-team-foundation-server-2010/</guid>
		<description><![CDATA[Se utilizzate SharePoint 2010 in italiano, integrato con Team Foundation Server 2010 e Visual Studio 2010 in inglese, in fase di creazione di un nuovo Team Project potrebbe generarsi il seguente errore: Event Description: TF30162: Task &#34;SharePointPortal&#34; from Group &#34;Portal&#34; failed Exception Type: Microsoft.TeamFoundation.Client.PcwException Exception Message: An error occurred in the New Team Project Wizard [...]]]></description>
			<content:encoded><![CDATA[<p>Se utilizzate SharePoint 2010 in italiano, integrato con Team Foundation Server 2010 e Visual Studio 2010 in inglese, in fase di creazione di un nuovo Team Project potrebbe generarsi il seguente errore:</p>
<blockquote><p>Event Description: TF30162: Task &quot;SharePointPortal&quot; from Group &quot;Portal&quot; failed      <br />Exception Type: Microsoft.TeamFoundation.Client.PcwException       <br />Exception Message: An error occurred in the New Team Project Wizard while attempting to create a site on the following SharePoint Web application: server.       <br />Exception Details: The Project Creation Wizard encountered a problem while uploading documents to the following server running SharePoint Products: server. The reason for the failure cannot be determined at this time. Because the operation failed, the wizard was not able to finish creating the team project.       <br />Stack Trace:       <br />&#160;&#160; at Microsoft.VisualStudio.TeamFoundation.WssSiteCreator.Execute(ProjectCreationContext context, XmlNode taskXml)       <br />&#160;&#160; at Microsoft.VisualStudio.TeamFoundation.ProjectCreationEngine.TaskExecutor.PerformTask(IProjectComponentCreator componentCreator, ProjectCreationContext context, XmlNode taskXml)       <br />&#160;&#160; at Microsoft.VisualStudio.TeamFoundation.ProjectCreationEngine.RunTask(Object taskObj)       <br />&#8211;&#160;&#160; Inner Exception&#160;&#160; &#8212;       <br />Exception Message: Server was unable to process request. &#8212;&gt; Lingua non supportata nel server. &#8212;&gt; Lingua non supportata nel server. (type SoapException)       <br />Exception Stack Trace:&#160;&#160;&#160; at Microsoft.VisualStudio.TeamFoundation.WssSiteCreator.HandleSiteCreation(WssCreationContextWrapper contextWrapper, XmlNode taskNode)       <br />&#160;&#160; at Microsoft.VisualStudio.TeamFoundation.WssSiteCreator.Execute(ProjectCreationContext context, XmlNode taskXml)</p>
</blockquote>
<p>Questo succede perché la lingua utilizzata da Visual Studio (l’inglese) non è supportata da SharePoint. Per ovviare a questo banale inconveniente è sufficiente installare sul server SharePoint il pacchetto “<a href="http://www.microsoft.com/downloads/en/details.aspx?displaylang=en&amp;FamilyID=046f16a9-4bce-4149-8679-223755560d54">2010 Server Language Packs for SharePoint Server 2010, Project Server 2010, Search Server 2010, and Office Web Apps 2010</a>” in inglese oppure nella lingua nativa di Visual Studio.</p>
<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:50f33125-9611-4de0-ae95-35cf7c076b06" class="wlWriterEditableSmartContent">Technorati Tags: <a href="http://technorati.com/tags/Visual+Studio" rel="tag">Visual Studio</a>,<a href="http://technorati.com/tags/Team+Foundation+Server" rel="tag">Team Foundation Server</a>,<a href="http://technorati.com/tags/SharePoint" rel="tag">SharePoint</a></div>
]]></content:encoded>
			<wfw:commentRss>http://www.bloginformatico.net/2010/10/05/errore-di-lingua-non-supportata-nella-creazione-di-un-sito-sharepoint-2010-con-team-foundation-server-2010/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>In Visual Studio 2008 il Choose Items nella Toolbox causa un crash totale</title>
		<link>http://www.bloginformatico.net/2009/06/30/in-visual-studio-2008-il-choose-items-nella-toolbox-causa-un-crash-totale/</link>
		<comments>http://www.bloginformatico.net/2009/06/30/in-visual-studio-2008-il-choose-items-nella-toolbox-causa-un-crash-totale/#comments</comments>
		<pubDate>Tue, 30 Jun 2009 09:14:16 +0000</pubDate>
		<dc:creator>Massimo</dc:creator>
				<category><![CDATA[Programmazione]]></category>
		<category><![CDATA[Visual Studio]]></category>

		<guid isPermaLink="false">http://www.bloginformatico.net/2009/06/30/in-visual-studio-2008-il-choose-items-nella-toolbox-causa-un-crash-totale/</guid>
		<description><![CDATA[Se capita che selezionando il comando Choose Items nella Toolbox, Visual Studio 2008 SP1 vada in crash chiudendosi repentinamente, ecco alcune delle possibili soluzioni che ho trovato in proposito: Soluzione 1 Eseguire Visual Studio in modalità Safe Mode con il comando: devenv.exe /safemode Aprire un nuovo progetto Windows Application Selezionare Chooise Items dalla Toolbox Chiudere [...]]]></description>
			<content:encoded><![CDATA[<p>Se capita che selezionando il comando <strong><em>Choose Items</em></strong> nella Toolbox, Visual Studio 2008 SP1 vada in crash chiudendosi repentinamente, ecco alcune delle possibili soluzioni che ho trovato in proposito:</p>
<p><strong>Soluzione 1</strong></p>
<ol>
<li>Eseguire Visual Studio in modalità Safe Mode con il comando: <em><strong>devenv.exe /safemode</strong></em></li>
<li>Aprire un nuovo progetto Windows Application </li>
<li>Selezionare Chooise Items dalla Toolbox </li>
<li>Chiudere e riavviare normalmente </li>
</ol>
<p><strong>Soluzione 2</strong></p>
<ol>
<li>Eseguire il comando: <strong><em>devenv /setup</em></strong></li>
<li>Eseguire il comando: <strong><em>devenv /resetuserdata</em></strong></li>
<li>Eseguire il comando: <strong><em>devenv /resetsettings CSharp</em></strong></li>
</ol>
<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:a87af808-c598-4d8f-9e04-4a1bc3bef97d" class="wlWriterEditableSmartContent">Technorati Tags: <a href="http://technorati.com/tags/Visual+Studio" rel="tag">Visual Studio</a></div>
]]></content:encoded>
			<wfw:commentRss>http://www.bloginformatico.net/2009/06/30/in-visual-studio-2008-il-choose-items-nella-toolbox-causa-un-crash-totale/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Le novità di C# 4.0</title>
		<link>http://www.bloginformatico.net/2009/05/12/le-novit-di-c-40/</link>
		<comments>http://www.bloginformatico.net/2009/05/12/le-novit-di-c-40/#comments</comments>
		<pubDate>Tue, 12 May 2009 16:05:03 +0000</pubDate>
		<dc:creator>Massimo</dc:creator>
				<category><![CDATA[In rilievo]]></category>
		<category><![CDATA[Programmazione]]></category>
		<category><![CDATA[.Net Framework]]></category>
		<category><![CDATA[.Net Framework 4.0]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[C# 4.0]]></category>
		<category><![CDATA[Visual Studio]]></category>
		<category><![CDATA[Visual Studio 2010]]></category>

		<guid isPermaLink="false">http://www.bloginformatico.net/?p=436</guid>
		<description><![CDATA[Cosa ci aspetta con il nuovo linguaggio targato Microsoft?]]></description>
			<content:encoded><![CDATA[<p>Il nuovo Microsoft .Net Framework 4.0 è arrivato ad uno stato avanzato di sviluppo. Forse per fine anno o metà del prossimo potremmo beneficiare non solo di una moltitudine di nuove funzionalità del .net framework ma anche del nuovo Visual Studio 2010 realizzato interamente in WPF.</p>
<p>In questo articolo ci concentreremo esclusivamente sulle novità apportate al linguaggio C# 4.0. Molte delle novità descritte in questo articolo sono già testabili scaricando e installando la <a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=922B4655-93D0-4476-BDA4-94CF5F8D4814&amp;displaylang=en">Microsoft Pre-release Software Visual Studio 2010 and .NET Framework 4.0 Community Technology Preview</a>. Si tratta di una macchina Virtual PC con dentro Windows, Visual Studio 2010 e il .net framework già installati e configurati. Per un totale di circa 7GB di macchina virtuale!</p>
<p>Complessivamente le novità introdotte in C# 4.0 si possono riassumere nel seguente elenco:</p>
<ol>
<li>Dynamic Type Object</li>
<li>Name e Optional Arguments</li>
<li>Co-variance e Contra-variance</li>
<li>Migliorie su COM Interop</li>
</ol>
<p>Vediamo in dettaglio.</p>
<h4>Dynamic Type Object</h4>
<p>Il Dynamic Type Object è un nuovo tipo statico introdotto soprattutto a beneficio del <strong>Dynamic Language Runtime (DLR).</strong> Con la nuova parola chiave <strong><em>dynamic</em></strong> è possibile dichiarare un type che verrà risolto solo a run-time. In questo modo:</p>
<div style="border: 1px solid gray; margin: 20px 0px 10px; padding: 4px; overflow: auto; line-height: 12pt; background-color: #f4f4f4; width: 97.88%; font-family: consolas,'Courier New',courier,monospace; height: 142px; max-height: 200px; font-size: 8pt; cursor: text;">
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; line-height: 12pt; background-color: #f4f4f4; width: 100%; font-family: consolas,'Courier New',courier,monospace; color: black; font-size: 8pt;"><span style="color: #0000ff">public</span> <span style="color: #0000ff">void</span> MyFunction()
{
    <span style="color: #008000">// le seguenti variabili verranno convertite</span>
    <span style="color: #008000">// implicitamente a run-time. </span>
    <span style="color: #0000ff">dynamic</span> counter = 1;
    <span style="color: #0000ff">dynamic</span> hello = <span style="color: #006080">"Hello C# 4.0"</span>;
}</pre>
</div>
<p>Su un type dichiarato come dynamic è possibile richiamare metodi, campi o proprietà, come se fosse un object. Il tutto verrà risolto automaticamente a run-time in base al type effettivo contenuto all’interno della variabile. Con questa parola chiave C# 4.0 si uniforma così ai tipici linguaggi dinamici (dynamic appunto) come Ruby o Php.</p>
<h4>Name e Optional Arguments</h4>
<p>L’optional argument è una funzionalità del linguaggio già presente in Visual Basic ed è la capacità di dichiarare come opzionale un parametro di un metodo, in questo modo:</p>
<div style="border: 1px solid gray; margin: 20px 0px 10px; padding: 4px; overflow: auto; line-height: 12pt; background-color: #f4f4f4; width: 97.5%; font-family: consolas,'Courier New',courier,monospace; max-height: 200px; font-size: 8pt; cursor: text;">
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; line-height: 12pt; background-color: #f4f4f4; width: 100%; font-family: consolas,'Courier New',courier,monospace; color: black; font-size: 8pt;"><span style="color: #008000">// il parametro i risulta essere obbligatorio</span>
<span style="color: #008000">// mentre il parametro y è optionale e per</span>
<span style="color: #008000">// default viene impostato a 0.</span>
<span style="color: #0000ff">public</span> <span style="color: #0000ff">int</span> Calc(<span style="color: #0000ff">int</span> i, <span style="color: #0000ff">int</span> y = 0)
{
    <span style="color: #008000">// corpo del metodo</span>
}

<span style="color: #0000ff">public</span> <span style="color: #0000ff">void</span> Main()
{
    <span style="color: #008000">// ho la possibilità di richiamare Calc con un</span>
    <span style="color: #008000">// solo parametro o con due, poiché il parametro</span>
    <span style="color: #008000">// y risulta essere opzionale.</span>
    <span style="color: #0000ff">int</span> result1 = Calc(5); <span style="color: #008000">// equivalente a Calc(5, 0);</span>
    <span style="color: #0000ff">int</span> result2 = Calc(10, 3)
}</pre>
</div>
<p>Il name argument invece è la facoltà di passare un parametro per nome, in questo modo:</p>
<div style="border: 1px solid gray; margin: 20px 0px 10px; padding: 4px; overflow: auto; line-height: 12pt; background-color: #f4f4f4; width: 97.5%; font-family: consolas,'Courier New',courier,monospace; height: 264px; max-height: 200px; font-size: 8pt; cursor: text;">
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; line-height: 12pt; background-color: #f4f4f4; width: 100%; font-family: consolas,'Courier New',courier,monospace; color: black; font-size: 8pt;"><span style="color: #0000ff">public</span> <span style="color: #0000ff">int</span> Calc(<span style="color: #0000ff">int</span> i, <span style="color: #0000ff">int</span> y = 0, <span style="color: #0000ff">int</span> z = 1)
{
    <span style="color: #008000">// corpo del metodo</span>
}

<span style="color: #0000ff">public</span> <span style="color: #0000ff">void</span> Main()
{
    <span style="color: #008000">// In questo modo chiamo il metodo Calc con i parametri</span>
    <span style="color: #008000">// invertiti, cioè prima passando y e poi x.</span>
    <span style="color: #0000ff">int</span> result = Calc(y: 3, i: 4); <span style="color: #008000">// equivalente a Calc(4, 3, 0);</span>

    <span style="color: #008000">// In questo, invece chiamo Calc passando i e z ma non y</span>
    <span style="color: #0000ff">int</span> result2 = Calc(z: 6, i: 3); <span style="color: #008000">// equivalente a Calc(3, 0, 6);</span>
}</pre>
</div>
<h4>Co-variance e Contra-variance</h4>
<p>Introduciamo il concetto di <strong>covarianza</strong> e <strong>contravarianza</strong>. Date due classi <em><strong>A </strong></em>e<em><strong> B</strong></em>. Dove <em><strong>B</strong></em> <strong>è una sotto classe di</strong> <em><strong>A</strong></em>, e avente una nuova classe <strong><em>C&lt;T&gt;</em></strong> si dice che <em><strong>C&lt;T&gt;</strong></em> è <strong>covariante</strong> rispetto a T se anche <em><strong>C&lt;B&gt;</strong></em> <strong>è una sotto classe di <em>C&lt;A&gt;</em></strong>. Mentre si dice che <em><strong>C&lt;T&gt;</strong></em> è <strong>contravariante</strong> rispetto a T se anche <strong><em>C&lt;A&gt;</em> è super classe di <em>C&lt;B&gt;</em>.</strong> In pratica:</p>
<ul>
<li>se <em><strong>B</strong></em> è sotto classe di <strong><em>A</em></strong></li>
<li>la classe <strong><em>C&lt;B&gt;</em></strong> è <strong>covariante</strong> rispetto a T con <em><strong>C&lt;A&gt;</strong></em> se <em><strong>C&lt;B&gt;</strong></em> è sotto classe di <strong><em>C&lt;A&gt;</em></strong></li>
<li>la classe <strong><em>C&lt;A&gt;</em></strong> è <strong>contravariante</strong> rispetto a T con <em><strong>C&lt;B&gt;</strong></em> se anche <em><strong>C&lt;A&gt;</strong></em> è super classe di <em><strong>C&lt;B&gt;</strong></em></li>
</ul>
<p>Questo risulta particolarmente interessante con i type parameter dei generics. In questo modo potremmo, per esempio, assegnare una collection di stringhe ad una collection di oggetti, dato che la classe string e sotto classe di object, o vice versa, così:</p>
<div style="border: 1px solid gray; margin: 20px 0px 10px; padding: 4px; overflow: auto; line-height: 12pt; background-color: #f4f4f4; width: 97.5%; font-family: consolas,'Courier New',courier,monospace; height: 79px; max-height: 200px; font-size: 8pt; cursor: text;">
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; line-height: 12pt; background-color: #f4f4f4; width: 100%; font-family: consolas,'Courier New',courier,monospace; color: black; font-size: 8pt;">IList&lt;<span style="color: #0000ff">string</span>&gt; strings = <span style="color: #0000ff">new</span> List&lt;<span style="color: #0000ff">string</span>&gt;();
IList&lt;<span style="color: #0000ff">object</span>&gt; objects = strings;</pre>
</div>
<p>I benefici della covarianza e della contravarianza non si limitano a questo aspetto, ma come esempio è chiarificatore.</p>
<h4>Migliorie su Com Interop</h4>
<p>Tra le migliorie su Com Interop citiamo:</p>
<ul>
<li>Importazione dinamica con l’utilizzo del Dynamic Type Object invece che object</li>
<li>Compilazione senza PIA (Primary Interop Assemblies) che rendevano pensante l’applicazione</li>
<li>Chiamate a metodi senza l’utilizzo di ref</li>
</ul>
<h4>Conclusioni</h4>
<p>Che dire, le novità sono davvero tante e tutte decisamente interessanti. Prima tra tutte la citata parolina magica <strong>dynamic</strong>, che introduce una vera e propria rivoluzione per un linguaggio prettamente statico come C#. Non resta che aspettare l’uscita ufficiale sia del .Net Framework 4.0 ma soprattutto del nuovissimo Visual Studio 2010 che merita veramente la visione, ma questa è un‘altra storia. <img src='http://www.bloginformatico.net/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<h4>Risorse</h4>
<p>Alcune risorse utili:</p>
<ul>
<li><a href="http://tinyurl.com/PDC2008-NETFX4PDF">Il pdf del poster .Net Framework 4.0</a></li>
<li><a href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;FamilyID=752cb725-969b-4732-a383-ed5740f02e93">Visual Studio 2010 and .NET Framework 4.0 Training Kit</a></li>
<li><a href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;FamilyID=9f0b0214-9821-44e9-abd4-cf224f48757f">Mix It Up: Visual Studio 2010 and ASP.NET 4.0</a></li>
<li><a href="http://code.msdn.microsoft.com/csharpfuture">C# Future</a></li>
</ul>
<div id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:6cc00071-dd40-4561-ad2e-4ff0dd550194" class="wlWriterEditableSmartContent" style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px">Technorati Tags: <a rel="tag" href="http://technorati.com/tags/.Net+Framework">.Net Framework</a>,<a rel="tag" href="http://technorati.com/tags/.Net+Framework+4.0">.Net Framework 4.0</a>,<a rel="tag" href="http://technorati.com/tags/C%23">C#</a>,<a rel="tag" href="http://technorati.com/tags/C%23+4.0">C# 4.0</a>,<a rel="tag" href="http://technorati.com/tags/Visual+Studio">Visual Studio</a>,<a rel="tag" href="http://technorati.com/tags/Visual+Studio+2010">Visual Studio 2010</a></div>
]]></content:encoded>
			<wfw:commentRss>http://www.bloginformatico.net/2009/05/12/le-novit-di-c-40/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JetBrains ReSharper 4.5</title>
		<link>http://www.bloginformatico.net/2009/04/09/jetbrains-resharper-45/</link>
		<comments>http://www.bloginformatico.net/2009/04/09/jetbrains-resharper-45/#comments</comments>
		<pubDate>Thu, 09 Apr 2009 11:18:29 +0000</pubDate>
		<dc:creator>Massimo</dc:creator>
				<category><![CDATA[In rilievo]]></category>
		<category><![CDATA[Programmazione]]></category>
		<category><![CDATA[ReSharper]]></category>
		<category><![CDATA[Visual Studio]]></category>

		<guid isPermaLink="false">http://www.bloginformatico.net/2009/04/09/jetbrains-resharper-45/</guid>
		<description><![CDATA[ReSharper 4.5, il più famoso addin per Microsoft Visual Studio.]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.bloginformatico.net/wp-content/uploads/2009/04/speedometer-lit.gif"><img style="border-right-width: 0px; margin: 10px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="speedometer_lit" src="http://www.bloginformatico.net/wp-content/uploads/2009/04/speedometer-lit-thumb.gif" border="0" alt="speedometer_lit" width="244" height="83" align="left" /></a>Ieri è stato rilasciato <a href="http://www.jetbrains.com/resharper/index.html">ReSharper 4.5</a>, il più famoso addin per Microsoft Visual Studio. ReSharper è, dal mio punto di vista, uno dei migliori addin per Visual Studio che ne estende enormemente le funzionalità di refactoring e non solo. In questa ultima versione le novità sono tante e tutte molto interessanti. Ho deciso quindi di provare subito la nuova versione testandola direttamente sul campo con una solution Visual Studio composta da circa 80 progetti!</p>
<p><a href="http://www.bloginformatico.net/wp-content/uploads/2009/04/inspector3.png"><img style="border-right-width: 0px; margin: 5px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="inspector3" src="http://www.bloginformatico.net/wp-content/uploads/2009/04/inspector3-thumb.png" border="0" alt="inspector3" width="248" height="219" align="left" /></a>Rispetto alla versione precedente (la 4.1) questa è risultata però decisamente più pesante, sia in termini di memoria che in termini di velocità. Nonostante infatti i <a href="http://www.jetbrains.com/resharper/features/newfeatures.html">dichiarati miglioramenti di prestazioni e di consumo di memoria</a>, aprendo la solution il consumo di memoria, al termine del caricamento, è passato da 700mb con vecchia versione a oltre 1GB con quella nuova. Nel task manager notiamo inoltre, un nuovo processo dal nome <em>JetBrains.Resharper.ExeternalProcessStorage.Process.exe</em>, prima inesistente, che consuma altri 20mb.</p>
<p>Tra le novità interessanti il Solution-Wide Code Inspections ora più preciso, anche se decisamente più lento, in grado di rilevare:</p>
<ul>
<li>Dichiarazioni non private che non sono utilizzate</li>
<li>Valori di ritorno non utilizzati di metodi non privati</li>
<li>Campi privati non utilizzati</li>
<li>Parametri non utilizzati di membri non privati</li>
<li>Eventi abstract o virtual che non vengono mai invocati</li>
<li>Campi non assegnati</li>
<li>Membri e tipi public che possono essere convertiti in internal</li>
</ul>
<p><a href="http://www.bloginformatico.net/wp-content/uploads/2009/04/newfeatures-naming-style.png"><img style="border-right-width: 0px; margin: 5px; display: inline; float: none; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="newfeatures_naming_style" src="http://www.bloginformatico.net/wp-content/uploads/2009/04/newfeatures-naming-style-thumb.png" border="0" alt="newfeatures_naming_style" width="483" height="128" /></a></p>
<p>Ho provato sul campo il Solution-Wide Code Inspections che mi ha dato ottimi risultati rilevando problemi anche in classi e metodi particolarmente complessi. Attenzione però il Solution WiceCode Inspections può durare, in una prima fase, anche alcune ore dipendente dalla dimensione della solution, degradando le prestazioni del computer senza impedire però il continuo svolgimento del proprio lavoro.</p>
<p><a href="http://www.bloginformatico.net/wp-content/uploads/2009/04/namingstyle.png"><img style="border-right-width: 0px; margin: 5px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="namingstyle" src="http://www.bloginformatico.net/wp-content/uploads/2009/04/namingstyle-thumb.png" border="0" alt="namingstyle" width="293" height="200" align="left" /></a> Oltre al supporto per Visual Basic 9, finalmente è arrivata la funzionalità di Extended Naming Style Configuration che ci permette di configurare tutta una serie di naming convention su namespace, metodi, classi, interfacce, campi e proprietà. Prima di oggi questa funzionalità era disponibile solo con appositi plugin di terze parti. Dal pannello delle opzioni, tramite una comoda interfaccia, è possibile specificare la convezione da applicare in base al tipo di membro. Tra le possibilità possiamo specificare un prefisso, un suffisso oltre alla stile suddiviso in UpperCamelCase, lowerCamelCase, ALL_UPPER, all_lower e First_upper. Queste convenzioni sono configurabili a livello globale o per linguaggio.</p>
<p><a href="http://www.bloginformatico.net/wp-content/uploads/2009/04/newfeatures-sw-inspections.png"><img style="margin: 5px; display: inline; float: none" title="newfeatures_sw_inspections" src="http://www.bloginformatico.net/wp-content/uploads/2009/04/newfeatures-sw-inspections-thumb.png" alt="newfeatures_sw_inspections" width="486" height="132" /></a></p>
<p>Non da ultimo ci sono piccole ma sostanziali migliorie come il supporto nativo all’MSTest, nuove funzionalità di navigazione, nuove inline refactoring e tanto altro.</p>
<p>In definitiva ReSharper si conferma il miglior strumento per lo sviluppo in ambito .net e nonostante le performance in alcuni casi deludenti, le novità introdotte sono tante e soprattutto molto utili. Decisamente consigliato.</p>
<div id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:e83c0040-f031-41b9-b67d-9f1f95bee9b3" class="wlWriterEditableSmartContent" style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px">Technorati Tags: <a rel="tag" href="http://technorati.com/tags/ReSharper">ReSharper</a>,<a rel="tag" href="http://technorati.com/tags/Visual+Studio">Visual Studio</a></div>
]]></content:encoded>
			<wfw:commentRss>http://www.bloginformatico.net/2009/04/09/jetbrains-resharper-45/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Problemi con l’intellisense di Visual Studio e ConfigurationManager</title>
		<link>http://www.bloginformatico.net/2007/06/04/problemi-con-lintellisense-di-visual-studio-e-configurationmanager/</link>
		<comments>http://www.bloginformatico.net/2007/06/04/problemi-con-lintellisense-di-visual-studio-e-configurationmanager/#comments</comments>
		<pubDate>Mon, 04 Jun 2007 14:50:31 +0000</pubDate>
		<dc:creator>Massimo</dc:creator>
				<category><![CDATA[Programmazione]]></category>
		<category><![CDATA[Visual Studio]]></category>

		<guid isPermaLink="false">http://www.bloginformatico.net/2007/06/04/problemi-con-lintellisense-di-visual-studio-e-configurationmanager/</guid>
		<description><![CDATA[Con l&#8217;introduzione del .NET Framework 2.0 la classe ConfigurationSettings, utile per la lettura del file App.Config, è stata sostituita dalla nuova classe ConfigurationManager. Analogamente a ConfigurationSettings, la nuova classe ConfigurationManager è una classe static che permette l&#8217;accesso in sola lettura dei file di configurazione delle applicazioni client. In questo modo: string value = ConfigurationManager.AppSettings[key]; Tuttavia [...]]]></description>
			<content:encoded><![CDATA[<p>Con l&#8217;introduzione del .NET Framework 2.0 la classe ConfigurationSettings, utile per la lettura del file App.Config, è stata sostituita dalla nuova classe ConfigurationManager. Analogamente a ConfigurationSettings, la nuova classe ConfigurationManager è una classe static che permette l&#8217;accesso in sola lettura dei file di configurazione delle applicazioni client. In questo modo:</p>
<pre line="1" lang="csharp">
string value = ConfigurationManager.AppSettings[key];</pre>
<p>Tuttavia con Visual Studio 2005 potreste incontrare un problema di riconoscimento delle nuove classi con l&#8217;intellisense. Il problema nasce poiché Visual Studio non riconosce correttamente la versione del file System.Configuration. Il risultato è un intellisense che mostra l&#8217;elenco delle classi e delle funzioni della versione 1.1 del .NET Framework:</p>
<p><a href="http://www.bloginformatico.net/wp-content/uploads/2007/06/cofngurationmanager.png" title="Intellisense e ConfigurationManager"><img src="http://www.bloginformatico.net/wp-content/uploads/2007/06/cofngurationmanager.png" alt="Intellisense e ConfigurationManager" /></a></p>
<p>Per risolvere questo problema basta referenziare la dll System.Configuration v2.0 semplicemente facendo <strong><em>Add Reference &gt; System.Configuration.dll</em></strong> per tutti i progetti che necessitano il riconoscimento della nuova classe.</p>
<p><strong>Riferimenti</strong><br />
<a href="http://aspadvice.com/blogs/ssmith/archive/2005/08/26/1912.asp">http://aspadvice.com/blogs/ssmith/archive/2005/08/26/1912.asp</a><br />
<a href="http://msdn2.microsoft.com/it-it/library/system.configuration.configurationmanager(VS.80).aspx">ConfigurationManager su MSDN<br />
</a></p>
<p>Tags: <a href="http://technorati.com/tag/visual studio" rel="tag">visual studio</a>, <a href="http://technorati.com/tag/intellisense" rel="tag">intellisense</a>, <a href="http://technorati.com/tag/configurationmanager" rel="tag">configurationmanager</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.bloginformatico.net/2007/06/04/problemi-con-lintellisense-di-visual-studio-e-configurationmanager/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk
Page Caching using disk (enhanced)

Served from: www.bloginformatico.net @ 2012-02-05 12:05:05 -->
