Obtener el comando SQL que se genera con ADO Entity Framework

0 comentarios

El método ToTraceString de la clase ObjectQuery permite ver los comandos que ejecutan en el origen de datos.

El siguiente código se muestra el uso del método:

   1: Dim oc As New VentasDemoEntities
   2:  
   3:       'La consulta obtiene los productos perteneciente a la categoría 01, ordenado por la
   4:       'descripción del producto. Se muestra solo el código y descripción
   5:       Dim Result As objectquery =
   6:       From Item In oc.Tb_Producto Where Item.Cod_Cat = "01"
   7:       Order By Item.Des_pro Select Item.Cod_pro, Item.Des_pro
   8:  
   9:       'Se usa el metodo ToTraceString para ver el SQL generado
  10:       MessageBox.Show(Result.ToTraceString())

Este será el comando SQL que se ejecutará en el origen de datos:

image

Nos vemos :)

Medir el tiempo de ejecución con la clase StopWatch

0 comentarios

La clase StopWatch mide el tiempo transcurrido para un intervalo, o el total de tiempo de varios intervalos. Mediante los métodos Star, Stop y la propiedad Elapsed se determina el valor de tiempo transcurrido. Mas información en MSDN (http://msdn.microsoft.com/es-es/library/system.diagnostics.stopwatch.aspx)

Para este ejemplo, voy a realizar una consulta con ADO.NET y LINQ TO SQL, la idea es medir el tiempo de de acceso a datos. La tabla se llama MODELOAVION la cual contiene 53,330 filas o modelos de aviones.

image

La siguiente interface contiene dos botones; uno para ADO.NET y el otro para LINQ TO SQL, un par de etiquetas para mostrar el tiempo transcurrido y un DataGridView para ver los datos:

image

El código para el botón ADO.NET:

   1: Private Sub btnADONET_Click(sender As System.Object, e As System.EventArgs) Handles btnADONET.Click
   2:         'Se inicia la medida de tiempo
   3:         Dim stopWatch As New Stopwatch()
   4:         stopWatch.Start()
   5:  
   6:         'Este bloque acceso a datos
   7:         '-----------------------------------------------------------------------------------------------
   8:         Dim strCnx As String = "Server=.\SQL2008;Database=AereoDemo;Integrated Security=SSPI;"
   9:         Dim strSQL As String = "Select * From ModeloAvion"
  10:         Dim cnx As New SqlConnection(strCnx)
  11:         Dim cmd As New SqlCommand(strSQL, cnx)
  12:         Dim dt As New DataTable
  13:  
  14:         cnx.Open()
  15:         dt.Load(cmd.ExecuteReader)
  16:         cnx.Close()
  17:         DataGridView1.DataSource = dt
  18:         '-------------------------------------------------------------------------------------------------
  19:  
  20:         'Se detiene y obtiene el tiempo transcurrido con la propiedad Elapsed
  21:         stopWatch.Stop()
  22:         Dim ts As TimeSpan = stopWatch.Elapsed
  23:  
  24:         'Se formatea el valor
  25:         lbltiempo1.text = String.Format("{0:00}:{1:00}:{2:00}.{3:00}", ts.Hours, ts.Minutes, ts.Seconds, ts.Milliseconds / 10)
  26:  
  27:     End Sub

Se crea una instancia de la clase StopWatch y se inicia la medida de tiempo con el método Star, luego se ejecuta el bloque de acceso a datos en ADO.NET y termina cuando se carga los datos en el control DataGridView, en el siguiente paso se detiene la clase StopWatch con el método Stop, y se obtiene el tiempo transcurrido con la propiedad Elapsed.

El código para LINQ TO SQL:

   1: Private Sub btnLINQTOSQL_Click(sender As System.Object, e As System.EventArgs) Handles btnLINQTOSQL.Click
   2:     'Se inicia la medida de tiempo
   3:     Dim stopWatch As New Stopwatch()
   4:     stopWatch.Start()
   5:  
   6:     'Este bloque acceso a datos
   7:     '-----------------------------------------------------------------------------------------------
   8:     Dim dc As New AereoDemoDataContext
   9:     Dim Result = From Item In dc.ModeloAvions Select Item
  10:     DataGridView1.DataSource = Result
  11:     '-----------------------------------------------------------------------------------------------
  12:  
  13:     'Se detiene y obtiene el tiempo transcurrido con la propiedad Elapsed
  14:     stopWatch.Stop()
  15:     Dim ts As TimeSpan = stopWatch.Elapsed
  16:  
  17:     'Se formatea el valor
  18:     lblTiempo2.Text = String.Format("{0:00}:{1:00}:{2:00}.{3:00}", ts.Hours, ts.Minutes, ts.Seconds, ts.Milliseconds / 10)
  19:  
  20: End Sub

En este caso el bloque se acceso a datos con LINQ TO SQL, es mucho menor en líneas de código, debido al ORM que es propio de este método de acceso a datos. Aquí ya se creo el objeto DataContext que se llama AereoDemo como se muestra en la imagen:

image

Para realizar esta paso consulte las siguientes entradas:

  1. Usando LINQ TO SQL Parte 1
  2. Usando LINQ TO SQL Parte 2
  3. Usando LINQ TO SQL Parte 3

 

Finalmente, ejecuto el programa, al ver el resultado de 68 milésimas de segundo para el bloque de ADO.NET y 37 para LINQ TO SQL,  aparentemente LINQ es mucho mas rápido.

 

image

Son varios factores que pueden influir en el resultado final. En la web de CodeProject encontré un articulo  donde se comparan la perfomance de ADO.NET y  LINQ TO SQL:

 Performance comparisons LinQ to SQL,ADO to C#

Nos vemos :)

