<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</title>
        <link>http://blogs.ugidotnet.org/alexblog/category/ASP.aspx</link>
        <description>ASP</description>
        <language>it-IT</language>
        <copyright>Ermanno Goletto</copyright>
        <generator>Subtext Version 2.6.0.0</generator>
        <item>
            <title>Section VirtualEarth per MWPSK (My Web Pages Start Kit)</title>
            <link>http://blogs.ugidotnet.org/alexblog/archive/2007/09/13/88313.aspx</link>
            <description>Mi sono cimentato nella realizzazione di una Sezione per MWPSK che mi permettesse di realizzare la funzionalità "Dove siamo"/"Where we are" presente nella maggior parte siti in modo più dinamico tramite una mappa di Virtual Earth.
La scelta è caduta su una Section perchè rispetto agli Easy Control permettono di avere dei dati di configurazione che possono essere poi salvati anche se l'implementazione di una Section è maggiormente complessa rispetto a quella di un Easy Control. In questo modo però è posiibile dare all'utente la possibilità di configurare la mappa consentendo la possibiltà di inserire latitudine e longitudine del centro mappa, di definire l'altezza della sezione e opzionalmente di definire zoom, rendere fissa la mappa, inserire un Pushpin, impostare la metrica e visualizzare la MiniMap.
Inoltre in questo modo sarà possibile inserire più mappe nel sito e ciò può tornare utile nel caso ad esempio di piccole attività commerciale con più punti vendita.
Gli Easy Control sono da intersi invece come funzionatà generali senza necessità di configurazione o di persistenza di dati o come funzionalità specifiche del sito, il vantaggio è che la loro implementazione è meno complessa.
Per approfondire le linee guida per implementare Section e Easy Control si faccia riferimento ai seguenti link:
http://www.codeplex.com/MyWebPagesStarterKit/Project/FileDownload.aspx?DownloadId=6942
http://www.codeplex.com/MyWebPagesStarterKit/Project/FileDownload.aspx?DownloadId=15508
http://www.codeplex.com/MyWebPagesStarterKit/Wiki/View.aspx?title=Additional%20components%20and%20examples
Implementare una Section VirtualEarth significa di fatto realizzare un controllo che erediata dalla classe del MWPSK MyWebPagesStarterKit.Controls.SectionControlBaseClass la quale a sua volta eredita da System.Web.UI.UserControl e scrivere una classe che si occuperà gestire i dati di configurazione ereditata dalla classe MyWebPagesStarterKit.Section.
Per inserire una mappa Virtual Earth all'interno di uno UserControl occorre:

    Aggiungere un div nello UserControl all'interno del quale verrà visualizzata la mappa.
    Per poter modificare l'altezza della mappa il div sarà a sua volta contenuto all'interno di un panel:
    &amp;lt;asp:View ID="readonlyView" runat="server"&amp;gt;
       &amp;lt;asp:Panel ID="panReadonly" runat="server" Height="300px" Width="100%"&amp;gt;
          &amp;lt;div style="position: relative; width: 100%; height: 100%" id="divMap"&amp;gt;
          &amp;lt;/div&amp;gt;
       &amp;lt;/asp:Panel&amp;gt;
    &amp;lt;/asp:View&amp;gt;
    Aggiungere il meta &amp;lt;meta http-equiv="Content-Type" content="text/html; charset=utf-8"&amp;gt; nel tag head.
    Ciò consente la corretta visualizzazione di tutte le mappe, ad esempio, nel caso di una mappa del Giappone i caratteri giapponesi sarranno visualizati correttamente.
    Per aggiungere il tag è possibile utilizzare le seguenti istruzioni:
    System.Web.UI.HtmlControls.HtmlMeta meta = new System.Web.UI.HtmlControls.HtmlMeta();
    meta.HttpEquiv = "Content-Type";
    meta.Content = "text/html; charset=utf-8";
    this.Page.Header.Controls.Add(meta);
    Aggiungere il tag script per l'inclusione delle Api di Virtual Earth:
    &amp;lt;script src="http://dev.virtualearth.net/mapcontrol/v5/mapcontrol.js" type="text/javascript"&amp;gt;&amp;lt;/script&amp;gt;
    Per aggiungere il tag script include è possibile utilizzare le seguenti istruzioni:
    if (!this.Page.ClientScript.IsClientScriptIncludeRegistered(this.GetType(),"mapcontrol"))
      {
        this.Page.ClientScript.RegisterClientScriptInclude(this.GetType(), "mapcontrol", 
          "http://dev.virtualearth.net/mapcontrol/v5/mapcontrol.js");
      }
    Costruire lo script block contenente la funzione LoadMap che richiama la funzione javascript BuildMap contenuta nel file ascx dello UserControl con i paramentri impostati in sede di configurazione per il redering della mappa all'interno del div.
    Per aggiungere lo script block è possibile utilizzare le seguenti istruzioni:
    if (!this.Page.ClientScript.IsClientScriptBlockRegistered(this.GetType(), "loadmap"))
      {
        this.Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "loadmap",
          "function LoadMap()\n" +
          "{\n" +
          string.Format("BuildMap({0},{1},{2},'{3}',{4},{5},'{6}','{7}');\n",
            this._section.Latitude,
            this._section.Longitude,
            this._section.Zoom,
            this._section.Unit,
            this._section.Fixed.ToString().ToLower(),
            this._section.ShowMiniMap.ToString().ToLower(),
            this._section.PushpinTitle,
            this._section.PushpinDescription) +
            "}",
          true);
      }
    Invocare la funzione javascript LoadMap nell'evento onload del body.
    Occorre chiamare il metodo LoadMap dopo aver completato il caricamento della pagina poiché il caricamento della mappa va a modificare il DOM e può causare errori nel browser (in particolare con IE7) se le modifiche avvengono prima che tutto il DOM sia stato caricato.
    Per aggiungere lo startup script è possibile utilizzare le seguenti istruzioni:
    if (!this.Page.ClientScript.IsStartupScriptRegistered(this.GetType(), "onload"))
      {
        this.Page.ClientScript.RegisterStartupScript(this.GetType(), "onload",
          "AddOnloadEvent(LoadMap);",
          true);
      }
    La funzione javascript AddOnloadEvent si occupa di aggiungere un event handler all'evento onload del body della pagina che ospita lo UserControl ed è contenuta nel file ascx dello stesso:
    function AddOnloadEvent(fnc)
    {
      if ( typeof window.addEventListener != "undefined" )
        // Mozilla
        window.addEventListener( "load", fnc, false );
      else if ( typeof window.attachEvent != "undefined" ) {
        // IE
        window.attachEvent( "onload", fnc );
      }
      else {
        // Others
        if ( window.onload != null ) {
          var oldOnload = window.onload;
          window.onload = function ( e ) {
            oldOnload( e );
            window[fnc]();
          };
        }
        else 
          window.onload = fnc;
      }
    }

