System.Collections.ListofTips

May 14, 2008

AjGenesis, NAnt, TDD Y el Cooperator Framework

Filed under: Otros — José Franco @ 11:01 am

Gente les dejo una lista de artículos de AjGenesis, NAnt,  TDD Y el Cooperator Framework, esto esta mas relacionado a la arquitectura y generación de códigos para .NET (Van a ver que es todo del mismo blog, así que es un sitio para prestarle atención semanalmente, ya que suele publicar cosas interesantes Carlos) .

Introducción a NAnt
NAnt es una herramienta de código abierto para automatizar procesos de construcción de software. Una build tool. Se puede extender mediante clases Tasks, no mediante comandos Shell, como la mayoría de estas herramientas. Esta característica la hace cross-platform. Los archivos de configuración se basan en sintaxis XML, tienen extensión .build y  están compuestos por cuatro tipos […]
http://carlossantos.wordpress.com/2007/10/15/introduccion-a-nant/

Cómo generar código con AjGenesis sirviéndonos de NAnt - Parte I
Ya les conté someramente qué es NAnt, ahora…¿qué es AjGenesis?…AjGenesis es un generador de artefactos de texto de código abierto.  Para más información dirigirse a http://www.ajlopez.com/ajgenesis Puede bajarse el generador, desde AjGenesis-0.5, ejemplos desde AjGenesisExamples.zip, más ejemplos en AjGenesisExamples3.zip, documentación en http://www.ajlopez.net/ajgenesis/documentation.php AjGenesis se basa en un modelo soportado en XML y plantillas.Para utilizar este generador sólo […]
http://carlossantos.wordpress.com/2007/10/30/como-generar-codigo-con-ajgenesis-sirviendonos-de-nant/

Cómo generar código con AjGenesis sirviéndonos de NAnt - Parte II
Sigo en la misma linea de la nota anterior. Ahora la idea es generar una aplicación web completa en VB.NET para Visual Studio 2005, trabajando con SQL Server 2005. Esta vez subo un conjunto de archivos somo ejemplo para que quien quiera haga sus pruebas. Los archivos pueden bajarse desde este link SyP.zip  Pero para esto […]
http://carlossantos.wordpress.com/2007/11/17/como-generar-codigo-con-ajgenesis-sirviendonos-de-nant-parte-ii/

Extendiendo el Modelo, AjGenesis y NAnt
Para quien no tenga experiencia en desarrollar software con AjGenesis, recomiendo leer Introducción a NAnt, Cómo generar código con AjGenesis sirviéndonos de NAnt - Parte I y Cómo generar código con AjGenesis sirviéndonos de NAnt - Parte II. El código utilizado en esta nota puede descargarse desde acá. Partiendo de ejemplos similares que usé en las notas […]
http://carlossantos.wordpress.com/2007/11/23/extendiendo-el-modelo-ajgenesis-y-nant/

NAnt, lo que quedó en el camino
Después de las pruebas que fuí haciendo con NAnt, jugando con AjGenesis, encontré la forma de automatizar algunas tareas que me parece bueno compartir acá. Quiero agradecer a Ángel “Java” López y a Claudio Meschini que en más de una ocasión me asistieron con sus generosos aportes, en el marco del Grupo Google CodeGeneration donde nos […]
http://carlossantos.wordpress.com/2007/11/24/nant-lo-que-qued-en-el-camino/

Introducción a Cooperator Framework
Cooperator es otro Generador de Código, con otras características. El proyecto está pensado y desarrollado fundamentalmente por Daniel Calvin y Eugenio Serrano. Si bien Cooperator está en evolución, ya hay mucha gente que está desarrollando software de alta calidad con esta herramienta y entre ellos me cuento. Hay muy buen material de este proyecto, les recomiendo algunos links […]
http://carlossantos.wordpress.com/2007/11/24/introduccin-a-cooperator-framework/

AjGenesis y Preservación de Código
Una práctica fundamental en la Generacón Automática de Código es la Preservación del Código No Generado. En otras palabras que entre un ciclo de generación y el siguiente no perdamos el código que hayamos escrito manualmente. Para esto AjGenesis prevee un mecanismo muy sencillo y seguro. Este se basa en pequeñas modificaciones a los archivos .ajg y […]
http://carlossantos.wordpress.com/2007/12/31/ajgenesis-y-preservacion-de-codigo/

Cooperator, un ejemplo sencillo para comenzar
Para quien no conoce nada acerca de Cooperator Framework le recomiendo leer mi post anterior Introducción a Cooperator Framework. Comencemos por descargar la herramienta, aquí encontramos el último release de Cooperator Modeler, al finalizar la descarga, descomprimimos el archivo y podremos ver el ejecutable de nombre CooperatorModeler.exe, con un doble click veremos lo su interfaz gráfica:   La prueba […]
http://carlossantos.wordpress.com/2008/02/02/cooperator-un-ejemplo-sencillo-para-comenzar/

 Cooperator, modificando el modelo
