SlideShare una empresa de Scribd logo
1 de 16
ASP.NET 4
                       Entity Framework ó Linq to SQL




Elaborado por : Naim Jhon Cruzado Paredes
¿Cómo Crear una capa de datos?

Cual Usuarias Entity Framework ó LINQ to SQL

Una de las cosas que más interés me ha generado durante mi vida como desarrollador es como
conseguir una buena capa de persistencia, consistente, flexible y transparente para el nivel de
aplicación sin mezclar consultas sql's o crear manualmente clases que repiten funcionalidad y
datos.

He trabajado con varias herramientas, desde las más rudimentarias clases estáticas con métodos
que ejecutaban sql "a pelo" hasta clases generadas a mano que por debajo usaban una instancia
de DataRow (que por cierto no es serializable y no se puede usar con servicios WCF); hasta que en
el framework 4.0 de .NET se incluyó el Entity Framework (EF) y LINQ to Entities.

Pero antes, un poco de historia:

Ya en la versión 3.5 de .NET nuestros amigos de Redmond incluyeron una nueva herramienta de
O/RM (object relational mapping) conocida como "LINQ to SQL". Con LINQ to SQL podíamos
modelar una base de datos relacional con clases .NET de forma automática lo que nos permitía
seleccionar, editar, insertar o eliminar datos tan solo editando las clases y colecciones generadas.

Para poder trabajar con estas clases se añadió soporte para lenguaje "LINQ" (Language Integrated
Query) que no es más que un modo de expresar consultas similares al sql normal contra cualquier
colección (ya sea generado por el modelador de LINQ to SQL o bien creada manualmente). LINQ
incluye tipado, comprobación de las consultas en tiempo de compilación, expresiones lambda y
tipos anónimos e intellisense lo que lo convierte en un lenguaje para consultas mucho más
potente que el sql clásico.

Con estas dos herramientas juntas podemos obtener una serie de clases generadas
automaticamente de una base de datos y trabajar con ellas manipulando datos sin necesidad de
escribir una sola linea SQL.

Más adelante, con la versión 4.0 de .NET se incluyó ADO .NET Entity Framework y su LINQ to
Entities que ofrecía una nueva forma de modelar bases de datos en entidades de forma
automática más compleja y flexible pero con un funcionamiento básicamente similar ya que
también se trabaja mediante consultas LINQ.




Elaborado por : Naim Jhon Cruzado Paredes
Visto esto os preguntareis: "Pues tiene buena pinta pero...
¿qué diferencias existen entre LINQ to SQL y Entity Framework?"

Aunque son casi lo mismo LINQ to SQL y EF han tenido vidas paralelas y, hoy en día, EF se ha
impuesto de manera aplastante. La gran diferencia es que LINQ to SQL se creó con la finalidad de
ser un RAD (Rapid Application Development) por lo que se dejaron alguna cosas en el tintero que
se solventaron con EF:

       LINQ to SQL sólo permite conectarse a SQL Server y ser usado en C# o VB.NET.
        EF en cambio soporta varios proveedores como MySql, Oracle, SQL Server, XML, etc...
       LINQ to SQL mapea cada tabla/vista como una clase o "entidad" sin permitir herencia,
        entidades           lógicas           o           entidades            de      negocio.
        EF lo implementa completamente.

Como ves Entity Framewok está preparado para modelar la capa de datos de una forma más
generica y flexible lo que nos permite abordar proyectos de mayor envergadura aunque si lo que
buscamos es una forma rápida de modelar nuestra base de datos SQL SERVER y no necesitamos
grandes florituras LINQ to SQL nos valdría perfectamente.




En futuras entradas explicaré de forma más practica como modelar una base de datos y como
hacer las típicas consultas (Select, Insert, Update, Delete) con Entity Framework.



Elaborado por : Naim Jhon Cruzado Paredes
Visual Studio 2012
          ASP.NET 4 “Entity Framework”
JUL 11
Continuando con los temas referentes a Entity Framework, les comento que después de algunos
meses me animo de nuevo a poner algo en este blog. Primero que nada quisiera contarles, que
todo lo que yo les he puesto anteriormente son cosas que había aprendido en el servicio y en el
IST, ahora ya estoy “trabajando” por así decirlo, y en tan poco tiempo aprendí bastantes de cosas
que me gustaría irlas viendo poco a poco, y para empezar me gustaría darles una pequeña
introducción a lo que es ADO.NET Entity Framework y Linq to Entity, utilizando los componentes
que .NET nos proporciona para así aumentar la eficiencia.

También les presumo, que ya tengo Visual Studio 2012, y trae el Framework 4.5, la verdad no
me he puesto a estudiar las novedades que trae ASP.NET 4.5, por lo tanto el post tratará sobre
el framework 4.0 y Entity Framework que es lo principal que viene en este framework.