La Section è disponibile per il download al seguente link:
http://www.codeplex.com/MyWebPagesStarterKit/WorkItem/View.aspx?WorkItemId=12747
Ovviamente può ancora essere migliorata in quanto al momento non è localizzata, ma l'interfaccia di configurazione è solo in lingua inglese e non ho scritto l'help ma ho solo gestito il link ad una sezione #virtualearth-content nel file quick_guide.html.
Un'estensione interessante potrebbe essere quella di poter aggiungere più pushpin sulla mappa.&lt;img src="http://blogs.ugidotnet.org/alexblog/aggbug/88313.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Ermanno Goletto</dc:creator>
            <guid>http://blogs.ugidotnet.org/alexblog/archive/2007/09/13/88313.aspx</guid>
            <pubDate>Thu, 13 Sep 2007 01:12:42 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/alexblog/archive/2007/09/13/88313.aspx#feedback</comments>
            <slash:comments>125</slash:comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/alexblog/comments/commentRss/88313.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/alexblog/services/trackbacks/88313.aspx</trackback:ping>
        </item>
        <item>
            <title>My Web Pages Starter Kit </title>
            <link>http://blogs.ugidotnet.org/alexblog/archive/2007/09/04/88130.aspx</link>
            <description>Riassumo in questo post la mia esperienza con MWPSK, il CMS free Microsoft nato come applicazione di esempio per illustrare le potenzialità di ASP.NET 2.0.
