¿Cómo puedo construir un componente o una biblioteca de clases que me sirva indistintamente para Windows Forms y para ASP.NET si debo usar características específicas de cada entorno?
Expresado con otras palabras: ¿Cómo puedo saber si mi componente está siendo usado desde una aplicación de Windows Forms o de ASP.NET?
Respuesta: verifica el valor de HttpContext.Current.
Si es null (Nothing en VB) es que estás en un entorno no-web, y estarás bajo ASP.NET en caso contrario.
Es un truco sencillo pero que a alguno puede que le resulte útil si se lo había planteado para algún componente propio.
He leído esto en algún sitio recientemente y me ha llamado mucho la atención porque no lo sabía. Resulta que es posible cambiar la carpeta en la que ASP.NET 2.0 compila las aplicaciones y genera todos sus ensamblados. Para ello basta con indicarlo en web.config dentro del nodo 'compilation' usando el atributo 'tempDirectory', así:
<compilation tempDirectory="C:\Temporales"/>
Muy sencillo. Igual te puede resultar útil en alguna ocasión.