Pezze.NET http://blogs.ugidotnet.org/pezzedotnet/Default.aspx Il blog di Alessandro Benedetti it-IT Alessandro Benedetti Subtext Version 2.6.0.0 Pezze.NET http://blogs.ugidotnet.org/images/RSS2Image.gif http://blogs.ugidotnet.org/pezzedotnet/Default.aspx 77 60 ExtJs Extender Control http://blogs.ugidotnet.org/pezzedotnet/archive/2007/10/23/89148.aspx <p>Per chi come me programma molto sul web la libreria javascript <a href="http://extjs.com/">extjs</a> è veramente fantastica. Permette di avvicinare davvero una applicazione web ad una applicazione windows, soprattutto per quanto riguarda la gestione delle tabelle dati (<a href="http://extjs.com/deploy/dev/examples/grid/grid3.html">alcuni esempi</a>, ma soprattutto il <a href="http://extjs.com/deploy/dev/examples/desktop/desktop.html">web desktop</a>).</p> <p><a href="http://rodiniz.blogspot.com/">Rodrigo Diniz</a> sta cercando (come già segnalato da <a href="http://blogs.ugidotnet.org/babsevensix/archive/2007/07/17/87822.aspx">Alberto</a>) di fare un "porting" della libreria javascript in .NET in modo tale che sia possibile utilizzarla lato server.</p> <p>In questi giorni ho lavorato alla correzione di un <a href="http://www.codeplex.com/ExtJsExtenderControl/Thread/View.aspx?ThreadId=16745&amp;ANCHOR#Post54372">bug</a> secondo me molto grave. Nonostante infatti la grid funzionasse correttamente in asp.net, smetteva di funzionare nel caso fosse presente una master page, per via del fatto che le master pages (e relativi placeholder) rinominano il client id di tutti i controlli. Ovviamente la libreria Javascript non riusciva più a trovare la griglia e quindi non funzionava. Per mia fortuna, nonostante non sia certo un esperto di Javascript, sono riuscito a sistemare il problema ed ora la griglia funziona correttamente (ma devo ancora finire di testare per bene) anche in presenza di Master Page. </p> <p>Grazie al mio piccolo contributo inoltre <a href="http://rodiniz.blogspot.com/">Rodrigo Diniz</a> è stato così gentile da inserirmi nel team di sviluppo. Spero proprio di poter dare una mano, nonostante il tempo sia sempre limitatissimo (chiunque voglia aggregarsi sarà il ben accetto). </p> <p>Se qualcuno di voi volesse dare una occhiata alla libreria, oggi è stata rilasciata l'ultima versione, se invece volete solo dare una occhiata alla sue potenzialità provate a seguire <a href="http://www.extendersamples.qsh.eu/">questo link</a>.</p><img src="http://blogs.ugidotnet.org/pezzedotnet/aggbug/89148.aspx" width="1" height="1" /> Alessandro Benedetti http://blogs.ugidotnet.org/pezzedotnet/archive/2007/10/23/89148.aspx Tue, 23 Oct 2007 00:40:03 GMT http://blogs.ugidotnet.org/pezzedotnet/archive/2007/10/23/89148.aspx#feedback http://blogs.ugidotnet.org/pezzedotnet/comments/commentRss/89148.aspx http://blogs.ugidotnet.org/pezzedotnet/services/trackbacks/89148.aspx Nuova release di AJAX Control Toolkit http://blogs.ugidotnet.org/pezzedotnet/archive/2007/09/26/88544.aspx <p>Probabilmente lo sapevate già tutti ma io me ne sono accorto solo ora: è uscita una nuova release dell'Ajax Control Toolkit (del 20/09/2007).</p> <p><a title="http://www.codeplex.com/AtlasControlToolkit/Release/ProjectReleases.aspx?ReleaseId=4941" href="http://www.codeplex.com/AtlasControlToolkit/Release/ProjectReleases.aspx?ReleaseId=4941">http://www.codeplex.com/AtlasControlToolkit/Release/ProjectReleases.aspx?ReleaseId=4941</a></p> <p>Oltre a risolvere alcuni bug della precedente versione, è stato migliorato il supporto a Visual Studio 2008 ed al Framework 3.5 Beta. </p> <p><a href="http://asp.net/ajax/ajaxcontroltoolkit/samples/">Qui potete trovare le note di rilascio e gli esempi.</a></p><img src="http://blogs.ugidotnet.org/pezzedotnet/aggbug/88544.aspx" width="1" height="1" /> Alessandro Benedetti http://blogs.ugidotnet.org/pezzedotnet/archive/2007/09/26/88544.aspx Wed, 26 Sep 2007 13:50:19 GMT http://blogs.ugidotnet.org/pezzedotnet/archive/2007/09/26/88544.aspx#feedback http://blogs.ugidotnet.org/pezzedotnet/comments/commentRss/88544.aspx http://blogs.ugidotnet.org/pezzedotnet/services/trackbacks/88544.aspx VSTO 2005 SE - Nuova versione .NET C# http://blogs.ugidotnet.org/pezzedotnet/archive/2007/09/24/88515.aspx <p><font face="Verdana">Volevo solo segnalare che è uscita una nuova versione di Microsoft Visual Studio 2005 Tools per Office Second Edition Runtime (VSTO 2005 SE) come segnalato qui: </font><a href="http://blogs.msdn.com/vsto2/archive/2007/08/22/updated-vsto-2005-se-runtime-is-available.aspx"><font face="Verdana">http://blogs.msdn.com/vsto2/archive/2007/08/22/updated-vsto-2005-se-runtime-is-available.aspx</font></a><font face="Verdana">. Questa </font><a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=4468D8CB-B43E-4B09-82F6-8BA3F7B5E935"><font face="Verdana">nuova versione</font></a><font face="Verdana"> dovrebbe risolvere numerosi bug tra i quali quello che mi ha fatto impazzire in questi ultimi mesi ma di questo ne parlerò in un altro post, dopo essermi accertato che Microsoft abbia messo la tanta desiderata "pezza".</font></p><img src="http://blogs.ugidotnet.org/pezzedotnet/aggbug/88515.aspx" width="1" height="1" /> Alessandro Benedetti http://blogs.ugidotnet.org/pezzedotnet/archive/2007/09/24/88515.aspx Mon, 24 Sep 2007 21:15:07 GMT http://blogs.ugidotnet.org/pezzedotnet/archive/2007/09/24/88515.aspx#feedback http://blogs.ugidotnet.org/pezzedotnet/comments/commentRss/88515.aspx http://blogs.ugidotnet.org/pezzedotnet/services/trackbacks/88515.aspx ModalPopupExtender e Web User Controls .NET C# .NET Web http://blogs.ugidotnet.org/pezzedotnet/archive/2007/07/19/86185.aspx <P>Sto lavorando molto con Ajax Control Toolkit e mi sono imbattuto in un problema un p&#242; particolare. Volevo aprire in una pagina web una finestra "modale" che doveva contenere uno web user control. Utilizzando ModalPopupExtender sembra tutto semplice ma purtroppo questo fantastico controllo non permette di accedere ai controlli all'interno di uno web user control. La soluzione &#232; arrivata tramite questo <A href="http://www.cnblogs.com/yinix/articles/775162.html">blog</A> in (penso) cinese. Ma andiamo con ordine. Supponiamo di avere uno user control fatto in questo modo</P><PRE class=csharpcode><SPAN class=kwrd>&lt;</SPAN><SPAN class=html>asp:Panel</SPAN> <SPAN class=attr>ID</SPAN><SPAN class=kwrd>="ModalDialogPanel"</SPAN> <SPAN class=attr>runat</SPAN><SPAN class=kwrd>="server"</SPAN> <SPAN class=attr>Width</SPAN><SPAN class=kwrd>="300"</SPAN> <SPAN class=attr>style</SPAN><SPAN class=kwrd>="padding: 10px; border:solid 1px black;"</SPAN><SPAN class=kwrd>&gt;</SPAN> ASP.NET AJAX is a free framework for building a new... <SPAN class=kwrd>&lt;</SPAN><SPAN class=html>br</SPAN> <SPAN class=kwrd>/&gt;</SPAN> <SPAN class=kwrd>&lt;</SPAN><SPAN class=html>br</SPAN> <SPAN class=kwrd>/&gt;</SPAN> <SPAN class=kwrd>&lt;</SPAN><SPAN class=html>asp:Button</SPAN> <SPAN class=attr>ID</SPAN><SPAN class=kwrd>="OkButton"</SPAN> <SPAN class=attr>runat</SPAN><SPAN class=kwrd>="server"</SPAN> <SPAN class=attr>Text</SPAN><SPAN class=kwrd>="OK"</SPAN> <SPAN class=kwrd>/&gt;</SPAN> <SPAN class=kwrd>&lt;</SPAN><SPAN class=html>asp:Button</SPAN> <SPAN class=attr>ID</SPAN><SPAN class=kwrd>="CancelButton"</SPAN> <SPAN class=attr>runat</SPAN><SPAN class=kwrd>="server"</SPAN> <SPAN class=attr>Text</SPAN><SPAN class=kwrd>="Cancel"</SPAN> <SPAN class=kwrd>/&gt;</SPAN> <SPAN class=kwrd>&lt;/</SPAN><SPAN class=html>asp:Panel</SPAN><SPAN class=kwrd>&gt;</SPAN> </PRE> <P>Per utilizzare una finestra modale &#232; sufficiente nella pagina web aggiungere il ModalPopupExtender e il Web User Control:</P><PRE class=csharpcode><SPAN class=kwrd>&lt;</SPAN><SPAN class=html>asp:ScriptManager</SPAN> <SPAN class=attr>ID</SPAN><SPAN class=kwrd>="ScriptManager1"</SPAN> <SPAN class=attr>runat</SPAN><SPAN class=kwrd>="server"</SPAN><SPAN class=kwrd>&gt;&lt;/</SPAN><SPAN class=html>asp:ScriptManager</SPAN><SPAN class=kwrd>&gt;</SPAN> <SPAN class=kwrd>&lt;</SPAN><SPAN class=html>asp:LinkButton</SPAN> <SPAN class=attr>ID</SPAN><SPAN class=kwrd>="LinkButton1"</SPAN> <SPAN class=attr>runat</SPAN><SPAN class=kwrd>="server"</SPAN><SPAN class=kwrd>&gt;</SPAN> Click Here to Popup a Modal Dialog <SPAN class=kwrd>&lt;/</SPAN><SPAN class=html>asp:LinkButton</SPAN><SPAN class=kwrd>&gt;</SPAN> <SPAN class=kwrd>&lt;</SPAN><SPAN class=html>ajaxToolkit:ModalPopupExtender</SPAN> <SPAN class=attr>ID</SPAN><SPAN class=kwrd>="ModalPopupExtender"</SPAN> <SPAN class=attr>runat</SPAN><SPAN class=kwrd>="server"</SPAN> <SPAN class=attr>TargetControlID</SPAN><SPAN class=kwrd>="LinkButton1"</SPAN> <SPAN class=attr>PopupControlID</SPAN><SPAN class=kwrd>="ModalDialog, ModalDialogPanel"</SPAN> <SPAN class=attr>OkControlID</SPAN><SPAN class=kwrd>="ModalDialog, OkButton"</SPAN> <SPAN class=attr>CancelControlID</SPAN><SPAN class=kwrd>="ModalDialog, CancelButton"</SPAN> <SPAN class=attr>OnResolveControlID</SPAN><SPAN class=kwrd>="ModalPopupExtender_ResolveControlID"</SPAN> <SPAN class=kwrd>/&gt;<BR></SPAN> <SPAN class=kwrd>&lt;</SPAN><SPAN class=html>uc1:ModalDialog</SPAN> <SPAN class=attr>ID</SPAN><SPAN class=kwrd>="ModalDialog"</SPAN> <SPAN class=attr>runat</SPAN><SPAN class=kwrd>="server"</SPAN> <SPAN class=kwrd>/&gt;</SPAN> </PRE> <P>Si pu&#242; notare che a differenza del normale utilizzo del ModalPopupExtender le propriet&#224; PopupControlID, OkControlID, CancelControlID, ... contengono sia il riferimento allo UserControl che alla propriet&#224; da utilizzare. Per riuscire quindi a far trovare il controllo &#232; infine sufficiente scrivere un metodo che lo vada a trovare (ModalPopupExtender_ResolveControlID):</P><PRE class=csharpcode><SPAN class=kwrd>protected</SPAN> <SPAN class=kwrd>void</SPAN> ModalPopupExtender_ResolveControlID( <SPAN class=kwrd>object</SPAN> sender, ResolveControlEventArgs e) { <SPAN class=kwrd>if</SPAN> (e.ControlID == <SPAN class=kwrd>null</SPAN>) <SPAN class=kwrd>return</SPAN>; <SPAN class=kwrd>string</SPAN>[] controlIds = e.ControlID.Split(<SPAN class=str>','</SPAN>); Control result = <SPAN class=kwrd>this</SPAN>; <SPAN class=kwrd>foreach</SPAN> (<SPAN class=kwrd>string</SPAN> id <SPAN class=kwrd>in</SPAN> controlIds) { result = result.FindControl(id.Trim()); } e.Control = result; } </PRE> <P>Questo codice consente al ModalPopupExtander di trovare i controlli e funzionare correttamente.</P><img src="http://blogs.ugidotnet.org/pezzedotnet/aggbug/86185.aspx" width="1" height="1" /> Alessandro Benedetti http://blogs.ugidotnet.org/pezzedotnet/archive/2007/07/19/86185.aspx Thu, 19 Jul 2007 13:07:00 GMT http://blogs.ugidotnet.org/pezzedotnet/archive/2007/07/19/86185.aspx#feedback 1 http://blogs.ugidotnet.org/pezzedotnet/comments/commentRss/86185.aspx http://blogs.ugidotnet.org/pezzedotnet/services/trackbacks/86185.aspx Uscita l'SDK per OpenXML .NET C# http://blogs.ugidotnet.org/pezzedotnet/archive/2007/06/13/81588.aspx <p>Riporto la notizia dal sito programmazione.it:</p> <a href="http://programmazione.it/index.php?entity=eitem&amp;idItem=36702">Arriva l'SDK per Office OpenXML</a> <p>Pochi mesi dopo il <a target="_self" href="http://www.programmazione.it/index.php?entity=eitem&amp;idItem=34995"><font color="#002c99">riconoscimento</font></a> di OpenXML, il formato aperto di default di <a class="iAs" style="FONT-WEIGHT: normal; PADDING-BOTTOM: 1px; COLOR: #000099; BORDER-BOTTOM: #000099 0.1em solid; BACKGROUND-COLOR: transparent; TEXT-DECORATION: underline" target="_blank" itxtdid="3680740" href="http://programmazione.it/index.php?entity=eitem&amp;idItem=36702#">Office</a> 2007, come <a target="_blank" href="http://www.ecma-international.org/publications/standards/Ecma-376.htm"><font color="#002c99">standard ECMA</font></a>, arriva puntuale il <a target="_blank" href="http://www.microsoft.com/downloads/details.aspx?FamilyID=AD0B72FB-4A1D-4C52-BDB5-7DD7E816D046&amp;mg_id=10124&amp;displaylang=en"><font color="#002c99">Software Development Kit (SDK)</font></a> che fornisce un insieme di classi di alto livello, fortemente tipizzate, per l'accesso alle <a class="iAs" style="FONT-WEIGHT: normal; PADDING-BOTTOM: 1px; COLOR: #000099; BORDER-BOTTOM: #000099 0.1em solid; BACKGROUND-COLOR: transparent; TEXT-DECORATION: underline" target="_blank" itxtdid="960023" href="http://programmazione.it/index.php?entity=eitem&amp;idItem=36702#">API</a>, già esistenti, del namespace <a target="_blank" href="http://msdn2.microsoft.com/en-us/library/system.io.packaging.aspx"><font color="#002c99">System.IO.Packaging</font></a>. [<a href="http://programmazione.it/index.php?entity=eitem&amp;idItem=36702">Continua...</a>]<br /> </p><img src="http://blogs.ugidotnet.org/pezzedotnet/aggbug/81588.aspx" width="1" height="1" /> Alessandro Benedetti http://blogs.ugidotnet.org/pezzedotnet/archive/2007/06/13/81588.aspx Wed, 13 Jun 2007 12:16:00 GMT http://blogs.ugidotnet.org/pezzedotnet/archive/2007/06/13/81588.aspx#feedback http://blogs.ugidotnet.org/pezzedotnet/comments/commentRss/81588.aspx http://blogs.ugidotnet.org/pezzedotnet/services/trackbacks/81588.aspx Vista e l'assistente vocale Vista http://blogs.ugidotnet.org/pezzedotnet/archive/2007/04/06/74933.aspx <P>Anche io come molti di voi sono definitivamente passato a Windows Vista. Beh ammetto che la partizione con Windows XP &#232; l&#236; sempre pronta,&nbsp; ma inutilizzata da diverse settimane. Lavorando molto sul web, ho voluto provare l'assistente vocale di Windows Vista, componente assente in Windows XP. L'ho attivato durante la schermata di logon ed ho testato i miei siti, direi che &#232; spettacolare, nonostante sia "gratuito", nel senso che &#232; gi&#224; all'interno di Vista,&nbsp; ha un'ottima qualit&#224;, &#232; compatibile con le voci SAPI 5 e sembra decisamente molto usabile. </P> <P><STRONG>Ho trovato un solo, grosso, inconveniente.</STRONG></P> <P>Ho finito di testare i miei siti, ho provato a disabilitarlo e che ci crediate o no non riesco pi&#249; a levarlo di mezzo!!! Nella schermata di logon dico di non attivarlo, ma al successivo riavvio me lo ritrovo l&#236; attivo che mi parla con quella voce robotica che sembra prendermi in giro. Una volta avviato il sistema operativo rivedo la schermata con le opzioni... le ho disabilitate tutte! Niente al successivo reboot &#232; sempre l&#236; ad aspettarmi. Ora prover&#242; a mettere un bavaglio alle casse per non sentirlo pi&#249; ;-)</P><img src="http://blogs.ugidotnet.org/pezzedotnet/aggbug/74933.aspx" width="1" height="1" /> Alessandro Benedetti http://blogs.ugidotnet.org/pezzedotnet/archive/2007/04/06/74933.aspx Fri, 06 Apr 2007 15:53:00 GMT http://blogs.ugidotnet.org/pezzedotnet/archive/2007/04/06/74933.aspx#feedback 13 http://blogs.ugidotnet.org/pezzedotnet/comments/commentRss/74933.aspx http://blogs.ugidotnet.org/pezzedotnet/services/trackbacks/74933.aspx Windows Ultimate Extras - DreamScene OT http://blogs.ugidotnet.org/pezzedotnet/archive/2007/03/20/73346.aspx <P>Nella versione inglese di <A href="http://www.microsoft.com/italy/windows/products/windowsvista/default.mspx">Windows Vista </A>Ultimate &#232; disponibile tra gli aggiornamenti di Windows Ultimate Extras anche Dreamscene, una nuova funzionalit&#224; che permette di utilizzare video MPG o WMV come sfondo del Desktop. Purtroppo chi possiede Windows Vista Ultimate in italiano non pu&#242; ancora utilizzare questa funzionalit&#224; in beta. E' sufficiente per&#242; installare da Windows Update il Language Pack in inglese perch&#232; questo aggiornamento compaia in lista.</P><img src="http://blogs.ugidotnet.org/pezzedotnet/aggbug/73346.aspx" width="1" height="1" /> Alessandro Benedetti http://blogs.ugidotnet.org/pezzedotnet/archive/2007/03/20/73346.aspx Tue, 20 Mar 2007 15:36:00 GMT http://blogs.ugidotnet.org/pezzedotnet/archive/2007/03/20/73346.aspx#feedback http://blogs.ugidotnet.org/pezzedotnet/comments/commentRss/73346.aspx http://blogs.ugidotnet.org/pezzedotnet/services/trackbacks/73346.aspx Anche le aziende più grosse ci cascano .NET Web http://blogs.ugidotnet.org/pezzedotnet/archive/2007/03/20/73345.aspx <P><A href="http://www.skype.it">Skype</A> ha organizzato un <A href="http://www.vinciconskype.com/">concorso</A>, stile slot machine, dove si possono vincere simpatici premi come telefoni voip o router fon. Peccato che chi ha sviluppato l'applicazione non ha minimamente tenuto in considerazione la sicurezza. Ecco cosa appare in questi minuti, un bel errore di timeout con queste informazioni:</P> <P><SPAN> </P> <H1>Errore server nell'applicazione '/'. <HR width="100%" color=silver SIZE=1> </H1> <H2><I>Timeout. Il tempo disponibile &#232; scaduto prima che venisse stabilita una connessione dal pool. Il problema potrebbe essersi verificato perch&#233; tutte le connessioni in pool erano in uso ed &#232; stata raggiunta la dimensione massima del pool.</I> </H2> <P></SPAN><FONT face="Arial, Helvetica, Geneva, SunSans-Regular, sans-serif "><B>Descrizione: </B>Eccezione non gestita durante l'esecuzione della richiesta Web corrente. Per ulteriori informazioni sull'errore e sul suo punto di origine nel codice, vedere l'analisi dello stack. <BR><BR><B>Dettagli eccezione: </B>System.InvalidOperationException: Timeout. Il tempo disponibile &#232; scaduto prima che venisse stabilita una connessione dal pool. Il problema potrebbe essersi verificato perch&#233; tutte le connessioni in pool erano in uso ed &#232; stata raggiunta la dimensione massima del pool.<BR><BR><B>Errore nel codice sorgente:</B> <BR><BR> <TABLE width="100%" bgColor=#ffffcc> <TBODY> <TR> <TD><CODE><PRE>Riga 21: string _ConnString = "server=sql2005;database=vinciconskype;uid=*********;pwd=*********;"; Riga 22: SqlConnection conn = new SqlConnection (_ConnString); <FONT color=red>Riga 23: conn.Open(); </FONT>Riga 24: string _sql = "SELECT COUNT(*) [Chk] FROM [IP] WHERE [IP_Start] &lt;= '"+ numericIP.ToString() +"' AND [IP_End] &gt;= '"+ numericIP.ToString() +"'"; Riga 25: SqlCommand _SqlCommand = new SqlCommand(_sql,conn);</PRE></CODE></TD></TR></TBODY></TABLE><BR><B><FONT face=Verdana>File sorgente: </FONT></B>d:\www\MW_qPIXaGcIG\vinciconskype.com\default.aspx<B><FONT face=Verdana> &nbsp;&nbsp; Riga: </FONT></B>23 <BR></FONT>Vi assicuro che username e password sono in chiaro, ma per ovvi motivi preferisco non postarle.</P><img src="http://blogs.ugidotnet.org/pezzedotnet/aggbug/73345.aspx" width="1" height="1" /> Alessandro Benedetti http://blogs.ugidotnet.org/pezzedotnet/archive/2007/03/20/73345.aspx Tue, 20 Mar 2007 15:31:00 GMT http://blogs.ugidotnet.org/pezzedotnet/archive/2007/03/20/73345.aspx#feedback http://blogs.ugidotnet.org/pezzedotnet/comments/commentRss/73345.aspx http://blogs.ugidotnet.org/pezzedotnet/services/trackbacks/73345.aspx Table or Tableless? http://blogs.ugidotnet.org/pezzedotnet/archive/2005/11/03/29081.aspx <P>Vorrei riprendere&nbsp;qui un discorso cominciato da <A class=HeaderMainTitle id=Header1_HeaderTitle HREF="/duz/">TheDuzBlog! ;-p</A>&nbsp;nel suo ultimo&nbsp;<A href="http://blogs.ugidotnet.org/duz/archive/2005/11/02/29071.aspx">post</A>.</P> <P>Ho notato che TheDuz, esattamente come era successo a me, &#232; rimasto un p&#242; deluso dall'approccio tableless dopo aver perso probabilmente una miriade di tempo nel tentativo di costruire pagine tableless completamente compatibili tra internet explorer, firefox, safari e compagnia bella. Purtroppo&nbsp;&#232; vero, l'incompatibilit&#224; tra i diversi browser (e qui grossa colpa va ahim&#232; a mamma Microsoft) &#232; veramente esasperante, per&#242; le cose stanno cambiando (internet explorer 7, firefox e safari si stanno avvicinando alla completa aderenza agli standard) e questo dovrebbe portare i "div-scettici" a cambiare idea.&nbsp;</P> <P>Riprendendo il discorso di TheDuz io credo che oltre al virtuosismo teorico o alle prese di posizione religiose riguardo table o tableless ci sono un paio di cose FONDAMENTALI da tenere ben presente.</P> <P>L'uso dei DIV e quindi dei CSS riduce il codice della pagina in maniera incredibile, a volte si possono avere diminuzioni dell'80% dei Kb. Certo, si pu&#242; controbattere che si ingradiscono i CSS... verissimo... ma i CSS vanno in cache, scaricati solo la prima volta.<BR>Oltre a questo indipendentemente dalla semplicit&#224; del sito basti alla semplicit&#224; dello sviluppo. Il tempo che si perde cercando il TD giusto si guadagna poi&nbsp;trovando facilmente il DIV che &#232; nella giusta posizione e cio&#232; quella che concettualmente &#232; corretta e non quella che &#232; graficamente corretta.<BR>Inoltre una interfaccia web realizzata con le tabelle NON &#232; accessibile e mai lo sar&#224;, ed i disabili sono tanti nel mondo e Google &#232; uno di questi. Non &#232; uno scherzo, n&#232; una battuta di cattivo gusto, mi spiego meglio. Quando si realizza un sito acessibile ai non vedenti (ma in generali ai disabili) si ottimizza il codice: si eliminano le tabelle dove non necessarie per rappresentare i dati, si ordinano i testi in base alla lettura e non alla visualizzazione e poi si aggiungono i titoli ai link ed alle immagini, si creano delle form pi&#249; corrette (anche per i normodotati), si riduce al minimo l'uso di javascript, si crea codice validabile, ecc... Google (ma in generale qualsiasi motori di ricerca) effettua una lettura del sito ripulito di tutta la grafica e quindi prediliger&#224; una versione con i DIV che mantiene al centro dell'attenzione i contenuti e non l'impaginazione. Per fare un esempio, quale tra queste due righe di codice Google consider&#224; un titolo?<BR>a) &lt;h1 class="titolo"&gt;pippo&lt;/h1&gt;<BR>b) ...&lt;td&gt;&lt;font size="1" face="Verdana"&gt;pippo&lt;/font&gt;&lt;/td&gt;</P> <P>Beh credo che la risposta sia ovvia ;-)<BR>Allo stesso modo un non vedente potr&#224; beneficiare della prima sintassi perch&#232; il sintetizzatore vocale alzer&#224; il tono per far capire che sta leggendo un titolo.<BR>&nbsp;<BR>Io credo che tutti noi dovremmo fare lo sforzo di realizzare siti web pi&#249; corretti, cominciando dal tableless e non solo per sfizio ma per quesit motivi:</P> <UL> <LI>si risparmia banda e quindi sono pi&#249; veloci da navigare</LI> <LI>sono pi&#249; facili da sviluppare (dopo averci preso la mano)</LI> <LI>sono pi&#249; facilmente accessibili ai disabili</LI> <LI>sono meglio indicizzati dai motori di ricerca</LI> <LI>&#232; possibile cambiare grafica modificando quasi esclusivamente i CSS (vedere per credere <A href="http://www.csszengarden.com/">csszengarden)</A></LI></UL><img src="http://blogs.ugidotnet.org/pezzedotnet/aggbug/29081.aspx" width="1" height="1" /> Alessandro Benedetti http://blogs.ugidotnet.org/pezzedotnet/archive/2005/11/03/29081.aspx Thu, 03 Nov 2005 01:35:00 GMT http://blogs.ugidotnet.org/pezzedotnet/archive/2005/11/03/29081.aspx#feedback 2 http://blogs.ugidotnet.org/pezzedotnet/comments/commentRss/29081.aspx http://blogs.ugidotnet.org/pezzedotnet/services/trackbacks/29081.aspx iTextSharp è rinato .NET C# http://blogs.ugidotnet.org/pezzedotnet/archive/2005/06/27/21790.aspx <P>Poco tempo fa ho postato la prima parte di un articolo riguardante la creazione di documenti PDF da .NET. In quell'articolo ho elogiato la libreria<A href="http://www.ujihara.jp/iTextdotNET/en/"> iText.NET </A>rispetto alla non pi&#249; aggiornata <A href="http://itextsharp.sourceforge.net/">iTextSharp</A>&nbsp;(entrambi porting dell'ottima libreria Java <A href="http://www.lowagie.com/iText/">iText</A>). </P> <P>Scopro per&#242;&nbsp;oggi (la notizia &#232; del 15 giugno) che Paulo Soares, che &#232;&nbsp;lo sviluppatore pi&#249; attivo del progetto java iText, ha ripreso la riscrittura del porting in C# (iTextSharp) della libreria. Per chi non avesse letto l'articolo riassumo che l'unica differenza tra i 2 porting &#232; che iText.NET &#232; scritta in J# e quindi implica che il J# framework debba essere installato, invece iTextSharp in C#.</P> <P>Non ho ancora testato questa nuova versione, che promette di scalzare iText.NET dall'elenco delle mie librerie opensource preferite, ma lo far&#242; in giornata e successivamente vi far&#242; sapere. </P><img src="http://blogs.ugidotnet.org/pezzedotnet/aggbug/21790.aspx" width="1" height="1" /> Alessandro Benedetti http://blogs.ugidotnet.org/pezzedotnet/archive/2005/06/27/21790.aspx Mon, 27 Jun 2005 15:21:00 GMT http://blogs.ugidotnet.org/pezzedotnet/archive/2005/06/27/21790.aspx#feedback 10 http://blogs.ugidotnet.org/pezzedotnet/comments/commentRss/21790.aspx http://blogs.ugidotnet.org/pezzedotnet/services/trackbacks/21790.aspx