sábado, 31 de mayo de 2014

Presentación Html5 Java Script Apis, Html Day Medellín

Hola amigos, les comparto la presentación de mi charla dictada en el Html Day Medellín en la cual estuve compartiendo sobre Html5 Java Script Apis, espero sea de su interés.


miércoles, 14 de mayo de 2014

Campus Party Colombia, Aprovecha este descuento con Avanet

Hola amigos, para quienes van a Campus Party Colombia, pueden usar este código de la comunidad Avanet para tener un gran descuento del 50%


Entity Framework Tooling, herramientas para mejorar nuestra productividad!

Hola amigos, para ir terminando con esta serie de post sobre Entity Framework quiero recomendarles un par de herramientas que son bastante útiles para mejorar nuestra productividad y para hacer nuestra labor un poco más fácil. En un artículo anterior ya habíamos visto por ejemplo los Entity Framework Power Tools que nos ayuda bastante con el trabajo en el enfoque Code First, y también vimos que en el último build de Microsoft se presentó por llamarlo así un nuevo enfoque "Code Second" en el cual podemos Generar nuestras clases Poco como en Code first pero esta vez generándolas a partir de nuestra base de datos.

Entity Framework Profiler

Bueno entrando en materia la primer herramienta de la que les quiero hablar es de Entity Framework Profiler, que es una herramienta licenciada que nos permite observar en tiempo real las consultas sql o Transact Sql que genera Entity Framework para comunicarse con la base de datos, ya que como vimos en artículos anteriores EF genera estas sentencias a partir de nuestras consultas linq. Ahora veamos cómo se usa:

Lo primero que debemos hacer es descargar el .zip en el cual se encuentran dlls, ejecutable y demás archivos necesarios para el funcionamiento de la herramienta, de la siguiente url: http://www.hibernatingrhinos.com/products/efprof


Una vez tengamos el zip, debemos referenciar en nuestra aplicación la dll HibernatingRhinos.Profiler.Appender.dll y debemos escribir la siguiente instrucción en el evento en dónde inicia nuestra página, cómo en nuestro caso utilizaremos una aplicación de consola lo haremos en el método main de la siguiente forma:

        static void Main(string[] args)
        {
            HibernatingRhinos.Profiler.Appender.EntityFramework.EntityFrameworkProfiler.Initialize();
            using (var prodcutosContext = new ProdcutosContext())
            {
                var productos = prodcutosContext.Productos;
                var p = productos.ToList();
            }
        }

De esta forma inicializamos el profiler para que haga depuración de las sentencias linq. Ahora solo debemos ejecutar la aplicación EFProf que se encuentra también en él .zip que descargamos, y debemos activar nuestra licencia trial o paga si la tenemos y veremos la siguiente pantalla:


Ahora solo debemos ejecutar nuestra aplicación con EFProf ejecutando y veremos una traza de todas las sentencias sql que Entity Framework ha creado por nosotros:


Genial, a través de esta herramienta podemos hacer múltiples análisis de nuestra consultas, para poder optimizarlas si es el caso, o encontrar problemas que se nos presenten, adicional podemos ver alertas con respecto a las consultas, la verdad es que es una herramienta sumamente útil. Solo les dejo un abre bocas de lo que es pero los invito a seguir investigando acerca de ella ya que aunque es paga se le puede sacar muy buen provecho. Una alternativa integrada ya con Visual Studio para ver las sentencias Sql ejecutadas puede ser observar el IntelliTrace de depuración el cual nos muestra las sentencias paso a paso:


Bueno y que tal si a través de alguna de estas dos herramientas descubrimos algún problema de rendimiento que deseemos mejorar en nuestras consultas o alguna posibilidad de mejora? y logramos optimizar la consulta como lo deseamos, ¿No sería muy útil poder convertir esta consulta Sql optimizada en una consulta Linq? a mi juicio si lo es, ya que llevamos la optimización al lenguaje de consulta utilizado por Entity Framework, y en esta labor nos puede ayudar la siguiente herramienta que les quiero mostrar: Linquer

Linquer

Linquer es una herramienta que nos permite convertir sentencias Transact Sql en instrucciones Linq, y que soporta los lenguajes c# y vb, bastante útil para aprender linq, si ya tienes dominio de Transact Sql, al igual que Entity Framework Profiler, tiene una versión de pago y otra trial, y la podemos descargar del siguiente link: http://www.sqltolinq.com/downloads

Una vez instalado podremos conectarnos a nuestro contexto a través de la herramienta para convertir de Sql a linq, como vemos a continuación:


Y para terminar quiero compartirles esta última herramienta:

LinqPad

LinqPad es una herramienta que nos permite realizar consultas Linq directamente contra nuestra base de datos, sin tener que ejecutar nuestra aplicación para ver qué resultados arrojará nuestra sentencia en tiempo de ejecución, a través de esta herramienta podemos escribir consultas linq en leguajes como c#, vb y f# además de poder escribir sentencias en Transact Sql. adicional podemos ver la sentencia Sql que genera la consulta linq que ejecutemos. Veamos un poco de cómo funciona:

Lo primero que debemos hacer es descargar e instalar la herramienta del siguiente link: https://www.linqpad.net/

Posteriormente podemos agregar nuestra conexión a la base de datos o a un contexto de EF directamente si lo deseamos:

Para esto especificamos una cadena de conexión:


Y enseguida veremos las tablas de nuestra base de datos, sobre la cual podemos ejecutar sentencias linq directamente, tal como se muestra a continuación:


Y adicional si seleccionamos la opción de resultados Sql, podremos ver la sentencia Transact Sql que generó esta consulta linq:


Muy útiles estas herramientas para mejorar nuestra productividad a la hora de trabajar con Entity Framework, que otras herramientas conoces?

Bueno amigos eso es todo de esta muestra de tooling o herramientas para facilitar nuestro trabajo en Entity Framework, espero les sea de utilidad y de interés. Y no duden en compartirlo.

Saludos, y buena suerte!