January 2009 Blog Posts

Bea Stollnitz >> Why should I use ObjectDataProvider?

http://bea.stollnitz.com/blog/?p=22 un ottimo link che mi ha girato Davide Cuppone per un problema che avevo con un'applicazione. Non ho risolto come Bea dice, ma mi è tornato molto utile per capire :) Tags: WPF

ViewState Handle-with-care

Ricordate :D http://aspadvice.com/blogs/garbin/archive/2009/01/21/ViewState_3A00_-Handle-with-care.aspx ViewState Handle-with-care Tags: ASP.NET

ASP.NET - Asincronismo

Le tecniche di asincronismo (da non scambiare con AJAX) sono delle tecniche che possono tornarci in auto sopratutto per quelle pagine che richiedono molto tempo nell'acquisizione dei dati. La logica è quella di spostare il codice che richiede molto tempo, dal thread di ASP.NET ad un thread non ASP.NET. La pagina verrà comunque servita all'utente con la stessa tempistica di una pagina sincrona. Perchè l'asincronismo? ASP.NET può gestire 20 Threads, per ogni thread può gestire una Request Queue di 1000 richieste, se non avremo più risorse riceveremo un 503 – Service Unavailable. Quello che facciamo noi è liberare il prima possibile uno dei...

ASP.NET Caching - System.Web.Caching.CacheDependency

ASP.NET ci da la possibilità di creare le nostre CacheDependecy, facendo derivare la nostra classe dalla CacheDependecy. Grazie a questa classe abbiamo possiblità di creare una dipendenza anche per un web service da noi creato. Il processo è alquanto semplice, bisogna creare una classe che deriva dalla CacheDependecy e far partire un processo asincrono che controllerà se le dipendenze sono cambiate. Se queste cambiano, chiameremo il metodo CacheDependency.NotifyDependencyChange() in automatico la classe CacheDependecy aggiornerà le proprietà HasChanged e UtcLastModified. Le tecniche più usate per implementare il controllo delle risorse sono 3: Timer: un timer che effettua un poll sulle risorse...

ASP.NET Caching - Cache notification SQL Server 2005 e SQL Server 2008

SQL Server 2005 e SQL Server 2008 usano una soluzione di notifica molto simile fra loro e integrata nel database con un sistema di messaggistica chiamato Service Broker. Service Broker si occupa di gestire la coda dei messaggi di notifica di un database. .NET offre un modello integrato con ADO.NET in modo tale da istruire SQL Server per mandare una notifica per qualsiasi operazione che modifica il risultato di una query da noi registrata. ASP.NET offre un modello che si integra perfettamente con il precedente e ci permette di invalidare gli oggetti in cache automaticamente. Per questo esempio, creiamo un nuovo database (TestDB) con...

ASP.NET Caching - Dipendenze

ASP.NET supporta la cache dependencies; questa feature permette di relazionare un oggetto che abbiamo in cache con un'altra risorsa, in modo tale che, quando questa risorsa cambia, l'oggetto in cache verrà rimosso automaticamente. Esistono tre tipi di dipendenza: Con un'altro oggetto in cache Con un file o una directory Query su database Per creare una dipendenza nella cache, bisognerà creare un oggetto CacheDependency ed usarlo quando inseriremo un oggetto in cache. Per esempio, il codice seguente, creerà una dipendenza con un file XML. Se il file verrà cambiato, cancellato o sovrascritto,...

ASP.NET Caching - Data Source Controls

SqlDataSource, ObjectDataSource e XmlDataSource supportano nativamente il caching. Usare il caching con questi controlli è altamente consigliato, perchè ad ogni postback la sorgente dati viene richiesta. In più i dati vengono richiesti per ogni controllo in bound, quindi se avremo 3 controlli in bound, ad ogni refresh, partiranno 3 query. In questo caso mettendo in cache questi dati si ridurranno drasticamente i tempi di caricamento. Questi controlli offrono un insieme di proprietà utili per attivare comodamente la cache: EnableCaching: true per attivare il caching. CacheExpirationPolicy: può essere di due tipi Absolute o Sliding (guardare i post...

ASP.NET Caching - Data caching

Il Data caching è il sistema di caching più flessibile, ma anche quello dove bisogna scrivere più codice per implementarlo. Il concetto alla base del Data caching è molto semplice: inserire in una speciale collezione di oggetti (Cache), tutti quegli oggetti che per esser creati utilizzano un certo quantitativo di risorse. Questa collection è simile alla collection Application, comunque esistono un paio di differenze: Thread-Safe: a differenza dell'Application non avremo bisogno di attivare un sistema di lock/unlock sulla collection Cache quando andremo a rimuovere/aggiungere oggetti, pur essendo anche questa a scope globale. ...

ASP.NET Caching - Web.config

In tutti i precedenti post, per attivare il caching sulla pagina, è stato inserita la direttiva: <%@ OutputCache %> Finchè si parla di esempi o finchè si lavora su una singola pagina possiamo inserire quest'opzione. Ma se dovessimo lavorare su dozzine di pagine e poi magari modificarle, ciò comporterebbe un lavoro estenuante. ASP.NET, tramite la feature chiamata cache profiles, ci da la possibilità di applicare gli stessi settaggi ad un gruppo di pagine. Per usare questa caratteristica definiremo i settaggi della cache in un web.config file, assoceremo un nome a questi settaggi e applicheremo i settaggi alle pagine da tenere in cache: ...

ASP.NET Caching - Fragment e Post Caching

Spesso tornerà utile non copiare in cache l'intera pagina ma una parte di questa. Per ottenere questo risultato abbiamo due tecniche: Fragment caching: Prendiamo i dati che vogliamo copiare in cache e li spostiamo all'interno di uno user control creato appositamente; copiamo in cache solo lo user control creato. Post-cache substitution: Identifichiamo il contenuto dinamico che non vogliamo copiare in cache e cambiamo il contenuto con il controllo Substitution. Il Fragment caching è il più semplice dei due. Comunque bisogna basarsi sulla quantità dei dati da tenere in cache, per...