Innanzitutto vanno chiariti gli obbiettivi di questo progetto opensource ospitato su CodePlex al seguente indirizzo http://www.codeplex.com/MyWebPagesStarterKit. MWPSK vuol essere un CMS di facile deploy quindi non basato su DB ma su file Xml che risiedono nella directory App_Data dell'applicazione semplificando così il backup e il deploy.
Il target di queto progetto sono quindi i siti che non hanno un numero evato di accessi e che devono essere manutenuti in modo semplice quindi siti personali o siti vetrina per associazioni o piccole imprese/negozi/attività.
L'idea sta nel creare pagine che diventano anche voci di menù e possono essere "indentate" per creare sottomenu (al momento non esiste la possibilità di creare pagine che non generino una voce di menù a meno di non personalizare MWPSK un esempio è disponibile al seguente http://www.codeplex.com/MyWebPagesStarterKit/WorkItem/View.aspx?WorkItemId=11268).
Le pagine poi possono contenere delle sezioni (HTML, Contact, News, Eventi, Gallery, GestBook, Links, Download, SubPages, Easy Control) se ne possono anche sviluppare di personalizzate oppure sviluppare dei controlli da inserure nelle sezioni Easy Control.
Vi sono tre tipologie di utenti gli amministratori che possono modificare il sito, gli utenti autenticati che possono visualizzare pagine precluse agli utenti anonimi e gli utenti anonimi.
E' possibile applicare dei temi e ovviamente svilupparne di propri, ma questo proposito va detto che alcuni temi (ad esempio l'ElasticOrange) non sono proprio adatti per svolgere alcune operazioni amministrative e per il momento non homvistao la possibilità di associare un tema ad un singolo utente, ma l'associazione pare sia possibile solo a livello di intero sito.
E' possibile aggiungere delle localizzazioni all'interfaccia mentre non vi è nativamente supporto per la localizzazione dei contenuti anche se al seguente link si può trovare un esempio di sezione HTML che supporta la localizzazione http://www.codeplex.com/MyWebPagesStarterKit/WorkItem/View.aspx?WorkItemId=8239.
Una nota a quanto pare non possibile pubblicare un sito MWPSK utilizzando una Virtual Directory in IIS, ma occorre creare un sito per ospitare l'applicazione.
Per vedere un esempio di sito realizzato con MWPSK si può fare riferimento a quellodel progetto stesso http://www.mwpsk.org.&lt;img src="http://blogs.ugidotnet.org/alexblog/aggbug/88130.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Ermanno Goletto</dc:creator>
            <guid>http://blogs.ugidotnet.org/alexblog/archive/2007/09/04/88130.aspx</guid>
            <pubDate>Tue, 04 Sep 2007 21:19:59 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/alexblog/archive/2007/09/04/88130.aspx#feedback</comments>
            <slash:comments>53</slash:comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/alexblog/comments/commentRss/88130.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/alexblog/services/trackbacks/88130.aspx</trackback:ping>
        </item>
        <item>
            <title>Superato Esame 70-528</title>
            <link>http://blogs.ugidotnet.org/alexblog/archive/2007/04/12/75339.aspx</link>
            <description>Oggi ho voluto cimentarmi nell'esame 70-528 Microsoft .NET Framework 2.0 - Web-Based Client Development e sono riuscito a superarlo con 982.Utilizzo ASP.NET fin dalla versione 3.0, ma visto che ultimamente mi sono dedicato allo sviluppo di un sito e a SharePoint Service 3.0 ho deciso di dedicare alcune serate ad approfondire ASP.NET 2.0.L'esame in effetti insiste molto sulle novita di ASP.NET 2.0 ovvero master, page membership, temi, tool di deployment e di configurazione inoltre non bisogna trascurare la gestione dell'autenticazione lato IIS&amp;nbsp;e la gestione per dispositivi mobile.&lt;img src="http://blogs.ugidotnet.org/alexblog/aggbug/75339.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Ermanno Goletto</dc:creator>
            <guid>http://blogs.ugidotnet.org/alexblog/archive/2007/04/12/75339.aspx</guid>
            <pubDate>Thu, 12 Apr 2007 19:27:00 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/alexblog/archive/2007/04/12/75339.aspx#feedback</comments>
            <slash:comments>4</slash:comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/alexblog/comments/commentRss/75339.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/alexblog/services/trackbacks/75339.aspx</trackback:ping>
        </item>
        <item>
            <title>Eseguire applicazioni ASP.NET su un Domain Controller</title>
            <link>http://blogs.ugidotnet.org/alexblog/archive/2006/09/28/49144.aspx</link>
            <description>Non &amp;#232; una pratica certamente consigliata il DC dovrebbe essere&amp;nbsp;un computer dedicato esclusivamente a questo scopo.Se per&amp;#242; vi trovate un cliente con SmallBusiness e senza intenzione di avere un computer dedicato potere trovarvi in questa situazione e in questo caso l'utente localmachinename\ASPNET con cui viene eseguito il processo Aspnet_wp.exe non viene trovato in quanto utente locale mentre un DC ha solo utenti di dominio.
