<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/" xmlns:copyright="http://blogs.law.harvard.edu/tech/rss" xmlns:image="http://purl.org/rss/1.0/modules/image/">
    <channel>
        <title>ASP.NET</title>
        <link>http://blogs.ugidotnet.org/martinobordin/category/ASP.NET.aspx</link>
        <description>My adventures in the ASP.NET world</description>
        <language>it</language>
        <copyright>Martino Bordin</copyright>
        <generator>Subtext Version 2.6.0.0</generator>
        <item>
            <title>Accedere a siti su IIS Express dall&amp;rsquo;esterno</title>
            <link>http://blogs.ugidotnet.org/martinobordin/archive/2017/01/04/accedere-a-siti-su-iis-express-dallrsquoesterno.aspx</link>
            <description>Come sapete non è possibile, salvo &lt;a href="http://johan.driessen.se/posts/Accessing-an-IIS-Express-site-from-a-remote-computer"&gt;configurazioni&lt;/a&gt; un pò macchinose, accedere a siti ospitati su &lt;strong&gt;IIS Express&lt;/strong&gt; dall'esterno (altri PC\VM\dispositivi).

Esiste tuttavia un modo molto più semplice, che richiede l’installazione di un proxy via NPM &lt;strong&gt;npm install -g iisexpress-proxy&lt;/strong&gt; Una volta installato, basta eseguire il comando  &lt;strong&gt;iisexpress-proxy 51123 to 3000&lt;/strong&gt;&lt;code&gt;

Dove &lt;/code&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;51123&lt;/em&gt; è la porta IIS a cui il sito è raggiungibile (che è dinamica) 
&lt;/li&gt;&lt;li&gt;&lt;em&gt;3000 &lt;/em&gt;è la porta al quale il sito risponderà all’esterno, usando l’ip della scheda di rete primaria.&lt;/li&gt;&lt;/ul&gt;
Se l’ip del mio PC è 192.168.230.126, Il sito sarà ora raggiungibile dall’esterno all’indirizzo: http://192.168.230.126:3000

Su &lt;a href="https://github.com/icflorescu/iisexpress-proxy"&gt;GitHub&lt;/a&gt; trovate i dettagli del progetto.&lt;img src="http://blogs.ugidotnet.org/martinobordin/aggbug/102318.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Martino Bordin</dc:creator>
            <guid>http://blogs.ugidotnet.org/martinobordin/archive/2017/01/04/accedere-a-siti-su-iis-express-dallrsquoesterno.aspx</guid>
            <pubDate>Wed, 04 Jan 2017 17:40:57 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/martinobordin/archive/2017/01/04/accedere-a-siti-su-iis-express-dallrsquoesterno.aspx#feedback</comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/martinobordin/comments/commentRss/102318.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/martinobordin/services/trackbacks/102318.aspx</trackback:ping>
        </item>
        <item>
            <title>Javascript e parsing di QueryString..</title>
            <link>http://blogs.ugidotnet.org/martinobordin/archive/2013/08/28/javascript-e-parsing-di-querystring.aspx</link>
            <description>&lt;p&gt;&lt;font face="Arial"&gt;Oggi mi sono trovato a risolvere un'attività relativamente semplice, ma che in realtà merita un post al riguardo in quanto nasconde alcuni problemi alquanto "subdoli".&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;Sostanzialmente dovevo costruire, via Javascript, un URL con parametri in QueryString da dare "in pasto" ad una &lt;em&gt;window.open()&lt;/em&gt; (&lt;img alt="" src="/Providers/BlogEntryEditor/FCKeditor/editor/images/smiley/msn/embaressed_smile.gif" /&gt;).&lt;/p&gt;
&lt;p&gt;Ebbene, i "problemil" sono sostanzialmente:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;encoding dei valori dei parametri\ (possono contenere &amp;amp;, spazi, etc)&lt;/li&gt;
    &lt;li&gt;le funzioni native per gestire la (de)codifica delle stringhe sono inutili (vedi &lt;a href="http://unixpapa.com/js/querystring.html"&gt;qui&lt;/a&gt;)&lt;/li&gt;
    &lt;li&gt;ogni browser interpreta il tutto a modo suo (anche con comportamenti differenti da versione a versione dello stesso)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Come fare quindi? La soluzione è sempre la stessa..quando si parla di sviluppo web mai dimenticare &lt;strong&gt;JQuery&lt;/strong&gt;!&lt;/p&gt;
