giovedì, maggio 29, 2008

Asp.net "full" compile from Visual Studio

Asp.net automatically compiles aspx pages. The code-behind is compiled in different ways dependingif you choose to work with "Asp.Net web application" project or with a "Asp.net web site".
When you work on an aspx in visual studio and you build the project/solution, VS compile the code-behind of the aspx page. But not the code in the aspx itself. The aspnet engine will compile the aspx page the first time it will be requested.

OK. Fantastic... but.... if you did an error, also a simple syntax error, you'll get evidence of it when you page will run. Not good. I'd like to do "full compile" to check all the code.

An example: this code does not work. But Vs2005 does not show any errors.

<script runat="server">
public
static int Test()
{

return "text";

}

</script>



Another example: this code has a syntax error. Met2 is wrong. Met1 is the righe name. But again vs2005 does not show any errors.


<%=WebApplication1.Class1.Met2()%>




The only solution I have found is to do a full compile using aspnet_compiler.exe after the build process of Visual Studio. Add the following command in the Post-build event of the project:

$(MSBuildBinPath)\aspnet_compiler.exe -p $(ProjectDir) -v /





Now, you are notified if there are errors in you aspx pages.




Obviously compilation requires more time!

lunedì, maggio 19, 2008

Bug di sicurezza su Debian: la questione vera è un'altra

Sembra che nel lontano 2006, per la precisione il 2 maggio, gli sviluppatori di Debian abbiano messo una specie di "patch" ad OpenSSL distribuito con la loro versione di Linux. Il problema è che la "patch" in realtà non è una patch ma peggio ha introdotto un BUG:
http://www.debian.org/security/2008/dsa-1571
http://www.debian.org/security/2008/dsa-1576

Il bug è venuto fuori in questi giorni. Poco male si dirà. Certo, dopo poche ore c'era già la patch. Perfetto. Ma.... la patch risolve il bug e il funzionamento di openssl su Debian dal giorno in cui la si installa. Quindi tutti i certificati & affini creati con OpenSSL prima dell'applicazione della patch sono vulnerabili. Cioè quelli degli ultimi 2 anni. Vedi comunicato di Verisign: revocare i certificati e rigenerarli. Buon divertimento.

Ma la questione vera è un'altra. Non mi riferisco al fatto che tutti i sistemi operativi hanno dei bug. Questo è ovvio e sostenere il contrario è stupido. Non faccio paragoni fra Win e Linux e Mac e SunSolaris e chi volete voi: la scelta di un sistema operativo è o dovrebbe essere dettata da una serie di valutazone che comprendono ma che non si limitano al numero di bug e patch. Non voglio neanche entrare nella polemica del TCO (Total Cost of Ownership) fra Win e Linux.

Il punto vero su cui riflettere è che 2 righe di codice errato possono creare un casino enorme!

Quindi meglio pensarci 1000 volte prima di modificare codice funzionante soprattutto se scritto da altri.

venerdì, maggio 02, 2008

Sql HeartBeat

A very useful (and free!) product: Sql HeartBeat from SqlSolutions.

Very simple to use: select a sql server, connect to them and it shows info about:
  • Waits
  • Seek time
  • Physical R/W
  • Cache hits
  • Process/Connection activity

A screenshot: