Aggiornare in JavaScript la pagina chiamante in partial-rendering

Mediante JavaScript è possibile eseguire programmaticamente un post della pagina mediante il richiamo della funzione

 __doPostBack( 'EventName', 'EventArgs' );

In questo caso il post generato è sincrono, ma, come ben spiegato in questo post, è anche possibile effettuarlo asincrono mediante l’utilizzo di un array della classe PageRequestmanager, in questo modo:

function doPostBackAsync( eventTargetName, eventArgs )
{
     var prm = Sys.WebForms.PageRequestManager.getInstance();
     if( !Array.contains( prm._asyncPostBackControlIDs, eventTargetName) )
     {
         prm._asyncPostBackControlIDs.push(eventTargetName);
     }
     if( !Array.contains( prm._asyncPostBackControlClientIDs, eventTargetName) )   
     {
         prm._asyncPostBackControlClientIDs.push(eventTargetName);
     }

    __doPostBack( eventTargetName, eventArgs );    
}

Mediante poi l’utilizzo dell’UpdatePanel otteniamo che a livello programmatico (quindi senza necessariamente l’interazione dell’utente mediante un controllo), possiamo generare un post asincrono con refresh parziale della pagina, mediante il richiamo esplicito della funzione di cui sopra.

Inoltre, poichè in Javascript è anche possibile, richiamare esplicitamente una funzione definita dall’utente in una pagina mentre ci si trova in un altra pagina (esempio popup), mediante il seguente costrutto:

window.opener.nomeFunzioneCustom(parametri); 

otteniamo che, stando un una pagina secondaria come un popup, riusciamo ad aggiornare con il partial rendering la pagina chiamante.

Visual Studio Addin – ecco quelli che uso io

L’utilizzo degli add-in di Visual Studio 2008 consente di incrementare a volte notevolmente la produttività di chi sviluppa, ad esempio rendendo possibile effettuare con pochi click operazioni ripetitive e lunghe. Tratto da Visual Studio Gallery, ecco la serie di add-in, rigorosamente free, che utilizzo giornalmente durante l’attività di sviluppo del software:

Regionerate, permette di creare in automatico le regioni di codice su un intero file, applicando un layout predefinito o scelto tra i layout forniti. Uno dei layout a corredo addirittura effettua il conteggio automatico degli items presenti in ogni regione e lo inserisce nel nome della stessa. E’ anche possibile crearsi propri layout o scaricarli. Davvero utile.

PowerCommands, add-in abbastanza conosciuto e molto utile, anche se responsabile di un crash documentato di Visual Studio, di cui ho già parlato qui e qui. Trattasi di una serie di comandi aggiuntivi sistemati in diversi punti dell’IDE. I principali comandi che uso sono:
Show All Files (Solution Explorer, a livello di nodo solution)
Questo comando mostra tutti i file per tutti i progetti caricati nella soluzione attiva, e non solo invece per il progetto attivo, come opera invece il comando omonimo a livello di progetto;
Collapse Projects. Questo comando collassa il nodo selezionato e contemporaneamente tutti i suoi sottonodi. La funzionalità fornita dalla Treeview del Solution Explorer invece collassa solo il nodo selezionato, lasciando invariato lo stato dei suoi sottonodi;
Copy Class. Come si può intuire, questo comando copia una intera classe o nodo nella Clipboard, permettendo di incollarla altrove (comando Paste Class) dopo averla opportunamente rinominata per evitare errori di compilazione;
Copy References (e Paste References). Copia una reference o un set di reference nella Clipboard, per poi incollarla altrove;
Open Containing Folder (davvero utile). Dal nodo di un progetto o item, apre una finestra di Windows Explorer che punta al path fisico del progetto (o dell’item) puntato;
Open Command Prompt, simile a Open Containing Folder, ma apre un prompt dei comandi invece che una finestra di windows explorer;
Remove and Sort Usings, altro comando utilissimo, elimina tutti gli using inutili e ordina quelli indispensabili, in un colpo solo, per singola classe o per tutte le classi di un progetto;
Extract Constant, dall’editor di codice, crea la definizione di costante per la stringa selezionata;
Clear Recent Project List, elimina la lista degli ultimi progetti aperti, permettendo di selezionarli.

Sticky Notes, fornisce una windows dockable nella quale scrivere appunti, una per ogni file. Funzionalità sinceramente non utilissima perchè è comunque possibile inserire i propri appunti in un file sorgente a mo’ di commento oppure utilizzare la window Task List. L’unico vantaggio è la possibilità di eliminare i propri appunti in un colpo solo o di inviarli per posta elettronica;

Clone Detective, ho già parlato qui di questo tool. Consente di cercare facilmente codice duplicato all’interno della propria solution.

Export code as Code Snippet, add-in scritto dall’MVP Alessandro Del Sole, consente di esportare facilmente blocchi di codice nel formato .snippet, e quindi riutilizzarli come Snippet Code direttamente attraverso la funzionalità presente nell’IDE

Code Style Enforcer. Questo add-in permette di ottenere segnalazioni evidenti nel proprio codice nel caso in cui siano violate regole di naming e di best practices (visibilità membri e interfacce esplicite o no), configurabili mediante file XML;

OxyProjectMetrics, estrae informazioni inerenti la metrica del codice e le mostra in un formato tabellare;

ResourceRefactor, estrae la stringa selezionata e cablata nel codice sorgente e la invia ad un apposito file di risorse;

AutoCode, add-in per automatizzare attività ripetitive di scrittura di codice mediante la creazione di comandi parametrici, come da esempio sotto.  

TytanNET, insieme di utili tool windows che incrementano le possibilità di refactoring del codice, e forniscono ulteriori visualizers per il debugging. Decisamente molto utile.

Su Visual Studio Gallery sono presenti decine e decine di altr utili add-in, sia gratuiti che non, per tutte le esigenze.