Cooperator 1.3.0.1100 (Final) Liberado Diciembre 30, 2006
Posted by eugenioserrano in Cooperator Framework.2 comments
Hola Amigos:
Es un agrado para mi informarles que hemos liberado la versión final (con código fuente incluido) de Cooperator Framework.
Pueden bajarla de aquí:
http://www.codeplex.com/cooperator/Release/ProjectReleases.aspx
La demora se debia que teniamos que terminar algunos trámites para el registro de propiedad intelectual.
Estamos a su disposicion para el que quiera preguntar lo que sea. Pero nada mejor que el codigo fuente para ver como funciona la cosa.
Eventos Microsoft en Córdoba, Arg. (Ene 2007) Diciembre 26, 2006
Posted by eugenioserrano in Córdoba.add a comment
Viernes 5 de Enero de 2007, 18 hs
Technight: Microsoft Robotics – Lego Mindstorms NTX & Windows Vista – Speech Recognition
Temario:
Microsoft Robotics – Lego Mindstorms NTX
Uno de los productos más novedosos que Microsoft ha presentado este año es Microsoft Robotics Studio November 2006 CTP. Este producto permite introducirnos en algunos de los conceptos básicos para la programación de robots. En esta sesión veremos las características principales de este producto y desarrollaremos (en vivo) una aplicación práctica “persiguiendo a .Net 2.0”; un pequeño proyecto para controlar un robot con código Net.
Duración: 90 minutos.
Orador: Bruno Capuano – Avanade
Windows Vista – Speech Recognition
Con el reconocimiento de voz del sistema operativo Microsoft® Windows Vista™, es más fácil utilizar la voz para controlar aplicaciones y para navegar por el nuevo Sistema Operativo. La tecnología Speech Recognition (reconocimiento de voz) permite controlar el ordenador hablando. Al hablar, el software decidirá de forma inteligente si tiene que convertir su voz en un texto o si ha dado un comando que requiere llevar a cabo una acción. En esta sesión, veremos las características principales de esta nueva tecnología y cómo podemos aprovecharnos de esas capacidades desde el mundo Net.
Duración: 90 minutos.
Orador: Bruno Capuano – Avanade
Lugar: Raona
Avellaneda 240 B Alberdi Norte
Córdoba X5000KFB
Argentina
Haga click aqui para registrarse a este evento.
Optimizando aplicaciones Diciembre 24, 2006
Posted by eugenioserrano in General.add a comment
Aprovechando para pulir los últimos de detalles antes de liberar la versión final de Cooperator Framework, estuve estos días optimizando un proceso que ya tenemos en producción desarrollado sobre nuestro Cooperator y que lee y escribe intensivamente en la base de datos.
Para la optimización use estas 3 herramientas.
1) SQL Profiler: Con el pude ver las conexiones abiertas por la aplicación, a que Stored Procedures estaba llamando en cada caso, cuantas lecturas/escrituras se hacian en cada operación, etc.… Ver más.
2) CLR Profiler: Es una herramienta que básicamente chequea como actua el Garbage Collector y como es el ciclo de vida de los objetos dentro de nuestra aplicación. Muy buena, también me permitió ver que objetos tenía mas cargados, que tipos eran más usados, etc.. Ver más.
3) Enterprise Performance Tool: Aunque no funciona del todo bien en Windows Vista, la utilicé para “medir”, cuales son los métodos que más tardan en ejecutarse, cuales son los métodos más llamados, etc.. Ver más.
Recomiendo revisar los procesos con esas 3 herramientas ya que se puede ajustar muchísimas cosas que de otra forma no se pueden ver. Yo en mi caso, ajustando tanto las librerías de clases base de Cooperator, como el código de mi aplicación logre bajar a más de la mitad el tiempo en que se ejecutaba el proceso y a la vez consumir menos recursos.
Por ejemplo con la herramienta de rendimiento de Visual Studio 2005, me di cuenta que estaba llamando más de 1.000.000 de veces a un determinado método. Bueno después de cambiar algunas cosas logre reducir notablemente ese caso particular poniendo una colección en un diccionario de generics y preguntando si tal objeto estaba en el diccionario… Es impresionante como caminan los diccionarios en .Net 2,0 !
Saludos,
Eugenio
Cuando Debug no es igual a Release Diciembre 24, 2006
Posted by eugenioserrano in General.1 comment so far
¿ Usted cree en las brujas ? Hay algunos dias que me hago esa pregunta …
Les cuento de un error de por más interesante que me estaba dando una aplicación que lee y escribe datos intensivamente sobre una base de datos SQL Server y que me motivó a escribir esta entrada en mi blog.
Es un error súper extraño y gracioso a la vez. Antes que nada, mostremos el stack del error:
Stack Trace
at System.Data.SqlClient.SqlTransaction.Zombie()
at System.Data.SqlClient.SqlInternalTransaction.ZombieParent()
at System.Data.SqlClient.SqlInternalTransaction.CloseFromConnection()
at System.Data.SqlClient.TdsParser.Deactivate(Boolean connectionIsDoomed)
at System.Data.SqlClient.SqlInternalConnectionTds.InternalDeactivate()
at System.Data.SqlClient.SqlInternalConnection.Deactivate()
¿¿¿¿ System.Data.SqlClient.SqlTransaction.Zombie() ????
Pues sí, y sinceramente jamas habia visto este error ni nada parecido !!
Está bien que era sábado cerca de las 12 de la noche, pero el Zombie en ese caso debería ser yo y no tenía porque serlo ADO.Net, a no ser que las brujas existan…
Lo peor de todo esto es que este error sucedía solamente cuando compilaba mi aplicación en Release y no en Debug !
Con Debug funcionaba todo perfectamente tal cual estaba programado.
En otro caso, aleatoriamente me daba: referencia no establecida a instancia de objeto. Empecé entonces a revisar todo el proceso paso a paso para ver si mis objetos eran Thread Safe, si mis colecciones están trabajando correctamente, etc.. Pero como en Debug la aplicacion funcionaba correctamente era evidente que por mas que me pase horas y horas recorriendo paso a paso mi aplicacion no iba llegar al problema.
Busqué el error del “Zombie” en internet y prácticamente no encontré ninguna información acerca del mismo, y en la ayuda nada de nada…
Termine apagando mi equipo y me fui a hacer un poco de vida familiar antes de irme a dormir.
Hoy domingo mi pequeña hija me despertó tempranito y aproveche para ponerme a estudiar el misterioso caso del Zombie que tenía en mi Pc.
Después de un par de horas de revisar mi código buscando sin éxito algún problema me puse a revisar las opciones de compilación de cada proyecto ya que era muy extraño que en Debug funcionara y en Release no.
Al fin encontré como solucionar el problema, y era que en Release, uno de mis ensambles tenía en la opción Generar Información de Depuración = None, mientras que otros tenían pdb-only. En Debug esto es por defecto Full.
¿ Conclusión que saco ?
Hay que usar para todos los proyectos que forman parte una aplicación la misma configuración avanzada de compilación. Esto es: None para todos, ó pdb-only para todos, ó Full (Debug) para todos, ya que de lo contrario obtendremos resultados inesperados.
Bueno, con eso mi aplicación quedó andando (y muy rápido), pero si alguien me puede explicar este extraño comportamiento se lo agradeceré….
Aquí paso las ventanas tanto en Visual Basic como en C# de cómo cambiar esta configuración.
Cooperator en CodePlex Diciembre 20, 2006
Posted by eugenioserrano in Cooperator Framework.add a comment
Amigos:
Hemos subido nuestro framework a codeplex, el sitio de hosting para proyectos de open source de Microsoft.
http://www.codeplex.com/cooperator
En muy pocos dias subiremos el código fuente alli para que puedan descargarlo
Saludos,
Eugenio
Documentación Cooperator Framework Diciembre 18, 2006
Posted by eugenioserrano in Cooperator Framework.1 comment so far
Hola amigos:
Este fin de semana, hemos subido 4 páginas con documentación sobre Cooperator Framework, principalemente sobre nuestra herramienta Cooperator Modeler. No olvidar que pueden subscribirse a la lista de discusión, donde pueden plantear cualquier duda que tengan respecto del mismo.
Aqui estan los enlaces a la documentación:
Seguiremos agregando en poco tiempo ejemplos y demos paso a paso.
Saludos,
Eugenio
Visual Studio 2005 SP1 Liberado ! Diciembre 15, 2006
Posted by eugenioserrano in General.add a comment
Microsoft acaba de liberar el esperado SP1 para Visual Studio 2005
http://www.microsoft.com/downloads/details.aspx?familyid=BB4A75AB-E2D4-4C96-B39D-37BAF6B5B1DC&displaylang=en
Lo estoy bajando y cuando lo tenga instalado comentaré como me fue..
Saludos,
Eugenio Serrano
Visual Studio 2005, Vista y ASP.Net Diciembre 14, 2006
Posted by eugenioserrano in ASP.Net.5 comments
Hola amigos:
Ahora que se liberó windows Vista, todos queremos usarlo como equipo de desarrollo y la verdad es que hay bastantes temas a resolver antes de lograr que la cosa ande mas o menos bien. Microsoft recomienda ejecutar Visual Studio 2005 como Administrador, cosa que va contra las recomendaciones de seguridad, ya que despues terminamos subiendo los niveles de permisos para que nuestras aplicaciones funcionen
.
Ademas hay varios truquitos más que pueden encontrar aqui:
http://msdn2.microsoft.com/en-us/vstudio/aa948853.aspx
Asi y todo, cuando queremos crear un sitio de ASP.Net en IIS, nos dice que IIS no esta instalado. Y esto es debido a que Vista trae II7 y Visual Studio no puede detectarlo. Aqui les dejo 3 pasos para poder habilitar la compatibilidad con II6 y que Visual Studio pueda crear los sitios IIS correctamente.
Saludos,
Eugenio
Paso 1: Ir al panel de control y elegir Desinstalar un programa
Paso 2: Elegir Activar o Desactivar caracteristicas de Windows
Paso 3: Marcar las opciones segun se indica con las fechas rojas
La potencia de WPF en la Web: WPF/E Diciembre 10, 2006
Posted by eugenioserrano in ASP.Net.add a comment
Hace unos dias, Microsoft lanzó la primera preview pública de “WPF/E”, que está disponble aquí.
“WPF/E” contiene un pequeño runtime del lado del cliente, que permite a los desarrolladores Web y a los diseñadores de AJAX entregar experincias de usuario más ricas e interactivas con soporte para todos los navegadores.
Permitirá que los usos vayan más allá de lo qué hoy se pueden hacer con HTML puro, y dará a los sitios web la posibilidad de mejorar perceptiblemente la experiencia del usuario, mezclando HTML, gráficos vectoriales dinámicos, animaciones, video y sonido.
“WPF/E” logra esto proporcionando un motor de ejecucion del lado del cliente que se puede utilizar en cualquier página HTML y que agrega al browser soporte para gráficos vectoriales, animaciones, y diseño de la interfaz de usuario en forma declarativa con XAML (además, el formato declarativo de XAML permite por un lado, la optimización de los motores de busqueda para poder encontrar el contenido mas eficientemente y por el otro, un mejor diseño por medio de herramientas WYSIWYG).
WPF/E también proporciona soporte para codecs de vídeo y audio para WMV, WMA y MP3. Esto significa que ahora puedes enviar contenido multimedia interactivo a cualquier browser sin requerir ningúna instalación adicional, (ni siquiera Windows Media Player)
“WPF/E” se implementa como un pequeño runtime en el lado del cliente que los usuarios descargan e instalan una única vez para su browser. (Este CTP es una transferencia directa 1.1 Mb, y puede ser “descargarda en demanda” la primera vez que un usuario visita una página con contenido “WPF/E”).
Este primer CTP funciona en sistemas Windows y Macintosh (x86 y PowerPC) y soporta IE, FireFox y Safari.
Lo que hace a “WPF/E” realmente agradable desde la perspectiva del desarrolador, es que es muy fácil integrarla dentro de las páginas HTML y de los sitios existentes. Los desarrolladores pueden escribir Javascript estándar dentro de una pagina HTML para programar y manipular directamente cualquier elemento DOM de XAML, de animación, o de vídeo dentro de “WPF/E”.
Esto permite a los programadores agregar fácilmente contenido de WPF/E a sus soluciones AJAX existentes hoy y pueda utilizar un solo código base con un Framework AJAX consistente para trabajar contra HTML y DOMs de XAML en la página al mismo tiempo.
“WPF/E” se puede utilizar con cualquier Framework de AJAX (no tiene ninguna dependencia con ninguna implementación de AJAX de lado del cliente).
Obviamente también se integrará con ASP.NET AJAX (ATLAS), Visual Studio, y las nuevas herramientas de diseño Expression de Microsoft.
También se proveera integración de “WPF/E” con código manejado el próximo año.
Se puede descargar la documentación de este preview aquí.
Aqui se pueden encontrar algunos ejemplos:
Y aqui hay un interesante ejemplo de como se puede convivir con flash en la misma página:
http://thewpfblog.com/examples/wpfe/microbe/Default.html
Basado en el anuncio de ScottGu:
http://weblogs.asp.net/scottgu/archive/2006/12/04/announcing-the-release-of-the-first-wpf-e-ctp.aspx
Como hace Microsoft para rechazar 100.000 ataques al mes Diciembre 10, 2006
Posted by eugenioserrano in General.add a comment
Yo soy un desarollador, pero esta nota de la ComputerWorld (en ingles) es realmente interesante de leer…
Siempre digo que la seguridad es una responsabilidad de todos, y como desarolladores no podemos dejar de informarnos en temas de seguridad para lograr crear software mas seguro.
Saludos,
Eugenio