Come spiegato nel seguente articolo&amp;nbsp;http://support.microsoft.com/kb/315158 in questo caso occorre creare un utente di dominio ad hoc e configurarlo nel machine.config.&lt;img src="http://blogs.ugidotnet.org/alexblog/aggbug/49144.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Ermanno Goletto</dc:creator>
            <guid>http://blogs.ugidotnet.org/alexblog/archive/2006/09/28/49144.aspx</guid>
            <pubDate>Thu, 28 Sep 2006 17:20:00 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/alexblog/archive/2006/09/28/49144.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/alexblog/comments/commentRss/49144.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/alexblog/services/trackbacks/49144.aspx</trackback:ping>
        </item>
        <item>
            <title>KB ASP.NET</title>
            <link>http://blogs.ugidotnet.org/alexblog/archive/2006/08/11/46156.aspx</link>
            <description>Loading Web Parts into a catalog at run time http://support.microsoft.com/kb/910446&lt;img src="http://blogs.ugidotnet.org/alexblog/aggbug/46156.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Ermanno Goletto</dc:creator>
            <guid>http://blogs.ugidotnet.org/alexblog/archive/2006/08/11/46156.aspx</guid>
            <pubDate>Fri, 11 Aug 2006 20:41:00 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/alexblog/archive/2006/08/11/46156.aspx#feedback</comments>
            <slash:comments>4</slash:comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/alexblog/comments/commentRss/46156.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/alexblog/services/trackbacks/46156.aspx</trackback:ping>
        </item>
        <item>
            <title>ASP.NET 2.0 &amp; Visual Studio .NET</title>
            <link>http://blogs.ugidotnet.org/alexblog/archive/2006/07/13/44575.aspx</link>
            <description>How to embed resources in ASP.NET 2.0 assemblies http://support.microsoft.com/kb/910445
How to use application resource files (.resx) to efficiently create a localizable ASP.NET Web application http://support.microsoft.com/kb/917414
How to switch the IDE language in Visual Studio .NET 2002, Visual Studio .NET 2003, or Visual Studio 2005 http://support.microsoft.com/kb/919487&lt;img src="http://blogs.ugidotnet.org/alexblog/aggbug/44575.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Ermanno Goletto</dc:creator>
            <guid>http://blogs.ugidotnet.org/alexblog/archive/2006/07/13/44575.aspx</guid>
            <pubDate>Thu, 13 Jul 2006 16:19:00 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/alexblog/archive/2006/07/13/44575.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/alexblog/comments/commentRss/44575.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/alexblog/services/trackbacks/44575.aspx</trackback:ping>
        </item>
        <item>
            <title>KB ASP.NET 2.0</title>
            <link>http://blogs.ugidotnet.org/alexblog/archive/2006/06/12/42669.aspx</link>
            <description>Understanding the Forms Authentication Ticket and Cookie http://support.microsoft.com/kb/910443
