Crear una aplicación Web desde Cero (VB y CSharp)- Part III – Consultas con LINQ


Por cuestiones de tiempo este punto se tratara con LINQ para así mostrarle lo último en tecnología ya que se nos aproxima VS2010 y hay muchas cosas más interesante que se debería mostrar, tranquilos también daré algunos tips de cómo se puede realizar a la manera de Visual Studio 2005 y versiones anteriores 🙂

LINQ (Lenguage INtegrated Query), es una tecnología bastante interesante en ella podemos establecer consultas de manera directa a la base de datos partiendo de un simple query, debemos tener en cuenta que no solo base de datos podemos hacer esto si no también a objetos (LINQ to Objects), XML (LINQ to XML), Entidades y otros manejadores (LINQ to ADO.net), por ello LINQ se fortalece cada vez mas permitiendo tener una especie de lenguaje único de consulta para las diferentes formas de obtención de datos.

La definición de la Librería MSDN lo define de esta manera: Language-Integrated Query (LINQ) es un conjunto de características en Visual Studio 2008 que agrega eficaces capacidades de consulta a la sintaxis de los lenguajes C# y Visual Basic. LINQ incluye patrones estándar y de fácil aprendizaje para consultar y actualizar datos, y su tecnología se puede extender para utilizar potencialmente cualquier tipo de almacén de datos. Visual Studio 2008 incluye ensamblados de proveedores para LINQ que habilitan el uso de LINQ con colecciones de .NET Framework, bases de datos de SQL Server, conjuntos de datos de ADO.NET y documentos XML.”

Como hemos venido trabajando en el este tutorial vamos a agregar a nuestro sitio web un nuevo Elemento->Clases de LINQ to SQL el cual lo he llamado dcAdventureWorks.dbml debido a que estaremos utilizando la base de datos AdventureWorks así como resalto en la siguiente imagen.

DataClases

Luego de dar aceptar nos debe aparecer la siguiente pregunta al cual le daremos a la Opción SI.

DataClases-Pregunta

Luego nos saldrá un espacio en blanco donde nos pide ver el Explorador de Servidores o el cuadro de herramientas y así poder arrastrar los objetos (que para nuestro caso serian las tablas de la base de datos AdventureWorks) que deseamos ver en nuestro DataClases por ello seleccionaremos Explorador de Servidores y en el deben aparecer listado los Servidores de base de datos que se encuentren configurado de otras aplicaciones J de estar vacía que es la forma más tradicional de verlo entonces haremos los siguientes pasos para visualizar nuestra base de datos.

1. Seleccionaremos el icono amarillo con forma de base de datos y un + en la parte superior como se indica en la imagen siguiente, esto es para conectarnos al servidor de base de datos.

tablas

2. Aparecerá un cuadro como muchas maneras de conectarnos a la base de datos y por ello debemos seleccionar la siguiente. Si es de su preferencia puede dejar la casilla “Utilizar siempre esta selección” por si siempre utilizara esa manera para conectarse a una fuente de datos.

motores

3. Si se ha equivocado al momento de seleccionar el Origen de datos (Paso anterior) puede reajustar la selección con darle al botón Cambiar (ver la siguiente imagen), se la selección es la correcta usted debe indicar el nombre del servidor de SQL Server donde está la base de datos a utilizar en mi caso estoy usando un Motor de SQL Server 2005 Developer Editions y por ello mi Nombre servidor es (local)\SQL2005 en sus casos si está utilizando la versión Express seria de la siguiente manera (local)\SQLExpress, luego según las características que hallas definido al momento de instalar el servidor de base de datos pudieras usar una autenticación de modo Windows o de Modo SQL Server y de allí puedas seleccionar tu base de datos.

Motor

Nota: por si no sabes quién es (local) vendría siendo tu maquina por lo que en vez de usar (local) pudieras utilizar el nombre de tu Maquina, el \ServidorSQL seria la instancia donde fue instalado el servidor de base de datos, es decir seria esta nomemblecatura: {TUMAQUINA\INSTANCIA_SERVIDOR_SQL}. Te recomiendo hacer una prueba de conexión antes de darle aceptar para validar que te puedes conectar sin problemas.

