Passa ai contenuti principali

Post

Visualizzazione dei post da maggio, 2010

Serializzare oggetti in stile ViewState ASP.NET

Il ViewState è una delle componenti che caratterizzano le pagine ASP.NET rispetto al resto del panorama per lo sviluppo web. Il view state è un modo per poter mantenere lo stato dei controlli (e non solo) di una pagina tra un post-back ed il successivo. Se apriamo l’HTML generato da una pagina ASP.NET possiamo vedere che il ViewState viene salvato in un apposito campo nascosto (chiamato __VIEWSTATE): Il valore del viewstate (ovvero la stringa con tutti i caratteri “strani”) è ottenuta comprimendo e serializzando tutte le proprietà dei controlli (per i quali è attivo il view state). Possiamo utilizzare questo tipo di serializzazione anche nelle nostre applicazioni (non ASP.NET) utilizzando la classe ObjectStateFormatter (contenuta nel namespace System.Web.UI all’interno dell’assembly System.Web.dll). Per serializzare un nostro oggetto in una stringa possiamo utilizzare la sintassi seguente: 1: Dim customer = New Customer With {.FirstName = "Massimo"

I-Memo finalmente un interessante prodotto tutto italiano

Mi hanno fatto conoscere un prodotto creato e realizzato da una giovane azienda lucana che permette di memorizzare username e password proteggendole con l’impronta digitale. Il prodotto si chiama I-Memo e maggiori info sono disponibili sul sito http://www.menstecnica.com/index.html . Una volta tanto l’ingegno italiano ha prodotto un qualcosa che potrebbe essere utile. Technorati Tag: i-memo , menstecnica

On-line la nuova community romana DomusDotNet

E’ finalmente on-line la nuova community romana (e laziale) sulle tecnologie basate sul framework .NET di Microsoft. Il portale della community è raggiungibile all’indirizzo http://www.domusdotnet.org . Troverete articoli, tips & tricks, recensioni su tools e servizi, notizie e molto altro. Technorati Tag: domusdotnet , community , framework .net

Nascondere proprietà e campi nella maschera di controllo del debug

In questo post vorrei segnalarvi l’attributo DebuggerBrowsable per nascondere proprietà e attributi di una nostra classe nella finestra di controllo del debug. L’attributo DebuggerBrowsable può essere applicato ad una proprietà o ad un campo e permette di nascondere la proprietà o il campo nella finestra di debug. Ad esempio, prendiamo la classe: Public Class Class1        Public Property VisibleProperty As String       <Diagnostics. DebuggerBrowsable ( DebuggerBrowsableState .Never)>      Public Property InvisibleProperty As String   End Class La proprietà InvisibleProperty, pur essendo pubblica, non sarà visualizzata nella finestra di debug: Technorati Tag: DebuggerBrowsable , system.diagnostics , debug , visual studio

Evitare il debug all’interno di metodi o proprietà: DebuggerHiddenAttribute e DebuggerStepThroughAttribute

Gli attributi che analizzeremo in questo post servono per evitare che si possa eseguire debug all’interno di metodi o proprietà delle nostre classi. Appartengono entrambi al namespace System.Diagnostics. DebuggerHiddenAttribute L’attributo DebuggerHidden permette di “nascondere” un costruttore, un metodo o una proprietà. Decorando un membro dei precedenti con questo attributo facciamo si che quando si esegue il debug non si possa eseguire uno step-into all’interno del metodo o fermarsi in un breakpoint interno al metodo stesso. Un esempio di utilizzo dell’attributo è il seguente: Public Class Class1        Public Function NotHiddenMethod() As Boolean          Return True      End Function       <Diagnostics. DebuggerHidden ()> _      Public Function HiddenMethod() As Boolean          Return True      End Function   End Class Di fatto, il metodo HiddenMethod non può essere debuggato né utilizzando lo step-into né inserendo un breakpoint

Personalizzare il tooltip di debug di Visual Studio

Quando eseguiamo il debug di una applicazione utilizzando Visual Studio, nel momento in cui con il mouse passiamo al di sopra di una variabile, ci appare un tooltip che permette di analizzare il contenuto della variabile stessa. L’attributo DebuggerDisplay ci permette di personalizzare come apparirà questo tooltip. Supponiamo di avere la classe Employee: Public Class Employee        Public Property LastName As String        Public Property FirstName As String   End Class E di voler eseguire il debug di una semplice applicazione console: Il tooltip che ci permette di vedere i valori assunti dalla variabile employee ci dice che la variabile è di tipo Employee e ci obbliga ad aprire l’albero delle proprietà per vedere il contenuto della stessa. Un modo per ovviare a questo e visualizzare una stringa che indichi il contenuto della variabile è implementare l’override del metodo ToString(). Questo fatto ci obbliga, però, ad utilizzare un metodo che è, di

L’utilizzo della classe ConditionalAttribute per evitare l’esecuzione di metodi

L’attributo ConditionaAttribute (contenuto nel namespace System.Diagnostics, assembly mscorlib.dll) ci consente di includere (o escludere) metodi dal flusso di esecuzione in base alla presenza o meno di una costante di compilazione. Ad esempio, supponiamo di avere la seguente applicazione console: Module Module1        Sub Main()          Console .WriteLine( "Console start" )         WriteLog()            Console .WriteLine( "Console end" )      End Sub       <Diagnostics. Conditional ( "LOG" )>      Private Sub WriteLog()          Console .WriteLine( "WriteLog" )      End Sub   End Module Se non definiamo la costante di compilazione LOG, il codice che viene compilato è il seguente: Come si può osservare, il corpo del metodo decorato con l’attributo ConditionalAttribute è stato compilato ma non è stata inserita la chiamata allo stesso che si sarebbe dovuta trovare tra le due istruzioni Console.Writ