Andres Felipe Blog's

My WordPress Blog

Aprendiendo .NET MVC 4 [Parte 2] – Creación de un Proyecto y Base de Datos

aprendiendo-net-mvc4Hola a todos, hoy les presento un articulo sirve de apoyo al anterior post llamado Aprendiendo .NET MVC 4 [Parte 1] – Creación de Controladores y Vistas. Pues bien en el día de voy a presentar la creación de un proyecto llamado “Have You Seen Me?“, vamos a generar un proyecto para ASP.NET MVC 4 y finalmente generaremos la base de datos.

Antes de iniciar les voy a presentar un libro del cual me base para escribir el siguiente articulo, se llama Beginning ASP.NET MVC 4 y lo recomiendo mucho para personas que esta empezando en este mundo, revisar el capitulo 3, lo que voy a realizar continuación no es la traducción exacta es simplemente un reseña.

El Proyecto

Have You Seen Me? es una aplicación WEB habilitada para las persona que desean poner información acerca de sus mascotas perdidas, compartir dicha información a la comunidad en linea y ayudar a los demás en buscar a sus mascotas. La aplicación tiene tres secciones que son: Area Administrativa, Area Publica y Area para Miembros.

Area Administrativa: Area restringida unicamente para el dueño de la aplicación y puede realizar configuración generales del sito.

Area Publica: Area accedida por cualquier persona que ingrese por medio de un navegador WEB, puede ver las imágenes de las machotas perdidas, enviar un mensaje a los dueños y registrase para un usuario del sitio.

Area para Miembros: Area dirigida a los usuario que posee cuenta de usuario, es importarte facilitar el ingreso al sistema y sistema debe soportar ingreso de usuario de forma local (usuario y contraseña), OAuth y OpenID por medio de la clase DotNetOpenAuth (vamos aprender buenas cosas XD) podemos lograr que los usuarios se autentiquen con Facebook, Twiiter y Google. Los usuario en esta sección pueden actualizar su contraseña, registrar sus mascotas perdidas, actualizar imágenes, agregar información adicional de sus mascotas, leer mensajes, responder mensajes y eliminar la cuenta.

Crear el Proyecto

Como vimos en el articulo anterior, abrir Visual Studio 2012 vamos a Archivo > Nuevo Proyecto (Ver Img 1)

aprendiendo-asp-net-mvc-4

Img 1

Ahora seleccionamos ASP.NET MVC 4 Web Application y al nombre del proyecto le ponemos HaveYouSeenMe (Ver img 2).

aprendiendo-asp-net-mvc-4

Img 2

Hacer click en OK y después seleccionar el template, para este proyecto seleccionaremos Internet Application, el motor de plantillas Razor y seleccionamos la creación de pruebas unitarias “Crete a unit test project” (Ver Img 3). La selección de esta plantilla es ulti para ahorrarnos tiempo de desarrollo, esta plantilla ya incorpora la autenticación de usuario local (usuario y contraseña), como también el formulario de registro y manejo de sesiones de usuario.

aprendiendo-asp-net-mvc-4

Img 3 – Selección del templare, motor y generador de pruebas

Para terminar debemos esperar unos minutos mientras se genera el proyecto.

Base de Datos

Ahora para la generación de la base de datos, nos vamos aprovechar de una propiedad que trae por defecto Visual Studio 2012. Las bases de datos LocalDB como lo sugiere el articulo es la nueva versión de SQL Express Edition dirigidas a los desarrolladores y evitar la instalación de otras versión de SQL Server. Asi los desarrolladores pueden concentrarsen en el desarrollo de la aplicación y no invertir tanto tiempo en la generación de los esquemas de la base de datos (Alberto Morillo).

Para antes de la generación de la base de datos, voy a describir las tablas de la aplicación:

  • Settings: Usado para almacenar la información general de la aplicación WEB.
  • PetType: Util para identificar los diferentes tipos de mascotas, Perros, Gatos, Aves, entre otros.
  • Pet: Esta tabla se utilizara para almacenar la información de la mascota perdida.
  • PetPhoto: Usada para almacenar las imágenes de la mascota
  • Status: Almacenara si la mascota fue encontrada o declara como perdida definitivamente.
  • Message: Almacena los mensajes enviados a los dueños de las mascotas.

Adicionalmente se agregaran unos ALTER a las a tablas  de usuario para adaptarlas a los nuevos mecanismos de autenticación OAuth y OpenID. El siguiente código es la definición de la base de datos T-SQL.

CREATE TABLE [dbo].[Setting]
(
    [Id] INT NOT NULL IDENTITY(1,1),
    [Key] VARCHAR(50) NOT NULL,
    [Value] VARCHAR(500) NULL,
    CONSTRAINT [PK_Setting] PRIMARY KEY ([Id])
);

CREATE TABLE [dbo].[PetType]
(
    [PetTypeID] INT NOT NULL IDENTITY(1,1),
    [PetTypeDescription] VARCHAR(50) NULL,
    CONSTRAINT [PK_PetType] PRIMARY KEY ([PetTypeID])
);

CREATE TABLE [dbo].[Status]
(
    [StatusID] INT NOT NULL IDENTITY(1,1),
    [Description] VARCHAR (50) NOT NULL,
    CONSTRAINT [PK_Status] PRIMARY KEY ([StatusID])
);

