ASP.NET

Custom Controls e Design-Time

Talvolta può essere utile stabilire se il controllo è in esecuzione nel designer di Visual Studio oppure nel browser magari per inibire l'inutile esecuzione di parti di codice (ad esempio l'uso di sessioni o viewstate). E' sufficiente aggiungere una proprietà, ad esempio DesignMode, come questa: protected bool DesignMode{      get      {            ISite site1 = this.Site;            if (site1 != null)            {                  return site1.DesignMode;            }            return false;      }} La proprietà Site costituisce il connettore per l'iterazione tra il controllo ed il suo contenitore. In questo caso utilizziamo la proprietà DesignMode dell'interfaccia ISite per verificare, appunto, se il controllo (o il componente) si trova in modalità progettazione. powered by IMHO 1.3

posted @ martedì 31 gennaio 2006 02:27 | Feedback (9)

Debug del Design-Time di Visual Studio

Chiunque sviluppa Custom Controls per ASP.NET conosce la classe ControlDesigner, dalla quale è possibile ereditare per costruire l'output personalizzato che Visual Studio mostra a Design-Time. Ad un primo impatto sembra quasi impossibile eseguirne il debug. In realtà è molto semplice e si può fare in due modi. Io ho seguito questa strada: Aprite le proprietà del vostro progetto ed andate nella sezione "Debugging" Impostate la proprietà Debug Mode su Program e impostate lo stesso Visual Studio come applicazione di partenza. Cliccate OK Impostate i breakpoint dove necessario ed avviate Visual Studio in Debug, si aprirà una nuova istanza nella quale potete Aprire/Creare...

posted @ martedì 31 gennaio 2006 01:06 | Feedback (5)

Major Changes for Visual Web Developer 2005 ...

... and ASP.NET 2.0 from Whidbey Beta 2 to RTM !!! http://msdn.microsoft.com/asp.net/beta2/beta2rtmchanges/default.aspx Da notare l'introduzione di un nuovo attributo CodeFileBaseClass per le direttive @Page e @Control. L'attributo consente al compilatore dinamico di ASP.NET (per intenderci, quello che compila le pagine .aspx) di ottenere un riferimento alla classe base "nonna" (la pagina da cui eredita la page code o, se preferite, il code-behind) qualora questa non sia una tra: Page, Control, WebControl, UserControl, HtmlControl o HtmlGenericControl. Questo risolve il problema che si aveva con la Beta 2, dove il compilatore non era in grado, dalla pagina compilata "on-the-fly", di risolvere i controlli e gli...

posted @ giovedì 25 agosto 2005 11:48 | Feedback (10)

Hacking IIS con ASP.NET

Probabilmente Hacking è una parola un po forte dato che attualmente il suo significato più diffuso è quello di intrusione illegale nei sistemi informativi. Ma hacking significa anche studio dei sistemi informatici al fine di potenziarne capacità e funzioni. Ed è proprio questo il senso che assume nel titolo del mio ultimo articolo uscito con il numero 94 di ioProgrammo (Settembre 2005). L'articolo illustra come è possibile utilizzare gli HttpModule e gli HttpHandlers, strumenti forse ancora poco conosciuti ed utilizzati, per gestire un semplice sistema di ... bè il resto dell'articolo lo trovate in edicola !!! Segnalo inoltre gli articoli degli...

posted @ martedì 23 agosto 2005 15:16 | Feedback (8)

Pubblicata la lista delle breaking changes del .NET Framework 2.0 rispetto alla 1.1

Pubblicata la lista dei cambiamenti applicati al .NET Framework 2.0 rispetto alla versione 1.1 e aggiornata alla Beta2. Di seguito i documenti pubblicati: Differenze e problematiche di deployment con il .NET Framework 2.0 L'elenco delle Breaking Changes in formato chm Fonte: ASPItalia.com Attenzione!!! I documenti segnalati riportano ciò che è stato modificato ma non le novità!

posted @ giovedì 26 maggio 2005 12:49 | Feedback (11)

Crittografia e ASP.NET Validation Request

In risposta a questo commento di Pietro al mio post, ho deciso di scrivere un post dedicato. Il problema esposto da Pietro è che lui non riusciva a passare un parametro, criptato con l'algoritmo Rijndael, ad una nuova pagina ASP.NET, perchè subentrava in questa il ValidateRequest di ASP.NET, un controllo in grado di prevenire gli attacchi CSS (Cross-Site Scripting). Giustamente ci si chiede, che nesso ci può essere tra una stringa criptata ed un attacco CSS? In teoria nessuno, in pratica, per uno strano caso, la stringa incriminata contiene del potenziale codice dannoso. Infatti, esaminando il codice di errore, noto una strana coincidenza: ON?!? Diamo un'occhiata...