Otra vez acá. Basado en el ejemplo del post anterior, voy a introducir modificaciones al modelo original con la idea de ver que tan fácil es hacerlo y regenerar código. Partimos entonces de la solución generada que pueden descargar desde acá. Supongamos que ahora nos piden que incluyamos un campo Telefono para la tabla Sucursal. Conviene agregar algunos registros […]
http://carlossantos.wordpress.com/2008/02/05/cooperator-modificando-el-modelo/

 TDD… y las cosas, felizmente, no volvieron a ser las mismas…
TDD, Test Driven Development, es una técnica que establece que primero se escriben las pruebas y luego el código del aplicativo. Estas pruebas se efectúan de acuerdo a lo que se espera que haga el aplicativo, es por eso que algunos popes de esta disciplina dicen que practicándola intensivamente podemos prescindir de la documentación ya que […]
http://carlossantos.wordpress.com/2008/03/12/tdd-y-las-cosas-felizmente-no-volvieron-a-ser-las-mismas/  

TDD, ¿por dónde empezar?
Este post es continuación de este otro. Supongamos que tenemos una aplicación que necesita recuperar una cadena. El Test que acá vamos a desarrollar es probar la recuperación de esta cadena. Ya tendríamos que tener instalada la última versión de NUnit. Sino, podemos descargarla desde http://www.nunit.org e instalarla. En el marco de nuestra solución vamos a agregar un […]
http://carlossantos.wordpress.com/2008/03/16/tdd-por-dnde-empezar/

 TDD, ahora Refactoring.
Este post es continuación y cierre de estos dos: TDD… y las cosas, felizmente, no volvieron a ser las mismas… TDD, ¿por dónde empezar? De acuerdo a lo que expresé en los post anteriores, TDD se se lleva a cabo sobre ciclos. Al finalizar cada ciclo TDD, la técnica se completa con la práctica de Refactoring. Refactoring es la […]
http://carlossantos.wordpress.com/2008/04/13/tdd-ahora-refactoring/

 TDD, otros atributos de NUnit
Esta nota viene a cerrar una serie de tres posts anteriores TDD… y las cosas, felizmente, no volvieron a ser las mismas…, TDD, por dónde empezar y TDD, ahora Refactoring. En este caso, a pedido de Luis Petek en un comentario al tercer post de la serie, explico algunos otros atributos de NUnit que podrían ser de utilidad. Así como […]
http://carlossantos.wordpress.com/2008/04/15/tdd-otros-atributos-de-nunit/

 Saludos.

Web Services usando spring.net

Filed under: Spring.net — José Franco @ 12:22 am

Bueno, acá publico un ejemplo simple de un Web Servicess que implementa spring, para levantar servicios virtuales, con una capa de datos también por inyección de código.

Son mis primeras experiencias, así que las quiero compartir con ustedes, las capas que tengo son:

Ahora les explico, no tiene gran funcionalidad este ejemplo, ya que solo lo hice para compartir… y no es para ningún desarrollo real.

Tengo el

Sería el CommonTypes, el objeto que voy a transferir, para este caso no tiene mucho sentido, pero más adelante voy a mostrar como consumir un WS por spring.Net, y en este caso si es útil para saber que voy a recibir.

Así que es una clase sin nada en particular

…..

En el DAO, defino las interfaces, así puedo tener un Sql Implementation, Oracle, Xml, lo que quisiera realmente, no hay ningún secreto por ahora.

Ahora veamos las otras dos capas que nos quedan

En Entitys, es una interfaz del WebServices… en este caso, es muy simple

Y en ServiceImplementation, simplemente hay que implementar y codificarlo.

Bueno ahora vamos a ver, mas sobre este UserService…

Generamos estas propiedades, para asignarle por spring, una instancia del DAO, podría ser de sql, oracle, o lo que quisieran, mientras implementaran la interfaz … Eso es lo que ofrece spring.net

En nuestro método, usamos este DAO que asignamos, para traer “x” dato.

Ahora, solo nos falta configurar el WebServices.

Generen, una carpeta “X”, con un Xml de configuración, en mi caso “Configuration”, y “webServices.xml”.

En este mismo, tenemos que hacer todo el mapping

<?xml
version=1.0
encoding=utf-8 ?>

<objects
xmlns=http://www.springframework.net >

<description>Servicios Expuestos</description>

<object
id=UserServiceAsmx


type=Synnax.Core.WS.UserAuthentication.ServiceImplementation.UserService, Synnax.Core.WS.UserAuthentication.ServiceImplementation >

<property
name=IUser
ref=UserDAO />

</object>

<object
id=UserDAO
type=Synnax.Core.WS.UserAuthentication.DataAccess.SqlImplementation.UserImpl, Synnax.Core.WS.UserAuthentication.DataAccess.SqlImplementation />

<object
id=UserServices
type=Spring.Web.Services.WebServiceExporter, Spring.Web>

<property
name=TargetName
value=UserServiceAsmx/>

<property
name=Namespace
value=http://synnax/services//>

<property
name=Description
value=Web Service de Usuario/>

</object>

</objects>

En sí, configuramos un objeto UserDAO, que apunta a la implementación del DAO que queremos, en este caso una para SqlServer, generamos un Objeto “UserServiceAsmx“, que apunta a la implementación del WS, y como verán le asigno la propiedad IUser, que espera una implementación del DAO, en este caso el UserDAO que configuramos.

Y por ultimo generamos un “UserServices” que como Target tiene nuestro UserServiceAsmx, esto va a levantar un .asmx “virtual”, en este caso sería un UserServices.asmx.

Bueno, como último paso, hay que configurar el Web.Config.

<configuration>

<!– Begin - Necesario para Spring.NET –>

<configSections>

<sectionGroup
name=spring>

<section
name=context
type=Spring.Context.Support.WebContextHandler, Spring.Web/>

</sectionGroup>

</configSections>


</configuration>

Esto siempre va, dentro de System.Web

<system.web>

<!– Begin - Necesario para Spring.NET –>

<httpHandlers>

<add
verb=*
path=*.asmx
type=Spring.Web.Services.WebServiceHandlerFactory, Spring.Web/>

</httpHandlers>

<httpModules>

<add
name=Spring
type=Spring.Context.Support.WebSupportModule, Spring.Web/>

</httpModules>

<!– End - Necesario para Spring.NET –>


</system.web>

Es evidente que hace esto, levanta las peticiones que se hacen para los asmx, y el modulo correspondiente para manejar todo esto.

Y como final, después del nodo de system.web …

</system.web>

<!– Begin - Necesario para Spring.NET –>

<spring>

<context
type=Spring.Context.Support.WebApplicationContext, Spring.Web>

<resource
uri=~/Configuration/webServices.xml/>

</context>

</spring>

<!– End - Necesario para Spring.NET –>

</configuration>

Le asignamos el archivo de configuración, al contexto que estamos usando.

Levantan, y si tipean el nombre alias que apuntamos la implementación del WS, va a andar todo correctamente:

Bueno, eso fue algo rápido, y que no tenía pensando publicarlo hoy, pero alguien me pidió un ejemplo.

Saludos.

PD: No se olviden de meter todas las dependencias de spring.net, sino no va a andar nada! Obvie esos pasos, porque son lógicos.

May 13, 2008

70-441 listo!

Filed under: Otros — José Franco @ 9:36 pm

No estaba posteando porque estaba preparando el 70-441, ahora solo me falta el 42… y listo, descanso de certificaciones MS por un tiempo, estuve preparando un par de artículos sobre spring.net, este finde los publico, para tener algo de data interesante en el blog.

 

Saludos.

May 6, 2008

Profesional 5 estrellas, y ahora se vino BizTalk…

Filed under: Otros — José Franco @ 9:06 pm

Como no tengo tiempo para escribir ningún artículo interesante, solo hago referencia a recursos interesantes.

Ya está disponible material del Biztalk…

Link: http://www.mslatam.com/latam/technet/PCE2/

Saludos.

Opinión personal sobre las certificaciones…

Filed under: Otros — José Franco @ 8:28 am

Les dejo un comentario que hice en la lista de correo de la empresa que trabajo (Thales).

…”Bueno, por un intento por mantener la lista activa… les dejo unos testking, no sé cuantos de las consultoría ya paso por algún examen, pero sé que muchos dudan y no se atreven, y a veces la justificación es que no dan los tiempos. Los exámenes son simples, siempre y cuando se estudie bien (si se fijan en los libros de MS Press por lo general cada capítulo está hecho para llevar 40min + o -, doy fe que con dos o tres semanas practicando, se aprueba) , a mi me paso que fui la primera vez y fui al muere, me acuerdo que me había sacado 57. Y después ni quería dar otro, pero me arriesgue y después de eso di 7 exámenes sin drama, era como hacer un trámite, mi idea era ser solo MCPD Web, pero termine estudiando para Winforms, y Enterprise.

Aparte como esta publicitando Microsoft

http://www.microsoft.com/andino/sabemosdeti/ “…

Los links, los borre porque era un server interno, jaja! Me parece algo lógico, conseguir algo que acredite tus conocimientos, es una inversión en tu carrera profesional. No lo digo de la postura “PRO” Microsoft, lo digo como profesional IT, como logre mis credenciales Microsoft, también estoy haciendo el camino para las Oracle.

Es simplemente un comentario! Saludos.

« Older PostsNewer Posts »

Powered by WordPress