4. Ahora seleccionaremos todas las tablas de la base de datos o sencillamente podemos usar las tablas que usaremos para el tutorial y luego de seleccionarlas la vamos arrastrando al DataClases donde las tablas son StateProvince y CountryRegion.

Nota: Fíjense la sección remarcada, allí arrastraríamos los StoreProcedures y Funciones que estén definidos en la base de datos lo cual en código podremos invocarlos como Métodos, mientras las tablas la invocaremos como Clases.

Ya con esos puntos podemos empezar a lanzar código J, pero antes de empezar debo explicarle como es la sintaxis de LINQ para que así puedan seguirme, sé que es mucho bla bla bla pero créanme es lo correcto. La sintaxis tradicional y quizás la más utilizada de LINQ es la siguiente:

Linq

La forma de trabajar con LINQ es englobando la consulta y almacenando todo en una variable de tipo “var” (en C# y en VB es DIM sin la asignación de tipo de datos), veamos como se ve lo mostrado en la imagen anterior en código:

 

C#:

var consulta = from country in db.CountryRegion
               select country;

VB:

Dim consulta = From country In db.CountryRegion Select country

Lo que equivale a una consulta al estilo SQL:


Select * From Person.CountryRegion

Si lo ven no es tan difícil al contrario nos facilita el poder manejar objetos, xml y otros fuentes de datos basándonos en un solo esquema, facilitándonos y/o ahorrándonos el tener que aprender cómo obtener los datos y cuál sería su sintaxis J.

Como si eso no fuese todo también podemos hacer consultas a la base de datos como si fuesen métodos así como se muestra en el ejemplo siguiente:

C#:


var consulta = db.CountryRegion;//.Select(c => new { c.Name, c.StateProvince });

VB:

Dim consulta = db.CountryRegion

Es decir que quedaría como la siguiente imagen 🙂

Linq Metodo

Aquí le dejo otra imagen para notar la forma como se realiza las consultas con LINQ con ambos lenguajes (VB y C#) y que el Visual Studio 2008 nos brinda todo el soporte necesario.

Untitled2

Ahora teniendo claro la forma de realizar consultas en LINQ podremos comenzar con agregar una nueva página seleccionando la MasterPage creada en el capitulo anterior y la llamaremos infoCountryRegion.aspx en el solo tendremos el GridView que llamaremos gvCountryRegion que mostrara los datos arrojados de las consultas que realizaremos a la tabla CountryRegion.

En la hoja de código del formulario web (infoCountryRegion.aspx.cs) vamos a crear un método que llamaremos “LlenarGrid()” dicho método nos servirá para llenar el GridView la carga de la pagina en futuras mejoras al gridview como la paginación y selección de filas.

C#

    /// <summary>
    /// Metodo que usaremos para extaer la informacion de la Base de Datos y llenar el GridView
    /// </summary>
    private void LlenarGrid()
    {
        //Obtenemos la cadena de conexion del archivo de configuracion (Web.config)
        //Y lo alamcenamos en una variable de tipo string
        string sConfig = ConfigurationManager.ConnectionStrings["AdventureWorksConnectionString"].ConnectionString;
        //Declaramos un tipo DataContext a partir del DataClases que agregamos al proyect y le
        //pasamos en el parametro la cadena conexion almacenada en la variable sConfig
        dcAdventureWorksDataContext db = new dcAdventureWorksDataContext(sConfig);
        //Se construye la Consulta simple para extraer datos de la Tabla CountryRegion
        var consulta = from c in db.CountryRegion
                       select c;
        //Lugar donde mostraremos la informacion consultada a la tabla
        gvCountryRegion.DataSource = consulta;
        gvCountryRegion.DataBind();
    }

VB

    ''' <summary>
    ''' Metodo que usaremos para extaer la informacion de la Base de Datos y llenar el GridView
    ''' </summary>
    Sub LlenarGrid()
        'Obtenemos la cadena de conexion del archivo de configuracion (Web.config)
        'Y lo alamcenamos en una variable de tipo string
        Dim sConfig As String = ConfigurationManager.ConnectionStrings("AdventureWorksConnectionString").ConnectionString
        'Declaramos un tipo DataContext a partir del DataClases que agregamos al proyect y le
        'pasamos en el parametro la cadena conexion almacenada en la variable sConfig
        Dim db As dcAdventureWorksDataContext = New dcAdventureWorksDataContext(sConfig)
        'Se construye la Consulta simple para extraer datos de la Tabla CountryRegion
        Dim consulta = From country In db.CountryRegion Select country
        'Lugar donde mostraremos la informacion consultada a la tabla
        gvCountryRegion.DataSource = consulta
        gvCountryRegion.DataBind()
    End Sub

Mientras que en el Page_Load de la página escribiremos la invocación del método recién creado colocando un validación de que la Página sea diferente a un PostBack por lo que quedaría así en el siguiente código:

C#

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            LlenarGrid();
        }
    }

 

VB

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        If (IsPostBack = False) Then
            LlenarGrid()
        End If
End Sub

 

 

 

 

 

 

 

 

Hasta el siguiente post que será la continuación de este punto (Consultas)

Post Cruzado con el blog http://geeks.ms/blogs/ajimenez

Anuncios

Enlaces: Cursos de Programación Web, SharePoint, Mobile, SilverLight, WPF, Live y Diseño


clip_image001Curso de Silverlight 2.0 (1º parte)

En el curso veremos una introducción al desarrollo con la versión 2.0 de Silverlight. Con él aprenderás a utilizar los recursos para la creación de sitios Web enriquecidos y aplicaciones Web completas con una innovadora interfaz de usuario y prestaciones multimedia mejoradas y adaptables a cada situación. Revisaremos la programación de interfaces de usuario mediante el lenguaje XAML adaptado para Silverlight 2.0 y utilizaremos el lenguaje C# para la programación del comportamiento de negocio.

clip_image001[1]Curso de Silverlight 2.0 (2º parte)

Esta es la segunda parte del curso de introducción al desarrollo con la versión 2.0 de Silverlight. Aquí nos centraremos en la utilización de Controles Predefinidos, Estilos, Animaciones, Creación de controles personalizados, Visual State Manager, Acceso a Datos y Buenas Prácticas, tanto en la arquitectura, como en la implantación final.

clip_image002Curso Desarrollo Web

En este curso se tratan todas las cuestiones fundamentales que le permitirán crear aplicaciones web con Visual Studio 2005 y con Visual Studio 2008. Al final del curso sabrá todo lo necesario para crear sus propias aplicaciones Web orientadas a datos y con multitud de características avanzadas

clip_image002[1]Curso de Introducción a .NET con Visual Basic 2005 y Visual Basic 2008

En este curso podrás aprender a desarrollar aplicaciones Windows con Visual Studio 2005 y 2008, y terminaremos desarrollando una aplicación real con los conceptos aprendidos. Al final de cada lección tendrás disponible un video en el que podrás ver los conceptos explicados de forma práctica sobre el entorno de Visual Studio 2005 y Visual Studio 2008.

clip_image002[2]Curso de Introducción a .NET con C#

En este curso podrás aprender a desarrollar aplicaciones Windows con Visual Studio 2005 y también Visual Studio 2008, y terminaremos desarrollando una aplicación real con los conceptos aprendidos. Al final de cada lección tendrás disponible un video en el que podrás ver los conceptos explicados de forma práctica sobre el entorno de Visual Studio 2005 y Visual Studio 2008.

clip_image002[3]Curso de Visual Basic 2005 y Visual Studio 2008 para desarrolladores VB6

En este curso podrás aprender a desarrollar aplicaciones con la última generación de herramientas de desarrollo Microsoft Visual Studio 2005 y Visual Studio 2008. Veremos las principales diferencias con Visual Basic 6, tanto a nivel del lenguaje como de la infraestructura de desarrollo utilizada, y acabaremos desarrollando una aplicación real con los conceptos aprendidos. Al final de cada lección tendrás disponible un video en el que podrás ver los conceptos explicados de forma práctica sobre el entorno de Visual Studio 2005 y también Visual Studio 2008.

clip_image002[4]Curso de desarrollo con dispositivos móviles

En este curso aprenderás a desarrollar aplicaciones para dispositivos móviles con Visual Studio 2005 y Visual Studio 2008. Al final de cada lección tendrás disponible un video en el que podrás ver los conceptos explicados de forma práctica sobre el entorno de Visual Studio 2005 y Visual Studio 2008.

clip_image002[5]Curso de desarrollo con Windows Presentation Foundation

En este curso usted verá cómo crear sus primeras aplicaciones usando Windows Presentation Foundation (WPF). Le enseñaremos a utilizar los nuevos recursos de presentación de esta nueva plataforma de Microsoft con los que podrá elevar a niveles excitantes la calidad y funcionalidad de las interfaces de usuario de sus aplicaciones. Lo introduciremos en la nueva filosofía de programación declarativa con el lenguaje XAML que ayuda a separar la interfaz de presentación del código .NET en el que programe la lógica del negocio de su aplicación. Con WPF verá facilitados y enriquecidos conocidos conceptos como controles, eventos, enlace a datos, así como podrá incorporar nuevos elementos como transformaciones, plantillas, estilos, animaciones, media, 3D, documentos.

clip_image003Curso de Windows Live APIs

En este curso aprenderá a integrar y enriquecer su páginas PHP y JSP con las APIs de Windows LIVE. En cada capítulo dispondrá de un video explicativo con una demo de lo visto relacionado con esa API.

clip_image003[1]Curso de Silverlight 1.0

Silverlight representa el paso siguiente en el desarrollo del potencial de riqueza en utilización que los desarrolladores y diseñadores de aplicaciones pueden presentar a sus clientes. Este curso pretende acercarle al maravilloso mundo que está resultando ser el desarrollo para la próxima generación de aplicaciones web con Silverlight. Esta tecnología cuenta con multitud de funcionalidades que podrá comenzar a usar ahora para crear su próximo sitio web.

clip_image003[2]Curso de Servicios Web

En este curso podrás aprender los conceptos fundamentales relacionados con los Servicios Web, y cómo éstos se implementan en la plataforma .NET, para luego ser consumidos desde esa misma plataforma u otras como Java y PHP. Al final de cada lección de naturaleza práctica, tendrás disponible un vídeo en el que podrás reflejados los conceptos.

clip_image003[3]Curso de diseño y autoría con Microsoft Expression Web

Desde principios fundamentales que rigen el diseño Web, hasta el uso de archivos XML para crear diseños dinámicos enlazados a datos, pasando por la creación, edición y mantenimiento de sitios y aplicaciones Web con interfaces accesibles y usables, y garantizando siempre la compatibilidad con los estándares del W3C para la Web, como XHTML, CSS o XML, este curso le guiará paso a paso por los fundamentos prácticos del diseño y la autoría con la potente herramienta Microsoft Expression Web.

clip_image003[4]Curso de SQL Server 2005

En este tutorial, aprenderá los fundamentos para desarrollar aplicaciones con la versión Express de SQL Server 2005. El objetivo del tutorial no es cubrir en gran detalle todos los aspectos de SQL Server 2005 Express, pero si aportar una idea general del producto y su integración con el resto de herramientas Express (Visual Basic Express, Visual C# Express, y Visual J# Express). Como complemento adicional al tutorial, deberá seguir los Libros en Pantalla del producto (Books On Line).

clip_image003[5]Curso de desarrollo con Sharepoint 2007

SharePoint es no solamente la herramienta de colaboración de Microsoft, sino toda una plataforma de desarrollo, debido a su flexible arquitectura y poderoso Modelo de Objetos. Este curso demuestra las posibilidades de desarrollo de componentes para Windows SharePoint Services (WSS) 2007 y Microsoft Office SharePoint Server (MOSS), tales como WebParts, Tipos de Contenido y Características, así como la forma de interactuar programáticamente con servicios avanzados del sistema, como son sus Flujos de Trabajo y Catalogo de Datos Profesionales.

clip_image003[6]Desarrolla con MSDN: Introducción a Visual Studio 2005

En este video veremos todas las novedades en Visual Studio 2005, desde el desarrollo web con ASP .NET pasando por Visual Studio Tools for Office y mucho más. El tamaño de este Video es de 61’50 MB, el tiempo de descarga dependerá del tipo de conexión.

clip_image003[7]Desarrolla con MSDN: Dispensador de MSDN Video

Veremos como construir un dispensador de películas automático, basado en WinForms y con despliegue automático por Internet. Nos permitirá construir el interfaz rico y potente necesario en este tipo de aplicaciones. El tamaño de este Video es de 79’34 MB, el tiempo de descarga dependerá del tipo de conexión.

clip_image003[8]Aplicaciones Smart Client con .NET

Un smart client consiste en una aplicación que proporciona al usuario un interfaz Windows rico para acceder a un sistema basado en servicios web, pero que mantiene las ventajas de los clientes web tradicionales, como la ausencia de instalación en la máquina cliente, el funcionamiento a través de Internet y la actualización automática. El tamaño de este Video es de 80’33 MB, el tiempo de descarga dependerá del tipo de conexión.

clip_image003[9]Desarrollo de aplicaciones con .NET y Servicios Web

En este webcast veremos una introducción al desarrollo en .NET de la lógica de negocio de una aplicación. El tamaño de este Video es de 65,1MB, el tiempo de descarga dependerá del tipo de conexión.

clip_image003[10]Desarrolla con MSDN: Servidor central de MSDN Video

Primer webcast de la serie Desarrolla con MSDN. Estos webcasts mostrarán paso a paso cómo desarrollar con Visual Studio .NET la aplicación MSDN Video. En esta ocasión desarrollaremos el servidor central que servirá como núcleo del resto de clientes que consumirán la funcionalidad de la aplicación. El tamaño de este Video es de 75,8MB,

Comparte este Blog :


Post Cruzado con el blog http://geeks.ms/blogs/ajimenez

Tips & Trucos: Convertir Segundos a Minutos, Horas y Días – VB y C#


Hola a Todos,

Aquí les dejo unos simples truquillos de convertir Segundos a Minutos, Horas y Días. Utilizando TimeSpan.

Nota: el Response.Write es por que utilice una pagina ASP.net y en el Load cargaba el resultado 🙂

En Visual Basic:

Dim segundos As Double = 7950 'Los Segundos a Probar

'Prueba 1: Total Dias, Total de Horas, Total Minutos, Total Segundos
Dim t As New TimeSpan

Response.Write("Prueba 1: Dias: " + t.FromSeconds(segundos).TotalDays.ToString() +
 " Tiempo: " + t.FromSeconds(segundos).TotalHours.ToString() + ":" +
t.FromSeconds(segundos).TotalMinutes.ToString() + ":" + t.FromSeconds(segundos).TotalSeconds.ToString())

'Prueba 2: Dias, Hora, Minutos y Segundos
Dim t2 As TimeSpan = TimeSpan.FromSeconds(segundos)
Response.Write("<br> Prueba 2: Dias: " + t2.Days.ToString() + " Tiempo: " +
t2.Hours.ToString() + ":" + t2.Minutes.ToString() + ":" +
t2.Seconds.ToString())

En C#:

double segundos=7950 ; //Los Segundos a probar
TimeSpan t =new TimeSpan;
//Prueba 1: Total Dias, Total de Horas, Total Minutos, Total Segundos
Response.Write("Prueba 1: Dias: " + t.FromSeconds
(segundos).TotalDays.ToString() + " Tiempo: " + t.FromSeconds
(segundos).TotalHours.ToString() + ":" + t.FromSeconds
(segundos).TotalMinutes.ToString() + ":" + t.FromSeconds
(segundos).TotalSeconds.ToString());

TimeSpan t2= TimeSpan.FromSeconds(segundos);
//Prueba 2: Dias, Hora, Minutos y Segundos
Response.Write("<br> Prueba 2: Dias: " + t2.Days.ToString() + " Tiempo: " +
t2.Hours.ToString() + ":" + t2.Minutes.ToString() + ":" +
t2.Seconds.ToString());

 

Compartir este Blog :

Post Cruzado con el blog http://geeks.ms/blogs/ajimenez

Creando una Aplicacion Windows Paso a Paso usando Visual Basic y Visual CSharp – Parte 4


Bueno continuando con la serie de pasos para crear una aplicacion Windows pues aqui les dejo la continuacion.

Sigue leyendo

Creando una Aplicacion Windows Paso a Paso usando Visual Basic y Visual CSharp – Parte 3


Hola a todos se que he dejado un tiempo sin colocar la continuacion pero se me habia hecho algo dificil continuar pero aqui esta la continuacion de este tutorial pero antes debemos recordar las primeras partes ya publicadas.

Sigue leyendo