ASP.NET
Tutto ciò che è relativo ad ASP.NET a partire dalla 1.0 fino alla versione attuale :)
Vecchie tecnologie, vecchi errori...

E purtroppo, ci cascano anche le grandi...

O dovrei dire "Soprattutto le grandi"? :)

Quello che piu mi fa tristezza di questa cosa è il fatto che si pensi così poco all'impatto negativo che può avere una cosa simile su un utente, soprattutto quando sta navigando prodotti che valgono dai 20k euro in su... e soprattuto quando mettere su non dico un controllo di errori decente, ma una pagina di errore è _così_ semplice... :(

Fortunatamente non è sottoposto ai piu semplici problemi di Injection... :)

One Comment Filed Under [ ASP.NET ]
[Daily Issue] Comandare la serializzazione di una classe tramite attributi - Parte 2

Ho parlato tempo fa di come comandare la serializzazione di una classe con XmlSerializer utilizzando XmlElementAttribute per avere il nome degli elementi XML non concorde con quello dei campi della Classe. In questi giorni mi è capitato di dover aggiungere degli attributi ai nodi del mio XML, e in questo caso le cose si complicano un poco ....
(continua)

[Daily Issue] Strani errori in Application_Error

Ormai tutti quanti abbiamo log4net nelle nostre applicazioni web che, ben piantato nel global.asax o in un error handler, ci avvisa di tutti i casi in cui la nostra applicazione va in errore. In una grossa applicazione che ho in produzione, mi capita da qualche mese di ricevere due errori che proprio non riuscivo a spiegarmi: Invalid character in a Base-64 string e Unable to validate data
(continua)
[Daily Issue] Web Service, AXIS Interop e namespace

Web Service e namespace NON sono i miei argomenti preferiti, anzi di solito tendo a limitarmi al mondo .NET appunto per evitare problemi. Purtroppo in giro c'è di tutto, e recentemente ho avuto parecchi problemi ad interfacciarmi con un Web Service su base AXIS con due diverse definizioni di Namespace...
(Continua)
Visual Studio 2008, Fine Novembre... e confusione...

Leggendo in giro su 3424322 blog, si evince che Visual Studio 2008 ed il framework 3.5 verranno rilasciati alla fine di questo mese....

Ora, a me sembra un pò presto ..... magari mi sono perso qualche pezzo del percorso di  beta/rc di visual studio però mi aspettavo una "gestazione" finale un pò piu lunga......

Comunque, ci sono ancora alcune cose da chiarire: dall'annuncio ufficiale si legge

Visual Studio 2008 and the .NET Framework 3.5 will be available by the end of November 2007. The .NET Framework 3.5 will also be available to end users via a free, optional download from Microsoft Update

Quindi lo daranno via MSDN, e magari non in tutte le MSDN....In fondo all'annuncio, ed anche in questo post, si legge che la release ufficiale con presentazione e "fancy graphic" sarà verso fine febbraio, a Los Angeles, che già mi suona di piu come data... quindi a Marzo qui in italia....

Da questo punto di vista, ho il dubbio che verrà messo a disposizione degli sviluppatori su MSDN la final del framework 3.5 e una RC di Visual Studio 2008.... in attesa della vera versione RTM che verrà rilasciata a gennaio su MSDN ed a febbraio su MSDN.... poi magari mi sbaglio :D

Nel frattempo, io continuo con la Beta2 ed aspetto fine Novembre per sapere che cosa mi apparirà in MSDN :)

4 Comments Filed Under [ ASP.NET ]
[Daily Issue] Simulare una Postback con GetPostBackEventReference

Tempo fa scrissi un post riguardo l'uso del metodo GetPostBackClientEvent() dell'oggetto Page per avere a disposizione uno snippet JavaScript che simulasse la PostBack (il classico _doPostBack()).

Già a quel tempo, ma anche per molti mesi prima, misi in guardia dall'andare dall'interagire a manina con il Javascript del framework, ma ancora in questi giorni sui NG se ne è tornato a parlare quindi meglio riprecisare ulteriormente:
[continua]

[Daily Issue] Access e "No value given for one or more required parameter"

Access non è, come noi tutti sappiamo, una gran scelta in campo di base dati.
Per alcuni progetti, d'altronde, si rivela essere l'ideale, sia per il supporto in fase di deploy che per la semplicità per darlo in pasto all'utente intanto che si sfiluppa un backoffice decente :)
[continua]

Come muovere i primi passi con VS 2008

