domingo, 15 de julio de 2012

<Microsoft Entity Framework/ LinQ>


Recientemente me vi en la necesidad de realizar un pequeño administrador de archivos dentro de uno de mis proyectos, Visual Studio 2011 dispone de una habida cantidad de funciones disponibles para usarlas desde su framework.

Bajo la sombra de las nuevas tecnologías de programación me pude dar cuenta de muchas opciones que han sido optimizadas por Visual Studio 2010, con el actual Microsoft Entity Framework que viene integrado al actual .NET Framework 3.5 se encarga de organizar la información tus bases de datos dándoles el nombre de entidades dentro de su marco de desarrollo de tal manera que se pueden aprovechar los recursos de consultas estructuradas dentro de nuestro lenguaje de programación Visual Basic o C#.


Al inicio parece confuso el darse cuenta de que este tipo tecnologías colaboran en gran manera a ahorrar grandes cantidades de tiempo si se desean desarrollar aplicaciones de mediano tamaño pero utilizando la modesta programación por capas.

En mi caso, decidí crear una base de datos de muestra para verificar si dicha herramienta dentro del entorno de Visual Studio llenaba los requisitos de estructurar los datos desde las base de datos con nuevas sentencias y funciones de sintaxis que parecen traídas desde el planeta Marte.

El resumen del ejemplo siguiente será el de desarrollar un pequeño formulario que contemple la información desde una base de datos con nuestro motor de base de datos SQL Server 2012 o versión anterior y conectarlo a un modelo .edmx desde un proyecto de Visual Studio 2010.

Esta herramienta puede ser realmente útil si se toma en cuenta de que algunas de las tareas principales y cotidianas que realiza una base de datos se basan en el ingreso, modificación, eliminación y selección de datos.

Trabajamos ahora con algunas nuevas instrucciones integrados bajo el nombre de LinQ.-

Instrucciones para el experimento:

1- Crear una base de datos con el nombre que desees, en mi caso la denominé "DB_ExampleEntity"

2- Agregar una tabla denominada TabInformationData el primer campo será nuestra llave primaria de tipo autonumerico.

                                                IdPersonalNumber     int 
                                                Nombre                       nvarchar(50)
                                                Direccion                    nvarchar(50)
                                                Telefono                      nvarchar(100)


3- Abrimos Visual Studio 2010 y crearemos un nuevo proyecto denominado ProjExampleEntities a nuestra solución


4- Agregaremos un nuevo elemento, esta vez seleccionaremos un ADO.NET Entity Data Model.




Este elemento sera el encargado de crear de manera automática la estructura de nuestra base de datos, y actualizará cada uno de los elementos si estos han sufrido modificaciones el cual bajo el nombre de



5- Seleccionamos Generate form Database, y terminamos nuestra conexión




6- Inmediatamente se generará el modelo de entidades que llevará consigo heredadas todas las referencias para pode operar con nuestra base de datos de manera inmediata.

7- Dentro del formulario default, necesitaremos las siguientes librerías para poder operar con la información, pero primero debemos de crear el formulario que contendrá el diseño de nuestros campos de dicha base de datos.


No olvidar agregar el siguiente  código para nuestras librerías que necesitan LinQ y datos de consulta.-

Imports System.Linq
Imports System.Data
Imports System.Linq.Expressions


En este momento deberemos de instanciar nuestro modelo desde el editor de código, así como la entidad que contendrá nuestros datos.

- Debido a que haciendo uso de internet muchas veces es difícil encontrar código específico para poder trabajar LinQ mediante código de Visual Basic, tomé a bien ponderarle un poco más de importancia a este lenguaje con el que también se puede trabajar de manera modesta.

En el evento clic del botón escribiremos las siguientes líneas de código que autogenerarán un nuevo registro, el cual puedes hacer presente con validaciones y otro estilo de reglas que mas creas convenientes para poder darle una forma mas integrada a tu aplicación.


Public Class Form1
    Dim DB_ExampleModel As New DB_ExampleEntityEntities
 
    Private Sub btnGuardar_Click(sender As System.Objecte As System.EventArgsHandles btnGuardar.Click
        Dim TabPersonalData As New TabPersonalData With
            {
            .Nombre = txtNombre.Text,
            .Direccion = txtDireccion.Text,
            .Telefono = txtTelefono.Text
            }
    End Sub
End Class