ASP e ASP.NET

Teoricamente dovrebbe servire per informazioni sull'ASP.NET. Ma visto che esistono ancora parecchi siti in ASP e tutto sommato mi capita ancora di usarlo ogni tanto, ci schiafferò dentro - se capita - qualche informazioni su ASP classico.

MWPSK - SitemapEditor Extension

Qualche giorno fa ho rilasciato una estenzione per il (quasi) famoso CMS Open Source targato Microsoft. Lo scopo di questa estenzione estensione, come dice bene il nome, è quello di ampliare le funzionalità di base del SiteMap Editor, mettendo ora in condizione il CMS di fare quanto segue: Supportare la data di ultima modifica di una pagina Sapere in che livello si trova un dato nodo Sapere quale è il genitore (anchestor  ancestor) del nodo corrente Supportare la possibilità di pagine virtuali tramite un comando "Copia" Per tutti coloro i...

posted @ mercoledì 20 agosto 2008 12:17 | Feedback (2)

Informazioni di debug mancanti o problemi di ottimizzazione durante il debug di una Web Application

Errori di windos, errori di visual studio ... i software sono programmi fatti da persone. Errare è umano, quindi non aspettiamoci che i software siano perfetti. Ecco un errore strano di visual studio 2008 che mi è capitato giusto ieri: The following module was built either with optimizations enabled or without debug information. La soluzione semplice è stata quella di cancellare la dll incriminata dalla cartella bin del progetto ASP.Net, entrato nei reference del progetto e rimosso il collegamento alla dll, quindi entrato di nuovo nello stesso pannello e aggiunto i riferimenti. Adesso tutto è tornato a funzionare, ma non saprò...

posted @ mercoledì 28 maggio 2008 09:30 | Feedback (0)

Una migliore gestione degli HttpHandler

In questi giorni stavo lavorando su un HttpHandler che gestisse i file html, per costruire un filtro che mi consentisse la migrazione di un sito statico ad uno dinamico. Non voglio stare a riportare dettagli inutili sulle scelte progettuali o sul perchè non abbia utilizzato un HttpModule, piuttosto soffermarmi su un limite del Framework e dell'impossibilità di poter spostare la gestione da un HttpHandler all'altro nel caso occorra. Faccio un esempio. Nel mio Handler avevo la necessità di gestire l'estenzione .html e .htm, verificando l'esistenza di un file di egual nome ma con estenzione .aspx. In tal caso dovevo...

posted @ lunedì 3 marzo 2008 12:58 | Feedback (4)

ASP.Net My Web Page Starter Kit Embed Resource

Trovare un CMS open source (quindi gratuito) scritto in C# 2,0, che non ha bisogno di un database per l'archiviazione dei dati non è facile. Su piattaforma ASP.Net, non ci sono tante soluzioni, come per ogni piattaforma Linux e Microsoft tizio ha fatto un grande lavoro, quando hanno liberato la MWPSK. Una carenza in generale delle pagine ASP.Net e del framework e della gestione dei temi, è che non è possibile limitare l'uso di uno specifico file ad una specifica pagina. Questo significa che tutte le risorse presenti sotto una data cartella di un tema, vengono...

posted @ sabato 2 febbraio 2008 22:55 | Feedback (0)

Anno nuovo, sessioni nuove

Finalmente con piacere vedo che qualcosa più vicino a casa mia si inizia a fare. Mi sono lamentato tanto in passato che non posso non partecipare a questa sessione che si terrà a L'Aquila il 15 gennaio prossimo su ASP.Net 3.5 e IIS 7.0 Sperando che non nevichi e che non debba dare qualche passaggio a dei pinguini infreddoliti, io ci vengo (prov. di Chieti). Fonte: Evento Microsoft ASP.Net 3.5

posted @ martedì 18 dicembre 2007 22:01 | Feedback (0)

Proteggere il proprio codice

Questo è un problema che ci porteremo dietro all'infinito. A tal proposito in questi giorni stavo valutando dei tool di offuscazione e di licensing. Ne ho trovati due estremamente interessanti dal costo nemmeno tanto proibitivo rispetto ai must segnalati da Microsoft che costano una "fortuna" per i poveri singoli sviluppatori. Il primo si chiama .Net Reactor. Oltre ad offuscare fa uso di una tecnlogia proprietaria chiamata Necrobit che dovrebbe assicurare il file una volta per tutte. Per il momento mi sono limitato ad offuscare e testare l'applicazione. E sembra che funzioni. Ho poi passato la dll al Reflector e anche...