Lo que pretendo hacer en este post es un pequeño catalogo donde se muestren diferentes tipos
de productos y se puedan filtrar, etc.

Bueno para empezar vamos a crear un proyecto ASP.NET vacio y yo lo llamaré BalusoftPost




Elaborado por : Naim Jhon Cruzado Paredes
OJO AMIGOS, si de casualidad tu tienes visual studio 2012, tendrás que elegir el framework 4,
esto para Post posteriores que voy a ahcer y tal vez sean de tu interes. Y finalmente pues

tendrémos un proyecto totalmente vacio… obvio



                                    Primeramente hay que ver la base de datos que vamos a
                                    utilizar, en este caso les voy a pasar los archivos mdf para
                                    hacerlo mas practico, pero de igual manera si la quieren
                                    hacer, aqui les dejo el diagrama




Elaborado por : Naim Jhon Cruzado Paredes
Muy simple…

Descarga la base de datos: Archivo 1 Archivo 2 , en este caso podemos desarrollado desde una
base datos que se adecue este escenario, elegir base datos a su criterio.




En visual studio creamos una carpeta especial de ASP que se llama App_Data y una vez
descargado los 2 archivos de arriba, lo arrastramos a nuestro explorador de soluciones
guardandolo en la carpeta ASP_data




Si automaticamente te agrego una conexion en visual studio, ignorala, nosotros vamos a crear
una base de datos en nuestra instancia de Sql Server express apartir de ese archivo .mdf, para
hacer eso nos posicionamos en Database Explorer:




Elaborado por : Naim Jhon Cruzado Paredes
Y damos clic en ¨Connect to Database¨



                                            Escribimos el nombre de nuestro servidor, si
                                            no les funciona .SQLEXPRESS prueben con
                                            (local), y en Attach a database file damos la
                                            ruta del archivo .mdf que se descargaron y
                                            copiaron en la carpeta App_Data, damos OK.




                                            De esta manera ya tendrémos instalada la base
                                            de datos que vamos a utilizar

                                            Ahora vamos a crear nuestro modelo a partir
                                            de esa base de datos, el modelo que vamos a
                                            crear es un modelo ADO.NET Entity
                                            Framework, para crear un modelo apartir de la
                                            base de datos que ya instalamos tenemos que
                                            hacer lo siguiente:

                                            primero creamos una nueva carpeta, que se
                                            llamará DAL (Data Access Layer) y en esa
                                            carpeta agregaremos un nuevo item




Elaborado por : Naim Jhon Cruzado Paredes
Agregamos el modelo y nos aparecerá el siguiente asistente




                                                             Next…



Elaborado por : Naim Jhon Cruzado Paredes
Seleccionamos la conexion que ya
                                                          creamos anteriormente y el nombre
                                                          de configuracion para Web.Config le
                                                          ponemos BalusoftEntities




Seleccionamos las tablas que queremos agregar al modelo




Elaborado por : Naim Jhon Cruzado Paredes
Asi ya tenemos el modelo creado, automaticamente .NET nos creo clases con sus propiedades que
evidentemente son las que tenemos en las tablas, en este caso solo productos y tipo_producto.

Ahora tenemos que construir nuestra solucion para que se compile el modelo y asi podrémos
usarlo.




Elaborado por : Naim Jhon Cruzado Paredes
Mostrar un menú con los tipos de productos
Primero que nada vamos a mostrar un menú que nos permitirá elegir que tipo de producto
queremos mostrar, el chiste de esto es hacer un tipo “catalogo” de productos.

Creamos un nuevo webform que se llame default.aspx y agregaremos 2 componentes de la
categoria Data: EntityDataSource y un ListView

Primero vamos a configurar el EntityDataSource, los componentes los arrastramos y en modo
diseño damos clic a la lista desplegable del componente y le damos en “Configure Data Source”




Elaborado por : Naim Jhon Cruzado Paredes
Y listo, en este data source vamos a tener acceso a la entidad tipo_producto y a los unicos dos
campos que contiene, ahora en el listview nos vamos al a vista de codigo y hay que dejarlo
exactamente igual:




Aquí estamos difiniendo 3 cosas, el layout de como se mostrara nuestros datos, en este caso es
una simple lista <ul>, dentro del PlaceHolder es donde se va a generar los ItemTemplate, o sea
todos los elementos que producirá la consulta a tipo_producto, mas delante definimos el
ItemTEmplate, que será un numero indefinido de elementos <li> y con la funcion Eval, obtenemos



Elaborado por : Naim Jhon Cruzado Paredes
el valor de los campos de la entidad, en este caso id_tipo_producto y mostramos el tipo en el
mismo enlace, si guardamos y si tenemos estos datos en la tabla tipo_productos el resultado será
el siguiente:

Datos




Resultado




y si vemos el codigo de la pagina en el cliente, vemos como nos genero los enlaces:




