RSS 2.0 Atom 1.0 CDF  
JASoft.org - Componentes duales para Windows y la Web
El blog de José Manuel Alarcón Aguín. Programación .NET y mucho más...
 

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

Tuesday, December 12, 2006 1:00:48 AM (Hora estándar romance, UTC+01:00)  #    Comments [3]   ASP.NET | Programación  |  Trackback
Tuesday, December 12, 2006 4:32:03 AM (Hora estándar romance, UTC+01:00)
Un "componente" de esas características, *no debería* depender de ese tipo de *hacks*
Tuesday, December 12, 2006 9:32:10 AM (Hora estándar romance, UTC+01:00)
Bueno, no es ningún *hack*, es una forma bastante directa y lógica de determinarlo. Un *hack* sería, por ejemplo, determinar el nombre del proceso en el que se está ejecutando el componente y ver si se corresponde con el de IIS (cosa que pueda cambiar según el SO y servidor utilizado). Esto sí me parece propenso a errores y de hecho tengo constancia de que por ahí se usa :-)

En cuanto a lo de UerInteractive no sé a qué te refieres, Espinete, pero no sé si te refieres a la propiedad DesignMode que tienen todos los controles ASP.NET (clases que heredan de System.Web.UI.Control). Ésta sirve para determinar si se está usando el control sobre una superficie de diseño (generalmente Visual Studio) de modo que puedas pintar su contenido por defecto y este tipo de cosas, pero no tiene que ver con lo que comentaba en el post.

¡Gracias por las aportaciones!

Saludos

JM.
Wednesday, December 13, 2006 1:23:23 AM (Hora estándar romance, UTC+01:00)
Oye, muy interesante lo de Environment-UserInteractive. He de confesar que no lo conocía :-)

De todos modos no creo que nos sirva exactamente para lo que yo proponía porque en la Web siempre dará false, pero en aplicaciones Windows sin interfaz, como por ejemplo en un servicio, también devolvería lo mismo y no podemos asumir que es Web, claro.

De todos modos es una aportación muy interesante. Gracias.

Saludos

JM.
Name
E-mail
Home page

Comment (Some html is allowed: a@href@title, b, i, strike, strong, u) where the @ means "attribute." For example, you can use <a href="" title=""> or <blockquote cite="Scott">.  

Enter the code shown (prevents robots):

Live Comment Preview
Copyright © 2008 José Manuel Alarcón Aguín. All rights reserved.