posted @ venerdì 29 giugno 2007 14:03 | Feedback (0)

Server Application Unavailable e IIS6

Ho pubblicato un post / articolo su un problema relativo all'application pool di IIS6. L'articolo è questo "Server Application Unavailable e IIS6" e lo trovate sul nuovo blog che sto aprendo.

posted @ domenica 6 maggio 2007 16:44 | Feedback (0)

Alla ricerca dei problemi sotto IIS7 con il FREB

Ricercare problemi non è una cosa semplice, indipendentemente dall'ambiente in cui ci si trova. Oggi i programmatori accorti si sono resi conto che è necessario scrivere dei file di log per poter manifestare lo stato di errore, ma dal file a capirci qualcosa di acqua sotto i ponti ce ne passa. Specie se poi i file di log sono un ammasso di informazioni "accodate" e "relazionate" tra loro, ma che in un semplice file di testo diventano incomprensibili. IIS7 , fortunatamente ha rivisitato un pochino questo sua parte, e in aggiunta al tradizionale file di log (il cosiddetto RAW Log) ha...

posted @ sabato 21 aprile 2007 15:36 | Feedback (1)

Errore MSB6006: "aspnet_merge.exe" exited with code 1

Per tutti i neofiti del Web Deployment Project, c'è sicuramente da dire che al primo impatto e alla prima build possono scappare fuori problemi di diversa natura. Uno di questi è l'errore Error MSB6006: "aspnet_merge.exe" exited with code 1. In perfetto stile Microsoft, il codice di per sè non dice assolutamente nulla. Questo è dovuto al livello di "verbosità" su cui VS 2005 imposta l'MS-Build. Basta quindi camniarlo nelle opzioni di VS, sotto la voce Project and solutions, e il gioco è fatto. Per gran parte delle volte questo tipo di errore è dovuto al fatto che, riunendo sotto un unico assembly...

posted @ martedì 17 aprile 2007 23:23 | Feedback (0)

Installare e configurare Microsoft Visual Source Safe 2005 e l’accesso remoto via Internet

Questo articolo è una traduzione con alcuni commenti personali sull'esperienza che ho avuto nell'usare il Remote Access di Visual Source Safe 2005. L'articolo lo trovate qui.

posted @ sabato 10 marzo 2007 16:50 | Feedback (0)

SQL Express, le User Instances e problemi con le pagine ASP.Net

Data la mia recente esperienza di perdita di tempo con problemi legati alle User Instance di SQL Express mi sono preso la briga di cercare di spiegare al meglio cosa mi è successo e cosa sono queste User Instance, così che se almeno qualcuno incappa nel mio stesso problema, non perde come me ore preziose di tempo a cercare di risolvere il problema. L'articolo è pubblicato qui.

posted @ mercoledì 28 febbraio 2007 17:52 | Feedback (0)

Come perdere una giornata di tempo su un errore apparentemente stupido.

E' da questa mattina alle 8 che sto sbattendo le corna sull'errore "Login failed for user 'NT AUTHORITY\NETWORK SERVICE'" su IIS7. Alle prime sembra una cosa idiota. Mancano i permessi per l'utente in questione. Eppure vi garantisco che i permessi c'erano, tutti e pure sulla cartella App_Data dove sta il database. Insomma l'Integrateed Security non ne voleva sapere e di punto in bianco non riuscivo più a leggere i dati in quel maledetto db SQL Express. Rassegnato mi decido alle 15:00 di contattare il supporto tecnico Microsoft perchè non sò più che pesci pigliare .... Il tecnico poco fa mi chiama, gli...

posted @ lunedì 26 febbraio 2007 17:17 | Feedback (2)

Unable to start debugging on the web server

Questo simpatico errore che normalmente su IIS 5.1 (alias Windowx XP Pro) non viene fuori, su Vista è uno standard per via della migliorata sicurezza del nuovo sistema operativo. Una risoluzione al volo, senza troppi giri di parole, se non altro per far continuare a funzionare il proprio lavoro senza troppi calendari sprecati, è quella di aprire l'IIS manager, andare sulla Authentication Tab e abilitare la WIndows Authentication di deafult disabilitata. Premendo F5 dentro a VS il progetto tornerà a fare il debug senza problemi.

