Ver por etiquetas

Todas las etiquetas » Dev (RSS)
Lo siento, no se pueden combinar más etiquetas.

YACAMLQT (Yet another CAML query tool) Redux (3) in CodePlex

Bueno, esta es la última entrega a partir de hoy el proyecto se encuentra en CodePlex ( yacamlqt.codeplex.com ). En esta última parte solo unas pequeñas notas para el usuario final. Bien, para usar YACAMLQT, dentro de tus proyectos, solo hay que referenciar la dll ( IdeSeg.SharePoint.Caml.QueryParser.dll ) y el uso sería el siguiente: 1: try 2: { 3: var parser = new NParser(textTSql, new ASTNodeCAMLFactory()); 4: var generator = new CodeGenerator(parser.Parse()); 5: generator.Generate(); 6: return...
Publicado por Carlos Segura | con no comments
Archivado en:

¿Por qué son importantes los patrones? - Libros de Referencia

A estas alturas… todavía me encuentro con aplicaciones donde es imposible comprender el diseño e interpretar las intenciones del desarrollador. Básicamente, pienso que hablan por sí solos, es decir, revelan la intención del diseño, son un lenguaje común; cuando en un equipo de desarrollo se habla en términos de patrones de código, se está hablando de las características, cualidades y restricciones que el patrón representa. Hablamos simplificando los problemas y partes del diseño de nuestras aplicaciones...
Publicado por Carlos Segura | 3 comment(s)
Archivado en:

YACAMLQT (Yet another CAML query tool) Redux (2)

Continuando con la explicación del código de YACAMLQT . Habíamos visto la parte relacionada con el Lexer el analizador morfológico. Como es obvio detrás debe haber un analizador sintáctico y semántico el Parser . El analizador sintáctico y semántico ( NParser ) se ha implementado siguiendo el patrón interpeter, ( seguramente sea uno de los que menos se ven ), el objetivo es obtener los distintos Tokens desde el Scanner y montar un árbol sintáctico ( AST ) este árbol contiene Nodos ( ASTNodeBase ...
Publicado por Carlos Segura | con no comments
Archivado en:

Mi particular visión del Test Driven Development (TDD)

Cuando nos enfrentamos al diseño de un programa sea el que sea, partimos de un estado que podemos llamar “A” problema, y como es obvio un estado “B” en el que tenemos resuelto el problema, por medio de un programa. Si la programación fuera como las matemáticas, cosa que “no es” aunque se fundamente en ello; la solución ideal sería la línea recta . Una línea recta que nos lleva del punto “A” al punto “B”, directamente, sin rodeos. Es la solución más ELEGANTE, por qué es la solución más CLARA y BREVE...
Publicado por Carlos Segura | 11 comment(s)
Archivado en:

String.Format vs String.Concat

Esto post es para recordar simplemente que concatenar cadenas con String.Format es una mala práctica y para eso tenemos ese gran olvidado que es String.Concat. Y como muestra un ejemplo… public void Format() { for ( int i = 0; i < 1000; i++) { String.Format( "{0},{1}" , "Test" , "Test" ); } } public void Concat() { for ( int i = 0; i < 1000; i++) { String.Concat( "Test" , "," , "Test" ); } }
Publicado por Carlos Segura | con no comments
Archivado en:

CC.Net FxCop - tip ...

Dentro del proceso de integración continua que uso, los proyectos que no tienen un archivo FxCop, los proceso usando una plantilla a la que añado mediante una tarea en el MsBuild, los targets necesarios para después poder ver si hay algo muy cantoso … La cosa es que en el resto de proyectos mantengo un archivo FxCop, en el que voy excluyendo algunas de esas cosas cantosas tras revisar el código. El problema viene cuando en el build server, se ejecuta el FxCop, y genera el informe, ya que en este...
Publicado por Carlos Segura | con no comments
Archivado en:

De la prueba al hecho - xUnit

James W. Newkirk , uno de los co-autores de NUnit , trabaja desde el año pasado junto con Brad Wilson en un framework para realizar "pruebas" llamado xUnit . Lo he seguido con cariño y finalmente lo he adoptado para un nuevo proyecto en el que estoy trabajando, dejando mi querido MbUnit . El cambio de NUnit a MbUnit, lo hice debido a que este último incorporaba RowTests, posibilitando el ejecutar un mismo test usando distintos valores, lo cual acortaba el número de pruebas a escribir sustancialmente...
Publicado por Carlos Segura | 1 comment(s)
Archivado en:

Programacion y piedras en el zapato

Llevas una hora caminando con una piedra en el zapato y finalmente la sacas cuando ya no puedes más, entonces dices .. buff que alivio .. ¿Por qué no habré sacado la piedra antes? Una piedra, unas llaves en el bolsillo de atrás, dejar la mochila cuando estas parado hablando con alguien por 30 minutos… son innumerables la cantidad de ejemplos que podíamos citar aquí. La cuestión es que las el paso de una pequeña molestia a una gran molestia y de una gran molestia a decidirnos resolver el problema...
Publicado por Carlos Segura | con no comments
Archivado en:

TFS2008 Proposito del año

Mi buen amigo Rodrigo me dice: " A ver si jubilas NUnit y te pasas a Team System ". Bien, ese es mi propósito para el año entrante. Jubilar NUnit, CruiseControl, RedMine y mi querido Subversion. En cuanto salga Windows Server 2008, y Team System 2008 será lo primero que haga, remodelar mi pequeña y barata infraestructura. Como decía actualmente estoy usando lo siguiente en un modesto Pentium 4, con 512Mb de Ram que hace las labores de mini-servidor en casa. Pruebas unitarias : MbUnit y...
Publicado por Carlos Segura | 14 comment(s)
Archivado en:

A mi tampoco me gusta el UML aunque sea necesario… y deba usarlo.

(Esto empezó siendo un comentario a un post de Rodrigo ) En eso estamos…. Vamos que no me gusta el UML, que lo entiendo, lo comprendo y lo respeto, pero a mi no me gusta, que le vamos hacer. A ver si consigo explicarme … Creo que UML es una buena herramienta y es necesaria, pero no es adecuada para todo tipo de proyectos, en especial para proyectos pequeños y medianos, supongo que es por eso por lo que Rodrigo dice que tiene “tendencia al mal uso”. También pienso que UML requiere un nivel alto de...
Publicado por Carlos Segura | 3 comment(s)
Archivado en: