jueves, 26 de junio de 2014

GenCode 2014 r 1.0 RELEASE

Amigos

Se Liberó, la nueva version de GenCode 2014 r 1.0, tiene significativas mejoras, y asu vez que es multi arquitectura.

cabe resaltar que se mantiene el uso de template, para que cada developer pueda manipularlo a sus necesidades dependiendo de la arquitectura y lenguaje de programación ( C#, VB.net, SQL)

el meta-lenguaje de GenCode se ha mejorado para que pueda generar por grupos de tablas seleccionadas, cuya información de proceso se muestra en la consola Output.

tambien se incluye una ayuda, con la lista de comandos y ejemplos de uso para crear los templates


Splash



Plantilla de Solucion, que contiene todos los proyectos con sus respectivas referencias entre los mismos





las ayudas








miércoles, 18 de diciembre de 2013

Nuevo GenCode 2014

Esta versión aún esta en construcción, las grandes mejoras es que es mas flexible, ya que los Templates de Proyectos es más dinámico, las variables de los mismos de la ventana Properties es mas robusta y configurable, y lo principal es que puede generar en lote todas las tablas que le asignemos así como también crear Plantillas de Proyectos ya definidos con la arquitectura de el software que se este desarrollando, asiendolo mas versatil y dinámico.

GC2014

 

Los comandos y funciones para programar los Templates están reescritos y mejorados para que el proceso sea mas rápido

Template

Se pueden agregar proyectos desde una platilla de los mismos, así se carga ya una estructura definida.

From

Al agregar proyectos desde una plantilla estos ya aparecen con sus respectivas referencias, y lo mas importante que la funcionalidad de ir agregando los proyectos de forma manual se mantiene.

Projects

Al generar el código se procesa en lote todas las tablas seleccionadas reduciendo los tiempos de desarrollo, además se le adiciono una ventada de Output donde se ve el proceso de Generación y los comandos y funciones de la plantilla a ejecutar y si existen errores estos se visualizan aquí.

 ouput 

La ventana Properties que contiene las variables del proceso de Generación, esta mas robusta de mas fácil acceso.

Properties

sábado, 19 de octubre de 2013

Personalizar Una Entidad con GenCode

 

El dia de ayer, conversando con un amigo que estaba probando el GenCode, me pregunto si se podia modificar para que genere una Clase de tipo Entidad para que tenga un constructor entre otras cosas y bueno yo le propuse algo mejor. Porque no modificar el contructor y le pasamos un DataReader …. etc etc.

 

01

El tema está que solo hay que modificar el Template para las entidades, quedando de esta manera:

02

Ahora generando la clase con GenCode, obtenemos el siguiente resultado:

03

Como verán con el meta lenguaje de GenCode, podemos personalizar los templates para que genere las clases a nuestra manera de desarrollo.

Nota:  La siguiente clase NullSafe.GetValueOrDefault, es una clase para manejar el tema de los NULL, y asi no tener errores, esta clase la adapte de un codigo que encontre navegando y se los comparto:

 

using System.Data;

namespace EmsvSoftware.ERP.Common
{
    public static class NullSafe
    {
        public static T GetValueOrDefault<T>(this IDataRecord row, string fieldName)
        {
            int ordinal = row.GetOrdinal(fieldName);
            return row.GetValueOrDefault<T>(ordinal);
        }

        public static T GetValueOrDefault<T>(this IDataRecord row, int ordinal)
        {
            return (T)(row.IsDBNull(ordinal) ? default(T) : row.GetValue(ordinal));
        }
    }
}

Saludos

Eloy

domingo, 24 de marzo de 2013

IntelliSense con GenCode 2012 r 3.1

 

Ahora se ha agregado funcionalidad de Intellisense, para ayudar a crear los Template, con el Meta Lenguaje de GenCode.

Con los templates ya definidos mas Intellisense es mas facil crear templates mas aun con el Soporte de EmsvSoftware

intellisense

miércoles, 5 de diciembre de 2012

Tranformando Contenido XML a HTML con XSL

En esta version, se ha mejorado considerablemente la transformacion de xml a html con XSL, pues ahora se maneja via un Database Object Type que puede ser un Table, View o un Stored Procedure.

el XSL se puede obtener de un archivo que tengamos en nuestro ordenador, o pedemos crear uno desde cero pues ahora se tiene un editor, y completado los pasos podemos ver el resultado en el navegador que tengamos por defecto.

Seleccionando un objeto:

lookup

Visualizando el xml:

xml

Obteniendo el XSL, en la cual podemos modificar y guardar los cambios

file

xsl

el resultado de la transformacion :

web

Esto tiene varias utilidades, como un visualizador de consultas o reportes, y exponerlo via web

lunes, 3 de diciembre de 2012

Implementado Template para Service Contracts en GenCode

 

Con el meta lenguaje creado para el GenCode, podemos hacer muchas cosas, entre ellas por ejemplo crear una plantilla para la generación de Service Contracts para poder usarlos en WCF

aca les pongo el template:

template

y una vez que hacemos el proceso de agregar proyectos y referenciarlos, vemos el proceso resultante en la generacion de una clase de tipo Interface, que se usa en WCF

code

El codigo resultante es lo que se define en el Template, en este caso optamos por las operaciones clasicas del patron CRUD, y vemos que tambien se sobreescriben los metodos obviamente con diferente firma.

jueves, 29 de noviembre de 2012

Data Contracts

Hoy por la tarde alguien de mis amigos me comento, se ve interesante pero generas Entidades clásicas pero nosotros usamos Data Contracts, … le dije entonces hagamos un template para ello.

using System;
using WcfSerialization = global::System.Runtime.Serialization;


namespace !namespace!
{
/// <summary>
/// Data Contract Class - DC!table_name!
/// </summary>
[WcfSerialization::DataContract(Namespace = "http://www.EmsvSoftware.com/DC!table_name!", Name = "DC!table_name!")]
public partial class !classname!
{

<region to="columns">
private !datatype! !colname!;
</region>


<region to="columns">
[WcfSerialization::DataMember(Name = "!colname!", IsRequired = false, Order = $index)]
public !datatype! !colname!
{
get{ return !colname!;}
set{!colname! = value;}
}
</region>
}
}

mejor una imagen para que se aprecie mejor
datacontracts

y bueno, en el GenCode, agregamos la solución y un proyecto de tipo entidad y le asignamos el template de Data Contracts que habiamos creado.


seldc


Y el resultado fue este:


Parte 1


dc1


Parte 2


dc2


Bueno se podría decir que esta en algo.