CodeSm Code Smit ith h Ge Gene nera rato torr - me en enca cant nta a la au auto toma mati tiza zaci ción ón de ta tare reas as re repe peti titi tiva vas s en la programación. A veces esto no es tan fácil como parece. Tengo especícos plantillas de isual Studio par para a pro pro!ec !ectos tos esp especí ecíco cos. s. Com Como o vo! a con constr struir uir en la pla planti ntilla lla ant anteri erior or "#e "#e$or $orar ar o ampliar%& creo una nueva plantilla ! e'porto eso. Sin em(argo& ha! una cosa )ue no hago mucho& ! )u )ue e es cr crea earr cl clas ases es )u )ue e pu pu(li (lica can n *# *#+ + es espe pecí cíc co o pa para ra S,S/ tr trav av0s 0s de 1C 1C2 2 o 1e( Services. /(viamente he estado creando un con$unto reutiliza(le ! gen0rica de las clases )ue me permiten pu(licar a S,S/ uso de los distintos o($etos de negocio de *#+. 3ste es un tra(a$o en progreso& !a )ue ha! muchos o($etos de negocio. 4na cosa )ue hago es crear una clase cla se co con n una est estruc ructura tura de con con$un $unto. to. CodeSm CodeSmith ith Genera Generador dor me per permit mite e aut automa omatiza tizarr est este e proceso so.. +a crí ríttic ica a de de(a$o es(ozará una plantill lla a mu! (ásic ico o CodeSmith Generator. /(viamente esto es sólo ara5ando la supercie ! espero ampliar en este (log en artículos posteriores.
CodeSmith Generator - Creación de su primera plantilla Así )ue supongo )ue la derecha del palo& cual)uier desarrollador va a )uerer ver lo )ue el soft6are es capaz de hacer. 78u0 me$or manera de hacerlo )ue para crear una plantilla. Arranca Generador CodeSmith Studio ! seleccione Archivo -9 :uevo. ara mis propósitos crear0 una plantilla de C ;.
CodeSmith generador crea una plantil CodeSmith plantilla la prede predetermi terminada nada para usted con algo de conte contenido nido (ásico. 3sto puede parecer desalentador para un usuario por primera vez& pero cr0anme& una vez )ue usted ha rodado su propio te darás cuenta de lo fácil este proceso es. a!a por delante ! eliminar todo en este archivo de plantilla.
• • •
Ahora vamos a a5adir nuestra
>erramientas CodeSmith tienen una mu! amplia 6i?i de documentación . 4na cosa )ue se sugieren al crear una nueva plantilla ")ue tiene sentido total% es comenzar con el resultado nal.3n mi caso& )uiero crear el archivo de código de a(a$o. Así )ue me pega esto en el editor de plantillas por de(a$o de la
Con mi resultado nal en el editor de plantilla& ahora de(o empezar a a5adir contenido dinámico.CodeSmith Generador (usca contenido envuelto entre @ B !9 chas. 3l contenido entre estas chas se trata como e'presiones )ue CodeSmith Generador evala en tiempo de e$ecución.Como se puede ver& el código entre las chas es simplemente C ;. 3n el siguiente e$emplo& el resultado de
A veces& ha! información )ue es necesario denir en el archivo de código )ue no se puede hacer a trav0s de C ; solo ! necesita la entrada del usuario. Supongamos )ue )ueremos denir el autor ! la clase descripción del archivo de código. ara este propósito CodeSmith Generador permite la creación de directivas de propiedad. ara cada (it de información )ue desea co(rar a los usuarios& es necesario agregar una directiva propiedad. Se puede ver )ue he a5adido cuatro directivas de propiedad por de(a$o de la
Ahora& en mi archivo de código uedo ver la directiva de propiedad aparecen en mi DntelliSense al escri(ir el nom(re de la directiva de la propiedad. Tam(i0n puede ver la descripción de la directiva propiedad especíca en el pe)ue5o local situado $unto a la propiedad. Dncluso puede especicar valores predeterminados de directiva propiedad de la siguiente manera=
<% @ Propiedad nombre = "Compañía" Type = "System.String" Default = "!me Company #n!."%$
Si ahora guardo mi archivo de plantilla ! haga do(le clic en 0l en el 3'plorador de 1indo6s se a(rirá con el panel de propiedades de la plantilla. Aca(o de hacer esto en CodeSmith generador propio estudio. +lene la información re)uerida para las directivas de propiedad )ue denimos anteriormente.
Cuando ha!a hecho esto& haga clic en el (otón Generar.
Ahí tienes a tu archivo de código generado en toda su gloria. Ahora puedo generar muchas clases diferentes (asados en esta sola plantilla& simplemente cam(iando mis valores de las propiedades segn sea necesario. Ahora no tengo )ue copiar& pasado ! editar nada más. 8ue placer.
/(viamente& esto es sólo una pe)ue5a parte de lo )ue CodeSmith Generador realmente puede hacer& pero este sencillo e$emplo le dará una idea de la potencia )ue se encuentra de(a$o. 3st0n atentos para unos pocos de seguimiento puestos en CodeSmith Generator. >a! mucho más )ue aprender ! ver.