&lt;p&gt;Esiste infatti una &lt;u&gt;bellissima&lt;/u&gt; funzione &lt;a href="http://api.jquery.com/jQuery.param/"&gt;$.param()&lt;/a&gt; che permette di serializzare correttamente un oggetto, in modo da essere compatibile con il formato atteso dalla QueryString!&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;ES:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;img width="704" height="443" alt="JQuery Querystring" src="/images/blogs_ugidotnet_org/martinobordin/JQueryQueryString.png" /&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;font face="Arial" /&gt;&lt;/p&gt;&lt;img src="http://blogs.ugidotnet.org/martinobordin/aggbug/101650.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Martino Bordin</dc:creator>
            <guid>http://blogs.ugidotnet.org/martinobordin/archive/2013/08/28/javascript-e-parsing-di-querystring.aspx</guid>
            <pubDate>Wed, 28 Aug 2013 17:10:19 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/martinobordin/archive/2013/08/28/javascript-e-parsing-di-querystring.aspx#feedback</comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/martinobordin/comments/commentRss/101650.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/martinobordin/services/trackbacks/101650.aspx</trackback:ping>
        </item>
        <item>
            <title>Visualizzare il Viewmodel di KnockoutJS</title>
            <link>http://blogs.ugidotnet.org/martinobordin/archive/2013/04/17/visualizzare-il-viewmodel-di-knockoutjs.aspx</link>
            <description>&lt;p&gt;Ultimamente mi sto dilettando su un progetto che utilizza ASP.NET MVC in accoppiata con &lt;a href="http://knockoutjs.com"&gt;KnockoutJs&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Si tratta di un'applicazione Single-Page che, tramite AJAX, va a costruire &lt;u&gt;dinamicamente&lt;/u&gt; il ViewModel Knockout e che quindi, a seconda della navigazione compiuta dall'utente tramite richieste multiple e asincrone, può diventare "grande" a piacere e difficilmente debuggabile.&lt;/p&gt;