Lo notan?, vean el item template y vean como es el resultado, comparen




El primero es el codigo en ASP y el 2do el resultado en puro html en el cliente.

Asi es como funcionan los ListView, la verdad se pueden hacer un chorro de cosas, personalizadas
o automaticamente, de esta misma manera vamos a generar el catalogo


Elaborado por : Naim Jhon Cruzado Paredes
Debajo de este listview, vamos a agregar un control llamado Panel, pueden arrastrarlo y
configurar desde la interfaz las propiedades, yo por mientras solo les pondré el codigo




Es un Panel, con ID pnlCatalogo y estará oculto por el momento, el chiste es que se muestre este
panel cuando ya tenemos una categoria seleccionada del listado que ya hicimos.

Vamos a configurar el Listview igual como lo hicimos en el anterior, pero ahora vamos aplicar
estilos CSS para poder mostrarlo como un catalogo mas bonito, entonces haremos:

En nuestra pagina default.aspx vamos a agregar dentro de las etiquetas <head> el siguiente
codigo que seran estilos CSS




Ahora dentro del listView que agregamos dentro del panel que tambien agregamos (valga la
redundancia) vamos a dejarlo de la siguiente manera:




Elaborado por : Naim Jhon Cruzado Paredes
Y nos vamos al CodeBehind default.aspx.cs y agregamos lo siguiente




Elaborado por : Naim Jhon Cruzado Paredes
Basicamente, como recuerdan, al dar clic en algun tipo de producto nos manda a la misma pagina
default.aspx pero con una variable por la URL, entonces en el evento Page_Load por medio de
QueryString obtenemos el valor de esa variable que pasamos por la URL, y si es que existe algun
valor mandamos a llamar al metodo cargarCatalogo

este metodo privado llamado cargarCatalogo le damos por parametro el id del tipo de producto
que se seleccionó, creamos una instancia de nuestro modelo BalusoftEntities que creamos dentro
de la carpeta DAL, por eso agregamos el using en la parte de arriba, por medio de linq to entities
hacemos una consulta muy sencilla que es un select from where en SQL, finalmente vinculamos
los datos y el resultado será el siguiente:




Tengamos en cuenta que en la tabla productos tenemos esta informacion:




Se dan cuenta, nos muestra los productos del tipo 1, dato que se pasa por la URL y se hace todo
ese proceso.

Espero y les sirva! un saludo y esperen mas cosas de ASP.NET Entity Framework


Elaborado por : Naim Jhon Cruzado Paredes

Más contenido relacionado

Destacado

ConexióN De Una Base De Datos De Sql Con C#
ConexióN De Una Base De Datos De Sql Con C#ConexióN De Una Base De Datos De Sql Con C#
ConexióN De Una Base De Datos De Sql Con C#
LUZ ARIZPE
 
Visual 2010 sql server 2008
Visual 2010 sql server 2008Visual 2010 sql server 2008
Visual 2010 sql server 2008
Alex Vasquez
 
Performance de Percona XtraDB Cluster / Galera Cluster: Monitoring & Gestion ...
Performance de Percona XtraDB Cluster / Galera Cluster: Monitoring & Gestion ...Performance de Percona XtraDB Cluster / Galera Cluster: Monitoring & Gestion ...
Performance de Percona XtraDB Cluster / Galera Cluster: Monitoring & Gestion ...
Severalnines
 
109545773 base-de-datos-con-c
109545773 base-de-datos-con-c109545773 base-de-datos-con-c
109545773 base-de-datos-con-c
Miguel Ángel
 
Visual basic-2008
Visual basic-2008Visual basic-2008
Visual basic-2008
ramcoll
 

Destacado (20)

MS Visual Studio 2010 y MS SQL 2008 R2
MS Visual Studio 2010 y MS SQL 2008 R2MS Visual Studio 2010 y MS SQL 2008 R2
MS Visual Studio 2010 y MS SQL 2008 R2
 
revista base de datos y visual studio
revista base de datos y visual studiorevista base de datos y visual studio
revista base de datos y visual studio
 
S ti ci_v1_201302
S ti ci_v1_201302S ti ci_v1_201302
S ti ci_v1_201302
 
ConexióN De Una Base De Datos De Sql Con C#
ConexióN De Una Base De Datos De Sql Con C#ConexióN De Una Base De Datos De Sql Con C#
ConexióN De Una Base De Datos De Sql Con C#
 
Manual visual studio 2010
Manual visual studio 2010Manual visual studio 2010
Manual visual studio 2010
 
Ejemplo ELIMINAR registros desde Visual Basic 2012
Ejemplo ELIMINAR registros desde Visual Basic 2012Ejemplo ELIMINAR registros desde Visual Basic 2012
Ejemplo ELIMINAR registros desde Visual Basic 2012
 