Los hologramas en 3D y Avatar

0 comentarios

Esta tecnología de hologramas 3D cambiara para siempre los juegos de mesa. Me imagino jugar el Arkham Horror en 3D seria un sueño hecho realidad.

image

http://www.etecnologico.com/2011/08/los-juguetes-de-james-cameron-avatar.html

Saludos :)

Blog SiteMap

0 comentarios

Mouseland–Tierra de Ratones

0 comentarios

Tommy Douglas relata la historia de MouseLand (Tierra de ratones) con un gobierno de gatos. Mira el video y me comentas…

Saludos :)

Buscar Imagenes con Google

0 comentarios

Google esta implementando una nueva interface de usuario en su famoso buscador. En la imagen se aprecia una barra de color negro con varias de las opciones habituales.

image

Lo que me sorprendió fue la opción de búsqueda de imágenes.

image

Solo se arrastra la imagen en el cuadro de búsqueda, automáticamente la carga e inicia el proceso de busqueda, por ejemplo esta imagen:

Nave

Aquí la arrastro sobre el cuadro de búsqueda:

image

Empieza a cargarla:

image

El resultado final:

image

 

Saludos :)

Silverlight 5 Beta Tools for Visual Studio 2010 Service Pack 1

0 comentarios

LogoSilverlightLa versión 5 de Silverlight aporta 40 nuevas funcionales, según la documentación la calidad de video destaca entre las mejoras.

 

Principales características:

  • Depuración de XAML con puntos de para el depurado del enlazado a datos
  • Plantillas de datos implícitas para un mejor reciclado de UI
  • Soporte para doble (y múltiple) clic.
  • 3D compatible con XNA y acelerado por GPU y modo inmediato en el API de 2D
  • Efectos de sonido de baja latencia y soporte para WAV
  • Soporte real para ventanas del sistema operativo y múltiples pantallas
  • Mejoras significativas en el rendimiento, correcciones de errores y mucho más

Descargar: http://www.microsoft.com/downloads/en/details.aspx?FamilyID=41c85cc4-de12-4bdb-a60f-f120266e9780&displaylang=en

Saludos :)

Code First en ADO.NET Entity Framework 4.1

0 comentarios

En la revista Magazine Mayo 2011, encontré este excelente articulo sobre las novedades de EF 4.1, escrita por  Rowan Miller que es el administrador del equipo de Entity Framework en Microsoft.

alonso Magazine

URL:http://msdn.microsoft.com/es-co/magazine/hh126815.aspx

Saludos :)

Herramientas para convertir código de VB a C# y viceversa

0 comentarios

Estas dos herramientas OnLine de conversión de código de VB a C# o viceversa, me han sacado de un apuro varias veces. La primera pertenece a Telerik http://converter.telerik.com/

image

La segunda a CarlosAG http://www.carlosag.net/Tools/CodeTranslator/

image

Saludos :)

Libro Free - Moving to Visual Studio 2010

0 comentarios

The book is not a language primer, a language reference, or a single technology book. It's a book that will help professional developers move from previous versions of Visual Studio (starting with 2003 and on up). It will cover the features of Visual Studio 2010 through an application. It will go through a lot of the exciting new language features and new versions of the most popular technologies without putting the emphasis on the technologies themselves. It will instead put the emphasis on how you would get to those new tools and features from Visual Studio 2010.

EbookMoving-vs2010

image

Download:
http://www.microsoft.com/downloads/en/details.aspx?FamilyID=560a5365-5c62-488a-91ed-a779e0e33ac4

Saludos :)

 

Copyright 2008 All Rights Reserved Revolution Two Church theme by Brian Gardner Converted into Blogger Template by Bloganol dot com