A vueltas con las WCL (Windows Control Library) y los Controles de Usuario .NET

Hola a todos,
Qué bonito serí­a poder desarrollar en web con la misma facilidad que se hace con una aplicación de escritorio, ¿verdad? Pues si es ese el problema que os desespera, tal vez sean las WCL la solución a vuestro problema. Y digo tal vez porque el marco donde puede ser (a mi parecer) viable su uso, es bastante reducido, aunque en caso de que tus necesidades se ajusten a sus requerimientos y restricciones, sea la solución a parte de tus dolores de cabeza.
Voy a ser algo Práctico, y en lugar de ponerme a explicar lo que es una WCL, voy a tirar de metodologí­a, en concreto con el término reusabilidad, y os voy a dejar un link con una explicación bastante buena al respecto… https://www.microsoft.com/spanish/msdn/comunidad/mtj.net/voices/art94.asp
 Tal vez os suena la cosa un poco a ActiveX, y hablando de ActiveX puede que os venga a la cabeza “problemas de seguridad”. Las WCL usadas como controles embebidos en el navegador parece que quieren dejar de lado ese problema y me parece a mi que Microsoft ha tirado de forma bastante clara en ese sentido. Basta que abramos el Visual Studio 2005 e intentemos hacer un ActiveX en VB.NET o C#, para comprobar que es imposible. O lo hacemos en C++ o nada de nada. O eso, o tiramos de WCL.
En cuanto a seguridad, efectivamente, se ha mejorado. Para poder ejecutar una WCL embebida en el navegador vamos a necesitar ajustar la configuración de nuestro .NET Framework para permitir ejecutar aplicaciones que provengan de una determinada dirección web. Estoy puede resultar hasta un engorro, pero es la parte que nos queda poner a nosotros para que todo esto funcione.
¿Y la viabilidad? Pues teniendo en cuenta las restricciones, juzguen ustedes mismos. Para poder ejecutar una WCL embebida en el navegador vamos a necesitar primeramente que el navegador sea Internet Explorer, y, además, por lo que parece deberá ser servida desde el servidor de aplicaciones de Microsoft, Internet Information Server (almenos por ahora no he podido demostrar lo contrario). Por supuesto, deberemos tener instalado el .NET Framework con el que se haya desarrollado la WCL instalado en nuestra máquina. Vamos, todo Microsoft. ¿No supone todo esto un problema para vosotros? Entonces, tal vez sí­ que sea esta la solución para vuestro problema 🙂
 ¡Ventajas! Una vez superadas las barreras de entrada, tenemos bastantes. Una de las que más me llama la atención que es la WCL que generemos podrá ser llamada desde una aplicación web, pero al mismo tiempo ser incluida en una aplicación de escritorio. Basta añadir la referencia a la dll que se genera en el proyecto y… voila. Por supuesto tenemos la posibilidad de utilizar todos los controles windows de una aplicación de escritorio, y que desde una aplicación web se nos hace realmente complicado o imposible ejecutarlos en la máquina cliente, por ejemplo: aplicaciones multi-hilos, acceso al sistema de archivos, recursos compartidos… ListViews, DataGrids, ImageList, Meníºs… Todo lo que podemos utilizar en una aplicación de escritorio.
¿Tiene sentido crear una aplicación web completa con esta solución? Tal vez no, pero puede ayudarnos a solventar problemas puntuales, de forma algo más cómoda, rápida y elegante. Por ejemplo, poder seleccionar fácilmente imágenes a transferir del equipo local para luego enviarlas al servidor remoto, controlar un escáner, una impresora,  tratar gráficos con GDI o imágenes en general.
 Con un poco de imaginación y algo de práctica… se pueden conseguir cosas bastante interesantes 🙂
Saludos!

Leave a Reply

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.