ASPNET

There are 20 entries for the tag ASPNET

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...

ASP.NET Caching - Output Caching

Tramite l'Output Caching, quando una pagina viene richiesta per la seconda volta, non verrà ricreata, il page life cycle non partirà e nessuna parte del codice verrà eseguita; invece verrà presa la copia in cache e verrà mandata al client. Non avremo bisogno di preoccuparci delle altre risorse statiche che sono contenute in una pagina ASP.NET (come le immagini). IIS automaticamente creare una copia in cache di questi files; e lo fa meglio della cache di ASP.NET. Creiamo una pagina ASP.NET di questo tipo: <form id="form1" runat="server"> <div> <asp:Label...

ASP.NET Caching - Introduzione, parte 2

ASP.NET da ha disposizione due tipi fondamentali di caching che le applicazioni possono/devono usare in quanto complementari: Output caching: Il tipo più semplice.  Registra la copia della pagina HTML che viene mandata al client. Il client successivo che richiederà la pagina riceverà la copia in memoria. Data caching: Questo tipo di cache sarà implementato nel nostro codice. Registreremo nella cache importanti informazioni le quali richiedono...

ASP.NET Caching - Introduzione, parte 1

A volte ci troviamo con applicazioni mal strutturate che iniziano a soffrire, sin da subito o con l'andare del tempo, sotto l'aspetto prestazionale e di scalabilità. Ciò si traduce in applicazioni così lente che perderanno alcuni secondi, se non minuti, prima d'esser completamente renderizzate dal nostro browser. Solitamente ciò capita perchè nel nostro applicativo ci sono dei colli di bottiglia difficili da evitare. La bellezza del caching, a differenza di tante altre tecniche, è l'alto livello di performance e scalabilità. Le Performance miglioreranno perchè il tempo impiegato per la richiesta delle informazioni sarà drasticamente diminuito. La Scalabilità è migliorata perchè lavoreremo attorno quei colli di...

Virtual Earth ASP.NET control

Inizia a diventare sempre più interessante. Via via javascript viene messo da parte (per quello che vede lo sviluppatore finale) e vengono creati dei controlli ad hoc. Potete leggere tutte le info quì: http://blogs.msdn.com/publicsector/default.aspx Tags: ASP.NET | Altro

Update Panel: inserire controlli a runtime

Ultimamente ho riaffrontato un problema che avevo già affrontato con Davide: Inserire dei controlli a runtime in un updatepanel. Per farvi capire il problema, provate ad eseguire il seguente codice, ogni qual volta dovete aggiornare il vostro update panel: TextBox newtxt = new TextBox(); ...

ASP.NET Dynamic Data

Non so quanti di voi l'hanno già fatto, ma vi consiglio di vedere i video su: ASP.NET Dynamic Data Tags: ASP.NET

ASP.NET 10 Tips for Writing High-Performance Web Applications

Eh un periodo che, ovunque mi giro, mi chiedono di tirar giù almeno 120.000 records da macchine web server basate su un PIV... Ho risolto il problema ma adesso devo leggere bene questo articolo: ASP.NET: 10 Tips for Writing High-Performance Web Applications Spero vi torni utile anche a voi. Tags: ASP.NET

Security videos

Nuovi video sulla sicurezza postati su asp.net (security) (tnx Scott Mitchell). Ed altri due video da Lamees Ayman: Encryption Export and Import Certificates Tags: Security | ASP.NET

ASP.NET ViewState data security

ASP.NET offre la possibilità di criptare i dati all'interno della ViewState in moda da incrementare la sicurezza. Per far ciò abbiamo due possibilità: 1 - Tramite il file web.config, abilitiamo il criptaggio della ViewState per tutta l'applicazione:   <configuration>       <system.web>       <pages viewStateEncryptionMode="Always" /> 2 -  Solo per una pagina specifica: <%@ Page Language="C#" Trace="false" ViewStateEncryptionMode="Always" %> Tags: ASP.NET | Security

Disabling Session State

Se la tua applicazione non usa le session puoi migliorarne le prestazioni della tua applicazione disabilitando le sessioni. Le sessioni si possono disabilitare, per tutta la sezione inserendo la seguente opzione nel file di web.config: <system.web> <sessionState mode="Off" /> Oppure su una singola pagina: <%@ Page Language="C#" Trace="false" EnableSessionState="False" %> Tags: ASP.NET

AJAX CalendarExtender Bug

Ultimamente durante lo sviluppo di un'applicazione web basata su ASP.NET utilizzando il CalendarExtender dell'AJAX Toolkit ver. 1.0.11119.0, ho notato un comportamento strano. Quando un CalendarExtender si trova all'interno di un UpdatePanel, questo tende a perdere i suoi style. Aspettando Silverlight 2, la soluzione per questo bug l'ho trovata nel seguente thread. In pratica ho aggiunto le seguenti linee di css, nel mio file di style:   .ajax__calendar_container {padding:4px;position:absolute;cursor:default;width:170px;font-size:11px;text-align:center;font-family:tahoma,verdana,helvetica;} .ajax__calendar_body {height:139px;width:170px;position:relative;overflow:hidden;margin:auto;} .ajax__calendar_days, .ajax__calendar_months, .ajax__calendar_years {top:0px;left:0px;height:139px;width:170px;position:absolute;text-align:center;margin:auto;} .ajax__calendar_container TABLE {font-size:11px;} .ajax__calendar_header {height:20px;width:100%;} .ajax__calendar_prev {cursor:pointer;width:15px;height:15px;float:left;background-repeat:no-repeat;background-position:50% 50%; background-image:url(WebResource.axd?d=x6lt9HfG5Si8NZjMNt1DLcY6US8hUl3G4muzIFtahMQFZTbwxJ00qsx5N8jeAW90ZvGxZ6SJJh48yx62JKItzQ2&t=633053122925312500);} .ajax__calendar_next {cursor:pointer;width:15px;height:15px;float:right;background-repeat:no-repeat;background-position:50% 50%;background-image:url(WebResource.axd?d=x6lt9HfG5Si8NZjMNt1DLcY6US8hUl3G4muzIFtahMQFZTbwxJ00qsx5N8jeAW90HZemRms4wXOo1BZWTwWtNQ2&t=633053122925312500);} .ajax__calendar_title {cursor:pointer;font-weight:bold;} .ajax__calendar_footer {height:15px;} .ajax__calendar_today {cursor:pointer;padding-top:3px;} .ajax__calendar_dayname {height:17px;width:17px;text-align:right;padding:0 2px;} .ajax__calendar_day {height:17px;width:18px;text-align:right;padding:0 2px;cursor:pointer;} .ajax__calendar_month {height:44px;width:40px;text-align:center;cursor:pointer;overflow:hidden;} .ajax__calendar_year {height:44px;width:40px;text-align:center;cursor:pointer;overflow:hidden;}   .ajax__calendar .ajax__calendar_container {border:1px solid #646464;background-color:#ffffff;color:#000000;} .ajax__calendar .ajax__calendar_footer {border-top:1px solid #f5f5f5;} .ajax__calendar .ajax__calendar_dayname {border-bottom:1px solid #f5f5f5;} .ajax__calendar .ajax__calendar_day {border:1px solid...