Espacio de Dario Quintana

Charla sobre Mercurial en el BarCampNea

Este sábado 25 de junio desde las 10 hasta las 22 hs., como muchos de Uds sabrán se realizará el primer BarCamp en nuestro NEA. Se realizará en la Universidad Tecnológica Nacional, Facultad Regional Resistencia (French 414) de la misma ciudad.
De la Wikipedia:

El nombre “BarCamp” proviene de un juego de palabras sobre los orígenes del evento, con referencia al término hacker Foobar. BarCamp surgió como una evolución del FooCamp, una “desconferencia” anual a la que se accede por invitación, patrocinada por la editorial emblemática del software libre O’Reilly.
El primer BarCamp tuvo lugar en Palo Alto, California, entre el 19 y el 21 de agosto de 2005 en las oficinas de Socialtext. Fue organizado en una semana y asistieron 200 personas. A partir de aquel momento se fueron repitiendo experiencias similares, hasta alcanzar en breve más de treinta ciudades alrededor del mundo.

Gracias al amigo Agustin Casiva (@casivaagustin), que amablemente me invitó a participar, voy a dar una charla sobre desarrollo.
Pensando rapidamente, se me ocurrió que sería bueno dar una charla sobre el manejo de sistemas distribuidos de control de versiones. Particularmente estaré hablando y mostrando Mercurial. Charlaremos sobre este gigante que tiene años de madurez, y un auge creciente en el mundo de los DVCS, siendo unos de los más usados del mercado.

Participá! Mercurial à la carte ;-)

Voy a ir anotando aquí algunos de los temas que iré tocando sobre Mercurial. Iremos desde lo más básico, estableciendo diferencias con sistemas centralizados, hasta temas un poco más complejos y super interesantes!

  • Diferencias con otros sistemas de control de versiones centralizados (Subversion).
  • Repositorios
  • Clonando repositorios
  • Branches
  • Merge
  • Extensions
  • Mercurial Queues
  • Hostings
  • Uso en empresas de desarrollo

[Actualización] Estos son algunas de las sugerencias que me han llegado:

  • Diferencias con Git y Subversion
  • Clientes

Todas las inquietudes o solicitudes para que toque ciertos aspectos sobre Mercurial, o sobre DVCS, escríbanme a este correo:

O simplemente por medio de twitter


O simplemente con un comentario al pie de este post.

Otros links de interés

Charlas del BarCampNEA
Mercurial en la Wikipedia
Sitio oficial de Mercurial

Preparar mi Visual Studio desarrollar con Asp.Net MVC 3

Saxo

Hola a todos, en este post voy a tratar de mostrar las herramientas primordiales para desarrollar con Asp.Net MVC 3. Respondería a la siguiente pregunta: Quiero empezar un proyecto Web con Mvc con Visual Studio 2010, pero qué tengo que tener instalado? Bueno, la respuesta a esta pregunta la tendremos en breve, sigan leyendo.

También, iremos viendo algunas herramientas opcionales (extensiones de Visual Studio) que nos ayudan en el desarrollo general de nuestra aplicación, algunas van desde tareas realmente complejas de refactoring, hasta tareas simples pero que a la larga resultan tediosas.

Numeraremos los pasos para poder tener mejor referencia en el post, sin embargo, hay algunos que pueden ser intercambiables.

Comenzamos?

1) El más obvio de los pasos, Instalar Visual Studio 2010 Sonrisa. Partiremos de que todos poseen Visual Studio 2010 instalado, e iremos a lo interesante. Cuando lo tengamos en nuestras máquinas instalado, si quieren corroborar, podremos ver en la pantalla de About, información similar a esta:

About-sin-service-pack

2) Instalar Visual Studio 2010 Service Pack 1

Es importante instalar el service pack ya que se resuelven muchos bugs y se agregan mejoras. Para los detalles de las notas de release, pueden visitar esta página. Para descargar dicho service pack accedan al enlace de abajo.

Descargar Visual Studio Service Pack 1

Una vez instalado deberían tener ver que la versión ha cambiado.

Visual Studio con service pack

3) Instalar Asp.net MVC 3 Tools Update

Desde abril de este año, se liberó una serie de mejoras para el desarrollo con Asp.Net MVC en Visual Studio, es muy importante que descarguen e instalen este update.

