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