posted @ lunedì 26 febbraio 2007 10:56 | Feedback (0)

Debug di applicazioni ASP con Vista e IIS7

Quando scritto in questo mio precedente post è perfettamente valido anche nella nuova configurazione. Ricordarsi però di andare dentro la configurazione di asp, nodo debug, e abilitare – come del resto bisognava fare anche per IIS 6 – la voce Enable Server-side debugging, di default false (mentre mi pare di ricordare fosse true su IIS 5.1 e IIS 6.0.

posted @ sabato 3 febbraio 2007 15:11 | Feedback (8)

Aggiornamento di Visual Studio 2005 per Windows Vista

Sono abbastanza restio alle Beta in genere, tuttavia anche se – almeno in un primo momento – avevo deciso di non installare la fix in questione perché sembrava risolvesse problematiche legate esclusivamente a Vista e alla UAC abilitata, mi sono poi reso conto che andando su apri sito web, VS non era in grado di accedere al Metabase di IIS ed enumerare i siti web e di conseguenza aprire una soluzione locale.Continuava sempre a dire che non ero membro del gruppo Administrator, quando invece sto tutt'ora lavorando con l'unico utente creato in fase di setup che appartiene di default a...

posted @ mercoledì 31 gennaio 2007 20:51 | Feedback (0)

IIS7 e le vecchie applicazioni legacy asp

Siamo nel 2007, vero. E' uscito Windows Vista, vero. Siamo alla versione 2.0 del frame work e tra poco uscirà pure la 3.0, vero. Ma come al solito il tempo tiranno non ti dà la possibilità di cambiare tutte le pagine scritte in passato, anche perché come al solito sono attività che non ti ripaga nessuno, a parte un codice maggiormente mantenibile e delle performance in più. Detto questo, i problemi di fondo che ci furono anche con il passaggio ad IIS 5.1 o 6.0 – parlo di applicazioni ASP che utilizzano il vecchio e spartano Microsoft Access - erano sempre...

posted @ mercoledì 31 gennaio 2007 15:50 | Feedback (23)

IIS7, non male davvero

Devo dire non male davvero. Finalmente è stato migliorata l'interfaccia di gestione, la stabilità. Insomma hanno fatto un bel lavoro. Una tra le cose che sicuramente apprezzo di più è quella - finalmente - di poter creare un sito web avente come local path un disco remoto. Era ora!!! Finalmente posso lasciare i files sul NAS. Da notare che il tracing non fa parte di quelle caratteristice installate di default, (per lo meno se scegliete l'installazione personalizzata non è spuntato) e quindi se volete evitare di modificare l'installazione, vi conviene sbirciare un attimino dentro al corposo tree-node con tutte le caratteristiche...

posted @ martedì 30 gennaio 2007 11:49 | Feedback (3)

La mia prima esperienza con il GAC

Tra il leggere, l'immagazzinare informazioni e poi usarle, come al solito di differenza ce ne passa un oceano. Oggi stavo da un cliente che mi ha chiamato per delle consulenze (ok, si mi sono rimesso a lavoro - ho ancora un sacco di difficoltà, ma spero di superarle a breve) e mi espone - tra le varie perplessità - "Sai vorrei creare una dll da riclicare per dei progretti proprio come facevo per VB6". Al che prima cosa che mi viene in mente è GAC ... e gli spiego cosa è ... a cosa serve, come fare per registrare i componenti...

posted @ venerdì 24 novembre 2006 14:23 | Feedback (2)

Un buon trucchetto da ricordare

Corrado ne sà sempre una più del diavolo ... chissà mai se un giorno il diavolo farà anche a noi dono di 1/100^10 della sua bravura :) Intanto il suo trucchetto su come modificare una collection lasciandola enumerabile è raggiungibile al link sopra riportato.

posted @ domenica 20 agosto 2006 17:32 | Feedback (0)

Quando il Mutex non vuole essere creato

Devo dire che per quanta poca esperienza abbia ancora in fatto di .Net, questo errore era la prima volta che mi appariva a video. E la cosa buffa di tutto il discorso era che chiamando la stessa pagina, ma da una virtual directory differente, tutto funzionava perfettamente. San Google aiutami tu!Ricerco per "Mutex Could not be Created" ... e similari ... e dopo tonnellate di post inutili, finalmente la risposta più - apparentemente - idiota in termini di complessità della risoluzione è quella che invece ha funzionato. In parole povere: 1) Chiudere Visual Studio2) Cancellare tutti i file temporanei sotto %windir%\Microsoft.Net\Framework\v2.0.?????\Temporary ASpNET pages3)...