Descargar Asp.net MVC 3 Tools Update

Algunas de las mejoras que se incluyen en este update, hot-fix, ó pequeño service pack, como lo quieran llamar, son las siguientes:

  • "Add Controller" dialog box can now scaffold controllers with views and data access code
  • Improvements to the "ASP.NET MVC 3 New Project" Dialog Box
  • Project templates now include Modernizr 1.7
  • Project templates include updated versions of jQuery, jQuery UI, and jQuery Validation
  • Project templates now include ADO.NET Entity Framework 4.1 as a pre-installed NuGet package
  • Project templates include JavaScript libraries as pre-installed NuGet packages

Para visitar las notas completas de todas las actualizaciones que sufrió Asp.Net MVC 3, deben visitar esta página donde obtendrán información más detallada.

Si notan, ahora Modernizr está incluido en el proyecto MVC desde que lo creamos. Pero… ¿Qué es Modernizr? En simples palabras, es un workaround para soportar Html 5 (sin mucho javascript) en aquellos navegadores que aún no lo soportan. De esta manera podemos escribir Html 5 sin esperar que nuestros clientes actualicen sus navegadores. Si todavía no les llegó el memo de qué cosas se pueden hacer con Html 5, bueno, todavía están a tiempo, denle una mirada a esta presentación, deben usar Chrome 10x o posterior para ver las diapositivas. En ella se muestran todas las bondades de Html 5 de manera interactiva.

Otra de las bondades que tiene es que los proyectos de MVC 3, son “nuget-awares” y tenemos todas las librerías instaladas como paquetes de Nuget, lo cual es muy útil si luego tenemos que actualizar a nuevas versiones. Si todavía no conocen nuget, creo que es hora que le den una mirada. Este video, nos da una aproximación, y luego visiten nuget.org.

 

Opcionales

Aquí enumeraré dos herramientas que plugins de Visual Studio, que nos ayudan no solamente con Asp.Net MVC sino con el desarrollo en general.

4) Resharper

Resharper, Es una poderosísima herramienta que se añade a Visual Studio permitiéndonos mejorar nuestra experiencia en el desarrollo, muchos ya la conocen, y algunos ni siquiera conciben desarrollar en Visual Studio sin tenerla (mi caso sería este Risa). Esta es una herramienta paga, no tiene precios desorbitantes y la productividad realmente se incrementa si se lo sabe usar. Las mejores bondades de Resharper para MVC 3 se verán en la versión 6 del mismo. Hoy día, pueden ir viendo qué características nuevas tendrá R# 6 para la web, siganlo en este enlace.

Buenas noticias para aquellos que tienen proyectos OSS

Más allá de que sea una herramienta paga, aquí están las buenas noticias: si posees un proyecto Open Source y para desarrollarlo usás Visual Studio, tenés la posibilidad de solicitar una licencia gratuita OSS de Resharper con una duración de una año, luego tienes que volver a solicitarla, es un tramite casi inmediato en días hábiles.

Desgargar y probar Resharper
Descargar y probar Resharper 6 (Early Access Program)

 

5) Visual Studio Productivity Tools

Este plugin de Visual Studio agrega algunas cosas interesantes a nuestro Visual Studio, y es totalmente gratuito!

Descargar Visual Studio Productivity Tools

addref

Sin dudas la ventana de Agregar nueva referencia es la característica más destacada Guiño. También posee opciones de navegabilidad y busqueda con mejoras.

 

6) PowerCommands for Visual Studio 2010

Este es otro plugin de Visual Studio que tiene algunos comandos útiles como Copiar el path de un archivo, abrir una consola en una locación del proyecto, etc.

power-comands

Descargar PowerCommands for Visual Studio 2010

 

7) Una silla ergonogeek !

Para aquellos que no se sienten cómodos en sus lugares de trabajo, deberían explorar esta opción! Eso sí, vayan pensando en cifras por encima de los U$S 40,000.

Disclaimer: este punto es verdaderamente opcional.

my-new-office-chair

 

 

Usando Extension Manager