910444&amp;nbsp;&amp;nbsp; SSL Termination and ASP.NEThttp://support.microsoft.com/kb/910444 &lt;img src="http://blogs.ugidotnet.org/alexblog/aggbug/42669.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Ermanno Goletto</dc:creator>
            <guid>http://blogs.ugidotnet.org/alexblog/archive/2006/06/12/42669.aspx</guid>
            <pubDate>Mon, 12 Jun 2006 10:32:00 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/alexblog/archive/2006/06/12/42669.aspx#feedback</comments>
            <slash:comments>55</slash:comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/alexblog/comments/commentRss/42669.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/alexblog/services/trackbacks/42669.aspx</trackback:ping>
        </item>
        <item>
            <title>KB XP/2003, ASP.NET 2.0 e MS-DOS</title>
            <link>http://blogs.ugidotnet.org/alexblog/archive/2006/05/15/40757.aspx</link>
            <description>How to change the Volume Licensing product key on a Windows XP or a Windows 2003-based computer http://support.microsoft.com/kb/918342
Working with Web Resources in ASP.NET 2.0http://support.microsoft.com/kb/910442
MS-DOS-based programs do not run as expected on a computer that is running Windows Server 2003, Windows XP, or Windows 2000http://support.microsoft.com/kb/890067&lt;img src="http://blogs.ugidotnet.org/alexblog/aggbug/40757.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Ermanno Goletto</dc:creator>
            <guid>http://blogs.ugidotnet.org/alexblog/archive/2006/05/15/40757.aspx</guid>
            <pubDate>Mon, 15 May 2006 16:00:00 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/alexblog/archive/2006/05/15/40757.aspx#feedback</comments>
            <slash:comments>21</slash:comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/alexblog/comments/commentRss/40757.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/alexblog/services/trackbacks/40757.aspx</trackback:ping>
        </item>
        <item>
            <title>CDONTS e CDOSYS</title>
            <link>http://blogs.ugidotnet.org/alexblog/archive/2006/04/28/39621.aspx</link>
            <description>Quando si cambia il sistema operativo di server che ospita il classico sito web "vetrina" per piccole aziende bisogna tenere presente che i CDONTS a partire da XP non fanno pi&amp;#249; parte dell'installazione standard.
Ci&amp;#242; significa che se la classica paginetta dei contatti in asp usava CDONTS per inviare una mail non funzioner&amp;#224; dopo aver ripristinato il sito per esempio su un Windows 2003 Server.
In questo caso il mio consiglio &amp;#232; quello di utilizzare CDOSYS e di convertire il codice (che di solito non &amp;#232; cos&amp;#236; malettamente complesso).
Qui un articoletto con un paio di link per giustificare la riscrittura del codice&amp;nbsp;all'eventuale cliente, e un frammento di codice a cui ispirarsi:http://blogs.ugidotnet.org/alexblog/articles/39539.aspx&lt;img src="http://blogs.ugidotnet.org/alexblog/aggbug/39621.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Ermanno Goletto</dc:creator>
            <guid>http://blogs.ugidotnet.org/alexblog/archive/2006/04/28/39621.aspx</guid>
            <pubDate>Fri, 28 Apr 2006 13:25:00 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/alexblog/archive/2006/04/28/39621.aspx#feedback</comments>
            <slash:comments>28</slash:comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/alexblog/comments/commentRss/39621.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/alexblog/services/trackbacks/39621.aspx</trackback:ping>
        </item>
        <item>
            <title>KB ASP.NET 2.0 &amp; VB.NET</title>
            <link>http://blogs.ugidotnet.org/alexblog/archive/2006/03/13/36733.aspx</link>
            <description>How to use virtual path providers to dynamically load and compile content from virtual paths in ASP.NET 2.0http://support.microsoft.com/kb/910441
How to enable the "Option Strict" and "Option Explicit" statements in Visual Basic applicationshttp://support.microsoft.com/kb/911793&lt;img src="http://blogs.ugidotnet.org/alexblog/aggbug/36733.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Ermanno Goletto</dc:creator>
            <guid>http://blogs.ugidotnet.org/alexblog/archive/2006/03/13/36733.aspx</guid>
            <pubDate>Mon, 13 Mar 2006 11:30:00 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/alexblog/archive/2006/03/13/36733.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/alexblog/comments/commentRss/36733.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/alexblog/services/trackbacks/36733.aspx</trackback:ping>
        </item>
    </channel>
</rss>