<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>Blog di Gianluca Giocci</title><link>http://blog.shareoffice.it/gciocci/</link><description>Microsoft Office System 2003</description><managingEditor>Gianluca Ciocci</managingEditor><dc:language>it-IT</dc:language><generator>.Text Version 0.95.2004.102</generator><item><dc:creator>Gianluca Ciocci</dc:creator><title>Visual Studio tools for Office 2005 – Le nuove funzionalità</title><link>http://blog.shareoffice.it/gciocci/archive/2005/04/29/171.aspx</link><pubDate>Fri, 29 Apr 2005 16:26:00 GMT</pubDate><guid>http://blog.shareoffice.it/gciocci/archive/2005/04/29/171.aspx</guid><wfw:comment>http://blog.shareoffice.it/gciocci/comments/171.aspx</wfw:comment><comments>http://blog.shareoffice.it/gciocci/archive/2005/04/29/171.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.shareoffice.it/gciocci/comments/commentRss/171.aspx</wfw:commentRss><trackback:ping>http://blog.shareoffice.it/gciocci/services/trackbacks/171.aspx</trackback:ping><description>&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 16pt"&gt;&lt;span lang="IT" style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: IT"&gt;Con i Visual Studio Tools for Office 2005 (VSTO2005) sono state introdotte delle funzionalità molto interessanti che non facevano parte della versione 2003 dei VSTO.&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 16pt"&gt;&lt;SPAN lang=IT style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: IT"&gt;Cominciamo dicendo che le novit&amp;#224; hanno toccato diverse aree come:&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 36pt; TEXT-INDENT: -18pt; LINE-HEIGHT: 16pt; mso-list: l0 level1 lfo1; tab-stops: list 36.0pt"&gt;&lt;SPAN lang=IT style="FONT-SIZE: 10pt; mso-ansi-language: IT"&gt;&lt;SPAN style="mso-list: Ignore"&gt;-&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN lang=IT style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: IT"&gt;maschera progetti&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 36pt; TEXT-INDENT: -18pt; LINE-HEIGHT: 16pt; mso-list: l0 level1 lfo1; tab-stops: list 36.0pt"&gt;&lt;SPAN lang=IT style="FONT-SIZE: 10pt; mso-ansi-language: IT"&gt;&lt;SPAN style="mso-list: Ignore"&gt;-&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN lang=IT style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: IT"&gt;il designer visuale&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 36pt; TEXT-INDENT: -18pt; LINE-HEIGHT: 16pt; mso-list: l0 level1 lfo1; tab-stops: list 36.0pt"&gt;&lt;SPAN lang=IT style="FONT-SIZE: 10pt; mso-ansi-language: IT"&gt;&lt;SPAN style="mso-list: Ignore"&gt;-&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN lang=IT style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: IT"&gt;nuovi controlli&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 36pt; TEXT-INDENT: -18pt; LINE-HEIGHT: 16pt; mso-list: l0 level1 lfo1; tab-stops: list 36.0pt"&gt;&lt;SPAN lang=IT style="FONT-SIZE: 10pt; mso-ansi-language: IT"&gt;&lt;SPAN style="mso-list: Ignore"&gt;-&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN lang=IT style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: IT"&gt;supporto actions pane&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 36pt; TEXT-INDENT: -18pt; LINE-HEIGHT: 16pt; mso-list: l0 level1 lfo1; tab-stops: list 36.0pt"&gt;&lt;SPAN lang=IT style="FONT-SIZE: 10pt; mso-ansi-language: IT"&gt;&lt;SPAN style="mso-list: Ignore"&gt;-&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN lang=IT style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: IT"&gt;data programming e data binding&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 36pt; TEXT-INDENT: -18pt; LINE-HEIGHT: 16pt; mso-list: l0 level1 lfo1; tab-stops: list 36.0pt"&gt;&lt;SPAN lang=IT style="FONT-SIZE: 10pt; mso-ansi-language: IT"&gt;&lt;SPAN style="mso-list: Ignore"&gt;-&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN lang=IT style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: IT"&gt;data caching&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 36pt; TEXT-INDENT: -18pt; LINE-HEIGHT: 16pt; mso-list: l0 level1 lfo1; tab-stops: list 36.0pt"&gt;&lt;SPAN lang=IT style="FONT-SIZE: 10pt; mso-ansi-language: IT"&gt;&lt;SPAN style="mso-list: Ignore"&gt;-&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN lang=IT style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: IT"&gt;programmazione server-side &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 16pt"&gt;&lt;SPAN lang=IT style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: IT"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 16pt"&gt;&lt;U&gt;&lt;SPAN lang=IT style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: IT"&gt;Maschera progetti&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/U&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 16pt"&gt;&lt;SPAN lang=IT style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: IT"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 16pt"&gt;&lt;SPAN lang=IT style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: IT"&gt;La prima cosa che solitamente viene fatta dopo avere installato Visual Studio.NET Beta 2 &amp;#232;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;creare un progetto di qualsiasi tipo e cos&amp;#236; ho fatto io. Dall&amp;#8217;esperienza dei VSTO 2003 mi aspettavo che nella form New Project ci fosse un menu &lt;I style="mso-bidi-font-style: normal"&gt;other project type &lt;/I&gt;dove trovare i template delle soluzioni office, ma cos&amp;#236; non &amp;#232; stato. Espandendo il nodo dei progetti C# troviamo una nuova voce di men&amp;#249;: &lt;B style="mso-bidi-font-weight: normal"&gt;Office.&lt;/B&gt; La versione 2005 dei VSTO e tutti i template di progetto sono gi&amp;#224; installati di default con l&amp;#8217;ambiente di sviluppo. Tra i template presenti troviamo anche quello che ci permette di creare soluzioni basate sui template di Excel ( non presente nella versione VSTO 2003).&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 16pt"&gt;&lt;SPAN lang=IT style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: IT"&gt;Una differenza sostanziale &amp;#232; stata introdotta nell&amp;#8217;organizzazione logica delle soluzioni basate su Word ed Excel. Le soluzioni Word basata sui VSTO 2005 presenta un code-behind per ogni documento (.doc) o template di documento (.dot) del progetto mentre le soluzioni Excel hanno un solo code-behind per il workbook, ma hanno file di code-behind separati per ogni worksheet.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 16pt"&gt;&lt;SPAN lang=IT style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: IT"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 16pt"&gt;&lt;U&gt;&lt;SPAN lang=IT style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: IT"&gt;Designer&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/U&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 16pt"&gt;&lt;U&gt;&lt;SPAN lang=IT style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: IT"&gt;&lt;o:p&gt;&lt;SPAN style="TEXT-DECORATION: none"&gt;&lt;/SPAN&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/U&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 16pt"&gt;&lt;SPAN lang=IT style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: IT"&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 16pt"&gt;&lt;SPAN lang=IT style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: IT"&gt;La possibilt&amp;#224; di poter editare e modificare un documento Word o inserire formule in un foglio di Excel direttamente dall&amp;#8217;ambiente di sviluppo &amp;#232; uno dei cambiamenti pi&amp;#249; evidenti che sono stati introdotti dai VSTO 2005. Sia Word, sia Excel sono stati integrati all&amp;#8217;interno di Visual Studio ed &amp;#232; possibile inoltre utilizzare tutte le funzionalit&amp;#224; native di ognuna delle applicazioni office per gestirne il layout e altre operazioni che facciamo ogni giorno con questi strumenti. &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 16pt"&gt;&lt;SPAN lang=IT style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: IT"&gt;Per esempio: l&amp;#8217;unico modo per creare una tabella su un documento Word con i VSTO 2003 &amp;#232; quello di scrivere del codice utilizzando gli oggetti di Word, con i VSTO 2005 basta selezionare dal men&amp;#249; di Visual Studio Table &amp;#8211; Insert &amp;#8211; Table. I men&amp;#249; standard di Word o di Excel vengono visualizzati sulla barra dei menu di Visual Studio quando un documento &amp;#232; aperto nel designer.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 16pt"&gt;&lt;SPAN lang=IT style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: IT"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 16pt"&gt;&lt;U&gt;&lt;SPAN lang=IT style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: IT"&gt;Nuovi controlli &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/U&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 16pt"&gt;&lt;SPAN lang=IT style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: IT"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 16pt"&gt;&lt;SPAN lang=IT style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: IT"&gt;Rispetto alla versione 2003, adesso abbiamo la possibilit&amp;#224; di inserire i controlli presenti nella Toolbox di Visual Studio sul documento, modificarne le propriet&amp;#224; e gestirne gli event handler. Tutto questo in modalit&amp;#224; design, proprio come se il documento fosse una Windows Form. &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 16pt"&gt;&lt;SPAN lang=IT style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: IT"&gt;I controlli windows forms generalmente hanno le stesse funzionalit&amp;#224; che si hanno sulle Windows Form, con alcune differenze:&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 16pt"&gt;&lt;SPAN lang=IT style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: IT"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 18pt; TEXT-INDENT: -18pt; LINE-HEIGHT: 16pt; mso-list: l1 level1 lfo2; tab-stops: list 18.0pt"&gt;&lt;SPAN lang=IT style="FONT-SIZE: 10pt; FONT-FAMILY: Symbol; mso-ansi-language: IT; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&amp;#183;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN lang=IT style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: IT"&gt;non &amp;#232; possibile settare il Tab Order dei controlli presenti su un documento;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 18pt; TEXT-INDENT: -18pt; LINE-HEIGHT: 16pt; mso-list: l1 level1 lfo2; tab-stops: list 18.0pt"&gt;&lt;SPAN lang=IT style="FONT-SIZE: 10pt; FONT-FAMILY: Symbol; mso-ansi-language: IT; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&amp;#183;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN lang=IT style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: IT"&gt;non &amp;#232; possibile utilizzare controlli di raggruppamento come i GroupBox, con il piccolo svantaggio di dover scrivere un po&amp;#8217; di codice per gestire dei radio buttons.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 16pt"&gt;&lt;SPAN lang=IT style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: IT"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 16pt"&gt;&lt;SPAN lang=IT style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: IT"&gt;La possibilit&amp;#224; di inserire controlli windows su un documento Word o su un foglio di Excel riduce drasticamente le differenze che c&amp;#8217;erano tra lo sviluppo di applicazioni Windows e lo sviluppo di applicazioni basate sui VSTO.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 16pt"&gt;&lt;SPAN lang=IT style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: IT"&gt;Altra interessante novit&amp;#224; riferita ai controlli sono i &lt;B style="mso-bidi-font-weight: normal"&gt;View Controls&lt;/B&gt;. I View Controls sono nuovi controlli che estendono gli oggetti nativi di Office, come gli oggetti Ranges, Cells, Bookmarks, che con la versione 2005 dei VSTO espongono eventi ed hanno funzionalit&amp;#224; di data binding. Questi controlli sono presenti nella Toolbox di Visual Studio.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 16pt"&gt;&lt;SPAN lang=IT style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: IT"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 16pt"&gt;&lt;U&gt;&lt;SPAN lang=IT style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: IT"&gt;Supporto Actions Pane&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/U&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 16pt"&gt;&lt;U&gt;&lt;SPAN lang=IT style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: IT"&gt;&lt;o:p&gt;&lt;SPAN style="TEXT-DECORATION: none"&gt;&lt;/SPAN&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/U&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 16pt"&gt;&lt;SPAN lang=IT style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: IT"&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 16pt"&gt;&lt;SPAN lang=IT style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: IT"&gt;La vesione 2003 di Office ha introdotto la possibilit&amp;#224; di sviluppare &lt;B style="mso-bidi-font-weight: normal"&gt;smart document&lt;/B&gt;, che permette di creare ed agganciare ad un documento Word o ad un foglio di Excel, delle funzionalit&amp;#224; custom all&amp;#8217;inteno di un Document Action task pane, fornendo agli utenti delle funzionalit&amp;#224; aggiuntive per lavorare con i documenti. Chi ha sviluppato smart document con la versione 2003 dei VSTO si ricorder&amp;#224; che occorreva implementare l&amp;#8217;interfaccia &lt;B style="mso-bidi-font-weight: normal"&gt;ISmartDocument&lt;/B&gt; e scrivere codice facendo largo uso dell&amp;#8217;istruzione &lt;I style="mso-bidi-font-style: normal"&gt;switch&lt;/I&gt; o &lt;I style="mso-bidi-font-style: normal"&gt;Select Case&lt;/I&gt; a seconda dei gusti; i VSTO 2005 Beta 2 introducono l&amp;#8217;oggetto &lt;B style="mso-bidi-font-weight: normal"&gt;ActionsPane&lt;/B&gt;, che &amp;#232; un&amp;#8217;implementazione del Document Actions task pane, la quale permette la creazione di actions pane personalizzati in modo molto semplice:&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 16pt; mso-layout-grid-align: none"&gt;&lt;SPAN lang=IT style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: IT; mso-bidi-font-family: 'Courier New'; mso-no-proof: yes"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 16pt; mso-layout-grid-align: none"&gt;&lt;SPAN lang=IT style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-ansi-language: IT; mso-no-proof: yes"&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: teal; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;Button&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt; bt = &lt;SPAN style="COLOR: blue"&gt;new&lt;/SPAN&gt; &lt;SPAN style="COLOR: teal"&gt;Button&lt;/SPAN&gt;();&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 16pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;bt.Text = &lt;SPAN style="COLOR: maroon"&gt;"Bottone"&lt;/SPAN&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 16pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;this&lt;/SPAN&gt;.ActionsPane.Controls.Add(bt); &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 16pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 16pt"&gt;&lt;SPAN lang=IT style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: IT"&gt;Questa nuova feature ci permette quindi di creare degli user control per poi aggiungerli all&amp;#8217;Actions Pane e programmare gli eventi come si farebbe per un&amp;#8217;applicazione Windows Forms.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 16pt"&gt;&lt;SPAN lang=IT style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: IT"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 16pt"&gt;&lt;U&gt;&lt;SPAN lang=IT style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: IT"&gt;Data Programming e Data Binding&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/U&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 16pt"&gt;&lt;SPAN lang=IT style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: IT"&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 16pt"&gt;&lt;SPAN lang=IT style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: IT"&gt;Uno degli obiettivi primari delle soluzioni basate sui VSTO 2005 &amp;#232; la separazione dei dati dal documento (View). I dati di un documento sono i numeri, il testo e cos&amp;#236; via, mentre la parte View &amp;#232; riferita all&amp;#8217;interfaccia utente delle applicazioni Office e al suo object model. &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 16pt"&gt;&lt;SPAN lang=IT style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: IT"&gt;Tranne che per la capacit&amp;#224; di mappare un XML a varie celle e range i documenti Word 2003 e i fogli di Excel 2003, per propria natura, non hanno il concetto nativo di separazione dei dati: tutto &amp;#232; sempre contenuto all&amp;#8217;interno del documento.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 16pt"&gt;&lt;SPAN lang=IT style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: IT"&gt;I VSTO 2005 sfruttano il concetto di &amp;#8220;XML data island&amp;#8221; per ottenere questo tipo di separazione, abilitando gli sviluppatori a scrivere codice di aggiornamento dati senza modificare il codice dello strato View tramite dei data set &amp;#8220;tipizzati&amp;#8221;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;mappati sull&amp;#8217;XML data island. &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 16pt"&gt;&lt;SPAN lang=IT style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: IT"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 16pt"&gt;&lt;SPAN lang=IT style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: IT"&gt;Il data binding dei VSTO 2005 funziona allo stesso modo del data binding delle Windows Forms. &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 16pt"&gt;&lt;SPAN lang=IT style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: IT"&gt;Questa nuova funzionalit&amp;#224; permette di fare il drag and drop di data source tipizzati sul documento e automaticamente vengono inclusi i controlli che sono agganciati alla sorgente dati. &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 16pt"&gt;&lt;SPAN lang=IT style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: IT"&gt;Facendo un esempio, tramite la nuova &lt;B style="mso-bidi-font-weight: normal"&gt;finestra Data Sources&lt;/B&gt; (Menu Data, poi Show Data Sources &amp;#8211; Shortcut: Ctrl+Alt+D) se trasciniamo la tabella Categories di un&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;data source (NortwindDataSet) creato all&amp;#8217;interno di un documento Word 2003, i Visual Studio Tools for Office 2005 creano gli oggetti necessari per eseguire il data binding, come l&amp;#8217;oggetto &lt;B style="mso-bidi-font-weight: normal"&gt;DataSet&lt;/B&gt;, il &lt;B style="mso-bidi-font-weight: normal"&gt;TableAdapter&lt;/B&gt; e il &lt;B style="mso-bidi-font-weight: normal"&gt;DataConnector&lt;/B&gt; ed in pi&amp;#249; creano i controlli che a run-time conterranno i dati. Il Binding dei dati pu&amp;#242; essere fatto in modalit&amp;#224; semplice, che significa associare la propriet&amp;#224; di un controllo ad un singolo elemento dei dati, oppure in modalit&amp;#224; complessa cio&amp;#232; associare in binding un array di dati.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 16pt"&gt;&lt;SPAN lang=IT style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: IT"&gt;Tutti i View control supportano la modalit&amp;#224; di Binding semplice tranne l&amp;#8217;XMLNodes che &amp;#232; un controllo collection e quindi non supporta il data binding. Il data binding complesso &amp;#232; supportato dall&amp;#8217;oggetto ListObject View che ha una propriet&amp;#224; DataSource dove &amp;#232; possibile associare una serie di colonne di un DataSet.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 16pt"&gt;&lt;SPAN lang=IT style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: IT"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 16pt"&gt;&lt;U&gt;&lt;SPAN lang=IT style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: IT"&gt;Data Caching&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/U&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 16pt"&gt;&lt;SPAN lang=IT style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: IT"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 16pt"&gt;&lt;SPAN lang=IT style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: IT"&gt;Lo store dei dati attraverso il concetto di data island solitamente fornisce un&amp;#8217;efficace meccanismo per lo sviluppo di soluzioni Office con scenari off-line. Gli oggetti che contengono i dati vengono messi in cache all&amp;#8217;interno del documento stesso con il vantaggio di poter manipolare i dati in modalit&amp;#224; disconnessa, fino a che la connessione con la base dati sar&amp;#224; nuovamente disponibile. &lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;Ovviamente questo tipo di scenario introduce la necessit&amp;#224; di gestire la sincronia dei dati in cache locale con quelli presenti sul server.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 16pt"&gt;&lt;SPAN lang=IT style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: IT"&gt;E&amp;#8217; possibile abilitare il caching dei data all&amp;#8217;interno del documento marcando con l&amp;#8217;attributo &lt;B style="mso-bidi-font-weight: normal"&gt;CachedAttribute&lt;/B&gt; le istanze dei data container, per esempio come un dataset:&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 16pt; mso-layout-grid-align: none"&gt;&lt;SPAN lang=IT style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-ansi-language: IT; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 16pt; mso-layout-grid-align: none"&gt;&lt;SPAN lang=IT style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-ansi-language: IT; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&lt;/SPAN&gt;[Microsoft.VisualStudio.Tools.Applications.Runtime.&lt;SPAN style="COLOR: teal"&gt;CachedAttribute&lt;/SPAN&gt;()]&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 16pt; mso-layout-grid-align: none"&gt;&lt;SPAN lang=IT style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'; mso-ansi-language: IT; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;internal&lt;/SPAN&gt;&lt;SPAN lang=IT style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-ansi-language: IT; mso-no-proof: yes"&gt; WordTestCS.&lt;SPAN style="COLOR: teal"&gt;NorthwindDataSet&lt;/SPAN&gt; northwindDataSet;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 16pt"&gt;&lt;SPAN lang=IT style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: IT"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 16pt"&gt;&lt;U&gt;&lt;SPAN lang=IT style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: IT"&gt;Programmazione Server-Side&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/U&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 16pt"&gt;&lt;U&gt;&lt;SPAN lang=IT style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: IT"&gt;&lt;o:p&gt;&lt;SPAN style="TEXT-DECORATION: none"&gt;&lt;/SPAN&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/U&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 16pt"&gt;&lt;SPAN lang=IT style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: IT"&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 16pt"&gt;&lt;SPAN lang=IT style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: IT"&gt;La separazione fisica tra dati e interfacce ha ridotto notevolmente tutte le problematiche che esistevano quanto sviluppavamo applicazioni Office e ne facevamo il deployment sul server. La programmazione server-side offre la possibilit&amp;#224; di manipolare dati di un documento senza utilizzare Office 2003, usando la classe ServerDocument. Si nota subito come questa funzionalit&amp;#224; renda scalabile una applicazione basata su Office 2003, ad esempio offrendo la possibilit&amp;#224; di creare un documento Word da un&amp;#8217;applicazione asp.net. &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 16pt"&gt;&lt;SPAN lang=IT style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: IT"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 16pt"&gt;&lt;SPAN lang=IT style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: IT"&gt;Possiamo concludere dicendo che finalmente possiamo scrivere applicazioni Enterprise basate sui Visual Studio Tools for Office 2005 senza aver bisogno di installare Word o Excel sul server.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 16pt"&gt;&lt;SPAN lang=IT style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: IT"&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 16pt"&gt;&lt;SPAN lang=IT style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: IT"&gt;&lt;o:p&gt;Nei prossimi post entrer&amp;#242; nei dettagli di tutte queste funzionalit&amp;#224;, scrivendo un p&amp;#242; di codice ed entrando nel vivo dell'azione ;)&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 16pt"&gt;&lt;SPAN lang=IT style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: IT"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 16pt"&gt;&lt;SPAN lang=IT style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: IT"&gt;&lt;o:p&gt;Ciao a tutti &lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 16pt"&gt;&lt;SPAN lang=IT style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: IT"&gt;&lt;o:p&gt;Gianluca&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BLOGHELPER&gt;&lt;/SPAN&gt;
&lt;P&gt;&lt;/P&gt;&lt;/BLOGHELPER&gt;&lt;/SPAN&gt;
&lt;P&gt;&lt;/P&gt;&lt;/bloghelper&gt;?&gt;&lt;/span&gt;&lt;/p&gt;&lt;img src ="http://blog.shareoffice.it/gciocci/aggbug/171.aspx" width = "1" height = "1" /&gt;</description><body xmlns="http://www.w3.org/1999/xhtml"><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 16pt"><span lang="IT" style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: IT">Con i Visual Studio Tools for Office 2005 (VSTO2005) sono state introdotte delle funzionalità molto interessanti che non facevano parte della versione 2003 dei VSTO.<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 16pt"><SPAN lang=IT style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: IT">Cominciamo dicendo che le novit&#224; hanno toccato diverse aree come:<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 36pt; TEXT-INDENT: -18pt; LINE-HEIGHT: 16pt; mso-list: l0 level1 lfo1; tab-stops: list 36.0pt"><SPAN lang=IT style="FONT-SIZE: 10pt; mso-ansi-language: IT"><SPAN style="mso-list: Ignore">-<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN lang=IT style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: IT">maschera progetti<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 36pt; TEXT-INDENT: -18pt; LINE-HEIGHT: 16pt; mso-list: l0 level1 lfo1; tab-stops: list 36.0pt"><SPAN lang=IT style="FONT-SIZE: 10pt; mso-ansi-language: IT"><SPAN style="mso-list: Ignore">-<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN lang=IT style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: IT">il designer visuale<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 36pt; TEXT-INDENT: -18pt; LINE-HEIGHT: 16pt; mso-list: l0 level1 lfo1; tab-stops: list 36.0pt"><SPAN lang=IT style="FONT-SIZE: 10pt; mso-ansi-language: IT"><SPAN style="mso-list: Ignore">-<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN lang=IT style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: IT">nuovi controlli<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 36pt; TEXT-INDENT: -18pt; LINE-HEIGHT: 16pt; mso-list: l0 level1 lfo1; tab-stops: list 36.0pt"><SPAN lang=IT style="FONT-SIZE: 10pt; mso-ansi-language: IT"><SPAN style="mso-list: Ignore">-<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN lang=IT style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: IT">supporto actions pane<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 36pt; TEXT-INDENT: -18pt; LINE-HEIGHT: 16pt; mso-list: l0 level1 lfo1; tab-stops: list 36.0pt"><SPAN lang=IT style="FONT-SIZE: 10pt; mso-ansi-language: IT"><SPAN style="mso-list: Ignore">-<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN lang=IT style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: IT">data programming e data binding<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 36pt; TEXT-INDENT: -18pt; LINE-HEIGHT: 16pt; mso-list: l0 level1 lfo1; tab-stops: list 36.0pt"><SPAN lang=IT style="FONT-SIZE: 10pt; mso-ansi-language: IT"><SPAN style="mso-list: Ignore">-<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN lang=IT style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: IT">data caching<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 36pt; TEXT-INDENT: -18pt; LINE-HEIGHT: 16pt; mso-list: l0 level1 lfo1; tab-stops: list 36.0pt"><SPAN lang=IT style="FONT-SIZE: 10pt; mso-ansi-language: IT"><SPAN style="mso-list: Ignore">-<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN lang=IT style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: IT">programmazione server-side <o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 16pt"><SPAN lang=IT style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: IT"><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 16pt"><U><SPAN lang=IT style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: IT">Maschera progetti<o:p></o:p></SPAN></U></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 16pt"><SPAN lang=IT style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: IT"><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 16pt"><SPAN lang=IT style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: IT">La prima cosa che solitamente viene fatta dopo avere installato Visual Studio.NET Beta 2 &#232;<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>creare un progetto di qualsiasi tipo e cos&#236; ho fatto io. Dall&#8217;esperienza dei VSTO 2003 mi aspettavo che nella form New Project ci fosse un menu <I style="mso-bidi-font-style: normal">other project type </I>dove trovare i template delle soluzioni office, ma cos&#236; non &#232; stato. Espandendo il nodo dei progetti C# troviamo una nuova voce di men&#249;: <B style="mso-bidi-font-weight: normal">Office.</B> La versione 2005 dei VSTO e tutti i template di progetto sono gi&#224; installati di default con l&#8217;ambiente di sviluppo. Tra i template presenti troviamo anche quello che ci permette di creare soluzioni basate sui template di Excel ( non presente nella versione VSTO 2003).<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 16pt"><SPAN lang=IT style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: IT">Una differenza sostanziale &#232; stata introdotta nell&#8217;organizzazione logica delle soluzioni basate su Word ed Excel. Le soluzioni Word basata sui VSTO 2005 presenta un code-behind per ogni documento (.doc) o template di documento (.dot) del progetto mentre le soluzioni Excel hanno un solo code-behind per il workbook, ma hanno file di code-behind separati per ogni worksheet.<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 16pt"><SPAN lang=IT style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: IT"><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 16pt"><U><SPAN lang=IT style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: IT">Designer<o:p></o:p></SPAN></U></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 16pt"><U><SPAN lang=IT style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: IT"><o:p><SPAN style="TEXT-DECORATION: none"></SPAN></o:p></SPAN></U></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 16pt"><SPAN lang=IT style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: IT"></SPAN>&nbsp;</P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 16pt"><SPAN lang=IT style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: IT">La possibilt&#224; di poter editare e modificare un documento Word o inserire formule in un foglio di Excel direttamente dall&#8217;ambiente di sviluppo &#232; uno dei cambiamenti pi&#249; evidenti che sono stati introdotti dai VSTO 2005. Sia Word, sia Excel sono stati integrati all&#8217;interno di Visual Studio ed &#232; possibile inoltre utilizzare tutte le funzionalit&#224; native di ognuna delle applicazioni office per gestirne il layout e altre operazioni che facciamo ogni giorno con questi strumenti. <o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 16pt"><SPAN lang=IT style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: IT">Per esempio: l&#8217;unico modo per creare una tabella su un documento Word con i VSTO 2003 &#232; quello di scrivere del codice utilizzando gli oggetti di Word, con i VSTO 2005 basta selezionare dal men&#249; di Visual Studio Table &#8211; Insert &#8211; Table. I men&#249; standard di Word o di Excel vengono visualizzati sulla barra dei menu di Visual Studio quando un documento &#232; aperto nel designer.<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 16pt"><SPAN lang=IT style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: IT"><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 16pt"><U><SPAN lang=IT style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: IT">Nuovi controlli <o:p></o:p></SPAN></U></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 16pt"><SPAN lang=IT style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: IT"><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 16pt"><SPAN lang=IT style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: IT">Rispetto alla versione 2003, adesso abbiamo la possibilit&#224; di inserire i controlli presenti nella Toolbox di Visual Studio sul documento, modificarne le propriet&#224; e gestirne gli event handler. Tutto questo in modalit&#224; design, proprio come se il documento fosse una Windows Form. <o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 16pt"><SPAN lang=IT style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: IT">I controlli windows forms generalmente hanno le stesse funzionalit&#224; che si hanno sulle Windows Form, con alcune differenze:</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 16pt"><SPAN lang=IT style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: IT"><o:p></o:p></SPAN>&nbsp;</P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 18pt; TEXT-INDENT: -18pt; LINE-HEIGHT: 16pt; mso-list: l1 level1 lfo2; tab-stops: list 18.0pt"><SPAN lang=IT style="FONT-SIZE: 10pt; FONT-FAMILY: Symbol; mso-ansi-language: IT; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore">&#183;<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN lang=IT style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: IT">non &#232; possibile settare il Tab Order dei controlli presenti su un documento;<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 18pt; TEXT-INDENT: -18pt; LINE-HEIGHT: 16pt; mso-list: l1 level1 lfo2; tab-stops: list 18.0pt"><SPAN lang=IT style="FONT-SIZE: 10pt; FONT-FAMILY: Symbol; mso-ansi-language: IT; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><SPAN style="mso-list: Ignore">&#183;<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><SPAN lang=IT style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: IT">non &#232; possibile utilizzare controlli di raggruppamento come i GroupBox, con il piccolo svantaggio di dover scrivere un po&#8217; di codice per gestire dei radio buttons.<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 16pt"><SPAN lang=IT style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: IT"><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 16pt"><SPAN lang=IT style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: IT">La possibilit&#224; di inserire controlli windows su un documento Word o su un foglio di Excel riduce drasticamente le differenze che c&#8217;erano tra lo sviluppo di applicazioni Windows e lo sviluppo di applicazioni basate sui VSTO.<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 16pt"><SPAN lang=IT style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: IT">Altra interessante novit&#224; riferita ai controlli sono i <B style="mso-bidi-font-weight: normal">View Controls</B>. I View Controls sono nuovi controlli che estendono gli oggetti nativi di Office, come gli oggetti Ranges, Cells, Bookmarks, che con la versione 2005 dei VSTO espongono eventi ed hanno funzionalit&#224; di data binding. Questi controlli sono presenti nella Toolbox di Visual Studio.<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 16pt"><SPAN lang=IT style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: IT"><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 16pt"><U><SPAN lang=IT style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: IT">Supporto Actions Pane<o:p></o:p></SPAN></U></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 16pt"><U><SPAN lang=IT style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: IT"><o:p><SPAN style="TEXT-DECORATION: none"></SPAN></o:p></SPAN></U></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 16pt"><SPAN lang=IT style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: IT"></SPAN>&nbsp;</P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 16pt"><SPAN lang=IT style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: IT">La vesione 2003 di Office ha introdotto la possibilit&#224; di sviluppare <B style="mso-bidi-font-weight: normal">smart document</B>, che permette di creare ed agganciare ad un documento Word o ad un foglio di Excel, delle funzionalit&#224; custom all&#8217;inteno di un Document Action task pane, fornendo agli utenti delle funzionalit&#224; aggiuntive per lavorare con i documenti. Chi ha sviluppato smart document con la versione 2003 dei VSTO si ricorder&#224; che occorreva implementare l&#8217;interfaccia <B style="mso-bidi-font-weight: normal">ISmartDocument</B> e scrivere codice facendo largo uso dell&#8217;istruzione <I style="mso-bidi-font-style: normal">switch</I> o <I style="mso-bidi-font-style: normal">Select Case</I> a seconda dei gusti; i VSTO 2005 Beta 2 introducono l&#8217;oggetto <B style="mso-bidi-font-weight: normal">ActionsPane</B>, che &#232; un&#8217;implementazione del Document Actions task pane, la quale permette la creazione di actions pane personalizzati in modo molto semplice:<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 16pt; mso-layout-grid-align: none"><SPAN lang=IT style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: IT; mso-bidi-font-family: 'Courier New'; mso-no-proof: yes"><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 16pt; mso-layout-grid-align: none"><SPAN lang=IT style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-ansi-language: IT; mso-no-proof: yes"><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN><SPAN style="FONT-SIZE: 10pt; COLOR: teal; FONT-FAMILY: 'Courier New'; mso-no-proof: yes">Button</SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"> bt = <SPAN style="COLOR: blue">new</SPAN> <SPAN style="COLOR: teal">Button</SPAN>();<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 16pt; mso-layout-grid-align: none"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>bt.Text = <SPAN style="COLOR: maroon">"Bottone"</SPAN>;<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 16pt; mso-layout-grid-align: none"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="COLOR: blue">this</SPAN>.ActionsPane.Controls.Add(bt); <o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 16pt"><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana"><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 16pt"><SPAN lang=IT style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: IT">Questa nuova feature ci permette quindi di creare degli user control per poi aggiungerli all&#8217;Actions Pane e programmare gli eventi come si farebbe per un&#8217;applicazione Windows Forms.<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 16pt"><SPAN lang=IT style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: IT"><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 16pt"><U><SPAN lang=IT style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: IT">Data Programming e Data Binding<o:p></o:p></SPAN></U></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 16pt"><SPAN lang=IT style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: IT"></SPAN>&nbsp;</P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 16pt"><SPAN lang=IT style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: IT">Uno degli obiettivi primari delle soluzioni basate sui VSTO 2005 &#232; la separazione dei dati dal documento (View). I dati di un documento sono i numeri, il testo e cos&#236; via, mentre la parte View &#232; riferita all&#8217;interfaccia utente delle applicazioni Office e al suo object model. <o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 16pt"><SPAN lang=IT style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: IT">Tranne che per la capacit&#224; di mappare un XML a varie celle e range i documenti Word 2003 e i fogli di Excel 2003, per propria natura, non hanno il concetto nativo di separazione dei dati: tutto &#232; sempre contenuto all&#8217;interno del documento.<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 16pt"><SPAN lang=IT style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: IT">I VSTO 2005 sfruttano il concetto di &#8220;XML data island&#8221; per ottenere questo tipo di separazione, abilitando gli sviluppatori a scrivere codice di aggiornamento dati senza modificare il codice dello strato View tramite dei data set &#8220;tipizzati&#8221;<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>mappati sull&#8217;XML data island. <o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 16pt"><SPAN lang=IT style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: IT"><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 16pt"><SPAN lang=IT style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: IT">Il data binding dei VSTO 2005 funziona allo stesso modo del data binding delle Windows Forms. <o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 16pt"><SPAN lang=IT style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: IT">Questa nuova funzionalit&#224; permette di fare il drag and drop di data source tipizzati sul documento e automaticamente vengono inclusi i controlli che sono agganciati alla sorgente dati. <o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 16pt"><SPAN lang=IT style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: IT">Facendo un esempio, tramite la nuova <B style="mso-bidi-font-weight: normal">finestra Data Sources</B> (Menu Data, poi Show Data Sources &#8211; Shortcut: Ctrl+Alt+D) se trasciniamo la tabella Categories di un<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>data source (NortwindDataSet) creato all&#8217;interno di un documento Word 2003, i Visual Studio Tools for Office 2005 creano gli oggetti necessari per eseguire il data binding, come l&#8217;oggetto <B style="mso-bidi-font-weight: normal">DataSet</B>, il <B style="mso-bidi-font-weight: normal">TableAdapter</B> e il <B style="mso-bidi-font-weight: normal">DataConnector</B> ed in pi&#249; creano i controlli che a run-time conterranno i dati. Il Binding dei dati pu&#242; essere fatto in modalit&#224; semplice, che significa associare la propriet&#224; di un controllo ad un singolo elemento dei dati, oppure in modalit&#224; complessa cio&#232; associare in binding un array di dati.<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 16pt"><SPAN lang=IT style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: IT">Tutti i View control supportano la modalit&#224; di Binding semplice tranne l&#8217;XMLNodes che &#232; un controllo collection e quindi non supporta il data binding. Il data binding complesso &#232; supportato dall&#8217;oggetto ListObject View che ha una propriet&#224; DataSource dove &#232; possibile associare una serie di colonne di un DataSet.<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 16pt"><SPAN lang=IT style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: IT"><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 16pt"><U><SPAN lang=IT style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: IT">Data Caching<o:p></o:p></SPAN></U></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 16pt"><SPAN lang=IT style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: IT"><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 16pt"><SPAN lang=IT style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: IT">Lo store dei dati attraverso il concetto di data island solitamente fornisce un&#8217;efficace meccanismo per lo sviluppo di soluzioni Office con scenari off-line. Gli oggetti che contengono i dati vengono messi in cache all&#8217;interno del documento stesso con il vantaggio di poter manipolare i dati in modalit&#224; disconnessa, fino a che la connessione con la base dati sar&#224; nuovamente disponibile. <SPAN style="mso-spacerun: yes">&nbsp;</SPAN>Ovviamente questo tipo di scenario introduce la necessit&#224; di gestire la sincronia dei dati in cache locale con quelli presenti sul server.<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 16pt"><SPAN lang=IT style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: IT">E&#8217; possibile abilitare il caching dei data all&#8217;interno del documento marcando con l&#8217;attributo <B style="mso-bidi-font-weight: normal">CachedAttribute</B> le istanze dei data container, per esempio come un dataset:<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 16pt; mso-layout-grid-align: none"><SPAN lang=IT style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-ansi-language: IT; mso-no-proof: yes"><SPAN style="mso-spacerun: yes"></SPAN></SPAN>&nbsp;</P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 16pt; mso-layout-grid-align: none"><SPAN lang=IT style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-ansi-language: IT; mso-no-proof: yes"><SPAN style="mso-spacerun: yes"></SPAN>[Microsoft.VisualStudio.Tools.Applications.Runtime.<SPAN style="COLOR: teal">CachedAttribute</SPAN>()]<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 16pt; mso-layout-grid-align: none"><SPAN lang=IT style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'; mso-ansi-language: IT; mso-no-proof: yes"><SPAN style="mso-spacerun: yes">&nbsp;</SPAN>internal</SPAN><SPAN lang=IT style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-ansi-language: IT; mso-no-proof: yes"> WordTestCS.<SPAN style="COLOR: teal">NorthwindDataSet</SPAN> northwindDataSet;<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 16pt"><SPAN lang=IT style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: IT"><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 16pt"><U><SPAN lang=IT style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: IT">Programmazione Server-Side<o:p></o:p></SPAN></U></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 16pt"><U><SPAN lang=IT style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: IT"><o:p><SPAN style="TEXT-DECORATION: none"></SPAN></o:p></SPAN></U></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 16pt"><SPAN lang=IT style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: IT"></SPAN>&nbsp;</P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 16pt"><SPAN lang=IT style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: IT">La separazione fisica tra dati e interfacce ha ridotto notevolmente tutte le problematiche che esistevano quanto sviluppavamo applicazioni Office e ne facevamo il deployment sul server. La programmazione server-side offre la possibilit&#224; di manipolare dati di un documento senza utilizzare Office 2003, usando la classe ServerDocument. Si nota subito come questa funzionalit&#224; renda scalabile una applicazione basata su Office 2003, ad esempio offrendo la possibilit&#224; di creare un documento Word da un&#8217;applicazione asp.net. <o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 16pt"><SPAN lang=IT style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: IT"><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 16pt"><SPAN lang=IT style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: IT">Possiamo concludere dicendo che finalmente possiamo scrivere applicazioni Enterprise basate sui Visual Studio Tools for Office 2005 senza aver bisogno di installare Word o Excel sul server.</SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 16pt"><SPAN lang=IT style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: IT"></SPAN>&nbsp;</P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 16pt"><SPAN lang=IT style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: IT"><o:p>Nei prossimi post entrer&#242; nei dettagli di tutte queste funzionalit&#224;, scrivendo un p&#242; di codice ed entrando nel vivo dell'azione ;)</o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 16pt"><SPAN lang=IT style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: IT"><o:p></o:p></SPAN>&nbsp;</P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 16pt"><SPAN lang=IT style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: IT"><o:p>Ciao a tutti </o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 16pt"><SPAN lang=IT style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: IT"><o:p>Gianluca</o:p></SPAN></P></BLOGHELPER></SPAN>
<P></P></BLOGHELPER></SPAN>
<P></P></bloghelper>?></span></p><img src ="http://blog.shareoffice.it/gciocci/aggbug/171.aspx" width = "1" height = "1" /></body></item><item><dc:creator>Gianluca Ciocci</dc:creator><title>Il mio primo post</title><link>http://blog.shareoffice.it/gciocci/archive/2005/03/14/153.aspx</link><pubDate>Mon, 14 Mar 2005 18:49:00 GMT</pubDate><guid>http://blog.shareoffice.it/gciocci/archive/2005/03/14/153.aspx</guid><description>Il mio primo post di prova&lt;img src ="http://blog.shareoffice.it/gciocci/aggbug/153.aspx" width = "1" height = "1" /&gt;</description></item></channel></rss>