Visual 2010 sql server 2008
Visual 2010 sql server 2008Visual 2010 sql server 2008
Visual 2010 sql server 2008
 
Ejemplo LOGIN conectado a una base de datos
Ejemplo LOGIN conectado a una base de datosEjemplo LOGIN conectado a una base de datos
Ejemplo LOGIN conectado a una base de datos
 
Proyectos de Base de Datos con Visual Studio 2013
Proyectos de Base de Datos con Visual Studio 2013Proyectos de Base de Datos con Visual Studio 2013
Proyectos de Base de Datos con Visual Studio 2013
 
Performance de Percona XtraDB Cluster / Galera Cluster: Monitoring & Gestion ...
Performance de Percona XtraDB Cluster / Galera Cluster: Monitoring & Gestion ...Performance de Percona XtraDB Cluster / Galera Cluster: Monitoring & Gestion ...
Performance de Percona XtraDB Cluster / Galera Cluster: Monitoring & Gestion ...
 
1 tutorial de mongo db
1 tutorial de mongo db1 tutorial de mongo db
1 tutorial de mongo db
 
Acces vb2008
Acces vb2008Acces vb2008
Acces vb2008
 
Visual basic
Visual basicVisual basic
Visual basic
 
VS 2005 Y SQL Server 2005 Juntos Son Aun Mejores
VS 2005 Y SQL Server 2005 Juntos Son Aun MejoresVS 2005 Y SQL Server 2005 Juntos Son Aun Mejores
VS 2005 Y SQL Server 2005 Juntos Son Aun Mejores
 
109545773 base-de-datos-con-c
109545773 base-de-datos-con-c109545773 base-de-datos-con-c
109545773 base-de-datos-con-c
 
Examen unidad ii
Examen unidad iiExamen unidad ii
Examen unidad ii
 
Diseño de aplicaciones de bases de datos empresariales robustas con MS SQL Se...
Diseño de aplicaciones de bases de datos empresariales robustas con MS SQL Se...Diseño de aplicaciones de bases de datos empresariales robustas con MS SQL Se...
Diseño de aplicaciones de bases de datos empresariales robustas con MS SQL Se...
 
Contraseña y usuario access y visual basic 2010
Contraseña y usuario access y visual basic 2010Contraseña y usuario access y visual basic 2010
Contraseña y usuario access y visual basic 2010
 
Visual basic-2008
Visual basic-2008Visual basic-2008
Visual basic-2008
 
Manual de visual basic.net
Manual de visual basic.netManual de visual basic.net
Manual de visual basic.net
 

Similar a Entity Framework ó Linq SQL - Visual Studio 2012

Presentacion 3 archivos2
Presentacion 3 archivos2Presentacion 3 archivos2
Presentacion 3 archivos2
moiiantonio
 
Alondra maricela cruz almendares
Alondra  maricela cruz almendaresAlondra  maricela cruz almendares
Alondra maricela cruz almendares
ALOMACRAL
 
Alondra maricela cruz almendares
Alondra  maricela cruz almendaresAlondra  maricela cruz almendares
Alondra maricela cruz almendares
ALOMACRAL
 
Alondra maricela cruz almendares
Alondra  maricela cruz almendaresAlondra  maricela cruz almendares
Alondra maricela cruz almendares
ALOMACRAL
 

Similar a Entity Framework ó Linq SQL - Visual Studio 2012 (20)

Base de datos
Base de datosBase de datos
Base de datos
 
Conexión de visual basic a bases de datos. María Parra
Conexión de visual basic a bases de datos. María ParraConexión de visual basic a bases de datos. María Parra
Conexión de visual basic a bases de datos. María Parra
 
Manual de netbeans_7(2)(2)(2)
Manual de netbeans_7(2)(2)(2)Manual de netbeans_7(2)(2)(2)
Manual de netbeans_7(2)(2)(2)
 
Java
JavaJava
Java
 
Dprn3 u3 a1_rahv
Dprn3 u3 a1_rahvDprn3 u3 a1_rahv
Dprn3 u3 a1_rahv
 
Tutorial ASP .NET
Tutorial ASP .NETTutorial ASP .NET
Tutorial ASP .NET
 
Base de datos desde vs6.0
Base de datos desde vs6.0Base de datos desde vs6.0
Base de datos desde vs6.0
 
Bases de datos con java
Bases de datos con javaBases de datos con java
Bases de datos con java
 
REPORTES
REPORTESREPORTES
REPORTES
 
Practica 4
Practica 4Practica 4
Practica 4
 
Tutorial pw-basico
Tutorial pw-basicoTutorial pw-basico
Tutorial pw-basico
 
P7
P7P7
P7
 
Practica 7
Practica 7Practica 7
Practica 7
 
Practica 7
Practica 7Practica 7
Practica 7
 
Presentacion 3 archivos2
Presentacion 3 archivos2Presentacion 3 archivos2
Presentacion 3 archivos2
 