Mi capita spesso di dover "dare da leggere" a qualcuno diversi documenti che lo introducano a VS 2008. Cosa cambia, come funziona, cosa c'è di nuovo.. da parlare ce ne sarebbe per secoli, quindi di solito quando me lo chiedono i miei clienti, do prima qualche malloppotto (leggero ovviamente) da leggere, e poi mi prostro aspettando che arrivino le domande :D

Ora, volevo segnalare questo interessantissmo post  dell'amico Pietro  che da un pò di giorni sto girando direttamente così almeno hanno tutto ben diviso! Grazie Pietro :)

Add Comment Filed Under [ ASP.NET ]
[Daily Issue] Custom Control (o Reflection) e App_Code

Qualche tempo fa, avevo parlato di un progetto che stavo iniziando con gente totalmetne a digiuno di programmazione e totalmente con strumenti free.

Il progetto in se, dopo una partenza "difficoltosa", sta ingranando.... vedremo come andrà.

Nel frattempo, mi sono scontrato con un'esigenza che lavorando in ambiente "classic" non ho mai avuto: utilizzando Visual Web Developer Express 2005 come IDE ed avendo il mio codice di business nella directory App_Code, tutti i miei CustomControl e le mie classi sono definite li. Quindi, cosa prendo come nome di assembly quando devo referenziare un Custom Control con la direttiva di pagina Register o da Web.config? E cosa gli dico quando devo creare un oggetto a RunTime con Reflection?? Il nome dell'assembly è generato dal framework e quindi io non lo so....

Per i Custom Control, posso mettere come AssemblyName "App_Code". In questo modo il framework farà tutto "alle mie spalle" e metterà a posto le cose.

Per utilizzare Reflection invece, il fully qualified type name sarà come al solito il fully qualified name dell'oggetto sesguido da App_Code. Quindi qualcosa del tipo "MioNameSpace.MioOggetto, App_Code"

Un altra alternativa, che avevo trovato all'inizio, era prendere l'AssemblyName dal GetType, che tornava qualcosa del tipo app_code_v4354534, e poi metterlo nella stringa dinamicamente (tanto se si usa reflection, 90 su 100 è nel business, che sta anche lui sotto App_Code, e quindi il risultato è il medesimo).

Però facendo alcune prove ho visto che, non so perchè, in questo caso è piu lento.
In maniera infinitesimale, ovviamente, ma facendo 10.000 istanziazioni via reflection di un oggetto, utilizzando AssemblyName ci mette 3 secondi, utilizzando "App_Code" solo due.. quindi utilizzate App_Code :)

[Daily Issue] XmlDocument, selezionare i nodi con namespace

Mi è capitato ultimamente di avere a che fare col mondo flash.. molto a che fare...

Tralasciando le considerazioni personali, ho avuto modo di vedere che il parser XML di Flash ed i WebServices che restituiscono DataTable o DataSet non vanno molto d'accordo... (questo a detta di chi ci lavora, anzi gradirei sapere da qualcuno che conosce bene actionscript se è vera questa informazione.....)

Quindi, quello che ho dovuto fare è stato, per amore della tranquillità (e per esigenze di deploy in tempi "stretti"), cambiare l'output da DataTable a XmlDocument. Anche così, dava problemi la dichiarazione che ne consegue, che ha il primo nodo chiamato <xs:element che, a quanto pare, inchioda totalmente il parser XML di flash che non sa come andare avanti e "nasconde" i nodi successivi....

Detto fatto, sempre per il su citato "amore della tranquillità", ho eliminato il nodo selezionandolo con XPATH e cancellandolo. Peccato che un nodo di questo genere non si può selezionare da solo usando il SelectSingleNode perchè otterreste un bell'errore del tipo "Namespace Manager or XSLT Context Needed. Questo perchè giustamente il parser XML di .NET non riconosce il namespace (forse è questo che "blocca" flash? Boh....)

L'alternativa è usare l'overload di GetSingleNode che accetta un XmlNamespaceManager. Ovviamente istanziato correttamente: 

XmlNamespaceManager nsmgr = new XmlNamespaceManager(new NameTable));
nsmgr.AddNamespace("xs", "http://www.w3.org/2001/XMLSchema"); 

XmlDocument doc = new XmlDocument();
//Codice per caricare il documento
XmlNode node = doc.SelectSingleNode("\\xs:element", nsmgr);

In questo modo seleziono il nodo xs:element del datatable per poterlo eliminare dall'XmlDocument risultante..e rendere felici i nostri amici di Flash!

P.S.: Seriamente, se qualcuno con esperienza in Flash e ha avuto opportunità di lavorare con DataTable e Recordset flash senza problemi.. me lo faccia sapere :D