posted @ martedì 24 maggio 2005 01:44 | Feedback (8)

Classic ASP: Upgrade to ASP.NET

A causa del diverso processo di esecuzione, ASP e ASP.NET non possono integrarsi in maniera diretta. Ad esempio non è possibile condividere lo stato della sessione o sfruttare la tecnica degli include per condividere parti di codice. Durante il processo di update è possibile, però, utilizzare la tecnica denominata "URL grabbing" per riutilizzare pagine ASP all'interno delle nuove ASP.NET. Un primo passo è quello di creare un Web User Control che sostituisce l'include, ed inseriamo il seguente codice nell'evento load: HttpWebRequest webReq = (HttpWebRequest)WebRequest.Create("http://localhost/test.asp");HttpWebResponse webRes = (HttpWebResponse)webReq.GetResponse();System.IO.StreamReader stream = new System.IO.StreamReader(webRes.GetResponseStream());Response.Write(stream.ReadToEnd());stream.Close();webRes.Close(); Il codice cattura l'output generato dalla pagina test.asp e lo riporta all'interno dell'output del Web User Control. Ovviamente questo è solo un esempio...

posted @ domenica 23 gennaio 2005 18:21 | Feedback (16)

Could not find any resources appropriate for the specified culture (or the neutral culture) in the given assembly...

Se vi trovate davanti ad un errore del genere mentre tentate di recuperare dei valori dai file di risorse (.resx), in un'applicazione web, utilizzando un codice simile a questo:  ResourceManager rm = new ResourceManager("strings", Assembly.GetExecutingAssembly(), null);   assicuratevi di aver inserito in il percorso completo dei file di risorse, a differenza di quanto indicato in questa pagina (http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfSystemResourcesResourceManagerClassctorTopic4.asp). Infatti DOVETE aggiungere il namespace utilizzato nel vostro progetto, oltre alle eventuali sottodirectory contenenti i file di risorse. Ottenendo quindi:   [PROJECTNAMESPACES].[SUBDIRECTORY].[RESNAME]   Se ad esempio il namespaces (che di solito equivale al nome del progetto) è, con molta fantasia, WebProject1, la sottodirectory è languages e il prefisso dei file di risorse è strings...

posted @ lunedì 1 novembre 2004 13:33 | Feedback (104)

Asp.net canonicalization bug: test

Incuriosito dal post di Raffaele (Asp.net canonicalization bug: non fidatevi ciecamente della fix), ho effettuato alcuni test per verificare il bug del bug, ed ecco i risultati: Primo test - Impostato a zero la chiave di registro HKLM\SOFTWARE\Microsoft\NET Framework Setup\NDP\v1.1.4322\Install;- Il setup funziona regolarmente;- La patch viene regolarmente installata e, soprattuto, funziona; Secondo test - Rimosso completamente la chiave di registro HKLM\SOFTWARE\Microsoft\NET Framework Setup\NDP\v1.1.4322\Install- Il setup si blocca perchè non trova il framework installato; I test sono stati effettuati su Windows 2000 Professional, IIS 5 e ASP.NET 1.1. La situazione descritta da Raffaele non si è verificata o probabilmente non sono riuscito a riprodurla (sempre se...

posted @ martedì 12 ottobre 2004 18:13 | Feedback (13)

ASP.NET Bug

Come segnalato da Lorenzo Barbieri, Microsoft ha proposto la sua *pezza* al bug scoperto venerdì e diffuso sabato con un tam-tam tra i vari blogs.Forse la proposta è la più rapida e meno indolore, ma credo che un po di lavoro in più (non tanto) la soluzione proposta da Roberto Brunetti tramite l'utilizzo degli HttpModule sia la più efficiente perchè condivisibile tra più applicazioni su uno stesso server Web. [update] Come sottolinea ancora Roberto Brunetti il bug segnalato non riguarda solo il modulo di autenticazione/autorizzazione, seppur molto importante, ma più in generale la gestione dell'url mapping nel tag location. A voi la...

posted @ mercoledì 6 ottobre 2004 11:13 | Feedback (122)