jueves, 14 de abril de 2011

Abrir ejecutables (*.exe) desde javascript

Seguimos jugando con el mismo proyecto del artículo pasado, por lo que nuestro único amigo es javascript. En el caso de hoy, la idea es poder levantar un ejecutable (un archivo +.exe) desde el PC del usuario tras realizar ciertas acciones dentro de la WA (recuerden que WA es la WebApp).

Al igual que la funcionalidad de acceder a una base de dato usando ADODB, hoy utilizaremos otro ActiveX (nuevamente estamos limitados a que el usuario use IE), pero ésta vez será para poder realizar acciones del tipo shell ó comandos de consola.

Muchos se podrán preguntar, ¿y para que chucha quiere levantar éste tipo un *.exe si puede hacer todo en la WA?; Bueno, la respuesta es muy simple... En el *.exe ya tengo todas las instrucciones necesarias para comunicarme con un cliente vía DDE; y me hes más rápido levantar el *.exe que hacer todo de 0, donde igual será necesario utilizar un ActiveX y hasta donde se, es mucho más limitado de lo que requiero. Pero bueno, vamos a por "Abrir ejecutables desde javascript".

miércoles, 13 de abril de 2011

SQL + Javascript + IE. ¿Quien dijo que no se puede?

Antes de partir con este ejemplo les debo comentar que sólo lo deben hacer bajo su responsabilidad y, si y sólo si cuando no exista absolutamente ninguna alternativa para acceder a una base de datos. Les digo esto por que como bien sabrán es bastante fácil acceder a información residente en los script y violarla vulnerarla a gusto del consumidor.

Dicho lo anterior, les cuento que uno de los tantos productos que andan dando vuelta por ésta oficina tiene una WebApp (de ahora en adelante la "WA")para interactuar con el usuario. Esta WA está desarrollada utilizando VS2008 y tiene el 99.9% del código pre-compilado (esto quiere decir que no quieren que se modifique) por lo que las posibilidades quedan acotadas a ese 0.1% donde (y para nuestra buena suerte) podemos incluir código javscript.

En mi caso, se presentó la necesidad de guardar información que el usuario veía en su pantalla (pero que obviamente no se registraba en la base de datos - DAAAAH!) y almacenarla para luego utilizarla dentro de los distintos procesos de negocio.

martes, 12 de abril de 2011

Enviar mensaje UDP de forma asincrónica - C#

Bueno de unas merecidas vacaciones y luego de una semana con bastantes cosas entretenidas que hacer en la oficina, es que hoy les traigo un nuevo ejemplo para poder enviar mensaje UDP de forma asincrónica utilizando C#.

Como es costumbre, primero vamos a partir con la explicación de por que el ejemplo. Bueno, la verdad es bastante simple. Un cliente requería automatizar una serie de acciones de acuerdo a información que recibía una Web X. Esta información debía gatillar acciones relacionadas con una Pbx y está a su vez requería (hasta el momento acciones manuales) que recargaran la información almacenada en la base de datos y las informara a la Pbx. Hasta ahí todo bien, el tema es que sería necesario contratar una persona para que esté cada 5 segundos realizando esta acción manual para que se fueran procesando las solicitudes de la Web (obviamente no es rentable para nadie). Producto de ésto pasamos a la segunda fase que era evaluar la automatización de dicha acción; Me fui a ver la API y tras un rato de hacer pruebas sin sentidos vi que no es posible accionarlo desde ahí (obviamente la Pbx no me iba a permitir de forma fácil acceder a todas las funciones). Tras encontrarme con la problemática decidir descender a la capa de red y realizar capturas de red para tratar de identificar que era lo que hacía el equipo cuando se realizaba dicha acción. Tras varias horas (créanme que fueran VARIAS) logre identificar que la instrucción viajaba por UDP, por lo que llegamos al meollo del asunto. (lo de las capturas y luego que hacer con el mensaje cifrado se verá en otra oportunidad si es que a alguien le interesa).