Generación de código con CodeDOM


CodeDOM (Code Document Object Model) es una tecnología que nos permite Generar y Compilar código dinámicamente, Todo se basa principalmente en representar el código sobre una estructura que vincula los objetos entre si, el inicio de esta estructura es el  CodeCompileUnit la cual es el inicio del árbol, todo esto es “Traducido” por un proveedor del lenguaje en el cual queramos generarlo (por defecto el Framework dispone de proveedores para C#, VB.Net y JScript).

Combinar esta técnica con otras podría representar una gran herramienta de la cual podríamos sacar ventaja:

Por ejemplo:
CodeDom + Serialization+ Reflection  = Aplicaciones Explosivas!!!
(Podriamos añadir aquí AppDomains y mucho más!).

Comenzando con CodeDOM

CodeDom funciona como un arbol de elementos jerarquicos, los cuales vamos referenciando y agregando al elemento principal (CodeCompileUnit).

He preparado unos videos con una aplicación de prueba.

1/3

2/3


3/3

Nota: Espero aun subir estos videos con una Buena Calidad… jejeje 🙂

Hasta la próxima.

Juan Manuel Lombana

Visual Studio – Error “El Registro de sucesos está lleno.”


El dia de ayer tuve un inconveniente con un visual studio 2008, al intentar crear una nueva conexión en el ServerExplorer salia un error diciendo “El registro de sucesos esta lleno”.

ServerExplorer

Obviamente pense en el Registro de Sucesos del Sistema Operativo, pero ¿por qué ha de llenarse?, además de esto el equipo tenia unas cuantas semanas de estar formateado, intente de otra forma y agregue un DataSet Tipado al proyecto, arrastre un TableAdapter y le indique “New Connection” pero en este caso no mostraba error, simplemente cerraba el Asistente y borraba el TableAdapter del DataSet… Pense en formatear de nuevo, pero esto llevaría mucho tiempo… la solución era casi obvia pero mi experiencia con las herramientas del sistema operativo ha sido poca… así que el pequeño problema se convertia en uno mas Mayúsculo…

La Solución.

Como ya lo había comentado era un poco obvio, si el Registro estaba lleno… pues Borrarlo sería lo mejor.. 🙂 y asi se hace:

1. Vamos a Inicio.

2. Opción Herramientas Administrativas (Debes tener habilitada esta opción en el menú de incio, si no lo tienes te vas a las propiedades de la barra de inicio, pestaña “Menu Inicio”,  “Personalizar”, y en la lista que aparece buscas “Herramientas Administrativas”, seleccionas la opción “Mostrar en todos los programas y menú inicio”, Después Aceptar a Todo 😉 .)

3. Seleccionamos Visor de Sucesos.

4. Buscamos el Log de Aplicación.

5.Vamos al menú Acción.

6. Seleccionamos la opción “Borrar Registro” (o algo parecido…)

7. Nos preguntará si deseamos guardarlo, seleccionamos una ruta y OK.

Ya podremos trabajar con normalidad, aunque aun me queda la intriga de que pudo llenar el registro y cuanto es el limite de este, esto en realidad puede suceder con cualquier aplicación que utilice el Registro de Sucesos de Windows.

Por cierto la clase para Acceder al Registro de Sucesos de Windows desde el Framework es: System.Diagnostics.EventLog.

Hasta la próxima.

Juan Manuel Lombana.

Visual Studio 2010 – Como sacarle el jugo a tu visual studio.


Bueno, estrenando blog vamos a inagurarlo con algo que hace rato queria escribir, como sacarle jugo a tu Visual Studio 2010, esta gran herramienta te permite muchisimas cosas (algunas que ni te imaginarias…), de hecho el Visual Studio 2008 era ya una gran caja de sopresas, pués el Visual Studio 2010 no se quedo atras… en este post pretendo mostrar algunas de las tareas de automatización que Visual Studio 2010 nos trae, no las nuevas caracteristicas del .Net Framework 4 (Para esto ya habrá tiempo en otro post.)

Soporte para múltiples monitores.

Esta caracteristica es novedosa en cuanto a entornos de desarrollo, de hecho no conozco ningun otro IDE que lo haga (Puedo estar en un gravisimo error… si alguien conoce algún IDE me avisa). ¿Por qué esta característica? esta comprobado que trabajar con varios monitores aumenta tu productividad en un 40% (o más), yo de hecho no podría trabajar con menos de dos.

Con esta caracteristica podrás separar tu editor de codigo y maximizarlo en un monitor mientras en el otro podras continuar con el entorno, visualizando otros archivos de código o la vista de diseño… yo personalmente lo he utilizado visualizando en un monitor la estructura de Miembros y Metodos (Object Browser) de algún compilado de un tercero mientras que en el otro tengo mi editor de código en donde voy haciendo la implementación, esto me permite de forma rapida ver la documentación y hacerme un mapa mental del compilado.

Generación de tipos y miembros automáticamente.

Esta caracteristica es novedosa, nos ahorrará mucho tiempo pero es muy peligrosa pués para un proyecto estructurado no es muy recomendable, pero aun asi la mostraremos.

Básicamente consite en declarar una instancia de un tipo que no exista, visual studio te mostrará una pestaña que te indicara dos opciones.

En la primera Visual Studio Generará automaticamente un clase (para mi caso llamada persona) en un archivo de código independiente en la raiz del proyecto (para mi caso llamado Persona.cs); en la segunda opción Visual Studio mostrará un asistente en donde te preguntará el identificador de acceso, la clase del tipo (suena un poco extraño en realidad aqui indicas si es una clase, una estructura, una enumeración o una interfaz), el proyecto y archivo (o si generará un archivo de código independiente).

vs3Esta caracteristica también permite crear miembros para tipos existentes,  por ejemplo si indicas a una instacia de un tipo una propiedad que no esta declarada el te preguntará si quieres crear una propiedad o un campo y asi mismo para los metodos.

Como ya habia dicho es una caracteristica útil pero de mucho cuidado.

Zoom en el editor de código.

Esta es una caracteristica poco visible pero muy Útil, en la parte inferior izquierda del editor de código podrás ver una lista desplegable la cual te permitirá hacerle zoom a tu código, muy útil cuando haces una presentación o charla.

IntelliSense Mejorado.

Ahora el IntelliSense es mas inteligente!!!!, ahora según vas escribiendo el te va filtrando por coincidencias en toda la palabra y no solo por el principio como antes.

Call Hierarchy.

Esta herramienta te permite situarte sobre un método y analizar quien ha invocado dicho método y ademas de esto ver que invocaciones ha hecho este método.

vs4

Hasta aquí dejaremos por hoy.

Para la próxima tendremos algunas otras novedades, y otras no tan novedades pero muy útilies en nuestro trabajo con esta gran herramienta.

Hasta la Próxima.

Juan Manuel Lombana.