Alondra maricela cruz almendares
Alondra  maricela cruz almendaresAlondra  maricela cruz almendares
Alondra maricela cruz almendares
 
Alondra maricela cruz almendares
Alondra  maricela cruz almendaresAlondra  maricela cruz almendares
Alondra maricela cruz almendares
 
Alondra maricela cruz almendares
Alondra  maricela cruz almendaresAlondra  maricela cruz almendares
Alondra maricela cruz almendares
 
Linq to sql 2
Linq to sql 2Linq to sql 2
Linq to sql 2
 
Documentacion del proyecto
Documentacion del proyectoDocumentacion del proyecto
Documentacion del proyecto
 

Más de Naim Jhon Cruzado Paredes

Más de Naim Jhon Cruzado Paredes (9)

Tutorial windows azure con visual studio 2010
Tutorial windows azure con visual studio 2010Tutorial windows azure con visual studio 2010
Tutorial windows azure con visual studio 2010
 
Tutorial Reporting Services 2008 r2
Tutorial Reporting Services 2008  r2 Tutorial Reporting Services 2008  r2
Tutorial Reporting Services 2008 r2
 
Configuración de IIS en windows 7 y SQL Server 2012
Configuración de IIS en windows 7 y SQL Server 2012Configuración de IIS en windows 7 y SQL Server 2012
Configuración de IIS en windows 7 y SQL Server 2012
 
Windows Intune Microsoft
Windows Intune MicrosoftWindows Intune Microsoft
Windows Intune Microsoft
 
Visual studio.net 2010 (life-runs-on-code)
Visual studio.net 2010 (life-runs-on-code)Visual studio.net 2010 (life-runs-on-code)
Visual studio.net 2010 (life-runs-on-code)
 
Pasos instalar joomla 1.6.3 con WebMatrix
Pasos instalar joomla 1.6.3 con WebMatrixPasos instalar joomla 1.6.3 con WebMatrix
Pasos instalar joomla 1.6.3 con WebMatrix
 
Desarrollo y consumo de web services
Desarrollo y consumo de web servicesDesarrollo y consumo de web services
Desarrollo y consumo de web services
 
Instalación y configuración de team foundation server 2010
Instalación y configuración de team foundation server 2010Instalación y configuración de team foundation server 2010
Instalación y configuración de team foundation server 2010
 
E-Commerce con Web Matrix
E-Commerce con Web Matrix E-Commerce con Web Matrix
E-Commerce con Web Matrix
 

Último

Cuadernillo jkwfnergnerognerpognospgnrpongerpogn
Cuadernillo jkwfnergnerognerpognospgnrpongerpognCuadernillo jkwfnergnerognerpognospgnrpongerpogn
Cuadernillo jkwfnergnerognerpognospgnrpongerpogn
MarianaArgellesRamos
 
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
EliaHernndez7
 
6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria
Wilian24
 
Historia de la iglesia cristiana y sus 6 PERIODOS.pptx
Historia de la iglesia cristiana y sus 6 PERIODOS.pptxHistoria de la iglesia cristiana y sus 6 PERIODOS.pptx
Historia de la iglesia cristiana y sus 6 PERIODOS.pptx
edgarzevallos
 

Último (20)

Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
 
Desarrollo y Aplicación de la Administración por Valores
Desarrollo y Aplicación de la Administración por ValoresDesarrollo y Aplicación de la Administración por Valores
Desarrollo y Aplicación de la Administración por Valores
 
AEC 2. Aventura en el Antiguo Egipto.pptx
AEC 2. Aventura en el Antiguo Egipto.pptxAEC 2. Aventura en el Antiguo Egipto.pptx
AEC 2. Aventura en el Antiguo Egipto.pptx
 
Los dos testigos. Testifican de la Verdad
Los dos testigos. Testifican de la VerdadLos dos testigos. Testifican de la Verdad
Los dos testigos. Testifican de la Verdad
 
Cuadernillo jkwfnergnerognerpognospgnrpongerpogn
Cuadernillo jkwfnergnerognerpognospgnrpongerpognCuadernillo jkwfnergnerognerpognospgnrpongerpogn
Cuadernillo jkwfnergnerognerpognospgnrpongerpogn
 
Factores que intervienen en la Administración por Valores.pdf
Factores que intervienen en la Administración por Valores.pdfFactores que intervienen en la Administración por Valores.pdf
Factores que intervienen en la Administración por Valores.pdf
 
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
 
Ensayo Paes competencia matematicas 2 Preuniversitario
Ensayo Paes competencia matematicas 2 PreuniversitarioEnsayo Paes competencia matematicas 2 Preuniversitario
Ensayo Paes competencia matematicas 2 Preuniversitario
 
Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024
 
6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria
 
FICHA CUENTO BUSCANDO UNA MAMÁ 2024 MAESTRA JANET.pdf
FICHA CUENTO BUSCANDO UNA MAMÁ  2024 MAESTRA JANET.pdfFICHA CUENTO BUSCANDO UNA MAMÁ  2024 MAESTRA JANET.pdf
FICHA CUENTO BUSCANDO UNA MAMÁ 2024 MAESTRA JANET.pdf
 
ACERTIJO LA RUTA DEL MARATÓN OLÍMPICO DEL NÚMERO PI EN PARÍS. Por JAVIER SOL...
ACERTIJO LA RUTA DEL MARATÓN OLÍMPICO DEL NÚMERO PI EN  PARÍS. Por JAVIER SOL...ACERTIJO LA RUTA DEL MARATÓN OLÍMPICO DEL NÚMERO PI EN  PARÍS. Por JAVIER SOL...
ACERTIJO LA RUTA DEL MARATÓN OLÍMPICO DEL NÚMERO PI EN PARÍS. Por JAVIER SOL...
 
Tema 11. Dinámica de la hidrosfera 2024
Tema 11.  Dinámica de la hidrosfera 2024Tema 11.  Dinámica de la hidrosfera 2024
Tema 11. Dinámica de la hidrosfera 2024
 
Actividades para el 11 de Mayo día del himno.docx
Actividades para el 11 de Mayo día del himno.docxActividades para el 11 de Mayo día del himno.docx
Actividades para el 11 de Mayo día del himno.docx
 
PP_Comunicacion en Salud: Objetivación de signos y síntomas
PP_Comunicacion en Salud: Objetivación de signos y síntomasPP_Comunicacion en Salud: Objetivación de signos y síntomas
PP_Comunicacion en Salud: Objetivación de signos y síntomas
 
Historia de la iglesia cristiana y sus 6 PERIODOS.pptx
Historia de la iglesia cristiana y sus 6 PERIODOS.pptxHistoria de la iglesia cristiana y sus 6 PERIODOS.pptx
Historia de la iglesia cristiana y sus 6 PERIODOS.pptx
 
Power Point E. S.: Los dos testigos.pptx
Power Point E. S.: Los dos testigos.pptxPower Point E. S.: Los dos testigos.pptx
Power Point E. S.: Los dos testigos.pptx
 
Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024
 
activ4-bloque4 transversal doctorado.pdf
activ4-bloque4 transversal doctorado.pdfactiv4-bloque4 transversal doctorado.pdf
activ4-bloque4 transversal doctorado.pdf
 
Código Civil de la República Bolivariana de Venezuela
Código Civil de la República Bolivariana de VenezuelaCódigo Civil de la República Bolivariana de Venezuela
Código Civil de la República Bolivariana de Venezuela
 