CREATE TABLE [dbo].[Pet]
(
    [PetID] INT NOT NULL IDENTITY(1,1),
    [PetName] VARCHAR(100) NOT NULL,
    [PetAgeYears] INT NULL,
    [PetAgeMonths] INT NULL,
    [StatusID] INT NOT NULL,
    [LastSeenOn] DATE NULL,
    [LastSeenWhere] VARCHAR(500) NULL,
    [Notes] VARCHAR(1500) NULL,
    [UserId] INT NOT NULL,
    CONSTRAINT [PK_Pet] PRIMARY KEY ([PetID]),
    CONSTRAINT [FK_Pet_Status] FOREIGN KEY ([StatusID])
    REFERENCES [Status] ([StatusID]),
    CONSTRAINT [FK_Pet_User] FOREIGN KEY ([UserId])
    REFERENCES [UserProfile] ([UserId])
);

CREATE TABLE [dbo].[PetPhoto]
(
    [PhotoID] INT NOT NULL IDENTITY(1,1),
    [PetID] INT NOT NULL,
    [Photo] VARCHAR(500) NOT NULL
    CONSTRAINT [DF_PhotoFile] DEFAULT '/content/pets/no-image.png',
    [Notes] VARCHAR(500) NULL,
    CONSTRAINT [PK_PetPhoto] PRIMARY KEY ([PhotoID]),
    CONSTRAINT [FK_PetPhoto_Pet] FOREIGN KEY ([PetID])
    REFERENCES [Pet] ([PetID])
);

CREATE TABLE [dbo].[Message]
(
    [MessageID] INT NOT NULL,
    [UserId] INT NOT NULL,
    [MessageDate] DATETIME NOT NULL,
    [From] VARCHAR(150) NOT NULL,
    [Email] VARCHAR(150) NOT NULL,
    [Subject] VARCHAR(150) NULL,
    [Message] VARCHAR(1500) NOT NULL,
    CONSTRAINT [PK_Message] PRIMARY KEY ([MessageID]),
    CONSTRAINT [FK_Message_User] FOREIGN KEY ([UserId])
    REFERENCES [UserProfile] ([UserId])
);

ALTER TABLE [dbo].[UserProfile]
ADD
[FirstName] VARCHAR(150) NOT NULL,
[LastName] VARCHAR(150) NOT NULL,
[Email] VARCHAR(150) NOT NULL;

Para ejecutar el anterior Script, debemos generar la base de datos LocalDB. Primero ejecutar el proyecto en modo depurador (Ver Img 4)

aprendiendo-asp-net-mvc-4

Img 4 – Modo depurador en Visual Studio 2012

Ahora desde la aplicación (si notan la aplicación genera un código por defecto) tratemos de iniciar sesión (Ver Img 5) y nos mostrara la pantalla de iniciar sesión, este proceso puede tomar algunos minutos. (Ver Img 6)

aprendiendo-asp-net-mvc-4

Img 5 – Iniciar sesión

aprendiendo-asp-net-mvc-4

Img 6 – Formulario de Inicio de Sesión

Una vez veamos esta imagen (Img 6), volvemos a Visual Studio 2012 y detenemos el proyecto (Ver Img 7).

aprendiendo-asp-net-mvc-4

Img 7 – Detener proyecto

En el explorador del proyecto seleccionamos “Ver Todos los Archivo” (Ver Img 8) y nos aparecerá un carpeta llamada App_Data, en cual se encuentra un archivo de extensión *.mdf (nuestra LocalDB, por fin !!). Sobre este archivo hacemos click derecho y seleccionamos la opción “Agregar al Proyecto“.

aprendiendo-asp-net-mvc-4

Img 8 – Ver todos los archivos

Ahora abrimos la base de datos y realizamos click derecho en la carpeta “Tablas” y seleccionáramos la opción “Nueva Consulta” (Ver Img 9). Se abrirá una nueva ventana, es un editor de texto y allí colocaremos el código T-SQL  y presionamos “Ejecutar” (Ver Img 10).

aprendiendo-asp-net-mvc-4

Img 9 – Crear una nueva consulta

aprendiendo-asp-net-mvc-4

Img 10 – Ejecutar una consulta T-SQL

Y ahora si actualizamos a vista de la Base de Datos, aparecerán nuestras tablas creadas y listo por hoy !!.

Resumen

Hoy quiero terminar con un resumen de los que hicimos a lo largo de este articulo, primero definimos el proyecto Have You Seen Me? un proyecto de software WEB para ayudar a las personas a buscar a sus mascotas perdidas a través de una comunidad on-line. Volvimos a repasara como se genera un proyecto desde Visual Studio 2012 con la plantilla Internet Application y por ultimo generamos una base de datos de tipo LocalDB. No te olvides de consulta el libro Beginning ASP.NET MVC 4.

Saludos y chao por hoy !! 😀

Anterior

UML en 24 Horas [Hora 1] – Conceptos generales

Siguiente

Aprendiendo Symfony 2 [Parte 1] – Introducción

  1. dan street

    Y al tabla UserProfile?

  2. Fernando Garcia

    hola que tal, muy bueno tu tutorial, queria un poco de ayuda ya que mi aplicacion requiere de autenticacion local, yo tngo diseñada mi BD en sql server 2012 y tengo una tabla denominada “autenticacion” ya que contienen en sus campos usuario y contraseña. queria saber como hago para realizar esa autenticacion a traves de mi BD para que cada usuario ingrese y pueda disfrutar de la aplicacion! Gracias

  3. Carlos

    Estimado, excelente el aporte la única consulta que tengo es sobre la tabla de usuario? (UserProfile)

  4. Eldaa Mandujano

    Hola, me parece increible que hagas estos blogs, pero tengo una duda muy grande, estoy utilizando MVC 5 y no me aparece el archivo mdf en ninguna pare, no se si siga apareciendo, espero puedas leerme, gracias

    • jimmy daniel dominguez

      si estas usando Entity la genera en la carpeta AppData en el directorio de tu proyecto

Deja un comentario

Creado con WordPress & Tema de Anders Norén