Visual Studio 2010 tiene un administrador de complementos muy útil y fácil de usar, de modo que las descargas anteriores como ser: Resharper, Productivity Tools, y PowerCommands pueden realizarse con este gestor, evitando descargar e instalar manualmente.

Para acceder a él, hacemos lo siguiente: Tools-> Extension Manager …

menu

Luego debemos elegir “Online Gallery”, y buscar la extensión que queremos. Por ejemplo, así figura la extensión PowerCommands, lista para ser descargada e instalada. Debemos presionar “Download” y seguir los pasos para la instalación.

power-comands-ext-man


Windows 7, Windows Server R2 y Azure, la nueva plataforma de Microsoft

El martes 1 de diciembre de 2009, a partir de las 17:30 horas, se realizará en Resistencia una importante jornada de tecnología organizada por el Grupo de Usuarios Microsoft. El evento es gratuito y se requiere inscribirse previamente.

Será en el Aula Magna Universidad Tecnológica Nacional, Facultad Regional Resistencia, French 414, Resistencia.

Programación:

17:30 – 18:00 Acreditación

Presentación de Windows 7 – Grupo de Usuarios Microsoft
La nueva arquitectura del sistema operativo. Novedades de la versión, mayor velocidad, mayor disponibidad de memoria servicios y dispositivos

Cloud Computing / Azure: el nuevo paradigma de computación del siglo XXI – Ing. Carlos Perez (MVP)
El nuevo paradigma de sistemas de información en internet ya está aquí. La plataforma Azure® de Microsoft permite diseñar y ejecutar sistemas que corren en servidores remotos y grandes datacentros, ofreciendo ventajas económicas y un nivel de servicio elevado. Se trata del “software + infraestructura” vendida como servicio, ideal para las empresas modernas, de todos tamaño y área de negocio.

Windows Server 2008 R2 / SBS 2008
: La nueva plataforma para las soluciones empresariales – Ing. Gabriel Zabal (MCSE)
Presentación del último release de Windows Server 2008. Mejoras y Novedades. Seguridad. Plataforma de Virtualización Hyper-V R2. Introducción y Novedades de SBS 2008.

22:00 Cierre y Sorteos

REGÍSTRESE AL EVENTO * EVENTO GRATUITO por favor ignore la pregunta sobre forma de pago.

NHibernate Validator 1.2 Beta3 liberado

Descarga NHibernate Validator 1.2 beta3 con fuentes, binarios y ejemplos aquí.

Listo para usarse con NHibernate 2.1 GA.

Para leer ejemplos y documentación, es obligatorio darse una vuelta por el blog de Fabio, y seguir la serie de post acerca de NHibernate Validator. Aquí.

A disfrutarlo ;)

NHibernate Validator 1.2 Beta2 liberado

Descarga NHibernate Validator 1.2 beta2 con fuentes, binarios y ejemplos aquí.

Listo para usarse con NHibernate 2.1 GA.

A disfrutarlo ;)

NHibernate Validator y Asp.net MVC

Hace unos días escribí un post sobre cómo integrar estos frameworks. El código que hay que escribir es realmente poco y se requiere solamente de una clase en nuestro proyecto Asp.Net MVC que pueda agregar los mensajes de errores y actualizar el status del modelo.

Leer artículo

NHibernate Validator 1.2 alpha3

Descarga NHibernate Validator 1.2 alpha3, los binarios y el código fuente aquí

La version 1.2 alpha2 demostró se muy estable, por lo tanto este es solamente una actualización para aquellos que lo quieren usar con NH 2.1 alpha2.

Alt.Net en español

Habiendo tantos frameworks de .Net elaborados por terceros que usamos, la creación de este grupo era obligatoria, se hizo esperar, pero ya está aquí.  Si bien el grupo dice Argentina, no te dejes llevar por esto, todos hablamos español, y lo importante es compartir las experiencias.

Bug con SCOPE_IDENTITY() en Sql Server 2005/2008

Bueno, la historia es ya conocida, cuando trabajamos con NHibernate no es conveniente usar identity, hay cosas de NHibernate que no se aprovechan. Cuando se usa Identity y se realiza un Save(), NHibernate tiene que forzar el INSERT para obtener el Id, por lo tanto el concepto de Unidad de trabajo no es explotado.