Entity Framework ó Linq SQL - Visual Studio 2012

  • 1. ASP.NET 4 Entity Framework ó Linq to SQL Elaborado por : Naim Jhon Cruzado Paredes
  • 2. ¿Cómo Crear una capa de datos? Cual Usuarias Entity Framework ó LINQ to SQL Una de las cosas que más interés me ha generado durante mi vida como desarrollador es como conseguir una buena capa de persistencia, consistente, flexible y transparente para el nivel de aplicación sin mezclar consultas sql's o crear manualmente clases que repiten funcionalidad y datos. He trabajado con varias herramientas, desde las más rudimentarias clases estáticas con métodos que ejecutaban sql "a pelo" hasta clases generadas a mano que por debajo usaban una instancia de DataRow (que por cierto no es serializable y no se puede usar con servicios WCF); hasta que en el framework 4.0 de .NET se incluyó el Entity Framework (EF) y LINQ to Entities. Pero antes, un poco de historia: Ya en la versión 3.5 de .NET nuestros amigos de Redmond incluyeron una nueva herramienta de O/RM (object relational mapping) conocida como "LINQ to SQL". Con LINQ to SQL podíamos modelar una base de datos relacional con clases .NET de forma automática lo que nos permitía seleccionar, editar, insertar o eliminar datos tan solo editando las clases y colecciones generadas. Para poder trabajar con estas clases se añadió soporte para lenguaje "LINQ" (Language Integrated Query) que no es más que un modo de expresar consultas similares al sql normal contra cualquier colección (ya sea generado por el modelador de LINQ to SQL o bien creada manualmente). LINQ incluye tipado, comprobación de las consultas en tiempo de compilación, expresiones lambda y tipos anónimos e intellisense lo que lo convierte en un lenguaje para consultas mucho más potente que el sql clásico. Con estas dos herramientas juntas podemos obtener una serie de clases generadas automaticamente de una base de datos y trabajar con ellas manipulando datos sin necesidad de escribir una sola linea SQL. Más adelante, con la versión 4.0 de .NET se incluyó ADO .NET Entity Framework y su LINQ to Entities que ofrecía una nueva forma de modelar bases de datos en entidades de forma automática más compleja y flexible pero con un funcionamiento básicamente similar ya que también se trabaja mediante consultas LINQ. Elaborado por : Naim Jhon Cruzado Paredes
  • 3. Visto esto os preguntareis: "Pues tiene buena pinta pero... ¿qué diferencias existen entre LINQ to SQL y Entity Framework?" Aunque son casi lo mismo LINQ to SQL y EF han tenido vidas paralelas y, hoy en día, EF se ha impuesto de manera aplastante. La gran diferencia es que LINQ to SQL se creó con la finalidad de ser un RAD (Rapid Application Development) por lo que se dejaron alguna cosas en el tintero que se solventaron con EF:  LINQ to SQL sólo permite conectarse a SQL Server y ser usado en C# o VB.NET. EF en cambio soporta varios proveedores como MySql, Oracle, SQL Server, XML, etc...  LINQ to SQL mapea cada tabla/vista como una clase o "entidad" sin permitir herencia, entidades lógicas o entidades de negocio. EF lo implementa completamente. Como ves Entity Framewok está preparado para modelar la capa de datos de una forma más generica y flexible lo que nos permite abordar proyectos de mayor envergadura aunque si lo que buscamos es una forma rápida de modelar nuestra base de datos SQL SERVER y no necesitamos grandes florituras LINQ to SQL nos valdría perfectamente. En futuras entradas explicaré de forma más practica como modelar una base de datos y como hacer las típicas consultas (Select, Insert, Update, Delete) con Entity Framework. Elaborado por : Naim Jhon Cruzado Paredes
  • 4. Visual Studio 2012 ASP.NET 4 “Entity Framework” JUL 11 Continuando con los temas referentes a Entity Framework, les comento que después de algunos meses me animo de nuevo a poner algo en este blog. Primero que nada quisiera contarles, que todo lo que yo les he puesto anteriormente son cosas que había aprendido en el servicio y en el IST, ahora ya estoy “trabajando” por así decirlo, y en tan poco tiempo aprendí bastantes de cosas que me gustaría irlas viendo poco a poco, y para empezar me gustaría darles una pequeña introducción a lo que es ADO.NET Entity Framework y Linq to Entity, utilizando los componentes que .NET nos proporciona para así aumentar la eficiencia. También les presumo, que ya tengo Visual Studio 2012, y trae el Framework 4.5, la verdad no me he puesto a estudiar las novedades que trae ASP.NET 4.5, por lo tanto el post tratará sobre el framework 4.0 y Entity Framework que es lo principal que viene en este framework. Lo que pretendo hacer en este post es un pequeño catalogo donde se muestren diferentes tipos de productos y se puedan filtrar, etc. Bueno para empezar vamos a crear un proyecto ASP.NET vacio y yo lo llamaré BalusoftPost Elaborado por : Naim Jhon Cruzado Paredes
  • 5. OJO AMIGOS, si de casualidad tu tienes visual studio 2012, tendrás que elegir el framework 4, esto para Post posteriores que voy a ahcer y tal vez sean de tu interes. Y finalmente pues tendrémos un proyecto totalmente vacio… obvio Primeramente hay que ver la base de datos que vamos a utilizar, en este caso les voy a pasar los archivos mdf para hacerlo mas practico, pero de igual manera si la quieren hacer, aqui les dejo el diagrama Elaborado por : Naim Jhon Cruzado Paredes
  • 6. Muy simple… Descarga la base de datos: Archivo 1 Archivo 2 , en este caso podemos desarrollado desde una base datos que se adecue este escenario, elegir base datos a su criterio. En visual studio creamos una carpeta especial de ASP que se llama App_Data y una vez descargado los 2 archivos de arriba, lo arrastramos a nuestro explorador de soluciones guardandolo en la carpeta ASP_data Si automaticamente te agrego una conexion en visual studio, ignorala, nosotros vamos a crear una base de datos en nuestra instancia de Sql Server express apartir de ese archivo .mdf, para hacer eso nos posicionamos en Database Explorer: Elaborado por : Naim Jhon Cruzado Paredes
  • 7. Y damos clic en ¨Connect to Database¨ Escribimos el nombre de nuestro servidor, si no les funciona .SQLEXPRESS prueben con (local), y en Attach a database file damos la ruta del archivo .mdf que se descargaron y copiaron en la carpeta App_Data, damos OK. De esta manera ya tendrémos instalada la base de datos que vamos a utilizar Ahora vamos a crear nuestro modelo a partir de esa base de datos, el modelo que vamos a crear es un modelo ADO.NET Entity Framework, para crear un modelo apartir de la base de datos que ya instalamos tenemos que hacer lo siguiente: primero creamos una nueva carpeta, que se llamará DAL (Data Access Layer) y en esa carpeta agregaremos un nuevo item Elaborado por : Naim Jhon Cruzado Paredes
  • 8. Agregamos el modelo y nos aparecerá el siguiente asistente Next… Elaborado por : Naim Jhon Cruzado Paredes
  • 9. Seleccionamos la conexion que ya creamos anteriormente y el nombre de configuracion para Web.Config le ponemos BalusoftEntities Seleccionamos las tablas que queremos agregar al modelo Elaborado por : Naim Jhon Cruzado Paredes
  • 10. Asi ya tenemos el modelo creado, automaticamente .NET nos creo clases con sus propiedades que evidentemente son las que tenemos en las tablas, en este caso solo productos y tipo_producto. Ahora tenemos que construir nuestra solucion para que se compile el modelo y asi podrémos usarlo. Elaborado por : Naim Jhon Cruzado Paredes
  • 11. Mostrar un menú con los tipos de productos Primero que nada vamos a mostrar un menú que nos permitirá elegir que tipo de producto queremos mostrar, el chiste de esto es hacer un tipo “catalogo” de productos. Creamos un nuevo webform que se llame default.aspx y agregaremos 2 componentes de la categoria Data: EntityDataSource y un ListView Primero vamos a configurar el EntityDataSource, los componentes los arrastramos y en modo diseño damos clic a la lista desplegable del componente y le damos en “Configure Data Source” Elaborado por : Naim Jhon Cruzado Paredes
  • 12. Y listo, en este data source vamos a tener acceso a la entidad tipo_producto y a los unicos dos campos que contiene, ahora en el listview nos vamos al a vista de codigo y hay que dejarlo exactamente igual: Aquí estamos difiniendo 3 cosas, el layout de como se mostrara nuestros datos, en este caso es una simple lista <ul>, dentro del PlaceHolder es donde se va a generar los ItemTemplate, o sea todos los elementos que producirá la consulta a tipo_producto, mas delante definimos el ItemTEmplate, que será un numero indefinido de elementos <li> y con la funcion Eval, obtenemos Elaborado por : Naim Jhon Cruzado Paredes
  • 13. el valor de los campos de la entidad, en este caso id_tipo_producto y mostramos el tipo en el mismo enlace, si guardamos y si tenemos estos datos en la tabla tipo_productos el resultado será el siguiente: Datos Resultado y si vemos el codigo de la pagina en el cliente, vemos como nos genero los enlaces: Lo notan?, vean el item template y vean como es el resultado, comparen El primero es el codigo en ASP y el 2do el resultado en puro html en el cliente. Asi es como funcionan los ListView, la verdad se pueden hacer un chorro de cosas, personalizadas o automaticamente, de esta misma manera vamos a generar el catalogo Elaborado por : Naim Jhon Cruzado Paredes
  • 14. Debajo de este listview, vamos a agregar un control llamado Panel, pueden arrastrarlo y configurar desde la interfaz las propiedades, yo por mientras solo les pondré el codigo Es un Panel, con ID pnlCatalogo y estará oculto por el momento, el chiste es que se muestre este panel cuando ya tenemos una categoria seleccionada del listado que ya hicimos. Vamos a configurar el Listview igual como lo hicimos en el anterior, pero ahora vamos aplicar estilos CSS para poder mostrarlo como un catalogo mas bonito, entonces haremos: En nuestra pagina default.aspx vamos a agregar dentro de las etiquetas <head> el siguiente codigo que seran estilos CSS Ahora dentro del listView que agregamos dentro del panel que tambien agregamos (valga la redundancia) vamos a dejarlo de la siguiente manera: Elaborado por : Naim Jhon Cruzado Paredes
  • 15. Y nos vamos al CodeBehind default.aspx.cs y agregamos lo siguiente Elaborado por : Naim Jhon Cruzado Paredes
  • 16. Basicamente, como recuerdan, al dar clic en algun tipo de producto nos manda a la misma pagina default.aspx pero con una variable por la URL, entonces en el evento Page_Load por medio de QueryString obtenemos el valor de esa variable que pasamos por la URL, y si es que existe algun valor mandamos a llamar al metodo cargarCatalogo este metodo privado llamado cargarCatalogo le damos por parametro el id del tipo de producto que se seleccionó, creamos una instancia de nuestro modelo BalusoftEntities que creamos dentro de la carpeta DAL, por eso agregamos el using en la parte de arriba, por medio de linq to entities hacemos una consulta muy sencilla que es un select from where en SQL, finalmente vinculamos los datos y el resultado será el siguiente: Tengamos en cuenta que en la tabla productos tenemos esta informacion: Se dan cuenta, nos muestra los productos del tipo 1, dato que se pasa por la URL y se hace todo ese proceso. Espero y les sirva! un saludo y esperen mas cosas de ASP.NET Entity Framework Elaborado por : Naim Jhon Cruzado Paredes