posted @ martedì 1 agosto 2006 18:15 | Feedback (0)

Come conoscere il nome del controllo che ha scatenato il postback

E' un semplice link, utile però, perchè ho imparato una cosa nuova anche io.

posted @ sabato 24 giugno 2006 10:15 | Feedback (4)

Un template "classico" di ASP per VS 2005

Anche se Lorenzo aveva già postato la cosa, io l'anno scorso non cero. Dato che il mio bel diario deve tornare utile anche a me e non devo ricordarmi di dove diavolo ho letto di questo o di quello, ripropongo anche io il link per il post di Mikhail nel quale fornisce un template per ASP Classico da usare sotto VS 2005. Si lo sò, ASP classico dovrebbe considerarsi morto, eppure c'è chi lo usa ancora e chi è costretto ad utilizzarlo. Che volete. Ognuno ha le sue rogne.  

posted @ mercoledì 14 giugno 2006 00:04 | Feedback (5)

Fare il debug di applicazioni ASP classic con Visual Studio 2005

Ok, il post, considerata l'epoca storica non sarebbe nemmeno degno di nota, però sono quasi convinto che ci sono ancora tonnellate di codice scritte in ASP che continuano a funzionare egregiamente e che difficilmente verranno convertite a breve. Un esempio è il codice sul quale sto rimettendo mano ora, congelato 5 anni fa. Il cliente si è accorto che aveva bisogno di una piccola modifica (Se, piccola, vabbeh!!!!) Serve quindi un modo per debuggare anche quelle linee di codice, e se per il VS 2003 esisteva un bel bottoncino che faceva tutto lui, per il VS 2005 la cosa non è...

posted @ martedì 13 giugno 2006 13:51 | Feedback (2)

La buona regola del "x = null"

Venendo dal mondo VB, la regola migliore che c'era per liberare memoria era quella di appicciare a fondo funzione - dove occorreva - un bel set x = nothing, così che oggetto particolarmente pesanti venivano scaricati dalla memoria e niente problemi di appesantimento del pc o crash inattesi, overflow ecc. ecc. Il .Net framework sicuramente ha cambiato molto in questo, grazie all'implementazione della Garbage Collection (alias GC), una specie di spazzino h24 che gira per il framework e butta via quello che non serve. Tuttavia, secondo me, Microsoft non è stata molto chiara su come e quando questo spazzino lavora, ma soprattuto su...

posted @ venerdì 26 maggio 2006 18:36 | Feedback (4)

Come seleziono una certa stringa di connessione per l'uso locale e una per il server remoto?

Visto che nell'ultimo mese avrò letto questa domanda almeno una 10ina di volte sul newsgroup di asp.net, visto che mi si sono atrofizzate le dita a risponderci, faccio questo post, nella speranza che qualche d'uno di quelli che posta questo genere di domande prima o poi legga pure la risposta. Avere più connessioni è perfettamene lecito, specie quando ci si trova in una situazione tipo ambiente di sviluppo e server di produzione, dove è quasi sempre impossibile che i nomi delle risorse e i nomi utenti coincindano. Come fare allora? Cambiare tutte le volte il web.config? Avere un file per il server...

posted @ venerdì 12 maggio 2006 13:15 | Feedback (0)

Finalmente è arrivato ...

Scott in un suo articolo ha annunciato finalmente il rilascio di VS 2005 Web Application Project V1.0. Il link rimanda direttamente al tool, ma la notizia ovviamente l'ho appresa dal blog di Scott Guthrie. Personalmente mi trovo bene con il modello di ASP.net 2005, ma non nascondo che in qualche occasione la necessità di un vecchio sistema alla 2003 sarebbe potuto tornare più utile. In questo suo altro articolo, invece, propone due cose di cui una estremamente interessante che mi riprometto (chissà se ci riuscirò davvero) di provare nei prossimi giorni. Si tratta di un controllo di un tal James per la logging lato...

posted @ mercoledì 10 maggio 2006 09:49 | Feedback (2)

Ci ho provato, ma è stato inutile: le webform non sono per me

