venerdì 15 febbraio 2008

Emettere un alert a seguito di un postback

Programmando applicazioni web ci si trova spesso nella condizione di voler comunicare qualcosa all'utilizzatore in maniera evidente, attirando l'attenzione su una condizione particolare, o su un errore.

In windows form utilizzeremmo il classico messagebox, comodo, pieno di opzioni e molto pratico.

Nelle pagine ASP.NET invece dobbiamo emettere il codice javascript per far visualizzare un alert js contenente il messaggio del caso.

Ho scritto quindi una comodissima funzione nelle pagine web che assomiglia molto alla seguente:

public void MessageBoxScriptInject(string messageToShow)
{
// lo rendo comatibile con javascript...
string messageTranslated =
messageToShow.Replace("'", "\\'");
messareTranslated =
messareTranslated.Replace("\n", " ");
messareTranslated =
messareTranslated.Replace("\r", " ");

// creo il javascript
System.Text.StringBuilder js =
new System.Text.StringBuilder();
js.AppendLine("
window.alert('" +
messareTranslated + "');");

// inietto il codice nella pagina (sintassi .NET 2.0)
this.ClientScript.RegisterStartupScript(
typeof(string),
Guid.NewGuid().ToString(),
js.ToString(),
true);
}

venerdì 8 febbraio 2008

Reindicizzare un intero database su SQL server

Chi lavora su applicazioni che lavorano su database SQL Server di dimensioni considerevoli individua abbastanza presto che uno dei fattori critici dell'applicazione è il tempo "speso" ad accedere al database e che il tempo di risposta delle singole query può cambiare in maniera sostanziale se gli indici vengono creati accuratamente.

Dopo la creazione del DB e degli indici, questi tendono a deteriorarsi con il tempo, perdendo prestazioni durante l'accesso.

Un modo pratico per ripristinare le prestazioni degli indici è lanciare su ogni database, magari schedulandolo come attività notturna, uno script simile a questo:


use Database;
GO
exec sp_msforeachtable 'dbcc dbreindex ("?") with no_infomsgs';
GO