Ahora sumémosle este bug, que la gente del SQL Server team después de evaluar dice: ?Desafortunadamente, después de evaluar las opciones para solucionar el problema, llegamos a la conclusión que no podemos arreglarlo para Sql Server 2008?

Conclusión

Si usas NHibernate+SQL Server, no te aconsejo identity como generador de identificadores en producción. Una muy buena opción que tiene muchas bondades es usar como generador a hilo.

Ms Sql Server y caraterísticas molestas en un multi-RDBMS framework

Estos días fueron de análisis acerca de las caráterísticas de SQL Server, en especial las versiones 2005 y 2008, que sí molestan cuando se habla de un framework que genera código hacia múltiples motores relacionales, el actual framework en cuestión NHibernate, otros, pueden unirse a la queja.

Siempre en el núcleo de NHibernate hay que aplicar parches para las propias características de los motores relacionales que soporta, lo cual es muy entendible, cada motor tiene derecho a implementar como cree que es mejor sus características. Muchos de esos cambios desembocan en el dialecto, otros en el parser, otros en la parametrización o preparación de los commandos a ejecutar (lease IDbCommand) y otros vaya uno a saber.

Algunas características que implicaron cambios a pedido de los usuarios, tanto en dialecto como en parsers son entre otros: la paginación! Esta característica de SQL Server dio qué hablar, y mucho dolor de cabeza.

Cómo algo tan básico, que se usa día a día en las aplicaciones que desarrollamos, y hasta pareciera inofensivo, terminó desembocando en TODO un cambio en el dialecto de MsSql2005 (dentro de NHibernate por supuesto).

Qué hicimos los usuarios de Sql Server 2005/2008 para recibir semejante fea característica de paginación? Quizás no haya ejemplos de otros de otros RDBMS con paginación?, quizás no fuimos tan devotos del producto? Vaya uno a saber. Pero ejemplos de paginación en otros RDBMS. Este Sr. Postgres hace una linda paginación con la clausula LIMIT, donde se declara el límite y el offset. Fácil no? Resumiendo, esta característica se salvó aplicando un parche grande al dialecto gracias a contribuidores.

Compliquémosle un poco cuando usamos Sql Server 2005/2008 con las clausulas de FullText Search nativas: Contains y FreeText. Ambas clausulas hasta parecen mágicas por que son ?void?, no devuelven ningún valor, y esto significó otro parche en el Parser de NHibernate, uno chico, pero modificamos el Parser (no el Dialecto del motor específico), lo cual lo hace un poquito más molesto, porque? Por que el dialect es una de las cosas más recomendadas a inyectar cuando se trata de características que faltan. Para ver cómo terminaron las cosas, ir a este post.

Ahora vayamos a Queries Parametrizadas + Planes de ejecución. Bueno, todos saben es extremadamente bueno que el RDBMS cachee los planes de ejecución de las consultas para poder usarlas más tarde, ganando en performance. Incluso muchos usan SP por que dicen que NHibernate: ?genera consultas dinámicas que desembocan en el recalculo del plan de ejecución de cada consulta?. Esto es FALSO. NHibernate genera consultas, pero son todas parametrizadas, por lo tanto son reusables para no volver a calcular los planes de ejecución. Inclusive NHibernate se vale de opciones como: ?prepare_sql?, que sirve para activar el comando Prepare() en el IDbCommand. El punto es el siguiente, ahora Sql Server 2008 lanzó otra característica que le agrega otro pedazo de código a nuestras consultas SQL: OPTIMIZE FOR UNKNOWN. Podemos tomar un pequeño paseo por esta característica leyendo este post. La característica me parece bárbara, pero, otro pedazo más de SQL para eso?

No quiero saber a donde vamos a parar de acá a 10 años: O se empiezan a hacer más transparentes algunas opciones importantes, o cuando tenemos algún framework que genera código SQL para nuestro motor SQL Server vamos a necesitar impresiones en algo más que formato A4 para leer.

Quizás, quien dice, haga falta una re-estandarización del lenguaje SQL, por que nos estamos pasando con ?nuestras? propias implementaciones, y ese tipo de cosas perjudican a las herramientas (frameworks) que trabajan sobre estos motores para hacer las cosas más fáciles a los desarrolladores.

Older Posts »