Visual Studio http://blogs.ugidotnet.org/Crad/category/Visual Studio.aspx Visual Studio it-IT Marco De Sanctis Subtext Version 2.6.0.0 Forzare la rigenerazione del file .designer.cs in ASP.NET http://blogs.ugidotnet.org/Crad/archive/2007/12/18/forzare-la-rigenerazione-del-file-.designer.cs-in-asp.net.aspx <p>In Visual Studio 2005 accade a volte che il file .designer.cs non venga correttamente generato con i controlli contenuti nel markup della pagina.</p> <p>La memoria è corta, quindi me lo segno qui sul blog: per forzarne una rigenerazione, è sufficiente eliminare il file .designer.cs e poi fare tasto-dx sulla pagina, <em>Convert to Web Application</em>.</p> <p> </p><div class="wlWriterSmartContent" id="0767317B-992E-4b12-91E0-4F059A8CECA8:b8a493eb-0e5f-4b7c-b812-b91b25432878" contenteditable="false" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px">Technorati tags: <a href="http://technorati.com/tags/ASP.NET" rel="tag">ASP.NET</a></div><img src="http://blogs.ugidotnet.org/Crad/aggbug/90340.aspx" width="1" height="1" /> Marco De Sanctis http://blogs.ugidotnet.org/Crad/archive/2007/12/18/forzare-la-rigenerazione-del-file-.designer.cs-in-asp.net.aspx Tue, 18 Dec 2007 18:05:15 GMT http://blogs.ugidotnet.org/Crad/archive/2007/12/18/forzare-la-rigenerazione-del-file-.designer.cs-in-asp.net.aspx#feedback 5 http://blogs.ugidotnet.org/Crad/comments/commentRss/90340.aspx Automatic Properties di C# 3.0: servono davvero? http://blogs.ugidotnet.org/Crad/archive/2007/08/08/87587.aspx <p>C# 3.0 permette una notazione compatta per le proprietà che si limitano semplicemente a wrappare un corrispondente field:</p> <div class="CodeFormatContainer"> <style><!-- .csharpcode, .csharpcode pre { font-size: small; color: black; font-family: consolas, "Courier New", courier, monospace; background-color: #ffffff; /*white-space: pre;*/ } .csharpcode pre { margin: 0em; } .csharpcode .rem { color: #008000; } .csharpcode .kwrd { color: #0000ff; } .csharpcode .str { color: #006080; } .csharpcode .op { color: #0000c0; } .csharpcode .preproc { color: #cc6633; } .csharpcode .asp { background-color: #ffff00; } .csharpcode .html { color: #800000; } .csharpcode .attr { color: #ff0000; } .csharpcode .alt { background-color: #f4f4f4; width: 100%; margin: 0em; } .csharpcode .lnum { color: #606060; } --></style> <div class="csharpcode"><pre><span class="lnum"> 1: </span><span class="kwrd">public</span> <span class="kwrd">string</span> Descrizione { get; set; }</pre></div></div> <p>Sulle prime mi è sembrata un'innovazione piuttosto utile, se non altro per le entity di dominio, che notoriamente non hanno logica e che risultano essere parecchio più veloci da scrivere e leggibili. Così utili che ho anche realizzato un accessor per farle supportare da NHibernate (lo trovate <a href="http://www.marcodesanctis.it/public/Crad.NHibernate.Extras.zip" target="_blank">qui</a>).</p> <p>Poi ho iniziato a sperimentare un po' e... beh... mi convincono fino ad un certo punto. Perchè? Beh, ovviamente devono avere sia il getter che il setter, quindi niente proprietà readonly per le collection, tanto per dirne una, a meno di non definire il set come privato. Ma farlo vuol dire inizializzare la proprietà nel costruttore. Quindi ciò che prima era così</p> <div class="CodeFormatContainer"> <div class="csharpcode"><pre class="alt"><span class="lnum"> 1: </span><span class="kwrd">private</span> IList&lt;Dettaglio&gt; dettagli = <span class="kwrd">new</span> List&lt;Dettaglio&gt;();</pre><pre><span class="lnum"> 2: </span><span class="kwrd">public</span> IList&lt;Dettaglio&gt; Dettagli</pre><pre class="alt"><span class="lnum"> 3: </span>{</pre><pre><span class="lnum"> 4: </span> get { <span class="kwrd">return</span> dettagli; }</pre><pre class="alt"><span class="lnum"> 5: </span>}</pre></div></div> <p>ora diviene così</p> <div class="CodeFormatContainer"> <div class="csharpcode"><pre class="alt"><span class="lnum"> 1: </span><span class="kwrd">public</span> IList&lt;Dettaglio&gt; Dettagli { get; <span class="kwrd">private</span> set; }</pre><pre><span class="lnum"> 2: </span><span class="kwrd">public</span> MyClass()</pre><pre class="alt"><span class="lnum"> 3: </span>{</pre><pre><span class="lnum"> 4: </span> <span class="kwrd">this</span>.Dettagli = <span class="kwrd">new</span> List&lt;Dettaglio&gt;();</pre><pre class="alt"><span class="lnum"> 5: </span>}</pre></div></div> <p>Non un gran guadagno, isn't it? E perché non usare solo per queste proprietà la sintassi classica? Risposta semplice: solitamente (è noto) uso NHibernate e non mi piace l'idea di dover utilizzare due strategy diverse per accedere ai field sottostanti.</p> <p>Mettiamola così: magari più in là cambierò idea, ma ora come ora preferisco la strategia dell'ottimo Reshareper, che mi permette di fare qualcosa del tipo (tratto dalla trial della versione 3.0)...</p> <p><a href="http://www.marcodesanctis.it/images/Blog/AutomaticPropertiesdiC3.0servonodavvero_13A17/image.png" atomicselection="true"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="132" alt="image" src="http://www.marcodesanctis.it/images/Blog/AutomaticPropertiesdiC3.0servonodavvero_13A17/image_thumb.png" width="240" border="0" /></a> <a href="http://www.marcodesanctis.it/images/Blog/AutomaticPropertiesdiC3.0servonodavvero_13A17/image_3.png" atomicselection="true"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="143" alt="image" src="http://www.marcodesanctis.it/images/Blog/AutomaticPropertiesdiC3.0servonodavvero_13A17/image_thumb_3.png" width="240" border="0" /></a> </p> <p><a href="http://www.marcodesanctis.it/images/Blog/AutomaticPropertiesdiC3.0servonodavvero_13A17/image_4.png" atomicselection="true"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="240" alt="image" src="http://www.marcodesanctis.it/images/Blog/AutomaticPropertiesdiC3.0servonodavvero_13A17/image_thumb_4.png" width="178" border="0" /></a></p> <p> </p> <div class="wlWriterSmartContent" id="0767317B-992E-4b12-91E0-4F059A8CECA8:42f0d958-6aa5-422b-b85a-f9d545d24dcc" contenteditable="false" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px">Technorati tags: <a href="http://technorati.com/tags/.Net%203.5" rel="tag">.Net 3.5</a></div><img src="http://blogs.ugidotnet.org/Crad/aggbug/87587.aspx" width="1" height="1" /> Marco De Sanctis http://blogs.ugidotnet.org/Crad/archive/2007/08/08/87587.aspx Wed, 08 Aug 2007 23:47:00 GMT http://blogs.ugidotnet.org/Crad/archive/2007/08/08/87587.aspx#feedback 2 http://blogs.ugidotnet.org/Crad/comments/commentRss/87587.aspx Una settimana di VS2008 beta 2 http://blogs.ugidotnet.org/Crad/archive/2007/08/05/87396.aspx <p>Come recita il titolo, è oramai una settimana che Orcas è divenuto il mio Visual Studio "ufficiale", dato che il multi-targeting sembra funzionare a dovere, dato che non è chissà quanto più pesante del 2005 e dato che per il momento i crash (fortunatamente) latitano.</p> <p>Resharper mi manca tanto, però, dannazione! Fortuna che almeno son <a href="http://www.nabble.com/AnkhSVN-users-Visual-Studio-2008-Support-tf4159406.html" target="_blank">riuscito a fargli digerire AnkhSVN</a> che pare andare alla grande.</p><img src="http://blogs.ugidotnet.org/Crad/aggbug/87396.aspx" width="1" height="1" /> Marco De Sanctis http://blogs.ugidotnet.org/Crad/archive/2007/08/05/87396.aspx Sun, 05 Aug 2007 20:14:00 GMT http://blogs.ugidotnet.org/Crad/archive/2007/08/05/87396.aspx#feedback http://blogs.ugidotnet.org/Crad/comments/commentRss/87396.aspx Un bug veramente noioso di wsdl.exe http://blogs.ugidotnet.org/Crad/archive/2007/04/20/76039.aspx <p>Alcuni web service che sto realizzando, usano come parametri e valori di ritorno dei tipi che implementano l'interfaccia IXmlSerializable.</p> <p>Il tool wsdl.exe utilizzato per generare i proxy per l'accesso lato client, ha un fastidioso bug descritto in <a href="http://support.microsoft.com/kb/815131">questa KB</a>: considera ogni tipo IXmlSerializable come se fosse un dataset e quindi produce metodi con signature errate.</p> <p>L'aspetto più antipatico della questione è che, stando sempre a quanto scritto nella KB che ho linkato, non c'è soluzione se non quella di andare a cambiare a manina ogni metodo incriminato.</p> <p>Uff, non vedo l'ora di migrare completamente a WCF!</p><img src="http://blogs.ugidotnet.org/Crad/aggbug/76039.aspx" width="1" height="1" /> Marco De Sanctis http://blogs.ugidotnet.org/Crad/archive/2007/04/20/76039.aspx Fri, 20 Apr 2007 12:05:00 GMT http://blogs.ugidotnet.org/Crad/archive/2007/04/20/76039.aspx#feedback 1 http://blogs.ugidotnet.org/Crad/comments/commentRss/76039.aspx 31 giorni in compagnia di ReSharper http://blogs.ugidotnet.org/Crad/archive/2007/02/16/70971.aspx <p>Trovo che <a href="http://www.jetbrains.com/resharper/">ReSharper</a> rientri in quella categoria di tool che più o meno possono essere descritti con un "se ne può fare benissimo a meno, ma una volta provato non lo tiri più via!" (a meno di non essere alle prese con solution *veramente* grandi, in cui serve un mainframe per farlo girare).</p> <p>Bene... se non sapete neanche cosa sia, o se lo usate ma volete saperne di più, sappiate che <a href="http://excastle.com/blog/">Joe White</a> ha iniziato <a href="http://www.excastle.com/blog/archive/2007/01/31/13141.aspx">una serie di 31 post</a>, uno al giorno, in cui vi farà scoprire come mai dopo averlo installato non potrete più vivere senza!</p><img src="http://blogs.ugidotnet.org/Crad/aggbug/70971.aspx" width="1" height="1" /> Marco De Sanctis http://blogs.ugidotnet.org/Crad/archive/2007/02/16/70971.aspx Fri, 16 Feb 2007 22:07:00 GMT http://blogs.ugidotnet.org/Crad/archive/2007/02/16/70971.aspx#feedback 2 http://blogs.ugidotnet.org/Crad/comments/commentRss/70971.aspx Cosa sarebbe il mondo senza NHDomainMapper? http://blogs.ugidotnet.org/Crad/archive/2006/10/05/50015.aspx <p>Avvertenza: questo è un post autocelebrativo, <a href="http://blogs.ugidotnet.org/janky">Janky</a> mi ha pagato profumatamente per scriverlo, quindi se vi farà venire il diabete prendetevela con lui.</p> <p><a href="http://www.microsoft.com/italy/windows/windowsvista/default.aspx">Windows Vista</a> è quasi in RTM? Avete provato <a href="http://msdn.microsoft.com/vstudio/future/default.aspx">Orcas</a> per la prima volta? <a href="http://www.microsoft.com/office/preview/default.mspx">Office 2007</a> lo usate già da un po'? Vi piace <a href="http://www.igordamiani.it/pagine/happysign.php">HappySign</a> di <a href="http://blogs.ugidotnet.org/idamiani/">Igor</a>? STICA!!! Siete il nulla: sta per arrivare <a href="http://www.codeplex.com/Wiki/View.aspx?ProjectName=NHDomainMapper">NHibernate Domain Mapper</a> rel.0.1 alpha codename <strong>SUPERTANGA!!</strong></p> <p>Ora, visto che un rilascio ufficiale non c'è ancora stato, purtroppo credo che difficilmente che ci sia qualcuno, oltre me e il bravo Sudano, in possesso di queste fantasmagoriche righe di codice C#. Tanto per dare un'ulteriore sferzata alla vostra rosicata (ma dove?? <img alt="smile_teeth" src="http://spaces.live.com/rte/emoticons/smile_teeth.gif">), vi sparo anche uno screenshot, così...&nbsp;tanto per gradire:</p> <p><a href="http://www.marcodesanctis.it/images/Blog/CosasarebbeilmondosenzaNHDomainMapper_703/image03.png" atomicselection="true"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="176" src="http://www.marcodesanctis.it/images/Blog/CosasarebbeilmondosenzaNHDomainMapper_703/image02.png" width="240" border="0"></a> </p> <p>Per le 2 o 3 persone che ancora non sanno di cosa stiamo parlando, beh... si tratta di un tool in grado di generare file di mapping per <a href="http://www.nhibernate.org">NHibernate</a> partendo dal domain model della nostra applicazione, quindi niente generazione automatica delle classi in base allo schema del DB (che, se vogliamo, serve veramente a poco...)</p> <p>Maggiori informazioni le potete trovare tramite questa <a href="http://www.marcodesanctis.it/public/NHDomainMapper-English.pdf">white paper</a> che abbiamo preparato, in vista del rilascio di una early build che dovrebbe essere a disposizione di tutti entro il prossimo weekend, vita sociale permettendo, ci vuole anche quella ogni tanto... Chi volesse scaricarla, può visitare la pagina ufficiale del nostro progetto.</p> <p>P.s. Igor, non prendertela per la frase su HappySign, ovviamente si scherza, anzi... mi piace molto il lavoro che hai realizzato.</p> <p>P.p.s. <a href="http://www.mediaset.it/brand/italia1/la_pupa_e_il_secchione/schedaprogramma_1818.shtml">La pupa e il secchione</a> è il programma dell'anno, e la versione Hot del mercoledì è imperdibile quasi come&nbsp;NHibernate Domain Mapper codename SUPERTANGA.</p><img src="http://blogs.ugidotnet.org/Crad/aggbug/50015.aspx" width="1" height="1" /> Marco De Sanctis http://blogs.ugidotnet.org/Crad/archive/2006/10/05/50015.aspx Thu, 05 Oct 2006 01:29:00 GMT http://blogs.ugidotnet.org/Crad/archive/2006/10/05/50015.aspx#feedback 6 http://blogs.ugidotnet.org/Crad/comments/commentRss/50015.aspx WSE 3.0 Settings non appare nel menu contestuale http://blogs.ugidotnet.org/Crad/archive/2006/08/23/46630.aspx <FONT face=Verdana size=2> <P>C'è un piccolo problemino con l'installazione di <A title="" href="http://msdn.microsoft.com/webservices/webservices/building/wse/" target="" name="">WSE 3.0</A> se si usa una versione di Windows differente da quella inglese. Visual Studio, infatti, ricerca il plugin nel percorso</P> <BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px"> <P><EM>%ALLUSERSPROFILE%\<STRONG>Application Data</STRONG>\Microsoft\MSEnvShared\Addins</EM></P></BLOCKQUOTE> <P dir=ltr style="MARGIN-RIGHT: 0px">mentre il setup di WSE 3.0 installa l'add-in nel percorso</P> <BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px"> <P dir=ltr style="MARGIN-RIGHT: 0px">%ALLUSERSPROFILE%\<STRONG>Dati Applicazioni</STRONG>\Microsoft\MSEnvShared\Addins</P></BLOCKQUOTE> <P dir=ltr style="MARGIN-RIGHT: 0px">Il risultato è che, aprendo il menu contestuale di un progetto di Web Service, non troviamo la voce "<EM>WSE Settings 3.0...</EM>" per abilitare e configurare i WebService Enhancements per quel progetto.</P> <P dir=ltr style="MARGIN-RIGHT: 0px">La soluzione è semplice, ma la posto qui perché mi ha fatto perdere parecchio tempo; basta infatti andare su Tools -&gt; Options -&gt; Add-in/Macros Security ed inserire il percorso corretto.</P> <P dir=ltr style="MARGIN-RIGHT: 0px">HTH <IMG height=19 src="http://www.imhoproject.org/files/occhiolino.gif" width=19 align=absMiddle border=0></P> <P dir=ltr style="MARGIN-RIGHT: 0px"> </FONT> <FONT face=Verdana size=2><A href="http://imhoproject.org/"><FONT face=Verdana size=1>powered by IMHO 1.3</FONT></A></P></FONT><!-- Powered by IMHO 1.3 (IT) Instant Blogger Copyright (c) 2005 A.Boschin - http://www.imhoproject.org --> <img src="http://blogs.ugidotnet.org/Crad/aggbug/46630.aspx" width="1" height="1" /> Marco De Sanctis http://blogs.ugidotnet.org/Crad/archive/2006/08/23/46630.aspx Wed, 23 Aug 2006 19:37:00 GMT http://blogs.ugidotnet.org/Crad/archive/2006/08/23/46630.aspx#feedback http://blogs.ugidotnet.org/Crad/comments/commentRss/46630.aspx Tool per risolvere un piccolo bug di AnkhSVN http://blogs.ugidotnet.org/Crad/archive/2006/08/13/46181.aspx <FONT face=Verdana size=2> <P>AnkhSVN, il client di Subversion per VS2005, alcune volte ha bisogno di effettuare una pulizia delle cartelle di sistema tramite il comando <STRONG>CleanUp</STRONG>.</P> <P>Purtroppo spesso e volentieri, questo comando si lamenta perché in un qualche subfolder di un remotissimo altro subfolder della structure della nostra soluzione, non trova una fantomatica cartella <EM>tmp</EM>. E' un bug noto, facilmente risolvibile creando una directory vuota nella posizione voluta, ma capirete che è un discreto sbattimento farlo a mano, soprattutto quando le cartelle mancanti sono diverse.</P> <P>Bene, ho realizzato una piccola console application che fa tutto ciò da sola, esplorando ricorsivamente tutte le cartelle.</P> <P><IMG alt="" hspace=0 src="http://www.marcodesanctis.it/images/Blog/SubversionTmpFixer.png" align=baseline border=0></P> <P>Il codice è assolutamente banale, non sto neanche a postarlo, però magari vi può evitare qualche minuto di rottura di scatole. Chi vuole scaricare questo piccolo tool, può fare un click <A title="" href="http://www.marcodesanctis.it/images/Blog/SubversionTmpFixer.zip" target="" name="">qui</A>! <IMG height=19 src="http://www.imhoproject.org/files/occhiolino.gif" width=19 align=absMiddle border=0></P> <P> </FONT> <FONT face=Verdana size=2><A href="http://imhoproject.org/"><FONT face=Verdana size=1>powered by IMHO 1.3</FONT></A></P></FONT><!-- Powered by IMHO 1.3 (EN) Instant Blogger Copyright (c) 2005 A.Boschin - http://www.imhoproject.org --> <img src="http://blogs.ugidotnet.org/Crad/aggbug/46181.aspx" width="1" height="1" /> Marco De Sanctis http://blogs.ugidotnet.org/Crad/archive/2006/08/13/46181.aspx Sun, 13 Aug 2006 21:26:00 GMT http://blogs.ugidotnet.org/Crad/archive/2006/08/13/46181.aspx#feedback 1 http://blogs.ugidotnet.org/Crad/comments/commentRss/46181.aspx Anche NHibernate Domain Mapper si &#232; CodePlexato http://blogs.ugidotnet.org/Crad/archive/2006/08/07/45971.aspx <FONT face=Verdana size=2> <P>Già già, finalmente stasera (a tempo di record) hanno attivato il progetto di <A title="" href="http://www.codeplex.com/Wiki/View.aspx?Projectname=" target="" name="" ?>NHibernate Domain Mapper</A> su CodePlex. Per ora non abbiam messo su ancora nulla, lo farò nei prossimi giorni, ma speriamo di riuscire ad approfittare delle ferie per tirar fuori una prima early build, così potrete anche voi dare un'occhiata a quello che, per me e <A title="" href="http://blogs.ugidotnet.org/janky" target="" name="">Janky</A>, è diventato il passatempo di quasi ogni sera e ogni weekend.</P> <P>Se poi ci volete dare anche una mano... <IMG height=19 src="http://www.imhoproject.org/files/occhiolino.gif" width=19 align=absMiddle border=0></P> <P> </FONT> <FONT face=Verdana size=2><A href="http://imhoproject.org/"><FONT face=Verdana size=1>powered by IMHO 1.3</FONT></A></P></FONT><!-- Powered by IMHO 1.3 (EN) Instant Blogger Copyright (c) 2005 A.Boschin - http://www.imhoproject.org --> <img src="http://blogs.ugidotnet.org/Crad/aggbug/45971.aspx" width="1" height="1" /> Marco De Sanctis http://blogs.ugidotnet.org/Crad/archive/2006/08/07/45971.aspx Mon, 07 Aug 2006 22:02:00 GMT http://blogs.ugidotnet.org/Crad/archive/2006/08/07/45971.aspx#feedback http://blogs.ugidotnet.org/Crad/comments/commentRss/45971.aspx Problemi con BindingSource a design time http://blogs.ugidotnet.org/Crad/archive/2006/08/06/45935.aspx <FONT face=Verdana size=2> <P>Oggi ho avuto una brutta sorpresa: lavorando con VS2005 ad un progetto WinForms, mi sono trovato nell'assoluta impossibilità di impostare il DataBinding da designer: ogni volta che provavo ad impostare la proprietà DataSource di un qualsiasi BindingSource, VS2005 sollevava una NullReferenceException, mostrava una bella message box con su scritto "Reference not set to an instance of an object" e buonanotte al secchio.</P> <P>Pistolando un po' qua e là, alla fine sono riuscito a venirne a capo: si tratta di un problema che si verifica quando si cambia il naming delle classi, quando cioé i file Xml contraddistinti dall'estensione <EM>.datasource</EM> non sono più allineati con le classi del nostro progetto. Per accorgersene, basta aprire la finestra delle DataSource e alcune di esse dovrebbero presentare un bel punto esclamativo nell'icona a fianco. Per risolvere il problema è sufficiente aggiornare manualmente l'xml o eliminare i file e poi rigenerarli.</P> </FONT> <FONT face=Verdana size=2><P><A href="http://imhoproject.org/"><FONT face=Verdana size=1>powered by IMHO 1.3</FONT></A></P></FONT><!-- Powered by IMHO 1.3 (EN) Instant Blogger Copyright (c) 2005 A.Boschin - http://www.imhoproject.org --> <img src="http://blogs.ugidotnet.org/Crad/aggbug/45935.aspx" width="1" height="1" /> Marco De Sanctis http://blogs.ugidotnet.org/Crad/archive/2006/08/06/45935.aspx Sun, 06 Aug 2006 16:29:00 GMT http://blogs.ugidotnet.org/Crad/archive/2006/08/06/45935.aspx#feedback http://blogs.ugidotnet.org/Crad/comments/commentRss/45935.aspx