Ebbene si, ci ho provato, ma non c'è stato niente da fare, le webform proprio non le digerisco. In particolare il fatto che i controlli debbano essere creati nella Init, per poi essere validati immediatamente dopo, controllare se la pagina è in postback, sapere se è validata, non poter usare la collection Request.Form. Insomma, devo essere onesto, Microsoft poteva sicuramente ingegnarsi un pochetto di più e rendere meno ostico l'uso dei suoi validator. Detto questo, se consideriamo che comunque per essere compatibile con i browser, i validator devono comunque produrre codice ECMAScript o Javascript che dir si voglia, allora tanto vale continuare...

posted @ domenica 2 aprile 2006 17:20 | Feedback (4)

Guarda come ti valido il checkbox

Dopo diversi post che non c'entrano un fico secco con la programmazione, faccio la mia opera pia del 29 marzo ore 0.27 A.M. Pubblico un articoletto veloce veloce su come creare un custom validator per un checkbox in ASP.Net. A qualcuno tornetà utile, a me lo è stato di sicuro :)

posted @ mercoledì 29 marzo 2006 01:29 | Feedback (1)

Alcuni appunti su ASP.net

Sò che non è nulla di nuovo, ma questo è il mio diario dove ci scrivo quelle cose di cui dovrei ricordarmi. Nella fattispecie, devo ricordarmi, quando scrivo in ASP.Net che: 1) Il ViewState, esisterà sempre e comunque ogni qual volta che esiste un controllo con l'attributo runat="server";il ViewState è disabilitale con la direttiva Page EnableViewState="false", ma sempre un minimo di "sporcizia" rimane; 2) I controlli che devono avere l'attributo runat="server" non possono essere creati dinamicamente, altrimenti l'eventuale codice javascript server che il .net framework deve aggiungere, non riesce ad aggiungerlo. Questo vale tanto per un controllo aggiunto ad una collection tal de...

posted @ sabato 4 marzo 2006 18:53 | Feedback (3)

Implementare una collection di elementi personalizzati per il web.config

Mi sento in vena dattilografica ... ed ecco qua il mio nuovo articolo (che sia il caso di cambiare lavoro??).

posted @ venerdì 20 gennaio 2006 19:14

I membri statici sono condivisi tra tutte le istanze dichiarate nel codice

Direte che ho fatto una scoperta idiota. In realtà no. Proprio perchè il mio blog lo intendo come un diario dove appuntare tutte le pifferate che combino, ritengo opportuno scriverci pure questo. In realtà sapevo che i membri statici erano condivisi, ma il problema vero è che avevo scritto un pezzo di codice - errato - dove riuscivo ad avere un valore per il membro statico diverso per ogni istanza di una classe che avevo dichiarato. Come ci sono riuscito non lo sò nemmeno io, però più guardavo esterefatto il risultato che ottenevo e più leggevo nell'MSDN questo paragrafo: "Static class...

posted @ giovedì 19 gennaio 2006 17:52

Uno schema certo per i file di configurazione

Cosa fare se si ha bisogno di avere uno schema certo che il nostro file di configurazione deve seguire? Che magari ci aiuti con il supporto dell'intellisense (gran bella invenzione davvero!) per mostrarci anche una lista di enumerati? Semplice, associato al custom element della nostra custom section il parametro xmlns, passandogli un URI contenente lo schema XSD che vogliamo sia interpretato e utilizzato come linea guida. Così: <UserSection xmlns="http://tempuri.org/PersoneSchema.xsd"> Generare uno schema XSD è semplice con il tool visuale messo a disposizione nell'IDE, basta solo sapere cosa scriverci dentro. Il nostro pattern deve essere una cosa di questo tipo: NomeSezione -> NomeElemento -> Attributi [-> Eventuali...

posted @ mercoledì 18 gennaio 2006 11:40 | Feedback (1)

I named parameters, questi benedetti

In questo caso mi sono ritrovato a cercare di capire cosa potessero essere i named parameters, o meglio quello lo avevo capito, ma come, invece, li potevo creare. Sulle prime pensavo che la descrizione che compariva al di sotto del tooltip box fosse una questione di tag per la commentazione del codice (Recommended Tags for Documentation Comments), però i conti non mi tornavano. Gira che ti rigira, dopo un pò di analisi di alcune classi che esponevano questi named parameters, finalmente comprendo che altro non sono che delle banali proprietà (get, set), ma applicate a classi che ereditano da Attribute. Quindi per intenderci...

posted @ mercoledì 18 gennaio 2006 00:28