&lt;p&gt;Mi è quindi tornato utile questo snippet, che permette di visualizzare lo stato attuale del ViewModel, mostrando tutte le proprietà presenti e i relativi valori, in formato json: &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;div style="background-color:white;"&gt;
&lt;font color="#0000ff" face="Consolas" size="2"&gt;&lt;font color="#0000ff" face="Consolas" size="2"&gt;&lt;font color="#0000ff" face="Consolas" size="2"&gt;
&lt;p&gt;&amp;lt;&lt;font color="#800000" face="Consolas" size="2"&gt;&lt;font color="#800000" face="Consolas" size="2"&gt;&lt;font color="#800000" face="Consolas" size="2"&gt;div&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Consolas" size="2"&gt;&lt;font face="Consolas" size="2"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#ff0000" face="Consolas" size="2"&gt;&lt;font color="#ff0000" face="Consolas" size="2"&gt;&lt;font color="#ff0000" face="Consolas" size="2"&gt;style&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" face="Consolas" size="2"&gt;&lt;font color="#0000ff" face="Consolas" size="2"&gt;&lt;font color="#0000ff" face="Consolas" size="2"&gt;="&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#ff0000" face="Consolas" size="2"&gt;&lt;font color="#ff0000" face="Consolas" size="2"&gt;&lt;font color="#ff0000" face="Consolas" size="2"&gt;border&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" face="Consolas" size="2"&gt;&lt;font color="#0000ff" face="Consolas" size="2"&gt;&lt;font color="#0000ff" face="Consolas" size="2"&gt;: 2px dashed red"&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt; &lt;/p&gt;
&lt;p&gt;   &lt;font color="#0000ff" face="Consolas" size="2"&gt;&lt;font color="#0000ff" face="Consolas" size="2"&gt;&lt;font color="#0000ff" face="Consolas" size="2"&gt;&amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#800000" face="Consolas" size="2"&gt;&lt;font color="#800000" face="Consolas" size="2"&gt;&lt;font color="#800000" face="Consolas" size="2"&gt;h1&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" face="Consolas" size="2"&gt;&lt;font color="#0000ff" face="Consolas" size="2"&gt;&lt;font color="#0000ff" face="Consolas" size="2"&gt;&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Consolas" size="2"&gt;&lt;font face="Consolas" size="2"&gt;KnockoutJS ViewModel Viewer:&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" face="Consolas" size="2"&gt;&lt;font color="#0000ff" face="Consolas" size="2"&gt;&lt;font color="#0000ff" face="Consolas" size="2"&gt;&amp;lt;/&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#800000" face="Consolas" size="2"&gt;&lt;font color="#800000" face="Consolas" size="2"&gt;&lt;font color="#800000" face="Consolas" size="2"&gt;h1&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" face="Consolas" size="2"&gt;&lt;font color="#0000ff" face="Consolas" size="2"&gt;&lt;font color="#0000ff" face="Consolas" size="2"&gt;&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#0000ff" face="Consolas" size="2"&gt;&lt;font color="#0000ff" face="Consolas" size="2"&gt;&lt;font color="#0000ff" face="Consolas" size="2"&gt; &lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" face="Consolas" size="2"&gt;&lt;font color="#0000ff" face="Consolas" size="2"&gt;&lt;font color="#0000ff" face="Consolas" size="2"&gt;&amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#800000" face="Consolas" size="2"&gt;&lt;font color="#800000" face="Consolas" size="2"&gt;&lt;font color="#800000" face="Consolas" size="2"&gt;div&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Consolas" size="2"&gt;&lt;font face="Consolas" size="2"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#ff0000" face="Consolas" size="2"&gt;&lt;font color="#ff0000" face="Consolas" size="2"&gt;&lt;font color="#ff0000" face="Consolas" size="2"&gt;data-bind&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" face="Consolas" size="2"&gt;&lt;font color="#0000ff" face="Consolas" size="2"&gt;&lt;font color="#0000ff" face="Consolas" size="2"&gt;="text: ko.toJSON($root)"&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" face="Consolas" size="2"&gt;&lt;font color="#0000ff" face="Consolas" size="2"&gt;&lt;font color="#0000ff" face="Consolas" size="2"&gt;&amp;lt;/&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#800000" face="Consolas" size="2"&gt;&lt;font color="#800000" face="Consolas" size="2"&gt;&lt;font color="#800000" face="Consolas" size="2"&gt;div&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" face="Consolas" size="2"&gt;&lt;font color="#0000ff" face="Consolas" size="2"&gt;&lt;font color="#0000ff" face="Consolas" size="2"&gt;&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#0000ff" face="Consolas" size="2"&gt;&lt;font color="#0000ff" face="Consolas" size="2"&gt;&lt;font color="#0000ff" face="Consolas" size="2"&gt; &lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&amp;lt;/&lt;font color="#800000" face="Consolas" size="2"&gt;&lt;font color="#800000" face="Consolas" size="2"&gt;&lt;font color="#800000" face="Consolas" size="2"&gt;div&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" face="Consolas" size="2"&gt;&lt;font color="#0000ff" face="Consolas" size="2"&gt;&lt;font color="#0000ff" face="Consolas" size="2"&gt;&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;/font&gt; &lt;/font&gt; &lt;/font&gt;&lt;/div&gt;
&lt;p&gt;Questo un esempio di quanto verrà stampato a video:&lt;/p&gt;
&lt;p&gt; &lt;img width="1166" height="140" alt="" src="/images/blogs_ugidotnet_org/martinobordin/Windows-Live-Writer/knockout.png" /&gt;&lt;/p&gt;&lt;img src="http://blogs.ugidotnet.org/martinobordin/aggbug/101510.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Martino Bordin</dc:creator>
            <guid>http://blogs.ugidotnet.org/martinobordin/archive/2013/04/17/visualizzare-il-viewmodel-di-knockoutjs.aspx</guid>
            <pubDate>Wed, 17 Apr 2013 11:20:36 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/martinobordin/archive/2013/04/17/visualizzare-il-viewmodel-di-knockoutjs.aspx#feedback</comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/martinobordin/comments/commentRss/101510.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/martinobordin/services/trackbacks/101510.aspx</trackback:ping>
        </item>
        <item>
            <title>Sviluppare applicazioni mobile con ASP.NET MVC3</title>
            <link>http://blogs.ugidotnet.org/martinobordin/archive/2011/09/22/sviluppare-applicazioni-mobile-con-asp.net-mvc3.aspx</link>
            <description>&lt;p&gt;Come tutti sapete, la fruizione di un sito web non è più esclusiva di dispositivi Desktop, affiancati oramai da device quali smartphone e tablet di vario tipo.&lt;/p&gt;  &lt;p&gt;Offrire una User Experience degna di tale nome anche per gli utenti che accedono ai nostri siti con questi dispositivi è diventata quindi una priorità.&lt;/p&gt;  &lt;p&gt;Il team di ASP.NET fornirà con MVC 4 pieno supporto al mobile, e sono già disponibili esempi che illustrano le funzionalità della prossima versione: &lt;a href="http://www.asp.net/mvc/tutorials/aspnet-mvc-4-mobile-features"&gt;ASP.NET MVC 4 Mobile Features&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;In MVC3 è possibile generare pagine ottimizzate seguendo i seguenti passaggi.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Create un progetto MVC3 (usando indifferentemente Razor o ASPX); &lt;/li&gt;    &lt;li&gt;Scaricate, via NuGet, il package MobileViewEngines(eventualmente quello contenente i Sample, che creerà delle pagine di esempio). Il package contiene i file &lt;em&gt;MobileCapable&lt;strong&gt;Razor&lt;/strong&gt;ViewEngine&lt;/em&gt; e &lt;em&gt;MobileCapable&lt;strong&gt;WebForm&lt;/strong&gt;ViewEngine&lt;/em&gt; (sia cs che vb). Come lasciano intuire i nomi, sono l’implementazione di 2 ViewEngine basati su Razor e WebForm in grado di renderizzare viste diverse in base al dispositivo che sta richiedendo la pagina. Per essere utilizzati dal runtime di ASP.NET è necessario registrarli nel file &lt;em&gt;global.asax&lt;/em&gt; in questo modo: &lt;/li&gt; &lt;/ul&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:a43c16d9-df65-4a85-a6c5-3ee36c7535eb" class="wlWriterEditableSmartContent"&gt; &lt;div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt"&gt; &lt;div style="background: #ddd; max-height: 300px; overflow: auto"&gt; &lt;ol style="background: #ffffff; margin: 0 0 0 2.5em; padding: 0 0 0 5px;"&gt; &lt;li&gt;&lt;span style="color:#0000ff"&gt;protected&lt;/span&gt; &lt;span style="color:#0000ff"&gt;void&lt;/span&gt; Application_Start()&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;{&lt;/li&gt; &lt;li&gt;    &lt;span style="color:#2b91af"&gt;AreaRegistration&lt;/span&gt;.RegisterAllAreas();&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt; &lt;/li&gt; &lt;li&gt;    RegisterGlobalFilters(&lt;span style="color:#2b91af"&gt;GlobalFilters&lt;/span&gt;.Filters);&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;    RegisterRoutes(&lt;span style="color:#2b91af"&gt;RouteTable&lt;/span&gt;.Routes);&lt;/li&gt; &lt;li&gt; &lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;    &lt;span style="color:#2b91af"&gt;ViewEngines&lt;/span&gt;.Engines.Insert(0, &lt;span style="color:#0000ff"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af"&gt;MobileCapableRazorViewEngine&lt;/span&gt;());&lt;/li&gt; &lt;li&gt;    &lt;span style="color:#2b91af"&gt;ViewEngines&lt;/span&gt;.Engines.Insert(0, &lt;span style="color:#0000ff"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af"&gt;MobileCapableWebFormViewEngine&lt;/span&gt;());&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;}&lt;/li&gt; &lt;/ol&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt;  &lt;ul&gt;   &lt;li&gt;Scaricate, sempre via NuGet, il package 51Degrees. Questo package, come recita la descrizione, rileva i dispositivi mobili, fornisce informazioni dettagliate su questi ed effettua il redirect verso le pagine Web ottimizzate per il mobile. Quest’ultimo passaggio, tuttavia, verrà effettuato dal nostro MobileViewEngine e pertanto va rimosso. Per fare questo basta cancellare il tag &lt;em&gt;redirect&lt;/em&gt; presente nel file &lt;em&gt;51Degrees.mobi.config&lt;/em&gt; nella cartella&lt;em&gt; App_Data&lt;/em&gt; (il file è ben documentato, dategli una letta!). &lt;/li&gt; &lt;/ul&gt;    &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:fb0fe8e5-481f-4758-b913-ac847fffe79d" class="wlWriterEditableSmartContent"&gt; &lt;div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt"&gt; &lt;div style="background: #ddd; max-height: 300px; overflow: auto"&gt; &lt;ol style="background: #ffffff; margin: 0 0 0 2em; padding: 0 0 0 5px;"&gt; &lt;li&gt;&lt;span style="color:#0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515"&gt;redirect&lt;/span&gt;&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;span style="color:#ff0000"&gt;firstRequestOnly&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;true&lt;/span&gt;"&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;          &lt;span style="color:#0000ff" /&gt;&lt;span style="color:#ff0000"&gt;mobileHomePageUrl&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;~/Mobile/Default.aspx&lt;/span&gt;"&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;/li&gt; &lt;li&gt;          &lt;span style="color:#0000ff" /&gt;&lt;span style="color:#ff0000"&gt;timeout&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;20&lt;/span&gt;"&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt;          &lt;span style="color:#0000ff" /&gt;&lt;span style="color:#ff0000"&gt;devicesFile&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;~/App_Data/Devices.dat&lt;/span&gt;"&lt;span style="color:#0000ff"&gt; &lt;/span&gt;&lt;/li&gt; &lt;li&gt;          &lt;span style="color:#0000ff" /&gt;&lt;span style="color:#ff0000"&gt;mobilePagesRegex&lt;/span&gt;&lt;span style="color:#0000ff"&gt;=&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;/Mobile/&lt;/span&gt;"&lt;span style="color:#0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;li style="background: #f3f3f3"&gt; &lt;span style="color:#0000ff" /&gt;&lt;/li&gt; &lt;li&gt;&lt;span style="color:#0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515"&gt;redirect&lt;/span&gt;&lt;span style="color:#0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;/ol&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt;    &lt;ul&gt;   &lt;li&gt;A questo punto possiamo iniziare a creare le View ottimizzate per dispositivi mobile (utilizzando jQuery mobile e quant’altro) semplicemente inserendo il suffisso &lt;em&gt;Mobile&lt;/em&gt; nel nome (es: &lt;em&gt;Index.Mobile.cshtml&lt;/em&gt; o &lt;em&gt;Index.Mobile.aspx&lt;/em&gt; ). &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;a href="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/martinobordin/Windows-Live-Writer/Applicazioni-mobile-con-ASP.NET-MVC3_FDE9/image_4.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/martinobordin/Windows-Live-Writer/Applicazioni-mobile-con-ASP.NET-MVC3_FDE9/image_thumb_1.png" width="186" height="75" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Ecco quindi il risultato visualizzato su vari device:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/martinobordin/Windows-Live-Writer/Applicazioni-mobile-con-ASP.NET-MVC3_FDE9/image_8.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/martinobordin/Windows-Live-Writer/Applicazioni-mobile-con-ASP.NET-MVC3_FDE9/image_thumb_3.png" width="350" height="317" /&gt;&lt;/a&gt;&lt;a href="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/martinobordin/Windows-Live-Writer/Applicazioni-mobile-con-ASP.NET-MVC3_FDE9/image_2.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/martinobordin/Windows-Live-Writer/Applicazioni-mobile-con-ASP.NET-MVC3_FDE9/image_thumb.png" width="129" height="320" /&gt;&lt;/a&gt;&lt;a href="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/martinobordin/Windows-Live-Writer/Applicazioni-mobile-con-ASP.NET-MVC3_FDE9/Blackberry_Storm_screenshot_2.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Blackberry_Storm_screenshot" border="0" alt="Blackberry_Storm_screenshot" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/martinobordin/Windows-Live-Writer/Applicazioni-mobile-con-ASP.NET-MVC3_FDE9/Blackberry_Storm_screenshot_thumb.png" width="135" height="320" /&gt;&lt;/a&gt;&lt;a href="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/martinobordin/Windows-Live-Writer/Applicazioni-mobile-con-ASP.NET-MVC3_FDE9/iPhone_4_screenshot_2.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="iPhone_4_screenshot" border="0" alt="iPhone_4_screenshot" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/martinobordin/Windows-Live-Writer/Applicazioni-mobile-con-ASP.NET-MVC3_FDE9/iPhone_4_screenshot_thumb.png" width="123" height="320" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;PS: Per testare le pagine su dispositivi mobili potete utilizzare gli emulatori presenti nei rispettivi SDK (es: WinPhone7) o in alternativa scaricare il programma &lt;a href="http://www.springbox.com/mobilizer/"&gt;Mobilizer&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;Alla prossima.&lt;/p&gt;&lt;img src="http://blogs.ugidotnet.org/martinobordin/aggbug/100373.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Martino Bordin</dc:creator>
            <guid>http://blogs.ugidotnet.org/martinobordin/archive/2011/09/22/sviluppare-applicazioni-mobile-con-asp.net-mvc3.aspx</guid>
            <pubDate>Thu, 22 Sep 2011 11:40:24 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/martinobordin/archive/2011/09/22/sviluppare-applicazioni-mobile-con-asp.net-mvc3.aspx#feedback</comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/martinobordin/comments/commentRss/100373.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/martinobordin/services/trackbacks/100373.aspx</trackback:ping>
        </item>
        <item>
            <title>Deploy di un&amp;rsquo;applicazione web con Visual Studio 2010&amp;ndash; Creazione di un Package</title>
            <link>http://blogs.ugidotnet.org/martinobordin/archive/2010/11/24/deploy-di-unrsquoapplicazione-web-con-visual-studio-2010ndash-creazione-di.aspx</link>
            <description>&lt;p&gt;La pubblicazione di un sito web è una procedura abbastanza delicata che si compone di diversi passaggi, tra cui:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;copia di file quali dll, aspx, css, js, img, etc.. &lt;/li&gt;
    &lt;li&gt;modifiche al file di configurazione dell’applicazione (stringhe di connessione, gestione degli errori, opzioni di compilazione) &lt;/li&gt;
    &lt;li&gt;creazione\aggiornamento del database &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Anche se la soluzione più completa e personalizzabile è MSBUILD, esistono altri modi utilizzabili direttamente all’interno del nostro IDE preferito. &lt;/p&gt;
&lt;p&gt;Con la versione 2010 di Visual Studio, infatti, sono state introdotte alcune funzionalità per agevolare il deploy delle applicazioni web: &lt;strong&gt;Packages&lt;/strong&gt; e &lt;strong&gt;One-Click deployment&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;In questo post vedremo come creare un package, nel prossimo come è possibile pubblicarlo.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;h1&gt;Package&lt;/h1&gt;
&lt;h3&gt;Cos’è&lt;/h3&gt;
&lt;p&gt;Un Package non è altro che un file .zip (o una cartella) contenente tutti i file necessari alla nostra applicazione, le relative configurazioni di IIS, script di creazione\aggiornamento del database, certificati, assembly da registrare nella GAC .&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;h3&gt;Creazione di una configurazione di build&lt;/h3&gt;
La prima cosa da fare è creare una nuova configurazione di build.
&lt;p&gt;Infatti possiamo creare N package quanti sono gli ambienti in cui andremmo a pubblicare la nostra applicazione web (TEST, PRODUZIONE, etc).&lt;/p&gt;
&lt;p&gt;Cliccando su &lt;em&gt;Build-&amp;gt;Configuration Manager &lt;/em&gt;è possibile creare nuove configurazioni, anche clonandone una già esistente (es. Release) :&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/martinobordin/Windows-Live-Writer/Deploy_111EF/Configuration_Manager_2.png"&gt;&lt;img height="452" border="0" width="716" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/martinobordin/Windows-Live-Writer/Deploy_111EF/Configuration_Manager_thumb.png" alt="Configuration_Manager" title="Configuration_Manager" style="background-image: none; border-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px;" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;Configurazione web&lt;/h3&gt;
&lt;p&gt;Per configurare il package  basta cliccare sulle proprietà del progetto della nostra applicazione, quindi su &lt;em&gt;Package/Publish Web.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;La maschera che si presenterà sarà simile a questa:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/martinobordin/Windows-Live-Writer/Deploy_111EF/Package_Publish_Web_4.png"&gt;&lt;img height="574" width="772" alt="" src="/images/blogs_ugidotnet_org/martinobordin/Windows-Live-Writer/Deploy_111EF/Package_Publish_Web_4(1).png" /&gt;&lt;br /&gt;
&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Da qui è possibile impostare i vari parametri per creare il nostro package, tra cui:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;quali file pubblicare e quali escludere (simboli di debug, file in App_data) &lt;/li&gt;
    &lt;li&gt;abilitare il deploy del database &lt;/li&gt;
    &lt;li&gt;replicare le impostazioni di IIS (se stiamo utilizzando il nostro IIS locale come server di sviluppo) &lt;/li&gt;
    &lt;li&gt;indicare se creare un file zip e dove salvarlo oppure la cartella di destinazione &lt;/li&gt;
    &lt;li&gt;indicare il website e il nome dell’applicazione da creare sul server di destinazione &lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Configurazione SQL&lt;/h3&gt;
&lt;p&gt;Se abilitato, è possibili eseguire automaticamente il deploy del database.&lt;/p&gt;
&lt;p&gt;Per la configurazione basta cliccare su &lt;em&gt;Package/Publish Web.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Si presenta quindi una maschera in cui vanno inserite le stringhe di connessione utilizzate dalla nostra applicazione (possiamo anche importarle direttamente dal web.config):&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/martinobordin/Windows-Live-Writer/Deploy_111EF/Package_Publish_DB_1_4.png"&gt;&lt;img height="305" border="0" width="946" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/martinobordin/Windows-Live-Writer/Deploy_111EF/Package_Publish_DB_1_thumb_1.png" alt="Package_Publish_DB_1" title="Package_Publish_DB_1" style="background-image: none; border-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px;" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Nella sezione &lt;em&gt;“Database Entry Details”&lt;/em&gt; e per ogni stringa di connessione possiamo indicare :&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;la stringa di connessione di destinazione da utilizzare per eseguire gli script (NB: Come sottolineato nella maschera di inserimento, questa stringa non andrà a sostituire quella presente nel web.config) &lt;/li&gt;
    &lt;li&gt;generare automaticamente gli script DDL e\o DML in base ad un database di origine (di default è quello indicato nel web.config) &lt;/li&gt;
    &lt;li&gt;aggiungere eventuali script specificando l’ordine in cui vanno eseguiti &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/martinobordin/Windows-Live-Writer/Deploy_111EF/Package_Publish_DB_2_2.png"&gt;&lt;img height="650" border="0" width="933" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/martinobordin/Windows-Live-Writer/Deploy_111EF/Package_Publish_DB_2_thumb.png" alt="Package_Publish_DB_2" title="Package_Publish_DB_2" style="background-image: none; border-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px;" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;Modifiche del web.config&lt;/h3&gt;
&lt;p&gt;Il file di configurazione che dovremo utilizzare ovviamente è diverso da quello che utilizziamo per lo sviluppo. Dovremo infatti cambiare alcuni valori quali la stringa di connessione, gli end-point dei nostri servizi, abilitare i custom error e disabilitare l'opzione di debug.&lt;/p&gt;
&lt;p&gt;Niente di più semplice! Se clicchiamo con il tasto dx sul file di configurazione noteremo la voce “Add config transformation”. Selezionandola verranno automaticamente creati tanti web.[BUILD].config  quante sono le configurazioni di build specificate. Se ne apriamo uno vedremo alcuni commenti che spiegano come va utilizzato, ad esempio come sostituire il valore della stringa di connessione. Per l’elenco completo delle operazioni di trasformazioni disponibil vi rimando a &lt;a target="_blank" href="http://go.microsoft.com/fwlink/?LinkId=125889"&gt;MSDN&lt;/a&gt;)&lt;/p&gt;
&lt;h3&gt;Creazione del package&lt;/h3&gt;
&lt;p&gt;Bene, siamo ora pronti a creare il nostro package. Su Esplora Soluzioni, clicchiamo con il tasto destro sulla nostra applicazione, quindi su “Build deployment package”:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/martinobordin/Windows-Live-Writer/Deploy_111EF/Build_Deployment_Package_2.png"&gt;&lt;img height="439" border="0" width="373" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/martinobordin/Windows-Live-Writer/Deploy_111EF/Build_Deployment_Package_thumb.png" alt="Build_Deployment_Package" title="Build_Deployment_Package" style="background-image: none; border-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px;" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;font&gt;  &lt;/font&gt;
&lt;p&gt;&lt;font&gt;&lt;font&gt;Nel prossimo post vedremo i possibili modi per pubblicare il package.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;font&gt;&lt;font&gt;  &lt;/font&gt;&lt;/font&gt;
&lt;p&gt;&lt;font&gt;&lt;font&gt; &lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font&gt;&lt;font&gt;&lt;span&gt;Alla prossima!&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;img src="http://blogs.ugidotnet.org/martinobordin/aggbug/99508.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Martino Bordin</dc:creator>
            <guid>http://blogs.ugidotnet.org/martinobordin/archive/2010/11/24/deploy-di-unrsquoapplicazione-web-con-visual-studio-2010ndash-creazione-di.aspx</guid>
            <pubDate>Wed, 24 Nov 2010 22:48:17 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/martinobordin/archive/2010/11/24/deploy-di-unrsquoapplicazione-web-con-visual-studio-2010ndash-creazione-di.aspx#feedback</comments>
            <slash:comments>2</slash:comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/martinobordin/comments/commentRss/99508.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/martinobordin/services/trackbacks/99508.aspx</trackback:ping>
        </item>
        <item>
            <title>Usare i tag inline ASP.NET</title>
            <link>http://blogs.ugidotnet.org/martinobordin/archive/2010/10/21/usare-i-tag-inline-asp.net.aspx</link>
            <description>&lt;p align="left"&gt;Ho da poco ripreso ASP.NET e con l’occasione voglio elencare i tag inline messi a disposizione nelle pagine aspx per compiere operazioni “particolari”.&lt;/p&gt;  &lt;p align="left"&gt;Questi tag possono tornare utili in molte occasioni, evitando di appesantire il file di code-behind con istruzioni inerenti la semplice visualizzazione di dati. &lt;/p&gt;  &lt;p align="left"&gt;Riporto inoltre i link a MSDN relativi ad i singoli tag.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;     &lt;h2&gt;&amp;lt;%= ... %&amp;gt;&lt;/h2&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Utilizzato per visualizzare testo, il funzionamento è del tutto analogo all’istruzione Response.Write.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;The Date is now &amp;lt;%= DateTime.Now.ToShortDateString() %&amp;gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/6dwsdcf5%28VS.71%29.aspx" target="_blank"&gt;MSDN&lt;/a&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;     &lt;h2&gt;&amp;lt;% ... %&amp;gt;&lt;/h2&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Permette di definire codice che verrà eseguito lato server (equivalente al tag &amp;lt;script runat=”server”&amp;gt; ).   &lt;br /&gt;Lo riporto per completezza ma vi consiglio di evitare di usarlo in quanto tutto (e molto di più)  si può ottenere in modo più semplice e pulito utilizzando il file di code-behind (SoC).&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&amp;lt;% if (User.IsInRole("admin")) { %&amp;gt;     &lt;br /&gt; Hello admin!      &lt;br /&gt;&amp;lt;% } else { %&amp;gt;      &lt;br /&gt; Hello user!      &lt;br /&gt;&amp;lt;%} %&amp;gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/ms178135%28vs.80%29.aspx" target="_blank"&gt;MSDN&lt;/a&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;     &lt;h2&gt;&amp;lt;%# .. %&amp;gt;&lt;/h2&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Utilizzato nelle espressioni di binding in accoppiata con Eval (binding one-way\read-only) e Bind (binding two-way). &lt;/p&gt;  &lt;p&gt;Queste espressioni vengono risolte quando viene chiamato il metodo Databind dei controlli che lo supportano (es: GridView, Repeater, etc)&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&amp;lt;asp:Repeater ID="rptCustomers" DataSourceID="customersSource" runat="server"&amp;gt;     &lt;br /&gt;    &amp;lt;ItemTemplate&amp;gt;      &lt;br /&gt;        &amp;lt;%# Eval("FirstName") %&amp;gt;      &lt;br /&gt;    &amp;lt;/ItemTemplate&amp;gt;      &lt;br /&gt;&amp;lt;/asp:Repeater&amp;gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/ms178366.aspx" target="_blank"&gt;MSDN&lt;/a&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;     &lt;h2&gt;&amp;lt;%$ ... %&amp;gt;&lt;/h2&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Permette di leggere valori dal file di configurazione o dai file di risorsa della vostra applicazione web. &lt;/p&gt;  &lt;p&gt;Sono utilizzati soprattutto nei controlli “*Datasource” ma possono tornare utili in altre circostanze.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&amp;lt;asp:SqlDataSource ID="userSource" runat="server" ConnectionString="&amp;lt;%$ ConnectionStrings:DBConn %&amp;gt;" SelectCommand="SELECT * FROM [Users]" /&amp;gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;pre&gt;&amp;lt;asp:Label id="lblWelcome" runat="server" text="&amp;lt;%$ Resources: Messages, Welcome%&amp;gt;" /&amp;gt;&lt;/pre&gt;
&lt;/blockquote&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/d5bd1tad.aspx" target="_blank"&gt;MSDN&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;h2&gt;&amp;lt;%-- ... –%&amp;gt;&lt;/h2&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p align="left"&gt;Rappresenta semplicemente un commento lato server.. si differenzia dai “normali” commenti HTML dal fatto che non verrà mai renderizzato e quindi non sarà accedibile da parte dell’utente nemmeno se visualizza l’HTML della pagina.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;&amp;lt;asp:Label ID="lblUser" runat="server" /&amp;gt;
    &lt;br /&gt;    &amp;lt;%—You can’t see me!!--%&amp;gt;

    &lt;br /&gt;    &amp;lt;asp:LinkButton ID="lbNew" Text="New" runat="server" /&amp;gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p align="left"&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/4acf8afk.aspx" target="_blank"&gt;MSDN&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;h2 align="left"&gt;&amp;lt;%@ ... %&amp;gt;&lt;/h2&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p align="left"&gt;E’ un tag “particolare” che dichiara una direttiva di pagina, cioè un’istruzione speciale  utilizzata dal compilatore per renderizzare pagine ed user control.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p align="left"&gt;&amp;lt;%@ Page Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" Title="Home Page" %&amp;gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p align="left"&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/xz702w3e%28VS.80%29.aspx" target="_blank"&gt;MSDN&lt;/a&gt;&lt;/p&gt;

&lt;p align="left"&gt; &lt;/p&gt;

&lt;p align="left"&gt;Spero che questo promemoria vi torni utile!&lt;/p&gt;

&lt;p align="left"&gt;Alla prossima! &lt;img style="border-bottom-style: none; border-right-style: none; border-top-style: none; border-left-style: none" class="wlEmoticon wlEmoticon-smile" alt="Sorriso" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/martinobordin/Windows-Live-Writer/8edfe5e043ea_11D55/wlEmoticon-smile_2.png" /&gt;&lt;/p&gt;&lt;img src="http://blogs.ugidotnet.org/martinobordin/aggbug/99380.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Martino Bordin</dc:creator>
            <guid>http://blogs.ugidotnet.org/martinobordin/archive/2010/10/21/usare-i-tag-inline-asp.net.aspx</guid>
            <pubDate>Thu, 21 Oct 2010 22:12:10 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/martinobordin/archive/2010/10/21/usare-i-tag-inline-asp.net.aspx#feedback</comments>
            <slash:comments>2</slash:comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/martinobordin/comments/commentRss/99380.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/martinobordin/services/trackbacks/99380.aspx</trackback:ping>
        </item>
    </channel>
</rss>