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.
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...
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ò...
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...
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...
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
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...
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.
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...
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...
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.
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.
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...
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.
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.
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...
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...
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...
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...
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.
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)...
E' un semplice link, utile però, perchè ho imparato una cosa nuova anche io.
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.
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 è...
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...
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...
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...
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...
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
:)
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...
Mi sento in
vena dattilografica ... ed ecco qua il mio nuovo articolo (che sia il caso di cambiare lavoro??).
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...
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...
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...