Getting Started With ASP.net Español
-
Upload
ezricruzperez -
Category
Documents
-
view
66 -
download
11
description
Transcript of Getting Started With ASP.net Español
Página 18
Crear el proyecto
Este serie tutorial te enseñará los fundamentos de la construcción de una aplicación Web Forms
ASP.NET utilizando ASP.NET 4.5 y Microsoft Visual Studio Express 2013 para Web. Un estudio de
2013 del proyecto de Visual con fuente de C # código está disponible para acompañar esta serie de
tutoriales.
En este tutorial va a crear, revisar y ejecutar el proyecto de forma predeterminada en Visual
Studio, que lo hará le permiten familiarizarse con las características de ASP.NET. Además, se le
revisará el Visual Studio ambiente.
Lo que aprenderá:
¿Cómo crear un nuevo proyecto Web Forms.
La estructura de archivos del proyecto Web Forms.
Cómo ejecutar el proyecto en Visual Studio.
Las diferentes características de la aplicación de los formularios Web predeterminado.
Algunos conceptos básicos sobre cómo utilizar el entorno de Visual Studio.
Crear el proyecto
1. Abra Visual Studio.
2. Seleccione Nuevo proyecto en el menú Archivo de Visual Studio.
3. Seleccione las plantillas -> Visual C # -> grupo Plantillas Web de la izquierda.
4. Seleccione la plantilla de aplicación Web ASP.NET en la columna central.
Página 19
5. Nombre tus WingtipToys proyecto y elija el botón Aceptar.
Nota
El nombre del proyecto en esta serie de tutoriales es WingtipToys. Se recomienda que utiliza este
nombre exacto del proyecto para que el código proporcionado a lo largo de esta serie de
tutoriales funciona como se esperaba.
Página 20
6. A continuación, seleccione la plantilla de formularios Web Forms y chooks el botón Crear
proyecto.
Página 21
El proyecto se llevará un poco de tiempo para crear. Cuando esté listo, abra la página Default.aspx.
Se puede cambiar entre la vista Diseño y la vista Código fuente seleccionando una opción en la
parte inferior de el centro de la ventana. vista Diseño muestra las páginas Web ASP.NET, páginas
maestras, páginas de contenido, Páginas HTML y controles de usuario utilizando una vista casi
WYSIWYG. Vista de origen muestra el código HTML markup para su página web, que se puede
editar.
La comprensión de los marcos de ASP.NET
ASP.NET Web Forms le permite crear sitios web dinámicos utilizando una drag-and-drop familiar,
evento- modelo impulsado. Una superficie de diseño y cientos de controles y componentes le
permiten crear rápidamente poderosos sitios sofisticados, la interfaz de usuario impulsada con
acceso a los datos. La tienda Wingtip Toy se basa en ASP.NET Web Forms, pero muchos de los
conceptos que se aprenden en esta serie de tutoriales son aplicables a todos ASP.NET.
ASP.NET ofrece cuatro marcos de desarrollo primario:
ASP.NET Web Forms
El marco de formularios Web se dirige a los desarrolladores que prefieren declarativa y control
basado en programación, como Microsoft Windows Forms (WinForms) y WPF / XAML / Silverlight.
Ofrece un modelo de desarrollo impulsado por el diseñador WYSIWYG, por lo que es popular entre
los desarrolladores en busca de un entorno de desarrollo rápido de aplicaciones (RAD) para el
desarrollo web. Si usted es nuevo en la programación web y está familiarizado con el tradicional
Microsoft RAD
Página 22
herramientas de desarrollo de cliente (por ejemplo, para Visual Basic y Visual C #), usted puede
rápida construir una aplicación web sin tener experiencia en HTML y JavaScript.
ASP.NET MVC
ASP.NET MVC se dirige a los desarrolladores que están interesados en los patrones y principios
como los Ensayos desarrollo impulsado, separación de intereses, inversión de control (IoC), y la
dependencia inyección (DI). Este marco alienta a la separación de la capa de lógica de negocio de
una red aplicación de su capa de presentación.
ASP.NET Web Pages
Páginas Web ASP.NET dirige a los desarrolladores que quieren una simple historia de desarrollo
web, a lo largo de las líneas de PHP. En el modelo de páginas Web, crear páginas HTML y luego
agrega código basado en el servidor de la página con el fin de controlar la dinámica de cómo el
lenguaje de formato rendido. Páginas Web está diseñado específicamente para ser un marco
ligero, y es el más fácil punto en ASP.NET entrada para gente que sabe HTML, pero podrían no
tener amplia experiencia en programación - por ejemplo, estudiantes o aficionados. También es
una buena manera para que desarrolladores web que conocen PHP o marcos similares para
empezar a utilizar ASP.NET.
ASP.NET sola página Aplicación
Página única aplicación ASP.NET (SPA) ayuda a construir aplicaciones que incluyen interacciones
del cliente significativos utilizando HTML 5, CSS 3 y JavaScript. El ASP.NET y Herramientas Web
2012.2 Actualizar barcos una nueva plantilla para la creación de aplicaciones de una sola página
utilizando knockout.js y API Web ASP.NET. Además de la nueva plantilla Spa, Nueva plantillas SPA
creado en la comunidad también están disponibles para su descarga.
Además de los cuatro marcos principales de desarrollo, ASP.NET también ofrece adicional
tecnologías que son importantes para conocer y familiarizarse con, pero no están cubiertos en
este serie de tutoriales:
ASP.NET Web API - Un marco para la construcción de servicios HTTP que llegan a una amplia gama
de clientes, incluyendo los navegadores y dispositivos móviles.
ASP.NET SignalR - Una biblioteca que hace que el desarrollo de la funcionalidad de la web en
tiempo real fácil.
Revisión del Proyecto
En Visual Studio, la ventana Explorador de soluciones le permite administrar los archivos para el
proyecto. Echemos un mirar las carpetas que se han añadido a su aplicación en el Explorador de
soluciones. La web
Página 23
plantilla de aplicación añade una estructura básica de carpetas:
Visual Studio crea algunas carpetas iniciales y archivos para su proyecto. Los primeros archivos que
serán trabajar con más adelante en este tutorial son los siguientes:
Archivo Propósito Default.aspx Normalmente la primera página aparece cuando la aplicación se ejecuta en un navegador. Site.Master Una página que te permite crear un diseño consistente y utiliza comportamiento estándar para las páginas de la aplicación. Global.asax Un archivo opcional que contiene código para responder a aplicación- eventos de nivel y de nivel de sesión planteadas por ASP.NET o HTTP módulos. Web.config Los datos de configuración para una aplicación. Página 24
Ejecutar la aplicación Web predeterminado
La aplicación Web predeterminado proporciona una experiencia rica basada en funcionalidad
integrada y apoyo. Sin ningún tipo de cambios en el proyecto de formularios Web
predeterminado, la aplicación está lista para funcionar en tu navegador web local.
1. Presione la tecla F5 mientras que en Visual Studio.
La aplicación construirá y visualización en el navegador Web.
2. Una vez que haya completado opinión la aplicación en ejecución, cierre la ventana del
navegador.
Hay tres páginas principales en esta aplicación web por defecto: Default.aspx (Inicio), About.aspx,
y Contact.aspx. Cada una de estas páginas se puede acceder desde la barra de navegación
superior. Hay también dos páginas adicionales contenidos en la carpeta de la cuenta, la página
register.aspx y Página Login.aspx. Estas dos páginas le permiten utilizar las capacidades de
pertenencia de ASP.NET para crear, almacenar y validar las credenciales de usuario.
Formularios Web ASP.NET Antecedentes
ASP.NET Web Forms son páginas que se basan en la tecnología Microsoft ASP.NET, en el cual el
código que se ejecuta en el servidor genera dinámicamente resultado de la página web con el
navegador o dispositivo de cliente.
Página 25
Una página Web Forms ASP.NET hace automáticamente el HTML navegador compatible correcta
para características tales como estilos, diseño, y así sucesivamente. Web Forms son compatibles
con cualquier lenguaje Compatible con .NET Common Language Runtime, como Microsoft Visual
Basic y Microsoft Visual C #. Además, los formularios Web se basan en la Microsoft .NET
Framework , Que proporciona beneficios como un entorno administrado, seguridad de tipos, y la
herencia.
Cuando una página de formularios Web ASP.NET se ejecuta, la página pasa por un ciclo de vida en
que se lleva a cabo una serie de pasos de procesamiento. Estos pasos incluyen la inicialización,
crear instancias de los controles, la restauración y el mantenimiento de estado, la ejecución de
código de controlador de eventos, y la representación. A medida que se familiarice más con el
poder de ASP.NET Web Forms, es importante que usted entienda la página ASP.NET ciclo de vida
de modo que usted puede escribir código en la etapa del ciclo de vida adecuado para el efecto que
desea.
Cuando un servidor Web recibe una petición de una página, se encuentra la página, lo procesa, lo
envía a la navegador y, a continuación, descarta toda información de la página. Si el usuario
solicita la misma página de nuevo, el servidor repite toda la secuencia, el reprocesamiento de la
página desde cero. Dicho de otra manera, una servidor no tiene memoria de páginas que ha
procesados-páginas son apátridas. La página ASP.NET marco se encarga de automatizar la tarea de
mantener el estado de su página y sus controles, y que le provee de maneras explícitas para
mantener el estado de la información específica de la aplicación.
Características de la aplicación Web en la Web Forms de plantillas de aplicaciones
La plantilla de formularios Web Forms aplicación ASP.NET proporciona un rico conjunto de
funcionalidad integrada. No sólo le proporciona una página Home.aspx, una página About.aspx,
una página Contact.aspx, sino también incluye la funcionalidad de miembros que registra los
usuarios y guarda sus credenciales para que puede iniciar sesión en su sitio web. Esta visión
general proporciona más información sobre algunas de las características contenidos en la Web
Forms plantilla de aplicación ASP.NET y cómo se utilizan en el Aplicación Wingtip Toys.
Afiliación
ASP.NET Id entidad almacena las credenciales de los usuarios en una base de datos creada por la
aplicación. Cuando sus usuarios inician sesión en la aplicación valida sus credenciales mediante la
lectura de la base de datos. Tu carpeta de la cuenta del proyecto contiene los archivos que
implementan las distintas partes de la membresía: registrarse, iniciar sesión, cambiar una
contraseña, y autorizar el acceso. Además, Web ASP.NET Formas soporta OAuth y OpenID. Estas
mejoras de autenticación permiten a los usuarios inician sesión en su sitio usando las credenciales
existentes, de las cuentas como Facebook, Twitter, Windows Live y Google.
Página 26
Por defecto, la plantilla crea una base de datos de miembros utilizando un nombre de base de
datos predeterminada en una instancia de SQL Server Express LocalDB, el servidor de base de
datos de desarrollo que viene con Visual Studio Express 2013 para Web.
SQL Server Express LocalDB
SQL Server Express LocalDB es una versión ligera de SQL Server que tiene muchos características
de programación de una base de datos SQL Server. SQL Server Express LocalDB se ejecuta en el
usuario el modo y tiene una instalación, configuración cero rápida que tiene una lista corta de
instalación requisitos previos. En Microsoft SQL Server, cualquier código de base de datos o
Transact-SQL se puede mover de SQL Server Express LocalDB a SQL Server y SQL Azure sin pasos
de actualización. Por lo tanto, SQL Server Express LocalDB se puede utilizar como un entorno de
desarrollo para aplicaciones dirigidas a todos ediciones de SQL Server. SQL Server Express LocalDB
permite funciones tales como procedimientos almacenados,
Página 27
funciones definidas por el usuario y los agregados, la integración de .NET Framework, tipos
espaciales y otros que no están disponibles en SQL Server Compact.
Páginas Maestras
Un Página maestra ASP.NET define una apariencia y comportamiento uniformes para todas las
páginas en su aplicación. El diseño de la página principal se fusiona con el contenido de un
individuo página de contenido para producir la última página que el usuario ve. En la aplicación de
Wingtip Toys, que modificar la página maestra Site.Master de manera que todas las páginas de la
Wingtip Toys web comparten el mismo logotipo distintivo y barra de navegación.
HTML5
La plantilla de formularios Web Forms aplicación ASP.NET es compatible con HTML5, que es la
última versión del el lenguaje de marcado HTML. HTML5 es compatible con nuevos elementos y
funciones que hacen más fácil para crear sitios Web.
Modernizr
Para navegadores que no soportan HTML5, puede utilizar Modernizr . Modernizr es un código
abierto Biblioteca JavaScript que puede detectar si un navegador soporta características de
HTML5, y permitirles si no lo hace. En la plantilla de formularios Web Forms aplicación ASP.NET,
Modernizr se instala como un NuGet paquete.
Manos a la Obra
El estudio 2013 plantillas de proyecto de Visual utilizan Manos a la Obra , Un marco de diseño y
tematización creado por Twitter. Bootstrap utiliza CSS3 para proporcionar el diseño de respuesta,
lo que significa que los diseños pueden adaptarse dinámicamente a diferentes tamaños de
ventana del navegador. También puede usar la tematización de Manos a la Obra función para
efectuar fácilmente un cambio en el aspecto de la aplicación y la sensación. Por defecto, la Web
ASP.NET Plantilla de aplicación en Visual Studio 2013 incluye Bootstrap como un paquete
NuGet. Paquetes
NuGet La plantilla de formularios Web Forms aplicación ASP.NET incluye un conjunto de NuGet
paquetes. Estas paquetes proporcionan funcionalidad por componentes en forma de bibliotecas y
herramientas de código abierto. Hay una amplia variedad de paquetes para ayudarle a crear y
probar sus aplicaciones. Estudio visual hace que sea fácil de añadir, eliminar y actualizar paquetes
NuGet. Los desarrolladores pueden crear y añadir paquetes a Nuget también.
Página 28
Al instalar un paquete, copias NuGet archivos a su solución y hace automáticamente Se necesitan
independientemente de los cambios, como la adición de referencias y cambiando eres la
configuración asociada a la aplicación Web. Si usted decide quitar la biblioteca, NuGet elimina
archivos e invierte lo cambia hizo en su proyecto para que ningún desorden se deja. NuGet es
disponible en el menú Herramientas en Visual Studio.
jQuery
jQuery es una biblioteca de JavaScript rápida y concisa que simplifica documento HTML de
desplazamiento, evento manipulación, animar y Ajax interacciones para el desarrollo web rápido.
El jQuery JavaScript biblioteca está incluido en la plantilla de formularios Web Forms aplicación
ASP.NET como un paquete NuGet.
Validación Discreto
Incorporado en los controles de validación se han configurado para utilizar JavaScript discreto para
el lado del cliente lógica de validación. Esto reduce significativamente la cantidad de JavaScript
mostrada en línea en la página markup y reduce el tamaño total de la página. Validación discreto
se añade a nivel mundial para el ASP.NET Web Forms plantilla Aplicación basada en el ajuste en el
<appSettings> elemento de el archivo Web.config en la raíz de la aplicación.
Entity Framework Primer Código
Además de las características de la Web Forms plantilla de aplicación ASP.NET, los juguetes
Wingtip usos de aplicaciones Entity Framework Primer Código , Que es una biblioteca NuGet que
permite que el código centrada desarrollo cuando se trabaja con datos. En pocas palabras, se crea
la parte de la base de datos de su solicitud de usted, basado en el código que usted escribe. El uso
de Entity Framework, se recupera y manipular datos como objetos inflexible de tipos. Esto le
permite centrarse en la lógica de negocio en su aplicación en lugar de los detalles de cómo se
accede a los datos.
Página 29
Para obtener información adicional acerca de las bibliotecas y los paquetes instalados incluido con
el ASP.NET Web Forms plantilla, ver la lista de paquetes NuGet instalados. Para ello, en Visual
Studio crear un nuevo proyecto de formularios Web, seleccione Herramientas -> Biblioteca
Package Manager -> Administrar NuGet Paquetes de Solución y seleccionar los paquetes
instalados en el cuadro de diálogo Administrar paquetes NuGet cuadro.
Touring Visual Studio
Las ventanas primarias en Visual Studio incluyen el Explorador de soluciones, el Explorador de
servidores (Explorador de base de datos en Express), la ventana de Propiedades, la caja de
herramientas, la barra de herramientas, y la Ventana de documento.
Para obtener más información acerca de Visual Studio, consulte Guía Visual de Visual Web
Developer.
Sumario
En este tutorial que ha creado, revisado y ejecutar la aplicación Web Forms predeterminada.
Tienes revisado las diferentes características de la aplicación de los formularios Web
predeterminado y aprendido algunos conceptos básicos acerca de cómo utilizar el entorno de
Visual Studio. En los siguientes tutoriales vamos a crear los datos capa de acceso.
Recursos adicionales
Elegir el modelo de programación de Derecho Proyectos de aplicación Web frente Web Proyectos
Sitio ASP.NET Web Forms Páginas Información general
Página 30
Crear la capa de acceso a datos
Esta serie tutorial te enseñará los fundamentos de la construcción de una aplicación Web Forms
ASP.NET utilizando ASP.NET 4.5 y Microsoft Visual Studio Express 2013 para Web. Un estudio de
2013 del proyecto de Visual con fuente de C # código está disponible para acompañar esta serie de
tutoriales.
Este tutorial describe cómo crear, acceder y revisar los datos de una base de datos utilizando
ASP.NET Web Forms y Entity Framework Primer Código. Este tutorial se basa en el tutorial anterior
"Crear el Proyecto "y forma parte de la serie de tutoriales Wingtip Toy Store. Cuando hayas
completado este tutorial, habrá construido un grupo de clases de acceso a datos que están en la
carpeta Modelos del proyecto.
Lo que aprenderá:
Cómo crear los modelos de datos. Cómo inicializar y sembrar la base de datos. Cómo actualizar y configurar la aplicación para apoyar la base de datos.
Estas son las características introducidas en el tutorial:
Entity Framework Primer Código LocalDB Datos Anotaciones
La creación de los modelos de datos
Entity Framework es un framework de mapeo objeto-relacional (ORM). Se le permite trabajar con
datos relacionales como objetos, lo que elimina la mayor parte del código de acceso a datos que te
gustaría normalmente necesita escribir. El uso de Entity Framework, puede emitir consultas
utilizando LINQ, a continuación, recuperar y manipular datos tan fuertemente mecanografiadas
objetos. LINQ proporciona pautas para consultar y actualizar datos. Usando Entity Framework le
permite centrarse en crear el resto de su aplicación, en lugar de centrándose en los aspectos
fundamentales de acceso a datos. Más adelante en esta serie de tutoriales, le mostraremos cómo
utilizar los datos para rellenar las consultas de navegación y de productos.
Entity Framework apoya un paradigma de desarrollo llamado Primer Código. Código Primero le
permite definir sus modelos de datos utilizando clases. Una clase es una construcción que le
permite crear su propio tipos personalizados mediante la agrupación de variables de otros tipos,
métodos y eventos. Puede asignar clases a una base de datos existente o los utilizan para generar
una base de datos. En este tutorial, vamos a crear los modelos de datos escribiendo clases del
modelo de datos. Entonces, dejarás de Entity Framework crear el base de datos sobre la marcha a
partir de estas nuevas clases.
Usted va a comenzar por la creación de las clases de entidad que definen los modelos de datos de
los formularios Web solicitud. Entonces se creará una clase de contexto que gestiona las clases de
entidad y proporciona de acceso a datos a la base de datos. También creará una clase inicializador
que va a utilizar para rellenar la base de datos.
Página 31
Entity Framework y Referencias
Por defecto, Entity Framework se incluye cuando se crea una nueva aplicación Web ASP.NET
utilizando la plantilla de formularios Web Forms. Entity Framework se puede instalar, desinstalar,
y lo actualiza según un paquete NuGet.
Este paquete NuGet incluye los siguientes conjuntos de tiempo de ejecución dentro de su
proyecto:
EntityFramework.dll - Todo el código de tiempo de ejecución común utilizado por Entity Framework
EntityFramework.SqlServer.dll - El proveedor de Microsoft SQL Server para Entity Framework
Las clases de entidad
Las clases que crean para definir el esquema de los datos se llaman clases de entidad. Si eres
nuevo en diseño de base de datos, pensar en las clases de entidad como definiciones de tablas de
una base de datos. Cada propiedad en la clase especifica una columna de la tabla de la base de
datos. Estas clases proporcionan un peso ligero, interfaz de objeto-relacional entre el código
orientado a objetos y la estructura de la tabla relacional de la base de datos.
En este tutorial, usted comenzará a cabo mediante la adición de clases de entidad simples que
representan los esquemas de productos y categorías. La clase de productos contiene definiciones
para cada producto. El nombre de cada uno de los miembros de la clase de producto habrá
ProductID, ProductName, Descripción, ImagePath, PrecioUnidad, IdCategoría, y categoría. La clase
de categoría voluntad contiene definiciones para cada categoría que un producto puede
pertenecer a, por ejemplo, coche, barco o avión. El nombre de cada uno de los miembros de la
clase de categoría será CategoryID, CategoryName, Descripción y productos. Cada producto
pertenecerá a una de las categorías. Estos entidad clases serán agregados a la carpeta de modelos
existentes del proyecto.
Página 32
1. En el Explorador de soluciones, haga clic en la carpeta Modelos y luego seleccione
Agregar -> Nuevo elemento.
Se muestra el cuadro de diálogo Agregar nuevo elemento.
Página 33
2. En Visual C # en el panel instalado en la izquierda, seleccione Código.
3. Seleccione clase en el panel central y el nombre de este nuevo Product.cs clase.
4. Haga clic en Agregar.
El nuevo archivo de clase se muestra en el editor.
5. Reemplace el código predeterminado con el siguiente código:
Página 34
6. Cree otra clase repitiendo los pasos 1 a 4, sin embargo, el nombre de la nueva clase Category.cs
y reemplazar el código predeterminado con el siguiente código:
Como se mencionó anteriormente, la clase Categoría representa el tipo de producto que la
aplicación está diseñada para vender (como "Cars", "Barcos", "Rockets", y así sucesivamente), y el
producto clase representa los productos individuales (juguetes) en la base de datos. Cada instancia
de un Producto objeto corresponderá a una fila dentro de una tabla de base de datos relacional, y
cada propiedad de la Clase de producto asignará a una columna en la tabla de base de datos
relacional. Más adelante en este tutorial, revisar los datos de los productos que figuran en la base
de datos.
Datos Anotaciones
Usted puede haber notado que ciertos miembros de las clases tienen atributos que especifican
detalles alrededor del elemento, como [ScaffoldColumn (false)]. Estos son anotaciones de datos.
los atributos de anotación de datos pueden describir cómo validar la entrada del usuario para ese
miembro, para especificar formato para ella, y para especificar la forma en que se modela cuando
se crea la base de datos.
Contexto Clase
Para empezar a utilizar las clases para el acceso a datos, debe definir una clase de contexto. Como
se mencionó anteriormente, la clase de contexto gestiona las clases de entidad (como la clase del
producto y de la Clase Categoría) y proporciona acceso a los datos a la base de datos.
Este procedimiento agrega un nuevo C # clase de contexto a la Modelos carpeta.
1. Haga clic en el Modelos carpeta y luego seleccione Agregar -> Nuevo elemento.
El Agregar nuevo elemento se muestra el cuadro de diálogo.
2. Seleccione la clase del panel central, lo nombra ProductContext.cs y haga clic en Añadir.
3. Reemplace el código predeterminado contenida en la clase con el siguiente código:
Página 35
Este código agrega el espacio de nombres System.Data.Entity para que tenga acceso a todo el
núcleo funcionalidad de Entity Framework, que incluye la capacidad de consultar, insertar,
actualizar y eliminar datos al trabajar con objetos inflexible de tipos.
La clase ProductContext representa Entity Framework contexto de base de datos de productos,
que maneja ir a buscar, almacenar y actualizar instancias de la clase de producto en la base de
datos. Los Clase ProductContext deriva de la clase base DbContext proporcionada por Entity
Framework.
Inicializador Clase
Usted tendrá que ejecutar alguna lógica personalizada para inicializar la base de datos la primera
vez que el contexto es utilizado. Esto permitirá que los datos de semillas que se añadirán a la base
de datos para que pueda mostrar de inmediato productos y categorías.
Este procedimiento agrega una nueva clase C # inicializador al Modelos carpeta.
1. Cree otra clase en el Modelos carpeta y nombrarla ProductDatabaseInitializer.cs.
2. Reemplace el código predeterminado contenida en la clase con el siguiente código:
Página 36
Página 37
Página 38
Página 39
Como se puede ver en el código anterior, cuando se crea y se inicializa la base de datos, la Semilla
propiedad está anulado y configurar. Cuando la propiedad de Semillas se establece, los valores de
las categorías y los productos se utilizan para rellenar la base de datos. Si intenta actualizar los
datos de semillas por modificar el código anterior después de la base de datos se ha creado, no
podrá ver las actualizaciones cuando ejecutar la aplicación Web. La razón es que el código anterior
utiliza una implementación de la Clase DropCreateDatabaseIfModelChanges reconocer si el
modelo (esquema) tiene cambiado antes de restablecer los datos de semillas. Si no se realizan
cambios a la categoría y Clases de entidad de producto, la base de datos no se reinicializan con los
datos de semillas.
Nota
Si querías la base de datos para ser recreado cada vez que se ejecutó la aplicación, puede utilizar la
clase en lugar de la DropCreateDatabaseAlways Clase DropCreateDatabaseIfModelChanges. Sin
embargo, para esta serie de tutoriales, utilice el Clase DropCreateDatabaseIfModelChanges.
En este punto, en este tutorial, usted tendrá una Modelos carpeta con cuatro clases nuevas y una
por defectoclase:
Página 40
Configurar la aplicación para que utilice el modelo de datos
Ahora que usted ha creado las clases que representan los datos, debe configurar la aplicación
utilizar las clases. En el Global.asax archivo, agregue código que inicializa el modelo. en el
Web.config archivo que añadir la información que le dice a la aplicación de base de datos que va a
utilizar para almacenarlos datos que se representa por las nuevas clases de datos. El Global.asax
archivo se puede utilizar para manejareventos de aplicación o métodos. El Web.config archivo le
permite controlar la configuración delsu aplicación web ASP.NET.
Actualización del archivo Global.asax
Página 41
Para inicializar los modelos de datos cuando se inicia la aplicación, se actualizará el Manejador
Application_Start en el Global.asax.cs archivo.
Nota
En el Explorador de soluciones, puede seleccionar el Global.asax archivo o la Global.asax.cs archivo
para editar laGlobal.asax.cs archivo.
1. Agregue el siguiente código resaltado en amarillo con el método Application_Start en el
Global.asax.cs archivo.
Nota
Su navegador debe soportar HTML5 para ver el código resaltado en amarillo cuando se ve
esteserie de tutoriales en un navegador.
Como se muestra en el código anterior, cuando se inicia la aplicación, la aplicación especifica
el inicializador que se ejecutará durante la primera vez que se accede a los datos. Los dos
espacios de nombres adicionales necesaria para acceder al objeto Database y el objeto
ProductDatabaseInitializer.
Modificar el archivo Web.config
Aunque Código Entity Framework Primera generará una base de datos para usted en una
ubicación predeterminada cuando la base de datos se rellena con datos de semillas,
añadiendo su propia información de conexión a su aplicación le da el control de la ubicación
de la base de datos. Se especifica esta base de datos conexión mediante una cadena de
conexión en el de la aplicación Web.config archivo en la raíz de la
Página 42
proyecto. Mediante la adición de una nueva cadena de conexión, puede dirigir la ubicación de la
base de datos (Wingtiptoys.mdf) que se construirá en el directorio de datos de la aplicación
(App_Data), en lugar de su valor por defecto localización. Realizar este cambio le permitirá
encontrar e inspeccionar el archivo de base de datos más adelante en este tutorial.
1. En el Explorador de soluciones, encontrar y abrir el Web.config archivo.
2. Agregue la siguiente cadena de conexión resaltado en amarillo a la <connectionStrings> del
web.config archivo de la siguiente manera:
Cuando se ejecuta la aplicación por primera vez, se va a construir la base de datos en la ubicación
especificada por la cadena de conexión. Pero antes de ejecutar la aplicación, vamos a construir
primero.
La construcción de la Aplicación
Para asegurarse de que todas las clases y los cambios en su trabajo de aplicación Web, usted debe
construir la aplicación.
1. En la depuración de menús, seleccione Construir WingtipToys.
La salida se muestra la ventana, y si todo ha ido bien, verá un logrado mensaje.
Si surge un error, vuelva a comprobar los pasos anteriores. La información de la salida ventana
se indicar qué archivo tiene un problema y en qué parte del archivo es necesario un cambio.
Esta información será que permitirá determinar qué parte de los pasos anteriores necesita ser
revisado y corregido en su proyecto.
Sumario
Página 43
En este tutorial de la serie que ha creado el modelo de datos, así como, agregó el código que hará
ser utilizado para inicializar y sembrar la base de datos. También ha configurado la aplicación para
utilizar el modelos de datos cuando se ejecuta la aplicación.
En el siguiente tutorial, podrás actualizar la interfaz de usuario, agrega la navegación, y recuperar
datos de la base de datos. Esto dará lugar a la base de datos está automáticamente creado en base
a las clases de entidad que creado en este tutorial.
Recursos adicionales
Entity Framework Información general Guía para principiantes al Marco ADO.NET Entity Primer
Código de Desarrollo con Entity Framework (video) Código primeras relaciones Fluido API Código
First Data Anotaciones Las mejoras de productividad para Entity Framework
Página 44
IU y Navegación
Esta serie tutorial te enseñará los fundamentos de la construcción de una aplicación Web Forms
ASP.NET utilizando ASP.NET 4.5 y Microsoft Visual Studio Express 2013 para Web. Un estudio de
2013 del proyecto de Visual con fuente de C # código está disponible para acompañar esta serie de
tutoriales.
En este tutorial, modificar la interfaz de usuario de la aplicación web por defecto para apoyar a las
características de la Wingtip Toys tienda de aplicaciones frente. Además, agregará la navegación
con destino simple y datos. Esta tutorial se basa en el tutorial anterior "Crear la capa de acceso de
datos" y es parte de la punta del ala Serie de tutoriales Juguetes.
Lo que aprenderá:
Cómo cambiar la interfaz de usuario para soportar características de la aplicación frente de la
tienda Wingtip Toys.
Cómo configurar un elemento HTML5 para incluir la página de navegación.
¿Cómo crear un control basado en datos para navegar a datos específicos de productos.
Cómo visualizar datos de una base de datos creada utilizando Entity Framework Primer Código.
ASP.NET Web Forms permiten crear contenido dinámico para la aplicación web. Cada Página Web
ASP.NET se crea de una manera similar a una página Web HTML estática (una página que hace No
incluye el procesamiento basado en servidor), pero la página Web ASP.NET incluye elementos
adicionales que ASP.NET reconoce y procesos para generar HTML cuando la página se ejecuta.
Con una página HTML estática (.htm o .html archivo), el servidor responde a una solicitud Web al
leer el archivoy enviarla tal cual al navegador. Por el contrario, cuando alguien solicita una página
Web ASP.NET (.aspx Archivo), la página se ejecuta como un programa en el servidor Web.
Mientras que la página está en funcionamiento, lo que puederealizar cualquier tarea que su sitio
Web requiere, incluyendo el cálculo de los valores, leer o escribir información de la base de datos,
o llamar a otros programas. Como su salida, la página produce de forma dinámica marcado (como
elementos en HTML) y envía esta salida dinámica para el navegador.
Modificación de la interfaz de usuario
Tendrá que continuar esta serie de tutoriales modificando el Default.aspx página. Va a modificar la
interfaz de usuarioeso ya está establecido por la plantilla predeterminada que se utiliza para crear
la aplicación. El tipo de modificaciones que va a hacer son típicos al crear cualquier aplicación Web
Forms. Que va a hacer esto cambiar el título, en sustitución de algunos contenidos, y la
eliminación de contenido por defecto que no sean necesarios.
1. Abra o cambie a la Default.aspx página.
2. Si aparece la página en Diseño de vista, cambiar a Fuente vista.
3. En la parte superior de la página en la directiva @ Page, cambie el atributo Título de
"Bienvenido", como se muestra resaltado en amarillo a continuación.
Página 45
4. También en la Default.aspx página, reemplace todo el contenido por defecto que figura en
el<asp: Content> etiqueta de modo que el margen de beneficio aparece como a continuación.
5. Guarde el Default.aspx página seleccionando Guardar Default.aspx del Archivo menú.
El resultado Default.aspx página aparecerá de la siguiente manera:
En el ejemplo, se ha establecido el atributo Título de la directiva @ Page. Cuando el HTML es
visualizado en un navegador, el código del servidor <%: Page.Title%> resuelve al contenido
contenida en el atributo Title.
La página de ejemplo incluye los elementos básicos que constituyen una página Web
ASP.NET. La pagina contiene texto estático como se puede tener en una página HTML, junto
con elementos que son específicos de ASP.NET. El contenido incluido en el Default.aspx
página se integrará con el maestrocontenido de la página, que se explicará más adelante en
este tutorial.
Directivapage
ASP.NET Web Forms suelen contener directrices que permiten especificar las propiedades de
página y información de configuración de la página. Las directivas son utilizados por ASP.NET
como instrucciones para cómo procesar la página, pero no se rindió, como parte del margen
de beneficio que se envía a la navegador.
La directiva más utilizada es la directiva @ Page, que le permite especificar muchas opciones
de configuración de la página, incluyendo las siguientes:
El lenguaje de programación de servidor de código en la página, como C #.
Si la página es una página con código de servidor directamente en la página, que se
llama una página de un solo archivo, o si se trata de una página con código en un
archivo de clase independiente, que se llama una La página de código subyacente.
Página 46
Si la página tiene una página principal asociado y por lo tanto debe ser tratada como
una página de contenido.
Depuración y opciones de búsqueda.
Si no se incluye una directiva @ Page en la página, o si la directiva no incluye una configuración
específica, la configuración se hereda del Web.config archivo de configuración o de
laMachine.config archivo de configuración. El Machine.config archivo proporciona una
configuración adicionalajustes a todas las aplicaciones que se ejecutan en una máquina.
Nota
El Machine.config también proporciona detalles sobre todas las opciones de configuración
posibles.
Controles de servidor Web
En la mayoría de las aplicaciones ASP.NET Web Forms, agregará los controles que permiten al
usuario interactuar con la página, tales como botones, cuadros de texto, listas, y así
sucesivamente. Estos controles de servidor Web son similares a los botones HTML y elementos de
entrada. Sin embargo, se procesan en el servidor, lo que le utilizar código de servidor para
establecer sus propiedades. Estos controles también plantean eventos que se pueden manejar en
código del servidor.
Los controles de servidor utilizan una sintaxis especial que ASP.NET reconoce cuando la página se
ejecuta. El nombre de la etiqueta para los controles de servidor ASP.NET se inicia con un asp:
prefijo. Esto permite que ASP.NET para reconocer y procesar estos controles de servidor. El prefijo
puede ser diferente si el control no es parte de .NET Marco. Además de la asp: prefijo, controles
de servidor ASP.NET también incluyen la atributo runat = "server" y un identificador que se puede
utilizar para hacer referencia al control en el código del servidor.
Cuando la página se ejecuta, ASP.NET identifica los controles de servidor y ejecuta el código que
está asociado con esos controles. Muchos controles hacen algo de HTML u otro marcado en la
página cuando se trata visualizado en un navegador.
Código servidor
La mayoría de las aplicaciones ASP.NET Web Forms incluyen código que se ejecuta en el servidor
cuando la página es procesada. Como se mencionó anteriormente, el código de servidor se puede
utilizar para hacer una variedad de cosas, tales como añadiendo datos a un ListView control.
ASP.NET es compatible con muchos idiomas para ejecutarse en el servidor,incluyendo C #, Visual
Basic, J #, y otros.
ASP.NET admite dos modelos para la escritura de código de servidor para una página Web. En el
modelo de un solo archivo, el código de la página está en un elemento de guión donde la etiqueta
de apertura incluye la atributo runat = "server". Alternativamente, se puede crear el código de la
página en un separada archivo de clase, lo que se conoce como el modelo de código subyacente.
En este caso, los formularios Web ASP.NET Página general no contiene código de servidor. En lugar
de ello, la directiva @ Page incluye información que une el .aspx página con su código subyacente
asociado archivo.
Página 47
El atributo CodeBehind contenida en la directiva @ Page especifica el nombre de la separada
archivo de clase, y el atributo Inherits especifica el nombre de la clase en el archivo de código
subyacente que corresponde a la página.
Actualización de la página maestra
En ASP.NET Web Forms, páginas maestras permiten crear un diseño consistente para las páginas
su aplicación. Una sola página maestra define la apariencia y el comportamiento estándar que
desear para todas las páginas (o un grupo de páginas) en su aplicación. A continuación, puede
crear páginas de contenido individuales que contienen el contenido que desea mostrar, como se
explicó anteriormente. Cuando los usuarios solicitan las páginas de contenido, ASP.NET que se
funde con la página maestra para producir salida que combina el diseño de la página principal con
el contenido de la página de contenidos.
El nuevo sitio necesita un solo logotipo para mostrar en cada página. Para añadir este logo, se
puede modificar el HTML en la página maestra.
1. En el Explorador de soluciones, encontrar y abrir la Site.Master página.
2. Si la página está en Diseño de vista, cambiar a Fuente vista.
3. Actualización de la página maestra por modificar o añadir el marcado resaltado en amarillo:
Página 48
Página 49
Este HTML mostrará la imagen con el nombre logo.jpg Del Imágenes carpeta de la aplicación
web,que va a añadir más tarde. Cuando una página que utiliza la página principal se muestra en un
navegador, el Se mostrará el logotipo. Si un usuario hace clic en el logotipo, el usuario navegar de
vuelta a la Default.aspx página. La etiqueta de anclaje HTML <a> envuelve el control de servidor de
imágenes y permite que la imagen sea incluido como parte del enlace. El atributo href de la
etiqueta de anclaje especifica la raíz " ~/ " de El Sitio Web como la ubicación del enlace. Por
defecto, el Default.aspx se visualiza la página cuando el usuarionavega a la raíz del sitio Web. La
imagen <asp: Imagen> control de servidor incluye además propiedades, como BorderStyle, que
hacen como HTML cuando se muestra en un navegador.
Páginas Maestras
Una página maestra es un archivo de ASP.NET con el .master extensión (por ejemplo, Site.Master)
con undiseño predefinido que puede incluir texto estático, los elementos HTML y controles de
servidor. El maestro página se identifica por una directiva @Master especial que sustituye a la
directiva @ Page que se utiliza para los ordinarios .aspx páginas.
Además de la directiva @Master, la página principal también contiene toda la de nivel superior
HTML elementos para una página, como html, cabeza y forma. Por ejemplo, en la página principal
se agregado anteriormente, se utiliza una tabla HTML para el diseño, un elemento img para el
logotipo de la empresa, texto estático, y el servidor de controles para manejar la pertenencia
común para su sitio. Puede utilizar cualquiera HTML y cualquier elemento de ASP.NET, como parte
de su página principal.
Además de texto estático y controles que aparecerá en todas las páginas, la página principal
también incluye uno o más ContentPlaceHolder controles. Estos controles de marcador de
posición definen regiones dondeaparecerá contenido reemplazable. A su vez, el contenido
reemplazable está definido en las páginas de contenido, como Default.aspx, utilizando el
contenido del control de servidor.
Archivos Adición de Imagen
La imagen del logotipo que se hace referencia más arriba, junto con todas las imágenes del
producto, se debe agregar a la aplicación web para que puedan ser vistos cuando el proyecto se
muestra en un navegador.
Descargar de MSDN sitio de Muestras:
Primeros pasos con ASP.NET 4.5 Web Forms y Visual Studio 2013 - Wingtip Toys (C #)
Página 50
La descarga incluye recursos en el WingtipToys-Activos carpeta que se utilizan para crear
laaplicación de ejemplo.
1. Si aún no lo ha hecho, descargue los archivos de muestra comprimido utilizando el anterior
enlace desde el sitio Las muestras de MSDN.
2. Una vez descargado, abra el archivo .zip y copie el contenido a una carpeta local en su máquina.
3. Busque y abra la WingtipToys-Activos carpeta.
4. Al arrastrar y soltar, copiar el Catálogo carpeta desde la carpeta local a la raíz delel proyecto de
aplicación Web en el Explorador de soluciones de Visual Studio.
5. A continuación, cree una nueva carpeta denominada Imágenes haciendo clic derecho en el
WingtipToys proyectoseleccionar Agregar -> Nueva carpeta.
6. Copie el logo.jpg archivo de la-Activos WingtipToys carpeta en el Explorador de archivos para
las Imágenes carpeta del proyecto de aplicación Web en el Explorador de soluciones de Visual
Studio.
7. Haga clic en el Mostrar todos los archivos opción en la parte superior del Explorador de
soluciones para actualizar la lista de archivossi usted no ve los archivos nuevos.
Página 51
Explorador de soluciones ahora muestra los archivos de proyecto actualizadas.
Adición de páginas
Antes de añadir navegación para la aplicación Web, primero agrega dos nuevas páginas que usted
va a navegar a. Más adelante en esta serie de tutoriales, podrás visualizar los productos y los
detalles del producto en estos nuevos páginas.
1. En el Explorador de soluciones, haga clic con WingtipToys, haga clic en Agregar y, a
continuación, haga clic en Nuevo elemento.
El Agregar nuevo elemento se muestra el cuadro de diálogo.
Página 52
2. Seleccione el Visual C # -> Web grupo de plantillas a la izquierda. A continuación, seleccione
Web Form con Página maestra de la lista central y el nombre ProductList.aspx.
3. Seleccione Site.Master para adjuntar la página maestra a la recién creada .aspx página.
3. Agregue una página adicional llamada ProductDetails.aspx siguiendo estos mismos pasos.
Actualización de Manos a la Obra
Página 53
El estudio 2013 plantillas de proyecto de Visual utilizan Manos a la Obra , Un marco de diseño y
tematización creado por Twitter. Bootstrap utiliza CSS3 para proporcionar el diseño de respuesta,
lo que significa que los diseños pueden adaptarse dinámicamente a diferentes tamaños de
ventana del navegador. También puede usar la tematización de Manos a la Obra función para
efectuar fácilmente un cambio en el aspecto de la aplicación y la sensación. Por defecto, la Web
ASP.NET Plantilla de aplicación en Visual Studio 2013 incluye Bootstrap como un paquete NuGet.
En este tutorial, usted va a cambiar apariencia de la aplicación Wingtip Toys reemplazando el
Bootstrap archivos CSS.
1. En el Explorador de soluciones, abra el contenido de la carpeta.
2. Haga clic en el bootstrap.css archivo y cambiarle el nombre a arrancar-original.css.
3. Cambie el nombre del bootstrap.min.css a arrancar-original.min.css.
4. En el Explorador de soluciones, haga clic en el contenido de la carpeta y seleccione Abrir
carpeta en Archivo Explorador.
Aparecerá el Explorador de archivos. Usted ahorrará un descargados archivos CSS de arranque a
esta localización.
5. En el explorador, vaya a http://Bootswatch.com.
6. Desplácese la ventana del navegador hasta que vea el tema Cerulean.
7. Descargue tanto el bootstrap.css archivo y el bootstrap.min.css archivo en el contenido de la
carpeta.Utilice la ruta a la carpeta de contenido que se muestra en el Explorador de archivos
ventana quepreviamente abierto.
Página 54
8. En Visual Studio en la parte superior del Explorador de soluciones, seleccione el Mostrar todos
los archivos opción demostrar los nuevos archivos en la carpeta de contenido.
Verá los dos nuevos archivos CSS en el contenido de carpetas, pero notará que el icono junto a
Página 55
cada nombre de archivo aparece atenuado. Esto significa que el archivo aún no ha sido añadido a
la proyecto.
9. Haga clic en el bootstrap.css y los bootstrap.min.css archivos y seleccione Incluir En Proyecto.
Al ejecutar la aplicación Wingtip Toys más adelante en este tutorial, la nueva interfaz de usuario se
mostrará.
Nota
La plantilla de aplicación Web ASP.NET utiliza el Bundle.config archivo en la raíz del proyecto
paraalmacenar la ruta de los archivos de Bootstrap CSS.
Modificación de la navegación por defecto
La navegación por defecto para todas las páginas de la aplicación se puede modificar cambiando la
desordenada elemento de la lista de navegación que hay en la Site.Master página.
1. En el Explorador de soluciones, busque y abra la Site.Master página.
2. Añadir el enlace de navegación adicional resaltada en amarillo a la lista desordenada muestra a
continuación:
Como se puede ver en el código HTML anterior, modificó cada línea <li> que contiene una etiqueta
de anclaje <a> con un atributo de enlace href. Cada puntos href a una página en la aplicación web.
en el navegador, cuando un usuario hace clic en uno de estos enlaces (como los productos), van a
navegar a lapágina de contenido en el href (como ProductList.aspx). Va a ejecutar la aplicación en
el extremode este tutorial.
Nota
La tilde (~) se utiliza para especificar que el camino href comienza en la raíz del proyecto.
Adición de un control de datos para mostrar los datos de
navegación
A continuación, vamos a añadir un control para mostrar todas las categorías de la base de datos.
Cada categoría actuar como un enlace a la ProductList.aspx página. Cuando un usuario hace clic en
un enlace de la categoría en el navegador,van a navegar a la página de productos y ver sólo los
productos asociados a la seleccionada categoría.
Vamos a usar un ListView control para mostrar todas las categorías que figuran en la base de
datos. Para agregar unListView control a la página principal:
1. En el Site.Master página, agregue el resaltado <div> elemento siguiente después de la etiqueta
<div>elemento que contiene el id = "TitleContent" que agregó anteriormente:
Página 56
Este código mostrará todas las categorías de la base de datos. Los ListView control muestra cada
unonombre de la categoría como texto de enlace e incluye un enlace a la ProductList.aspx página
con una cadena de consultavalor que contiene el ID de la categoría. Al establecer la propiedad
ItemType en el ListView control, la expresión artículo de enlace de datos está disponible en el
nodo y la ItemTemplate el control se vuelve inflexible de tipos. Puede seleccionar detalles del
objeto Item utilizando IntelliSense, tal como especifica el CategoryName. Este código está
contenido dentro del contenedor <% #:%> que marca una expresión de enlace de datos. Mediante
la adición de la (:) para el final de la <% # prefijo, el resultado de la expresión de enlace de datos es
el HTML con codificación. Cuando se codifica en HTML el resultado, su aplicación está mejor
protegido contra la inyección de cross-site guión (XSS) y la inyección HTML ataques.
Consejo
Cuando se agrega el código escribiendo durante el desarrollo, usted puede estar seguro de que un
miembro válido de un objeto se encuentra porque los controles de datos inflexible muestran los
miembros disponibles basados en IntelliSense. IntelliSense ofrece opciones de código al contexto
apropiado a medida que escribe código, como propiedades, métodos y objetos.
En el siguiente paso, se le aplicar el método GetCategories para recuperar datos.
Enlazar el control de datos a la base de datos
Antes de poder mostrar los datos en el control de datos, es necesario vincular el control de datos a
la base de datos. Para hacer el enlace, puede modificar el código detrás del Site.Master.cs archivo.
1. En el Explorador de soluciones, haga clic en el Site.Master página y luego haga clic en Ver
código. los Site.Master.cs archivo se abre en el editor.
2. Cerca del comienzo de la Site.Master.cs archivo, agregue dos espacios de nombres adicionales
para que todos loslos espacios de nombres incluidos aparecen como sigue:
Página 57
4. Agregue el método GetCategories destacó después el controlador de eventos Page_Load
como de la siguiente manera:
Se ejecuta el código de seguridad cuando cualquier página que utiliza la página maestra se carga
en el navegador. El control ListView (llamado "categoryList") que ha agregado anteriormente en
este tutorial utiliza el modelo vinculante para seleccionar datos. En el margen de beneficio del
control ListView se establece el control de Propiedad SelectMethod al método GetCategories, se
muestra arriba. El ListView control de llama al método GetCategories en el momento adecuado en
el ciclo de vida de la página y se une de forma automática los datos devueltos. Usted aprenderá
más sobre el enlace de datos en la siguiente tutorial.
Ejecutar la aplicación y creación de la base de datos
A principios de esta serie de tutoriales que ha creado una clase de inicialización (llamado
"ProductDatabaseInitializer") y especificado esta clase en el global.asax.cs archivo. El Entity
Framework generará la base de datoscuando la aplicación se ejecuta la primera vez porque el
método Application_Start contenía en el global.asax.cs archivo llamará la clase inicializador. La
clase de inicialización utilizará el modelo de clases(Categoría y Producto) que agregó
anteriormente en esta serie de tutoriales para crear la base de datos.
1. En el Explorador de soluciones, haga clic en el Default.aspx página y seleccione Establecer
como página de inicio.
2. En Visual prensa Estudio F5.
Tomará un poco de tiempo para preparar todo en esta primera ejecución.
Página 58
Al ejecutar la aplicación, la aplicación se compilará y la base de datos el nombre wingtiptoys.mdf
se creará en el App_Data carpeta. En el navegador, verá unamenú de navegación categoría. Este
menú se ha generado por la recuperación de las categorías de la base de datos. En el siguiente
tutorial, poner en práctica la navegación.
3. Cierre el navegador para detener la aplicación en ejecución.
Revisar la base de datos
Abra el Web.config archivo y ver la sección de cadena de conexión. Usted puede ver que
elAttachDBFileName valor en los puntos de cadena de conexión a la DataDirectory para la Web
proyecto de aplicación. El valor | DataDirectory | es un valor reservado que representa la
App_Data carpeta en el proyecto. Esta carpeta es donde la base de datos que se creó a partir de
suclases de entidad se encuentra.
Nota
Página 59
Si el App_Data carpeta no es visible o si la carpeta está vacía, seleccione la actualización de icono y
después el Mostrar todos los archivos de iconos en la parte superior del Explorador de soluciones
ventana. La ampliación de la anchura de laExplorador de soluciones ventanas pueden ser
necesarios para mostrar todos los iconos disponibles.
Ahora usted puede inspeccionar los datos contenidos en el wingtiptoys.mdf archivo de base de
datos utilizando el servidor Explorador de ventana.
1. Ampliar el App_Data carpeta. Si el App_Data carpeta no es visible, véase la nota anterior.
2. Si el wingtiptoys.mdf archivo de base de datos no está visible, seleccione la actualización icono y
luego elMostrar todos los archivos de iconos en la parte superior del Explorador de soluciones
ventana.
3. Haga clic en la wingtiptoys.mdf archivo de base de datos y seleccione Abrir.Explorador de
servidores se muestra.
4. Ampliar la Tablas carpeta.
Página 60
5. Haga clic en el los productos tabla y seleccione Mostrar tabla de datos.El productos se muestra
la tabla.
6. Esta vista le permite ver y modificar los datos en el los productos de mesa con la mano.
7. Cierre la los productos ventana de la tabla.
8. En el Explorador de servidores, haga clic en el los productos de mesa de nuevo y seleccione
Abrir tabla Definición.
Página 61
El diseño de datos para la los productos se muestra la tabla.
9. En el T-SQL pestaña podrás ver la sentencia SQL DDL que se utilizó para crear la tabla.También
puede utilizar la interfaz de usuario en el diseño de ficha para modificar el esquema.
10. En el Explorador de servidores, haga clic WingtipToys base de datos y seleccione Cerrar
conexión.Por separación de la base de datos desde Visual Studio, el esquema de base de datos
será capaz de estar modificada más adelante en esta serie de tutoriales.
11. Volver al Explorador de soluciones, seleccione el Explorador de soluciones pestaña en la parte
inferior de laExplorador de servidores ventana.
Sumario
En este tutorial de la serie que ha añadido algunos básicos de interfaz de usuario, gráficos,
páginas, y la navegación. Además, se ejecutó la aplicación web, que creó la base de datos de las
clases de datos que agregó en el tutorial anterior. Usted también vieron el contenido de la
Productos mesa delbase de datos mediante la visualización de la base de datos directamente. En
el siguiente tutorial, podrás visualizar los elementos de datos y detalles de la base de datos.
Recursos adicionales
Página 62
Introducción a la programación ASP.NET Web Pages S
ervidor Web ASP.NET Controles general
CSS Tutorial
Página 63
Elementos de la pantalla de datos y detalles
Esta serie tutorial te enseñará los fundamentos de la construcción de una aplicación Web Forms
ASP.NET utilizando ASP.NET 4.5 y Microsoft Visual Studio Express 2013 para Web. Un estudio de
2013 del proyecto de Visual con fuente de C # código está disponible para acompañar esta serie de
tutoriales.
Este tutorial describe cómo mostrar los elementos de datos y detalles de elementos de datos
usando Web ASP.NET Formas y Entity Framework Primer Código. Este tutorial se basa en el
anterior tutorial interfaz de usuario "y Navegación "y es parte de la serie de tutoriales Wingtip Toy
Store. Cuando hayas completado este tutorial, usted será capaz de ver los productos en el
ProductsList.aspx página y detalles acerca de unproducto individual en la ProductDetails.aspx
página.
Lo que aprenderá:
¿Cómo agregar un control de datos para mostrar los productos de la base de datos. Cómo conectar un control de datos para los datos seleccionados. ¿Cómo agregar un control de datos para mostrar los detalles del producto a partir de la base de datos.
Cómo recuperar un valor de la cadena de consulta y utilizar este valor para limitar los datos que es recuperado de la base de datos.
Estas son las características introducidas en el tutorial:
La unión Modelo proveedores de valor
Adición de un control de datos para mostrar los productos
Al enlazar datos a un control de servidor, hay algunas opciones diferentes que puede utilizar. El
más opciones comunes incluyen la adición de un control de origen de datos, añadiendo código a
mano, o utilizando el modelo Unión.
El uso de un control de origen de datos para enlazar datos
Adición de un control de origen de datos te permite enlazar el control de la fuente de datos para el
control que muestra los datos. Este enfoque le permite conectar de forma declarativa controles
del lado del servidor directamente a fuentes de datos, en lugar de utilizar un enfoque
programático.
Codificación a mano para enlazar datos
Adición de código a mano consiste en leer el valor, la comprobación de un valor nulo, el intento de
convertirlo en el tipo apropiado, comprobar si la conversión se ha realizado correctamente, y por
último, utilizando el valor en la consulta. Se podría utilizar este método cuando se necesita para
mantener el control total sobre la lógica de acceso a datos.
Usando Encuadernación Modelo para enlazar datos
Página 64
Usando vinculante modelo le permite enlazar los resultados utilizando menos código y le da la
capacidad de reutilizar la funcionalidad a través de su aplicación. Objetivos para simplificar el
trabajo de unión Modelo con la lógica de acceso a datos en código enfocado al tiempo que
conserva las ventajas de un rico, de enlace de datos marco.
Viendo productos
En este tutorial, vamos a usar el modelo de unión para enlazar datos. Para configurar un control
de datos para utilizar el modelo vinculante para seleccionar datos, establece la propiedad
SelectMethod del control en el nombre de un método en el código de la página. El control de
datos llama al método en el momento adecuado en la vida de la página ciclo y automáticamente
une los datos devueltos. No hay necesidad de llamar explícitamente al DataBind método.
El uso de estos pasos, podrás modificar el margen de beneficio en el ProductList.aspx página para
que la páginapuede mostrar los productos.
1. En el Explorador de soluciones, abra el ProductList.aspx página.
2. Vuelva a colocar el marcado existente con el siguiente marcado:
Página 65
Este código utiliza un ListView control denominado "Lista del producto" para mostrar los
productos.
Los ListView muestra datos de control en un formato que se definen mediante el uso de plantillas
y estilos. Ello es útil para los datos en cualquier estructura repetitiva. Este ListView ejemplo
simplemente muestra los datos de labase de datos, sin embargo usted puede permitir a los
usuarios editar, insertar y borrar datos y para ordenar y la página de datos, todo ello sin código.
Página 66
Al establecer la propiedad ItemType en el ListView control, la expresión de artículos de enlace de
datos esdisponible y el control se vuelve inflexible de tipos. Como se mencionó en el tutorial
anterior, puede seleccionar los detalles de la Artículo objetar el uso de IntelliSense, como
especifica el producto:
Además, está utilizando el modelo de unión para especificar un valor SelectMethod. Este valor
(GetProducts) se corresponderán con el método que va a agregar al código subyacente para
mostrar productos en el siguiente paso.
Agregar código para mostrar los productos
En este paso, agregará código para rellenar el ListView de control con datos de los productos de la
base de datos. El código apoyará mostrando productos por categoría individual, así como mostrar
todo productos.
1. En el Explorador de soluciones, haga clic con ProductList.aspx y luego haga clic en Ver código.
2. Reemplace el código existente en los ProductList.aspx.cs archivo con el siguiente código:
Página 67
Este código muestra el método GetProducts que se hace referencia en el hotel ItemType del
ListView control en el ProductList.aspx página. Para limitar los resultados a una categoría
específica en elbase de datos, el código establece el valor IdCategoría a partir del valor de cadena
de consulta pasa al ProductList.aspx página cuando el ProductList.aspx página se navega a. los
Clase QueryStringAttribute en el espacio de nombres System.Web.ModelBinding se utiliza para
recuperar el valor de la variable de cadena de consulta Identificación . Esto indica vinculante
modelo para tratar de obligar a un valor de la cadena de consulta para el parámetro IdCategoría
en tiempo de ejecución.
Cuando una categoría válida se pasa como una cadena de consulta de la página, los resultados de
la consulta son limitado a esos productos en la base de datos que coinciden con el valor
IdCategoría. Por ejemplo, si el URL para la ProductsList.aspx página es la siguiente:
La página sólo muestra los productos en los que la categoría es igual a 1.
Si no hay cadena de consulta se incluye cuando se navega a la ProductList.aspx página, todos los
productos serán visualizado.
Las fuentes de valores para estos métodos se conocen como proveedores de valor (tales como
cadena de consulta),y los atributos de parámetro que indican qué proveedor de valor a utilizar se
conocen como valor atributos del proveedor (como "id"). ASP.NET incluye proveedores de valor y
correspondiente atributos para todas las fuentes típicas de entrada del usuario en una aplicación
Web Forms, como el cadena de consulta, las galletas, los valores de formulario, los controles, el
estado de vista, el estado de sesión, y las propiedades de perfil. usted También puede escribir
proveedores de valor personalizados.
Ejecutar la aplicación
Ejecutar la aplicación ahora para ver cómo se puede ver todos los productos o sólo un conjunto de
productos limitado por categoría.
1. En el Explorador de soluciones, haga clic en el Default.aspx página y seleccione Ver en el
explorador.El navegador se abrirá y mostrará el Default.aspx página.
2. Seleccione Coches en el menú de navegación de la categoría de producto.El ProductList.aspx se
muestra la página que muestra sólo los productos incluidos en los "Cars"
Página 68
categoría. Más adelante en este tutorial, se le mostrará los detalles del producto.
3. Seleccione los productos desde el menú de navegación en la parte superior.De nuevo, el
ProductList.aspx se muestra la página, sin embargo esta vez se muestra toda la lista de
Página 69
productos.
4. Cierre el navegador y volver a Visual Studio.
Página 70
Adición de un control de datos para mostrar los detalles del
producto
A continuación, podrás modificar el margen de beneficio en el ProductDetails.aspx página que
agregó en el anteriortutorial para que la página puede mostrar información sobre un producto
individual.
1. En el Explorador de soluciones, abra el ProductDetails.aspx página.
2. Vuelva a colocar el marcado existente con el siguiente marcado:
Este código utiliza un FormView de control para visualizar detalles sobre un producto individual.
Este margen de beneficioutiliza métodos como los que se utilizan para mostrar los datos en la
ProductList.aspx página. los FormView control se utiliza para mostrar un único registro a la vez de
una fuente de datos. Cuando se utiliza el FormView control, crear plantillas para mostrar y los
valores enlazados a datos de edición. los plantillas contienen controles, expresiones de unión, y el
formato que definen el aspecto y la funcionalidad de la forma.
Para conectar el margen de beneficio por encima de la base de datos, debe agregar código
adicional para la ProductDetails.aspx código.
Página 71
1. En el Explorador de soluciones, haga clic con ProductDetails.aspx y luego haga clic en Ver
código.El ProductDetails.aspx.cs se mostrará archivo.
2. Reemplace el código existente con el siguiente código:
Este código comprueba si hay una "productID" valor de la consulta cuerdas. Si no se encuentra un
valor de cadena de consulta válida, se muestra el producto encontrado. Si no hay cadena de
consulta se encuentra, o el valor de cadena de consulta no es válido, ningún producto se muestra
en la ProductDetails.aspx página.
Ejecutar la aplicación
Ahora se puede ejecutar la aplicación para ver un producto individual desplegados basándose en
la identificación de la producto.
1. Presione F5 mientras que en Visual Studio para ejecutar la aplicación.El navegador se abrirá y
mostrará el Default.aspx página.
2. Seleccione "Barcos" en el menú de navegación de la categoría. El ProductList.aspx se muestra la
página.
Página 72
3. Seleccione el "Barco de papel" producto de la lista de productos. El ProductDetails.aspx se
muestra la página.
4. Cierre el explorador.
Sumario
En este tutorial de la serie que tiene agregar marcado y el código para mostrar una lista de
productos y los detalles del producto pantalla. Durante este proceso que ha aprendido datos
sobre inflexible de tipos controles, vinculante modelo y proveedores de valor. En el siguiente
tutorial, vamos a añadir un carrito de compras para la aplicación de ejemplo Wingtip Toys.
Recursos adicionales
Recuperar y mostrar los datos con el modelo de unión y formularios web
Página 73
Carrito de compras
Esta serie tutorial te enseñará los fundamentos de la construcción de una aplicación Web Forms
ASP.NET utilizando ASP.NET 4.5 y Microsoft Visual Studio Express 2013 para Web. Un estudio de
2013 del proyecto de Visual con fuente de C # código está disponible para acompañar esta serie de
tutoriales.
Este tutorial describe la lógica de negocio necesaria para añadir un carrito de compras para los
juguetes Wingtip Web de ejemplo ASP.NET Forms. Este tutorial se basa en el tutorial anterior
"Display Elementos de datos y detalles "y es parte de la serie de tutoriales Wingtip Toy Store.
Cuando tienes completado este tutorial, los usuarios de su aplicación de ejemplo serán capaces de
añadir, eliminar y modificar los productos en su carrito de compras.
Lo que aprenderá:
¿Cómo crear un carrito de la compra para la aplicación web.
¿Cómo permitir a los usuarios agregar elementos a la cesta de la compra.
¿Cómo añadir un GridView control para mostrar cesta de la compra detalles.
¿Cómo calcular y mostrar el total del pedido.
Cómo quitar y artículos de actualización en el carrito de compras.
Cómo incluir un contador de carrito de compras.
Código dispone en este tutorial:
Entity Framework Primer Código
Datos Anotaciones
controles de datos fuertemente tipado
vinculante Modelo
Creación de una cesta de la compra
A principios de esta serie de tutoriales, que ha añadido páginas y el código para ver los datos de
productos a partir de una base de datos. En este tutorial, vamos a crear un carrito de compras
para gestionar los productos que los usuarios están interesados en comprar. Los usuarios serán
capaces de buscar y agregar elementos a la cesta de la compra, incluso si no son registrado o
conectado. Para gestionar la cesta de acceso, se le asignará a los usuarios un identificador único
usando un identificador único global (GUID) cuando el usuario accede a la cesta de la compra por
primera hora. Usted guarda el ID utilizando el estado de sesión de ASP.NET.
Nota
El estado de sesión de ASP.NET es un lugar conveniente para almacenar información específica del
usuario que va a caducará cuando el usuario sale del sitio. Mientras que el uso indebido de estado
de sesión puede tener un rendimiento implicaciones en los sitios más grandes, el uso de la luz de
estado de sesión funciona bien para fines de demostración. El proyecto de ejemplo Wingtip Toys
muestra cómo utilizar el estado de sesión sin un proveedor externo, donde se almacena el estado
de sesión en proceso en el servidor web que aloja el sitio. Para los sitios más grandes que
Página 74
proporcionar múltiples instancias de una aplicación o de los sitios que se ejecutan varias instancias
de un aplicación en diferentes servidores, considere el uso de Windows Azure Servicio de caché.
Esta cachéServicio ofrece un servicio de almacenamiento en caché distribuida que es externo a la
página web y resuelve el problema de utilizar el estado de sesión en proceso. Para obtener más
información, consulte Cómo utilizar ASP.NET Estado de la sesión con el Windows Azure Sitios Web.
Añadir CartItem como modelo Clase
A principios de esta serie de tutoriales, que ha definido el esquema para los datos de categoría y
de productos por la creación de la categoría de producto y las clases en el Modelos carpeta. Ahora,
agregue una nueva clase dedefinir el esquema para el carrito de compras. Más adelante en este
tutorial, agregará una clase para manejar datos acceso a la tabla CartItem. Esta clase
proporcionará la lógica de negocio para agregar, quitar, y artículos de actualización en el carrito de
compras.
Haga clic con el Modelos carpeta y seleccione Agregar -> Nuevo elemento.
Página 75
El Agregar nuevo elemento se muestra el cuadro de diálogo. Seleccione Código y, a continuación,
seleccione la clase.
Nombre esta nueva clase CartItem.cs.
Haga clic en Agregar.
El nuevo archivo de clase se muestra en el editor. Reemplace el código predeterminado con el
siguiente código:
La clase CartItem contiene el esquema que definirá cada producto un usuario agrega a la carrito
de compras. Esta clase es similar a las otras clases de esquema que creó anteriormente en este
tutorial serie. Por convención, Entity Framework Primer Código espera que la clave principal para
la Mesa CartItem será o CartItemId o ID. Sin embargo, el código anula por defecto
Página 76
comportamiento mediante la anotación de datos de atributos [Clave]. El atributo clave de la
propiedad ItemId especifica que la propiedad ItemID es la clave principal.
La propiedad CartId especifica el ID de usuario que está asociado con el elemento de la compra.
Vamos a añadir código para crear este ID de usuario cuando el usuario accede a la cesta de la
compra. Este ID será también se almacena como una variable de sesión de ASP.NET.
Actualizar el Contexto del producto
Además de agregar la clase CartItem, tendrá que actualizar la clase de contexto de base de datos
que gestiona las clases de entidad y que proporciona acceso a los datos a la base de datos. Para
ello, agregará la clase del modelo CartItem recién creado para la clase ProductContext.
1. En el Explorador de soluciones, encontrar y abrir la ProductContext.cs archivo en el Modelos
carpeta.
2. Agregue el código resaltado a la ProductContext.cs archivo de la siguiente manera:
Como se mencionó anteriormente en esta serie de tutoriales, el código en el ProductContext.cs
archivo añade elEspacio de nombres System.Data.Entity de modo que usted tiene acceso a toda la
funcionalidad principal de la Entity Framework. Esta funcionalidad incluye la capacidad de
consultar, insertar, actualizar y eliminar datos al trabajar con objetos inflexible de tipos. La clase
ProductContext añade el acceso a la recién agregado clase del modelo CartItem.
La gestión de la cesta de la compra de lógica de negocios
A continuación, vamos a crear la clase ShoppingCart en una nueva lógica carpeta. La clase
ShoppingCartmaneja el acceso a datos de la tabla CartItem. La clase también incluirá la lógica de
negocio para agregar, eliminar y actualizar los elementos de la cesta de la compra.
El carrito de compras lógica que va a agregar contendrá la funcionalidad para gestionar la
siguiente acciones:
1. La adición de artículos a la cesta de la compra
2. Eliminación de artículos de la cesta de compras
3. Obtener la cesta de la compra Identificación
Página 77
4. Recuperación de artículos de la cesta de la compra
5. Sumando la cantidad de todos los artículos cesta de la compra
6. Actualización de los datos de carrito de la compra
Una página del carrito de la compra (ShoppingCart.aspx) y la clase carrito de compras se utilizarán
conjuntamente paraacceso cesta de la compra de datos. La página del carrito de compras
mostrará todos los elementos que el usuario se suma a la carrito de compras. Además de la página
de carrito de la compra y de clase, vamos a crear una página (AddToCart.aspx)para agregar
productos a la cesta de la compra. También añadir código al ProductList.aspx página yel
ProductDetails.aspx página que proporcionará un enlace a la AddToCart.aspx página, por lo que el
usuariopueden añadir productos a la cesta de la compra.
El siguiente diagrama muestra el proceso básico que se produce cuando el usuario añade un
producto a la carrito de compras.
Cuando el usuario hace clic en el Añadir al Carro enlace ya sea en el ProductList.aspx página o
elProductDetails.aspx página, la aplicación se navegue a la AddToCart.aspx página y
despuésautomáticamente a la ShoppingCart.aspx página. El AddToCart.aspx página añadirá el
selectoproducto al carrito de la compra llamando a un método en la clase ShoppingCart. los
ShoppingCart.aspx página mostrará los productos que se han añadido a la cesta de la compra.
Creación de la cesta de la compra Clase
La clase ShoppingCart se añadirá a una carpeta independiente en la aplicación de modo que no lo
hará ser una clara distinción entre la carpeta (Modelos) modelo, la (carpeta raíz) páginas y la lógica
(Carpeta Logic).
1. En el Explorador de soluciones, haga clic en el WingtipToys proyecto y seleccione Agregar ->
Nuevo Carpeta. Nombre de la nueva carpeta de Lógica.
2. Haga clic en la lógica de la carpeta y luego seleccione Agregar -> Nuevo elemento.
3. Agregue un nuevo archivo de clase nombrados ShoppingCartActions.cs.
4. Reemplace el código predeterminado con el siguiente código:
Página 78
Página 79
El método permite AddToCart productos individuales a ser incluidos en la cesta de la compra
basada sobre la identificación del producto. El producto se añade al carro, o si el carro ya contiene
un artículo para ese producto, la cantidad se incrementa.
El método GetCartId devuelve el ID de la compra para el usuario. El carro ID se utiliza para realizar
un seguimiento de los artículos que un usuario tiene en su carrito de compras. Si el usuario no
tiene un carro ID existente, un carro nuevo ID se crea para ellos. Si el usuario está firmado como
usuario registrado, el carro ID está ajustado a sus usuarios nombre. Sin embargo, si el usuario no
está firmado en el carrito ID se establece en un valor único (GUID). Un GUID asegura que sólo se
crea una cesta para cada usuario, basado en sesiones.
El método GetCartItems devuelve una lista de cesta de la compra artículos para el usuario. Más
adelante en este tutorial, verá la unión que el modelo se utiliza para mostrar los elementos de la
compra en el carrito de la compra utilizando el método de GetCartItems.
Creación de la funcionalidad Add-To-Cesta
Como se mencionó anteriormente, se creará una página de procesamiento llamado
AddToCart.aspx que se utilizarápara agregar nuevos productos a la cesta de la compra del usuario.
Esta página llamará al AddToCart método en la clase ShoppingCart que acaba de crear. El
AddToCart.aspx página esperaráque un identificador de producto se pasa a la misma. Este ID de
producto será utilizado cuando se llama al AddToCart método en la clase ShoppingCart.
Nota
Se le modificando el código subyacente (AddToCart.aspx.cs) de esta página, no la página de la
interfaz de usuario (AddToCart.aspx).
Para crear la funcionalidad Add-To-compra:
Página 80
1. En el Explorador de soluciones, haga clic en el WingtipToys proyecto, haga clic en Añadir ->
Nuevo elemento.El Agregar nuevo elemento se muestra el cuadro de diálogo.
2. Añadir una página nueva norma (Formulario Web) para la aplicación llamada AddToCart.aspx.
3. En el Explorador de soluciones, haga clic en el AddToCart.aspx página y luego haga clic en Ver
código. los AddToCart.aspx.cs archivo de código subyacente se abre en el editor.
4. Reemplace el código existente en los AddToCart.aspx.cs código subyacente con lo siguiente:
Página 81
Cuando el AddToCart.aspx se carga la página, el identificador de producto se recupera de la
cadena de consulta.A continuación, se crea una instancia de la clase carrito de la compra y se
utiliza para llamar al método AddToCart que agregó anteriormente en este tutorial. El método
AddToCart, contenida en el ShoppingCartActions.cs archivo, incluye la lógica para añadir el
producto seleccionado a la cesta de la comprao incrementar la cantidad de producto del producto
seleccionado. Si el producto no se ha añadido a la cesta de la compra, el producto se agrega a la
tabla CartItem de la base de datos. Si el producto ya se ha añadido a la cesta de la compra y el
usuario añade un elemento adicional de la misma producto, la cantidad de producto se
incrementa en la tabla CartItem. Por último, la página redirecciona de nuevo a la
ShoppingCart.aspx página que va a añadir en el paso siguiente, en el que el usuario ve unlista
actualizada de los artículos en el carro.
Como se mencionó anteriormente, un ID de usuario se utiliza para identificar los productos que se
asocian con una usuario específico. Este ID se agrega a una fila de la tabla CartItem cada vez que el
usuario agrega una producto al carrito de compras.
Creación de la interfaz de usuario de Compras
El ShoppingCart.aspx página mostrará los productos que el usuario ha agregado a su carritola
compra. También ofrecerá la posibilidad de añadir, quitar y actualizar los elementos en el carrito
de compras.
1. En el Explorador de soluciones, haga clic con WingtipToys, haga clic en Añadir -> Nuevo
elemento.El Agregar nuevo elemento se muestra el cuadro de diálogo.
2. Añadir una nueva página (formulario web) que incluye una página principal seleccionando
formulario Web utilizando Página Maestra. Nombre de la página nueva ShoppingCart.aspx.
3. Seleccione Site.Master para adjuntar la página maestra a la recién creada .aspx página.
4. En el ShoppingCart.aspx página, vuelva a colocar el marcado existente con el siguiente marcado:
Página 82
El ShoppingCart.aspx página incluye un GridView control denominado CartList. Esta usos de
controlmodelo de unión para enlazar los datos cesta de la compra de la base de datos al GridView
control. Cuando se establece la propiedad ItemType del GridView control, la expresión de artículos
de enlace de datos esdisponibles en el marcado del control y el control se vuelve inflexible de
tipos. Como se mencionó anteriormente en esta serie de tutoriales, puede seleccionar los detalles
del objeto Item mediante IntelliSense. A configurar un control de datos para utilizar el modelo
vinculante para seleccionar datos, se establece la SelectMethod propiedad del control. En el
marcado anteriormente, se establece la SelectMethod utilizar el Método GetShoppingCartItems
que devuelve una lista de objetos CartItem. El GridView datoscontrol de llama al método en el
momento adecuado en el ciclo de vida de la página y automáticamente se une los datos devueltos.
Todavía hay que añadir el método GetShoppingCartItems.
Recuperando las Compras Artículos
A continuación, se agrega código a los ShoppingCart.aspx.cs código subyacente para recuperar y
poblar elCompras de interfaz de usuario.
1. En el Explorador de soluciones, haga clic en el ShoppingCart.aspx página y luego haga clic
en Ver código.El ShoppingCart.aspx.cs archivo de código subyacente se abre en el editor.
Reemplace el código existente con el siguiente:
Página 83
Como se mencionó anteriormente, el control de datos GridView llama al método
GetShoppingCartItems en el momento adecuado en el ciclo de vida de la página y
automáticamente une los datos devueltos. los Método GetShoppingCartItems crea una instancia
del objeto ShoppingCartActions. A continuación, el código utiliza esa instancia para devolver los
artículos en el carro llamando a los GetCartItems método.
Adición de productos a la cesta de compra
Cuando sea el ProductList.aspx o ProductDetails.aspx se muestra la página, el usuario serácapaz de
añadir el producto al carrito de la compra mediante un enlace. Al hacer clic en el enlace, el
aplicación navega a la página de procesamiento llamado AddToCart.aspx. El AddToCart.aspx
páginallamará al método AddToCart en la clase ShoppingCart que agregó anteriormente en este
tutorial.
Ahora, vamos a añadir una Añadir a la cesta de enlace tanto a la ProductList.aspx página y
elProductDetails.aspx página. Este enlace se incluirá el ID de producto que se recupera de la base
de datos.
1. En el Explorador de soluciones, encontrar y abrir la página denominada ProductList.aspx.
2. Agregue el marcado resaltado en amarillo a la ProductList.aspx página para que todo elpágina
aparece de la siguiente manera:
Página 84
Página 85
Prueba de la cesta de la compra Ejecutar la aplicación para ver cómo agregar productos a la cesta
de la compra.
1. Presione F5 para ejecutar la aplicación.Después de que el proyecto recrea la base de datos, el
navegador se abrirá y mostrará el Default.aspx página.
2. Seleccione Coches en el menú de la categoría de navegación.El ProductList.aspx se muestra la
página que muestra sólo los productos incluidos en los "Cars"
Página 86
categoría.
Página 87
3. Haga clic en el Añadir a la Cesta enlace al lado del primer producto de la lista (el coche
convertible).El ShoppingCart.aspx se muestra la página, mostrando la selección en su carrito de
compras.
4. Ver productos adicionales mediante la selección de aviones en el menú Navegación de la
categoría.
5. Haga clic en el Añadir a la Cesta enlace al lado del primer producto de la lista.El
ShoppingCart.aspx página se muestra con el artículo adicional.
6. Cierre el explorador.
Cálculo y visualización de la Orden total
Además de agregar productos a la cesta de la compra, agregará un método getTotal a la Clase
ShoppingCart y mostrar la cantidad total del pedido en la página de carrito de compras.
1. En el Explorador de soluciones, abra el ShoppingCartActions.cs archivo en la lógica de la carpeta.
2. Agregue el siguiente método getTotal resaltado en amarillo a la clase ShoppingCart, para que la
clase aparece como sigue:
Página 88
Página 89
En primer lugar, el método getTotal obtiene el ID de la cesta de la compra para el usuario. A
continuación, el método obtiene el carro totales multiplicando el precio del producto por la
cantidad de producto para cada producto enumerado en el carro.
Nota
El código anterior utiliza el tipo anulable "int?". Tipos anulables pueden representar todos los
valores de una tipo subyacente, y también como un valor nulo. Para obtener más información,
consulte Uso de tipos anulables.
Modificar el carrito de compras Pantalla
A continuación vamos a modificar el código para el ShoppingCart.aspx página a llamar al método
getTotal ymostrar ese total en el ShoppingCart.aspx página cuando se carga la página.
1. En el Explorador de soluciones, haga clic en el ShoppingCart.aspx página y seleccione Ver
código.
2. En el ShoppingCart.aspx.cs archivos, actualizar el manejador Page_Load añadiendo lo
siguientecódigo resaltado en amarillo:
Página 90
Cuando los ShoppingCart.aspx página se carga, se carga el objeto carrito de la compra y luego
recupera lacarrito de la compra total de llamando al método getTotal de la clase ShoppingCart. Si
el cesta de la compra está vacía, se mostrará un mensaje en este sentido.
Prueba de la cesta de la compra total
Ejecutar la aplicación ahora para ver cómo no sólo puede agregar un producto a la cesta de la
compra, pero se puede ver el carrito de la compra total de.
1. Presione F5 para ejecutar la aplicación.El navegador se abrirá y mostrará el Default.aspx página.
2. Seleccione Coches en el menú de la categoría de navegación.
Página 91
3. Haga clic en el Añadir al carro enlace al lado del primer producto.El ShoppingCart.aspx página se
muestra con el total del pedido.
4. Agregue algunos otros productos (por ejemplo, un avión) a la compra.
Página 92
5. El ShoppingCart.aspx página se muestra con un total de actualización para todos los
productosque ha añadido.
6. Detener la aplicación se ejecuta al cerrar la ventana del navegador.
Adición Actualizar y Pedido Botones a la cesta de compra
Para permitir a los usuarios modificar la cesta de la compra, se le agrega una actualización de
botón y un Pedido botón a la página del carrito de compras. El Pedido botón no se utiliza hasta
más adelante en este tutorial serie.
En el Explorador de soluciones, abra el ShoppingCart.aspx página en la raíz de la webproyecto de
aplicación.
Para agregar la actualización de botón y el Pedido botón a la ShoppingCart.aspx página, añadirel
marcado resaltado en amarillo a la marca existente, como se muestra en el siguiente código:
Página 93
Cuando el usuario hace clic en la actualización de botón, el controlador de eventos
UpdateBtn_Click se llamará.Este controlador de eventos llama al código que va a añadir en el paso
siguiente.
A continuación, puede actualizar el código contenido en las ShoppingCart.aspx.cs presentar para
recorrer lacesta productos y llaman a los métodos RemoveItem y UpdateItem.
1. En el Explorador de soluciones, abra el ShoppingCart.aspx.cs archivo en la raíz de la
webproyecto de aplicación.
2. Agregue el siguiente código de secciones resaltadas en amarillo a la ShoppingCart.aspx.cs
archivo:
Página 94
Página 95
Cuando el usuario hace clic en la actualización de botón en la ShoppingCart.aspx página, los
UpdateCartItemsse llama al método. El método UpdateCartItems obtiene los valores actualizados
para cada elemento de la carrito de compras. Entonces, el método llama a la
UpdateShoppingCartDatabase UpdateCartItems método (agregado y se explica en el paso
siguiente) para agregar o quitar elementos de la carrito de compras. Una vez que la base de datos
ha sido actualizada para reflejar los cambios a la cesta de la compra, el GridView control se
actualiza en la página de cesta de la compra llamando al método DataBindpara el GridView.
Además, el importe total del pedido en la página de carro de compras se ha actualizado para
reflejarla lista actualizada de artículos.
Actualización y supresión de Compras Artículos
Por ShoppingCart.aspx página, usted puede ver los controles se han añadido para la actualización
delcantidad de un artículo y la eliminación de un elemento. Ahora, agregue el código que hará que
estos controles trabajo.
1. En el Explorador de soluciones, abra el ShoppingCartActions.cs archivo en la lógica de la
carpeta. Agregue el siguiente código resaltado en amarillo a la ShoppingCartActions.cs
archivo de clase:
Página 96
Página 97
Página 98
El método UpdateShoppingCartDatabase, llamado desde el método UpdateCartItems en el
ShoppingCart.aspx.cs página, contiene la lógica para actualizar o eliminar elementos de lacarrito
de compras. El método itera UpdateShoppingCartDatabase a través de todas las filas dentro de la
lista carrito de compras. Si un elemento de carrito de la compra ha sido marcado para ser
eliminado, o el la cantidad es menor que uno, el método RemoveItem se llama. De lo contrario, el
elemento del carro de compras se comprueba si hay actualizaciones cuando se llama al método
UpdateItem. Después de la partida del carro de compras ha sido eliminado o actualizado, se
guardan los cambios de base de datos.
La estructura ShoppingCartUpdates se utiliza para contener todos los elementos de cesta de la
compra. los Método UpdateShoppingCartDatabase utiliza la estructura ShoppingCartUpdates a
determinar si alguno de los artículos necesitan ser actualizados o eliminados.
En el siguiente tutorial, utilizará el método EmptyCart despejar el carrito de la compra después
productos de compra. Pero por ahora, que va a utilizar el método GetCount que acaba de agregar
a los ShoppingCartActions.cs archivo para determinar cuántos elementos están en el carrito de
compras.
Adición de un contador de Compras
Para permitir al usuario ver el número total de elementos en el carro de compras, usted agregará
un contador a la Site.Master página. Este contador también actuará como un vínculo a la cesta de
la compra.
Página 100
1. En el Explorador de soluciones, abra el Site.Master página.
Modificar el marcado mediante la adición de la cesta de la compra enlace contador como se
muestra en amarillo a la sección de navegación por lo que aparece como sigue:
A continuación, actualizar el código subyacente del Site.Master.cs archivo añadiendo el código
resaltado enamarilla de la siguiente manera:
Página 101
Página 102
Antes de que la página se representa como HTML, el evento Page_PreRender se eleva. en el
Manejador Page_PreRender, el recuento total de la cesta de la compra se determina mediante
una llamada al Método GetCount. El valor devuelto se añade a la gama de cartCount incluido en el
markup del Site.Master página. El <span> etiquetas permite a los elementos internos que ser
adecuadamenterendido. Cuando se visualiza cualquier página del sitio, se mostrará el carrito de
compras totales. los usuario también puede hacer clic en el carrito de la compra total de para
mostrar la cesta de la compra.
Prueba de la Cesta de la compra Completado
Puede ejecutar la aplicación ahora para ver cómo se pueden agregar, eliminar y actualizar los
elementos de la carrito de compras. La cesta de la compra total será reflejar el costo total de todos
los elementos en el carrito de compras.
1. Presione F5 para ejecutar la aplicación.El navegador se abre y muestra el Default.aspx página.
2. Seleccione Coches en el menú de la categoría de navegación.
3. Haga clic en el Añadir al carro enlace al lado del primer producto.El ShoppingCart.aspx página se
muestra con el total del pedido.
4. Seleccione Aviones en el menú de la categoría de navegación.
5. Haga clic en el Añadir al carro enlace al lado del primer producto.
6. Establezca la cantidad del primer elemento de la cesta de la compra a 3 y seleccione el Quitar
artículo cuadro del segundo elemento comprobar.
Página 103
6. Haga clic en la actualización de botón para actualizar la página del carrito de la compra y
mostrar el nuevo orden totales.
Sumario
En este tutorial, se ha creado un carrito de la compra para la muestra Wingtip Toys Web Forms
solicitud. Durante este tutorial que ha usado Entity Framework Código primer lugar, anotaciones
de datos, inflexible de tipos controles de datos, y el modelo de unión.
La cesta de la compra admite la adición, eliminación y actualización de elementos que el usuario
ha seleccionado para la compra. Además de implementar la funcionalidad de carro de compras,
usted ha aprendido a pantalla cesta de la compra productos en un GridView de control y calcular
el total del pedido.
Información Adición
Sesión de Estado de ASP.NET
Página 104
Pedido y pago con PayPal
Esta serie tutorial te enseñará los fundamentos de la construcción de una aplicación Web Forms
ASP.NET utilizando ASP.NET 4.5 y Microsoft Visual Studio Express 2013 para Web. Un estudio de
2013 del proyecto de Visual con fuente de C # código está disponible para acompañar esta serie de
tutoriales.
Este tutorial describe cómo modificar la aplicación de ejemplo Wingtip Toys incluir usuario
autorización, registro y pago a través de PayPal. Sólo los usuarios que han iniciado sesión tendrán
la autorización para la compra de productos. Built-in de usuario El ASP.NET 4.5 Web Forms de
plantilla de proyecto funcionalidad de registro ya incluye gran parte de lo que necesita. Va a
agregar a esta PayPal Express Checkout funcionalidad. En este tutorial se utilizará la prueba
desarrollador PayPal medio ambiente, por lo que no hay fondos reales será transferido. Al final del
tutorial, probar la aplicación seleccionando productos para añadir al carro de compras, haga clic
en el botón de pago, y la transferencia de datos al sitio web de pruebas de PayPal. En el sitio web
de pruebas de PayPal, se le confirme su información de envío y de pago y luego volver a la muestra
local Wingtip Toys aplicación para confirmar y completar la compra.
Hay varios procesadores de pagos de terceros experimentados que se especializan en las compras
en línea que escalabilidad dirección y la seguridad. Desarrolladores de ASP.NET deben considerar
las ventajas de la utilización de una tercera solución de pago fiesta antes de la implementación de
un centro comercial y comprar solución.
Nota
La aplicación de ejemplo Wingtip Toys fue diseñado para conceptos ASP.NET específica mostradas
y características disponibles para los desarrolladores web ASP.NET. Esta aplicación muestra no fue
optimizado para todos posibles circunstancias en cuanto a escalabilidad y seguridad.
Lo que aprenderá:
Cómo restringir el acceso a determinadas páginas en una carpeta.
¿Cómo crear un carrito de compras conocido de un anónimo carrito de compras.
Cómo utilizar PayPal para comprar productos utilizando el entorno de pruebas de PayPal.
Cómo visualizar los detalles de PayPal en un DetailsView control.
¿Cómo actualizar la base de datos de la aplicación Wingtip Toys con datos obtenidos de PayPal.
Adición de Seguimiento de los pedidos
En este tutorial, vamos a crear dos nuevas clases de seguimiento de los datos de la orden de un
usuario ha creado. los clases hará un seguimiento de los datos relativos a la información de envío,
total de la compra y el pago confirmación.
Añadir la Orden y OrderDetail Clases Modelo
Página 105
A principios de esta serie de tutoriales, que definió el esquema de categorías, productos y carrito
de la compra artículos mediante la creación de la categoría, productos y clases CartItem en el
Modelos carpeta. Ahora añadirá dos nuevas clases para definir el esquema para el pedido de
productos y los detalles de la orden.
1. En el Modelos carpeta, añadir una nueva clase llamada Order.cs. El nuevo archivo de clase se muestra en el editor. 2. Reemplace el código predeterminado con lo siguiente:
Página 106
3. Agregue un OrderDetail.cs clase al Modelos carpeta.
4. Reemplace el código predeterminado con el siguiente código:
Las clases Orden y OrderDetail contienen el esquema para definir la información de la orden
utilizada para la compra y el envío.
Además, tendrá que actualizar la clase de contexto de base de datos que gestiona las clases de
entidad y que proporciona acceso a los datos a la base de datos. Para ello, se le agrega la Orden de
nueva creación y clases del modelo OrderDetail a ProductContext clase.
1. En el Explorador de soluciones, encontrar y abrir la ProductContext.cs archivo.
2. Agregue el código resaltado a la ProductContext.cs archivo como se muestra a continuación:
Página 107
Como se mencionó anteriormente en esta serie de tutoriales, el código en el ProductContext.cs
archivo añade elEspacio de nombres System.Data.Entity de modo que usted tiene acceso a toda la
funcionalidad principal de la Entity Framework. Esta funcionalidad incluye la capacidad de
consultar, insertar, actualizar y eliminar datos al trabajar con objetos inflexible de tipos. El código
anterior en la clase ProductContext agrega el acceso Entity Framework a las clases Orden y
OrderDetail recién añadidos.
Adición Pedido acceso
La aplicación de ejemplo Wingtip Toys permite a los usuarios anónimos para revisar y añadir
productos a un carrito de compras. Sin embargo, cuando los usuarios anónimos optan por
comprar los productos que agregan a la cesta de la compra, se debe iniciar sesión en el sitio. Una
vez que han iniciado la sesión, pueden acceder a la páginas restringidas de la aplicación web que
manejan el proceso de compra y venta. Estas páginas restringidas están contenidos en el Pedido
de carpetas de la aplicación.
Añadir una carpeta Checkout y Páginas
Ahora creará el Pedido de carpetas y las páginas en los mismos que el cliente va a ver durante
elproceso de pago. Va a actualizar estas páginas más adelante en este tutorial.
Página 108
1. Haga clic en el nombre del proyecto (Wingtip Toys) en el Explorador de soluciones y
seleccione Agregar un nuevo Carpeta.
2. Nombre de la nueva carpeta Pedido.
Página 109
3. Haga clic en el Pedido de carpetas y seleccione Agregar -> Nuevo elemento.
4. La Agregar nuevo elemento se muestra el cuadro de diálogo.
Página 110
5. Seleccione el Visual C # -> Web grupo de plantillas a la izquierda. Luego, desde el panel
central,seleccione Formulario Web mediante páginas maestras y el nombre CheckoutStart.aspx.
6. Al igual que antes, seleccione el Site.Master archivo como la página principal.
7. Agregue las páginas adicionales siguientes al Pedido carpeta usando los mismos pasos
anteriores:
CheckoutReview.aspx
CheckoutComplete.aspx
CheckoutCancel.aspx
CheckoutError.aspx
Añadir un archivo Web.config
Mediante la adición de un nuevo Web.config archivo al Pedido carpeta, usted será capaz de
restringir el acceso a todos loslas páginas contenidas en la carpeta.
1. Haga clic en el Pedido carpeta y seleccione Agregar -> Nuevo elemento.El Agregar nuevo
elemento se muestra el cuadro de diálogo.
2. Seleccione el Visual C # -> Web grupo de plantillas a la izquierda. Luego, desde el panel
central,seleccione Archivo de configuración Web, acepte el nombre predeterminado de
Web.config, a continuación, seleccione Agregar.
3. Vuelva a colocar el contenido XML existente en el Web.config archivo con el siguiente:
Página 111
3. Guarde el archivo Web.config archivo.
El Web.config archivo especifica que todos los usuarios desconocidos de la aplicación web deben
ser negadosel acceso a las páginas contenidas en el Pedido carpeta. Sin embargo, si el usuario se
ha registrado unacuenta y se registra en, van a ser un usuario conocido y tendrán acceso a las
páginas de la Pedido carpeta.
Es importante señalar que la configuración de ASP.NET sigue una jerarquía, donde cada
Web.config archivoaplica los ajustes de configuración en la carpeta que está en y para todos los
directorios de los niños por debajo de ella.
Habilitación de inicios de sesión provenientes Otros sitios mediante
OAuth y OpenID
ASP.NET Web Forms proporciona opciones mejoradas para la adhesión y la autenticación. Estas
mejoras incluyen los nuevos OAuth y OpenID proveedores. El uso de estos proveedores, que
puedenpermiten a los usuarios inician sesión en su sitio utilizando sus credenciales existentes de
Facebook, Twitter, Windows Live, y Google. Por ejemplo, para iniciar sesión con una cuenta de
Facebook, los usuarios sólo pueden elegir un Facebook opción, que les redirige a la página de
inicio de sesión de Facebook donde entran sus credenciales de usuario. A continuación, puede
asociar el inicio de sesión de Facebook con su cuenta en su sitio. Una relacionada mejora a la Web
Forms ASP.NET membresía (ASP.NET Identidad) cuenta es que los usuarios de puede asociar
múltiples conexiones (incluyendo nombres de usuario de los sitios de redes sociales) con una sola
cuenta en su sitio web.
Cuando se agrega un OAuth proveedor (Facebook, Twitter, o Windows Live) a su Web
ASP.NETFormas de aplicación, debe configurar el ID de aplicación (clave) de valor y un valor
secreto de la aplicación. Puede añadir estos valores al Startup.Auth.cs archivo en su web los
formularios de solicitud. Además, debe crear una aplicación en el sitio externo (Facebook, Twitter,
o Windows Live). Cuando tú crear la aplicación en el sitio web externo puede obtener las claves de
aplicación que usted necesita en para invocar la función de inicio de sesión para esos sitios.
Nota
Aplicaciones de Windows Live sólo aceptan una URL en vivo para un sitio web de trabajo, por lo
que no pueden utilizar un URL del sitio web local para inicios de sesión de prueba.
Para los sitios que utilizan un OpenID proveedor (Google), usted no tiene que crear una aplicación
en elsitio externo.
1. En el Explorador de soluciones, encontrar y abrir la App_Start carpeta.
2. Abra el archivo con nombre Startup.Auth.cs.
3. Elimine el comentario de una sola línea de código resaltado en amarillo para que Google OpenID
cuentas como sigue:
Página 112
4. Guarde el Startup.Auth.cs archivo.
Al ejecutar la aplicación de ejemplo Wingtip Toys, usted tendrá la opción de acceder a su Cuenta
de Google y sus asociados Juguetes Wingtip cuenta con la cuenta de Google.
Modificación Entrar Funcionalidad
Como se mencionó anteriormente en esta serie de tutoriales, gran parte de la funcionalidad de
registro de usuario tiene ha incluido en la plantilla de formularios Web ASP.NET por defecto.
Ahora vas a modificar el valor por defecto Login.aspx y register.aspx páginas para llamar el método
MigrateCart. El MigrateCartmétodo asocia un nuevo usuario conectado con un anónimo carrito de
compras. Al asociar el usuario y la cesta de la compra, la aplicación de ejemplo Wingtip Toys será
capaz de mantener la carrito de la compra del usuario entre las visitas.
1. En el Explorador de soluciones, encontrar y abrir la Cuenta carpeta.
Página 113
3. Modificar la página de código subyacente llamado Login.aspx.cs incluir el código resaltado
enamarillo, de modo que aparece como sigue:
3. Guarde el Login.aspx.cs archivo.
Página 114
Por ahora, puede ignorar la advertencia de que no existe una definición para el método
MigrateCart. Se le agrega un poco más adelante en este tutorial.
El Login.aspx.cs archivo de código subyacente soporta un método de inicio de sesión. Al
inspeccionar la página Login.aspx,verás que esta página incluye una "Entrar" botón que cuando clic
desencadena el manejador Iniciar Sesión en el código subyacente.
Cuando el método de inicio de sesión en el Login.aspx.cs se llama, una nueva instancia de la cesta
de la comprase crea llamado usersShoppingCart. Se recupera el ID de la cesta de la compra (un
GUID) y establece en la variable cartId. A continuación, se llama al método MigrateCart, pasando
tanto el cartId y el nombre del usuario conectado a este método. Cuando el carro de compras se
migra, la GUID utiliza para identificar el anonimato carro de compras se reemplaza con el nombre
de usuario.
Además de modificar la Login.aspx.cs archivo de código subyacente para migrar el carro de
compras cuandoel usuario inicia sesión, también debe modificar las Register.aspx.cs archivo de
código subyacente para migrar loscesta de la compra cuando el usuario crea una nueva cuenta y
registros en.
1. En la Cuenta de carpeta, abra el archivo de código subyacente llamado Register.aspx.cs.
2. Modificar el archivo de código subyacente al incluir el código en amarillo, para que aparezca la
siguiente manera:
Página 115
3. Guarde el Register.aspx.cs archivo. Una vez más, ignorar la advertencia sobre el
MigrateCart método.
Observe que el código que ha utilizado en el controlador de eventos CreateUser_Click es muy
similar a la código que ha utilizado en el método de inicio de sesión. Cuando el usuario se
registra o registros en el sitio, una llamada a la Se hará método MigrateCart.
Migración de la cesta de la compra
Ahora que tiene el proceso de inicio de sesión y registro actualizado, puede agregar el código
para migrar el método MigrateCart compras el carro.
1. En el Explorador de soluciones, encontrar la lógica de la carpeta y abrir el
ShoppingCartActions.cs archivo de clase.
2. Agregue el código resaltado en amarillo para el código existente en los
ShoppingCartActions.cs archivo, por lo que el código en el ShoppingCartActions.cs archivo
aparece de la siguiente manera:
Página 116
Página 117
Página 118
Página 119
El método utiliza la cartId MigrateCart existente para encontrar el carrito de la compra del usuario.
Siguiente, el código recorre todos los cesta productos comerciales y sustituye a la propiedad CartId
(como especificado por el esquema CartItem) con el nombre de usuario que ha iniciado sesión en.
Actualización de la conexión con la base
Si usted está siguiendo este tutorial utilizando la prebuilt Wingtip Toys aplicación de ejemplo,
deberecrear la base de datos de miembros defecto. Al modificar la cadena de conexión
predeterminada, el base de datos de miembros, se creará la próxima vez que la aplicación se
ejecuta.
1. Abra el archivo Web.config archivo en la raíz del proyecto.
2. Actualización de la cadena de conexión predeterminado para que aparezca la siguiente manera:
Integración de PayPal
PayPal es una plataforma de facturación basado en web que acepta pagos con los comerciantes en
línea. Este tutorial siguiente explica cómo integrar la funcionalidad de Pago exprés de PayPal en su
aplicación. Pago exprés permite a sus clientes utilizar PayPal para pagar los artículos que han
añadido a su carrito de compras.
Crear cuentas de prueba PaylPal
Para utilizar el entorno de pruebas de PayPal, debe crear y verificar una cuenta de prueba
desarrollador. usted utilizará la cuenta de prueba de desarrolladores para crear una cuenta de
prueba comprador y una cuenta de prueba vendedor. los credenciales de la cuenta de prueba para
desarrolladores también permitirán la aplicación de ejemplo Wingtip Toys acceso el entorno de
pruebas de PayPal.
1. En un navegador, vaya al sitio de pruebas desarrollador de PayPal:
https://developer.paypal.com
2. Si usted no tiene una cuenta PayPal desarrollador, crear una nueva cuenta haciendo clic
Registrarse y siguiendo la señal por las escaleras. Si usted tiene una cuenta PayPal desarrollador
existente, inicie sesión haciendo clic en Iniciar sesión. Usted necesitará su cuenta de desarrollador
de PayPal para probar los juguetes Wingtipaplicación de ejemplo más adelante en este tutorial.
Página 120
3. Si sólo se haya registrado su cuenta de desarrollador de PayPal, usted puede necesitar para
verificar tu cuenta de desarrollador de PayPal con PayPal. Usted puede verificar su cuenta
siguiendo el medidas que PayPal envía a su cuenta de correo electrónico. Una vez que haya
verificado su PayPal cuenta de desarrollador, ingrese de nuevo en el lugar de la prueba
desarrollador PayPal.
4. Una vez que haya iniciado sesión en el sitio de desarrolladores de PayPal con su cuenta de
desarrollador de PayPal es necesario crear una cuenta de prueba de comprador de PayPal, si usted
no tiene ya uno. Para crear una cuenta de prueba comprador, en el sitio de PayPal, haga clic en la
Aplicaciones ficha y haga clic en Sandbox cuentas.La cuentas de prueba Sandbox se muestra la
página.
Nota
El sitio de desarrollador PayPal ya proporciona una cuenta de prueba comerciante.
5. En la página de cuentas de prueba Sandbox, haga clic en Crear cuenta.
6. En el Crear cuenta de prueba página de escoger un correo electrónico cuenta de prueba
comprador y la contraseña de tu elección.
Nota
Usted necesitará las direcciones de correo electrónico del comprador y contraseña para probar la
muestra Wingtip Toys
Página 121
aplicación al final de este tutorial.
Página 122
Página 123
7. Crear la cuenta de prueba comprador haciendo clic en el Crear Cuenta botón.La cuentas de
prueba Sandbox se muestra la página.
8. En la cuentas de prueba Sandbox página, haga clic en el facilitador cuenta de correo
electrónico.Perfil y notificación aparecen opciones.
9. Seleccione el Perfil opción, a continuación, haga clic en las credenciales de la API para ver sus
credenciales de API para elcuenta de prueba comerciante.
10. Copia de las credenciales de la API de prueba para el bloc de notas.
Usted necesitará sus credenciales de API prueba clásica mostrados (nombre de usuario,
contraseña y firma) para hacer llamadas a la API de la aplicación de ejemplo Wingtip Toys al
entorno de pruebas de PayPal. Va a agregar las credenciales en el siguiente paso.
Agregar clase PayPal y Credenciales API
Va a colocar la mayor parte del código de PayPal en una sola clase. Esta clase contiene los
métodos utilizado para comunicarse con PayPal. Además, se le añada sus credenciales de PayPal a
esta clase.
1. En la aplicación de ejemplo Wingtip Toys dentro de Visual Studio, haga clic en la lógica de
carpetasa continuación, seleccione Agregar -> Nuevo elemento.El Agregar nuevo elemento se
muestra el cuadro de diálogo.
2. En Visual C # de la instalada panel de la izquierda, seleccione Código.
3. En el panel central, seleccione la clase. Nombre esta nueva clase PayPalFunctions.cs.
Página 124
4. Haga clic en Agregar.El nuevo archivo de clase se muestra en el editor.
5. . Reemplace el código predeterminado con el siguiente código:
Página 125
Página 126
Página 127
Página 128
Página 129
6. Agregue las credenciales de API Merchant (nombre de usuario, contraseña y firma) que
mostrado anteriormente en este tutorial para que pueda realizar llamadas de función a la
prueba PayPal ambiente.
Nota
En esta aplicación de ejemplo que son simplemente agregando credenciales en un archivo de C #
(.cs). Sin embargo, en una solución implementada, usted debe considerar encriptar sus
credenciales en un archivo de configuración.
La clase NVPAPICaller contiene la mayoría de la funcionalidad PayPal. El código de la clase
proporciona los métodos necesarios para hacer una compra de prueba desde el entorno de
pruebas de PayPal. los siguientes tres funciones de PayPal se utilizan para hacer las compras:
Función 1. SetExpressCheckout
Función 2. GetExpressCheckoutDetails
3. Función DoExpressCheckoutPayment
El método ShortcutExpressCheckout recoge la información de compra de prueba y productos
detalles de la cesta de la compra y llama a la función SetExpressCheckout PayPal. los Método
GetCheckoutDetails confirma detalles de la compra y llama al GetExpressCheckoutDetails función
de PayPal antes de hacer la compra de prueba. los Método DoCheckoutPayment completa la
compra de prueba desde el entorno de pruebas por llamando a la función
DoExpressCheckoutPayment PayPal. El código restante apoya la Métodos y procesos de PayPal,
como cadenas de codificación, decodificación de cadenas, matrices de procesamiento, y la
determinación de las credenciales.
Nota
Página 130
PayPal le permite incluir detalles de la compra opcionales basados en Especificación de la API de
PayPal . Por extender el código de la aplicación de ejemplo Wingtip Toys, puede incluir datos de
localización, descripciones de productos, impuestos, un número de servicio al cliente, así como
muchos otros campos opcionales.
Tenga en cuenta que el retorno y se anulan las URL que se especifican en el
ShortcutExpressCheckout método de utilizar un número de puerto.
Cuando Visual Web Developer se ejecuta un proyecto web, un puerto aleatorio se utiliza para el
servidor web. Como mostrado anteriormente, el número de puerto es 1234. Cuando se ejecuta la
aplicación, probablemente veremos un diferente número de puerto. Su número de puerto se debe
establecer en el código anterior, para que pueda éxito ejecutar la aplicación de ejemplo Wingtip
Toys al final de este tutorial. En la siguiente sección de este tutorial explica cómo recuperar el
número de puerto host local y actualizar la clase de PayPal.
Actualizar el número de puerto localhost en la Clase de PayPal
La aplicación de ejemplo Wingtip Toys compra productos, vaya hasta el lugar de la prueba PayPal y
regresar a su instancia local de la aplicación de ejemplo Wingtip Toys. Para tener PayPal retorno a
la URL correcta, es necesario especificar el número de puerto del local corriendo aplicación de la
muestra en el código de PayPal antes mencionado.
1. Haga clic en el nombre del proyecto (WingtipToys) en el Explorador de soluciones y seleccione
Propiedades.
2. En la columna de la izquierda, seleccione la Web ficha.
3. Recuperar el número de puerto del Proyecto Url caja.
4. Actualice el ReturnURL y CancelURL en la clase de PayPal (NVPAPICaller) en el
PayPalFunctions.cs archivo que se utilizará el número de puerto de la aplicación web:
Ahora el código que agregó coincidirá con el puerto previsto para la aplicación Web local. PayPal
podrá volver a la URL correcta en el equipo local.
Agregar el botón de PayPal Checkout
Ahora que las funciones primarias de PayPal se han añadido a la aplicación de ejemplo, se puede
empezar a añadir el marcado y el código necesario para llamar a estas funciones. En primer lugar,
debe agregar el botón de pago que el usuario verá en la página de carrito de compras.
1. Abra el archivo ShoppingCart.aspx.
2. Desplácese hasta el final del archivo y encontrar el <! - Pedido de marcador de posición ->
comentar.
Página 131
3. Vuelva a colocar el comentario con un control ImageButton de modo que el margen de
beneficio se sustituye por el de la siguiente manera:
4. En el ShoppingCart.aspx.cs archivo, después de que el controlador de eventos
UpdateBtn_Click cerca del finaldel archivo, agregue el controlador de eventos
CheckOutBtn_Click:
5. También en el ShoppingCart.aspx.cs archivo, agregue una referencia a la CheckoutBtn, por
lo que elnuevo botón de imagen se hace referencia a los siguientes:
6. Guarde los cambios tanto en el ShoppingCart.aspx archivo y el ShoppingCart.aspx.cs archivo.
7. En el menú, seleccione Depurar -> Construir WingtipToys.El proyecto será reconstruido con el
recién añadido ImageButton control.
Enviar Información de compra a PayPal Cuando el usuario hace clic en el Pedido botón en la página
del carrito de la compra (ShoppingCart.aspx),van a empezar el proceso de compra. El código
siguiente llama a la primera función de PayPal necesaria para productos de la compra.
Página 132
1. En el Pedido carpeta, abra el archivo de código subyacente llamado
CheckoutStart.aspx.cs.Asegúrese de abrir el archivo de código subyacente.
2. Reemplace el código existente con el siguiente:
Cuando el usuario de la aplicación hace clic en el Pedido botón en la página del carro de compras,
lanavegador navegue a la CheckoutStart.aspx página. Cuando los CheckoutStart.aspx página se
carga,se llama al método ShortcutExpressCheckout. En este punto, el usuario se transfiere a la
Lugar de la prueba web de PayPal. En el sitio de PayPal, el usuario introduce sus credenciales de
PayPal, revisa la detalles de la compra, acepta el acuerdo de PayPal y devuelve a la muestra
Wingtip Toys aplicación en la que el método ShortcutExpressCheckout completa. Cuando el
ShortcutExpressCheckout método es completa, se redirigir al usuario a la CheckoutReview.aspx
página especificada en el método ShortcutExpressCheckout. Esto permite al usuario revisar los
detalles de la orden desde dentro de la aplicación de ejemplo Wingtip Toys.
Revise Detalles de pedidos
Página 133
Después de regresar de PayPal, la CheckoutReview.aspx página de la muestra Wingtip
Toysaplicación muestra los detalles de la orden. Esta página permite al usuario revisar los detalles
de la orden antes de adquirir los productos. El CheckoutReview.aspx página debe ser creado de la
siguiente manera:
1. En el Pedido carpeta, abra la página denominada CheckoutReview.aspx.
2. Vuelva a colocar el marcado actual por el siguiente:
Página 134
4. Abra la página de código subyacente nombrados CheckoutReview.aspx.cs y reemplazar el
existentecódigo con lo siguiente:
Página 135
Página 136
El DetailsView control se utiliza para mostrar los detalles de la orden que han sido devueltos
porPayPal. Además, el código anterior guarda los detalles de la orden a la base de datos de
Wingtip Toys como Objeto OrderDetail. Cuando el usuario hace clic en el Encargar botón, se les
redirigea la CheckoutComplete.aspx página.
Consejo
Observe que el <ItemStyle> etiqueta se utiliza para cambiar el estilo de los elementos dentro de la
DetailsView control. Al ver la página en la vista Diseño, seleccione el DetailsView control,y
seleccionando la etiqueta inteligente (el icono de flecha en la parte superior derecha del control),
usted será capaz dever las tareas DetailsView.
Al seleccionar Editar Campos, el Campos aparecerá el cuadro de diálogo. En este cuadro de diálogo
usted puede fácilmentecontrolar las propiedades visuales, como ItemStyle, del DetailsView
control.
Página 137
Compra completa
CheckoutComplete.aspx página hace que la compra de PayPal. Como se mencionó anteriormente,
el usuariodebe hacer clic en el Encargar botón antes de la aplicación se navegue a
laCheckoutComplete.aspx página.
1. En el Pedido carpeta, abra la página denominada CheckoutComplete.aspx.
2. Vuelva a colocar el marcado actual por el siguiente:
Página 138
3. Abra la página de código subyacente nombrados CheckoutComplete.aspx.cs y reemplazar
el existentecódigo con lo siguiente:
Página 139
Cuando el CheckoutComplete.aspx se carga la página, se llama al método DoCheckoutPayment.
Como se mencionó anteriormente, el método DoCheckoutPayment completa la compra de la
Entorno de pruebas de PayPal. Una vez que PayPal ha completado la compra de la orden, el
CheckoutComplete.aspx página muestra un ID de transacción de pago al comprador.
Mango Cancelar Compra
Si el usuario decide cancelar la compra, que se dirigirán a la CheckoutCancel.aspx páginadonde
verán que su pedido ha sido cancelado.
1. Abra la página denominada CheckoutCancel.aspx en el Pedido carpeta.
2. Vuelva a colocar el marcado actual por el siguiente:
Manejar Errores de compra
Página 140
Errores durante el proceso de compra serán manejados por el CheckoutError.aspx página. El
código-detrás del CheckoutStart.aspx página, el CheckoutReview.aspx página y
elCheckoutComplete.aspx página cada redirigir a la CheckoutError.aspx página si se produce un
error.
1. Abra la página denominada CheckoutError.aspx en el Pedido carpeta.
2. Vuelva a colocar el marcado actual por el siguiente:
El CheckoutError.aspx página se visualiza con los detalles del error cuando se produce un error
durante laproceso de pago.
Ejecutar la aplicación
Ejecutar la aplicación para ver cómo adquirir productos.
1. Abra un navegador Web y vaya a https://developer.paypal.com.
2. Entrar con tu cuenta de PayPal desarrollador que creó anteriormente en este tutorial. Para
desarrollador caja de arena de PayPal, es necesario estar conectado a
https://developer.paypal.com para probar salida express. Esto sólo se aplica a PayPal pruebas de
caja de arena, no entorno real de PayPal.
3. En Visual Studio, presione F5 para ejecutar la aplicación de ejemplo Wingtip Toys.Después de la
base de datos reconstruye, el navegador se abrirá y mostrará el Default.aspx página.
4. Agregue tres productos diferentes a la cesta de la compra seleccionando la categoría de
producto, tales como "Cars" y luego hacer clic en Añadir a la cesta al lado de cada producto.La
cesta de la compra se mostrará el producto que ha seleccionado.
Página 141
5. Haga clic en el PayPal botón a la caja.
6. El registro de salida, será necesario que usted tiene una cuenta de usuario para la muestra
Wingtip Toys solicitud.
7. Haga clic en el Google enlace de la derecha de la página para iniciar sesión con una existente
gmail.com correo electrónico cuenta. Si usted no tiene una cuenta de gmail.com, puede crear una
para propósitos de prueba en
Página 142
www.gmail.com . También puede utilizar una cuenta local estándar haciendo clic en "Registrarse".
Página 143
8. Iniciar sesión con tu cuenta de gmail y contraseña.
Página 144
9. Haga clic en el Conectarse botón para registrar su cuenta de gmail con su muestra Juguetes
WingtipNombre de usuario de la aplicación.
Página 145
10. En el sitio de prueba de PayPal, añadir su comprador dirección de correo electrónico y la
contraseña que creóanteriormente en este tutorial, a continuación, en la sesión botón.
Página 146
11. De acuerdo a la política de PayPal y haga clic en el Aceptar y continuar botón.Tenga en cuenta
que esta página sólo se muestra la primera vez que utilice esta cuenta de PayPal.
Página 147
12. Revise la información del pedido en la página de opinión entorno de pruebas PayPal y clic
Continuar.
Página 148
13. En la CheckoutReview.aspx página, comprobar la cantidad de la orden y ver el generado
direccion de envio. A continuación, haga clic en el Encargar botón.
Página 149
14. El CheckoutComplete.aspx página se muestra con un ID de transacción de pago.
Revisar la base de datos
Mediante la revisión de los datos actualizados en la base de datos de aplicaciones de muestra
Wingtip Toys después de correr la aplicación, se puede ver que la aplicación registra con éxito la
compra de la productos.
Usted puede inspeccionar los datos contenidos en el Wingtiptoys.mdf archivo de base de datos
utilizando la base de datos Explorador de la ventana (el Explorador de servidores ventana en Visual
Studio) como lo hizo anteriormente en este tutorial serie.
1. Cierre la ventana del navegador si aún está abierta.
2. En Visual Studio, seleccione el Mostrar todos los archivos de iconos en la parte superior del
Explorador de soluciones para permitira ampliar el App_Data carpeta.
3. Ampliar el App_Data carpeta.Es posible que deba seleccionar el Mostrar todos los archivos
icono de la carpeta.
4. Haga clic en la Wingtiptoys.mdf archivo de base de datos y seleccione Abrir.Explorador de
servidores se muestra.
5. Ampliar la Tablas carpeta.
6. Haga clic en la Órdenes tabla y seleccione Mostrar tabla de datos.El Órdenes se muestra la
tabla.
Página 150
7. Revisar el PaymentTransactionID columna para confirmar transacciones exitosas.
8. Cierre la Órdenes ventana de la tabla.
9. En el Explorador de servidores, haga clic en el OrderDetails tabla y seleccione Mostrar tabla de
datos.
10. Revise los valores OrderId y nombre de usuario en el OrderDetails mesa. Tenga en cuenta que
éstos valores coinciden con los valores OrderId y Nombre de usuario incluido en el Órdenes mesa.
11. Cierre la OrderDetails ventana de la tabla.
12. Haga clic en el archivo de base de datos Wingtip Toys (Wingtiptoys.mdf) y seleccione Cerrar
Conexión.
13. Si usted no ve el Explorador de soluciones ventana, haga clic en el Explorador de soluciones en
la parte inferiordel Explorador de servidores ventana para mostrar el Explorador de soluciones de
nuevo.
Sumario
En este tutorial ha agregado orden y detalle de la orden esquemas para rastrear la compra de
productos. usted también integrada la funcionalidad de PayPal en la aplicación de ejemplo Wingtip
Toys.
Recursos adicionales
Introducción a la configuración ASP.NET
Crear un 5 aplicación ASP.NET MVC con Facebook y Google OAuth2 y OpenID Sign-on (C #)
Descargo de responsabilidad
Este tutorial contiene código de ejemplo. Se proporciona Tal código de ejemplo "tal cual" sin
garantía de ningún amable. En consecuencia, Microsoft no garantiza la exactitud, integridad o
calidad de la muestra código. Usted se compromete a utilizar el código de ejemplo a su propio
riesgo. En ningún caso Microsoft será responsable ante usted de ninguna manera por cualquier
código de ejemplo, el contenido, incluyendo pero no limitado a, cualquier error u omisiones en
cualquier código de ejemplo, el contenido, o cualquier pérdida o daño de cualquier tipo incurridos
como resultado de la utilización de cualquier código de ejemplo. Se le notifica y no acepta
indemnizar, guardar y mantener a Microsoft indemne de y contra cualquier y toda pérdida,
reclamos de pérdida, lesión o daño
Página 151
de cualquier tipo, incluyendo, sin limitación, las ocasionadas por o que surjan a partir de material
que publicar, transmitir, usar o confiar en incluyendo, pero no limitado a, las opiniones expresadas
en el mismo.
Página 152
Composición y Administración
Esta serie tutorial te enseñará los fundamentos de la construcción de una aplicación Web Forms
ASP.NET utilizando ASP.NET 4.5 y Microsoft Visual Studio Express 2013 para Web. Un estudio de
2013 del proyecto de Visual con fuente de C # código está disponible para acompañar esta serie de
tutoriales.
Este tutorial muestra cómo actualizar la aplicación de ejemplo Wingtip Toys para añadir un función
de administrador y el uso ASP.NET Identidad. También muestra cómo implementar un página de
administración desde el cual el administrador puede agregar y eliminar los productos de la sitio
web.
ASP.NET Identidad es el sistema de afiliación utilizado para construir aplicaciones web ASP.NET y
es disponible en ASP.NET 4.5. ASP.NET Identidad se utiliza en el estudio de 2013 de formularios
Web Forms proyecto de Visual plantilla, así como las plantillas para ASP.NET MVC, API Web
ASP.NET, y ASP.NET Individual Página de la aplicación. También puede instalar específicamente el
sistema ASP.NET Identidad usando NuGet cuando usted comienza con una aplicación Web vacía.
Sin embargo, en esta serie de tutoriales utiliza la Web Formas plantilla proyecto, que incluye el
sistema de ASP.NET identidad. ASP.NET Identidad hacefácil de integrar datos de perfil específicos
del usuario con los datos de aplicación. Además, ASP.NET Identidad permite a elegir el modelo de
persistencia de los perfiles de usuario de la aplicación. Puede almacenar los datos en una base de
datos SQL Server u otro almacén de datos, incluyendo NoSQL almacenes de datos como
WindowsTablas Azure Storage.
Este tutorial se basa en el tutorial anterior titulado "Pedido y pago con PayPal" en el Wingtip Toys
serie de tutoriales.
Lo que aprenderá:
Cómo utilizar código para agregar una función de administrador y un usuario de la aplicación. Cómo restringir el acceso a la carpeta de la administración y la página. ¿Cómo proporcionar la navegación para el rol de administrador. ¿Cómo utilizar el modelo vinculante para llenar un DropDownList de control con el producto categorías. ¿Cómo subir un archivo a la aplicación web mediante el FileUpload control.
Cómo utilizar los controles de validación para implementar la validación de entrada. ¿Cómo agregar y eliminar los productos de la aplicación.
Estas características se incluyen en el tutorial:
ASP.NET Identidad Configuración y Autorización La unión Modelo Validación Discreto Página 153
ASP.NET Web Forms proporciona capacidades de afiliación. Mediante el uso de la plantilla por
defecto, usted tiene funcionalidad integrada de miembros que puede utilizar de inmediato cuando
la aplicación se ejecuta. Esta tutorial le muestra cómo utilizar ASP.NET Identidad para agregar una
función de administrador y asignar un usuario para ese papel. Usted aprenderá cómo restringir el
acceso a la carpeta de administración. Vamos a añadir una página a la carpeta de administración
que permite a un administrador agregar y quitar productos, y para vista previa de un producto
después de que se ha añadido.
Adición de un administrador
El uso de ASP.NET Identidad, puede agregar una función de administrador y asignar un usuario a la
función mediante código.
1. En el Explorador de soluciones, haga clic en la lógica de la carpeta y crear una nueva clase.
2. Nombre de la nueva clase RoleActions.cs.
3. Modifique el código para que aparezca la siguiente manera:
4. En el Explorador de soluciones, abra el Global.asax.cs archivo.
5. Abrir y modificar el Global.asax.cs expediente añadido el código resaltado en amarillo para
queaparezca como sigue:
Página 154
6. Tenga en cuenta que está subrayado createAdmin en rojo. Haga doble clic en la createAdmin
código. Se subrayó la letra "c" en el método de resaltado.
7. A continuación, coloque el cursor sobre la letra "c" para mostrar la interfaz de usuario que le
permite generar un método stub para el método createAdmin.
8. Haga clic en el opcionado titulado: Generar Stub para 'createAdmin' en
"WingtipToys.Logic.RoleActions '
9. Abra la RoleActions.cs archivo de la Lógica carpeta.El método createAdmin se ha añadido al
archivo de clase.
10. Modificar el RoleActions.cs archivo quitando el NotImplementedeException yañadiendo el
código resaltado en amarillo, de modo que aparezca como sigue:
Página 155
El código anterior funciona estableciendo primero un contexto de base de datos para la base de
datos de miembros. La base de datos de miembros también se almacena como un .mdf archivo en
el App_Data carpeta. Usted podrá para ver esta base de datos una vez que el primer usuario ha
iniciado sesión en esta aplicación web.
Nota
Si desea almacenar los datos de afiliación, junto con los datos del producto, se puede considerar el
uso de el mismo DbContext que utilizó para almacenar los datos de los productos en el código de
seguridad.
El interior de palabras clave es un modificador de acceso para este tipo (como clases) y miembros
de tipo (por ejemplo,métodos o propiedades). Tipos internos o miembros sólo son accesibles
dentro de los archivos contenidos en la misma asamblea (.dll archivo). Cuando usted construye su
aplicación, un archivo de ensamblado (.dll) se creaque contiene el código que se ejecuta cuando se
ejecuta la aplicación.
Página 156
Un objeto RoleStore, que proporciona la administración de funciones, está creado en base a la
base de datos contexto.
Nota
Observe que cuando se crea el objeto RoleStore utiliza un tipo IdentityRole Genérico. Esta significa
que el RoleStore sólo se le permite contener objetos IdentityRole. También mediante el uso de Los
medicamentos genéricos, los recursos en la memoria se manejan mejor.
A continuación, el objeto roleManager, se crea basándose en el objeto RoleStore que acaba
creado. el objeto roleManager expone API relacionada papel que se puede utilizar para
automáticamente guardar los cambios en el RoleStore. El roleManager sólo se le permite contener
IdentityRole objetos porque el código utiliza el <IdentityRole> Tipo Genérico.
Usted llama al método RoleExists para determinar si el rol de "Administrador" está presente en el
base de datos de miembros. Si no es así, se crea el papel.
Creación del objeto UserManager parece ser más complicado que el roleManager control, sin
embargo, es casi la misma. Sólo se codifica en una línea en lugar de varios. Aquí el parámetro que
está de paso se instanciando como un nuevo objeto contenido en el paréntesis.
A continuación, crea el usuario "Admin" mediante la creación de un nuevo objeto ApplicationUser.
Entonces, si usted crear con éxito el usuario, se agrega el usuario a la nueva función.
Nota
El manejo de errores se actualizará durante el tutorial "ASP.NET Tratamiento de errores" más
adelante en este serie de tutoriales.
La próxima vez que se inicia la aplicación, se agregará el usuario llamado "Admin" como el papel
llamado "Administrador" de la aplicación. Más adelante en este tutorial, iniciar sesión como el
usuario "Admin" para mostrar las capacidades adicionales que se le añaden durante este tutorial.
Para obtener más información acerca de la API ASP.NET Identidad, consulte la
Microsoft.AspNet.Identity Espacio de nombres . Para obtener detalles adicionales sobre inicializar
el sistema ASP.NET Identidad, consulte la AspnetIdentitySample.
Restringir el acceso a la página de administración
La aplicación de ejemplo Wingtip Toys permite tanto a los usuarios anónimos y usuarios
registrados en para ver y comprar productos. Sin embargo, el administrador ha iniciado sesión en
el se puede acceder a una página restringida Para agregar y quitar productos.
Agregar una carpeta de Administración y Página
A continuación, se creará una carpeta con el nombre del administrador para el administrador de la
muestra Wingtip Toys solicitud.
1. Haga clic en el nombre del proyecto (Wingtip Toys) en el Explorador de soluciones y seleccione
Agregar ->Nueva carpeta.
Página 157
2. Nombre de la nueva carpeta de administración.
3. Haga clic en el Administrador de carpetas y seleccione Agregar -> Nuevo elemento.El Agregar
nuevo elemento se muestra el cuadro de diálogo.
4. Seleccione el Visual C # -> Web grupo de plantillas a la izquierda. En la lista de medio,
seleccioneFormulario Web con páginas maestras, lo nombra AdminPage.aspx, a continuación,
seleccione Agregar.
5. Seleccione el Site.Master archivo como la página principal, y luego seleccione Aceptar.
Añadir un archivo Web.config
Al añadir un Web.config archivo a la administración de carpetas, puede restringir el acceso a la
página de contenido enla carpeta.
1. Haga clic en el Administrador de carpeta y seleccione Agregar -> Nuevo elemento.El Agregar
nuevo elemento se muestra el cuadro de diálogo.
2. En la lista de plantillas web de Visual C #, seleccione Archivo de configuración Web de laLista
media, acepte el nombre predeterminado de Web.config, a continuación, seleccione Agregar.
3. Vuelva a colocar el contenido XML existente en el Web.config archivo con el siguiente:
Guarde el archivo Web.config archivo. El Web.config archivo especifica que sólo los
administradores de la aplicaciónpuede acceder a la página de contenido en la administración de
carpetas.
Incluyendo administrador Navegación
Para habilitar el administrador para navegar a la sección de administración de la aplicación, debe
agregar un enlace a la Site.Master página. Sólo los usuarios que pertenecen a la función de
administrador seráncapaz de ver el Administrador de enlace y acceder a la sección de
administración.
1. En el Explorador de soluciones, encontrar y abrir la Site.Master página.
2. Para crear un enlace para los administradores, agregue el marcado resaltado en amarillo a la
siguiente desordenada lista <ul> elemento para que la lista aparece como sigue:
Página 158
2. Abra la Site.Master.cs archivo. Haga la administración enlace visible sólo para el usuario
"admin" porañadiendo el código resaltado en amarillo al manejador Page_Load. El
Page_Load manejador aparecerá de la siguiente manera:
Cuando se carga la página, el código comprueba si el usuario ha iniciado sesión en cuenta el papel
de "Administrador". Si el usuario es un administrador, el elemento span que contiene el enlace a la
AdminPage.aspx página (y en consecuencia el enlace dentro del lapso) se hace visible.
Habilitación de Administración de Producto
Hasta el momento, se ha creado la función de administrador y ha añadido un usuario
administrador, un carpeta de administración, y una página de administración. Ha establecido los
derechos de acceso para el carpeta de la administración y en la página, y han añadido un enlace de
navegación para el administrador de la solicitud. A continuación, va a agregar marcadores para la
AdminPage.aspx página y código alAdminPage.aspx.cs archivo de código subyacente que permitirá
al administrador para añadir y eliminar productos.
1. En el Explorador de soluciones, abra el AdminPage.aspx archivo de la administración de
carpetas.
2. Vuelva a colocar el marcado actual por el siguiente:
Página 159
Página 160
3. A continuación, abra las AdminPage.aspx.cs archivo de código subyacente, haga clic en el
AdminPage.aspx y haciendo clic en Ver código.
4. Reemplace el código existente en los AdminPage.aspx.cs archivo de código subyacente con el
siguientecódigo:
Página 161
Página 162
En el código que ha introducido para los AdminPage.aspx.cs archivo de código subyacente, una
clase llamadaAddProducts hace el trabajo real de la adición de productos a la base de datos. Esta
clase no existe sin embargo, por lo que va a crear ahora.
1. En el Explorador de soluciones, haga clic en la lógica de la carpeta y luego seleccione Agregar ->
Nuevo elemento.El Agregar nuevo elemento se muestra el cuadro de diálogo.
2. Seleccione el Visual C # -> Código grupo de plantillas a la izquierda. A continuación, seleccione la
clase de laLista de medio y el nombre AddProducts.cs.Se muestra el nuevo archivo de clase.
3. Reemplace el código existente con el siguiente:
El AdminPage.aspx página permite al administrador para añadir y eliminar productos. Cuando un
nuevo se añade el producto, los detalles sobre el producto se validan y luego entró en la base de
datos. El nuevo producto está inmediatamente disponible para todos los usuarios de la aplicación
web.
Validación Discreto
Página 163
Los detalles de los productos que el usuario proporciona en la AdminPage.aspx página se validan
utilizandocontroles de validación (RequiredFieldValidator y RegularExpressionValidator). Estos
controles utilizan automáticamente la validación discreto. Validación discreto permite que el
validación de controles para el uso de JavaScript para la lógica de validación en el cliente, lo que
significa que la página hace no requiere un viaje al servidor para ser validado. De forma
predeterminada, la validación discreta se incluye en el Web.config archivo basado en el ajuste de
la configuración siguiente:
Expresiones regulares
El precio del producto en el AdminPage.aspx página se valida mediante
unRegularExpressionValidator control. Este control valida si el valor de la asociadacontrol de
entrada (el cuadro de texto "AddProductPrice") coincide con el patrón especificado por el
ordinario expresión. Una expresión regular es una notación de patrones que le permite encontrar
rápidamente y combinar patrones de caracteres específicos. El RegularExpressionValidator de
control incluye unpropiedad denominada ValidationExpression que contiene la expresión regular
utilizada para validar la entrada de precios, como se muestra a continuación:
Control de FileUpload
Además de los controles de entrada y validación, agregó el FileUpload control alAdminPage.aspx
página. Este control proporciona la capacidad de subir archivos. En este caso, usted espermitiendo
sólo archivos de imagen a cargar. En el archivo de código subyacente (AdminPage.aspx.cs), cuando
elAddProductButton se hace clic, el código comprueba la propiedad HasFile del FileUpload control.
Si el control tiene un archivo y si se permite que el tipo de archivo (basado en la extensión de
archivo), la imagen se guarda en el archivo de la carpeta y el archivo / Pulgares carpeta de la
aplicación.
Encuadernación Modelo
A principios de esta serie de tutoriales que utilizó modelo de unión para rellenar un ListView
control, unFormsView control, un GridView control y un DetailView control. En este tutorial, se
utilizamodelo de unión para llenar un DropDownList de control con una lista de categorías de
productos.
El margen de beneficio que ha agregado a la AdminPage.aspx archivo contiene un DropDownList
control de llamadaDropDownAddCategory:
Utiliza modelo de unión a poblar esta DropDownList estableciendo el atributo ItemType yel
atributo SelectMethod. El atributo ItemType especifica que se utiliza el
Página 164
Tipo WingtipToys.Models.Category al rellenar el control. Ha definido este tipo en el comienzo de
esta serie de tutoriales mediante la creación de la clase Categoría (mostrado a continuación). los
Clase Categoría se encuentra en la Modelos carpeta dentro de la Category.cs archivo.
El atributo SelectMethod del DropDownList control especifica que utilice laMétodo GetCategories
(que se muestra a continuación) que se incluye en el archivo de código subyacente
(AdminPage.aspx.cs).
Este método especifica que una interfaz IQueryable se utiliza para evaluar una consulta en una
Tipo de categoría. El valor devuelto se utiliza para rellenar el DropDownList en el marcado
delpágina (AdminPage.aspx).
El texto que se muestra para cada elemento de la lista se especifica estableciendo el atributo
DataTextField. El atributo DataTextField utiliza el CategoryName de la clase Categoría (ver imagen
superior) para visualizar cada categoría en el DropDownList control. El valor real que se pasa
cuando unaelemento está seleccionado en el DropDownList de control se basa en el atributo
DataValueField. los Atributo DataValueField se establece en el IdCategoría como definir en la clase
Categoría (que se muestra arriba).
¿Cómo la aplicación funcionará
Cuando el administrador desplaza a la página para la primera vez, el DropDownAddCategory
DropDownList de control se rellena como se describe anteriormente. El
DropDownRemoveProductDropDownList control también se rellena con productos utilizando el
mismo enfoque. los administrador selecciona el tipo de categoría y añade los detalles del producto
(nombre, descripción, precio,y archivos de imagen). Cuando el administrador hace clic en el
Agregar Producto botón, elControlador de eventos AddProductButton_Click se dispara. El
AddProductButton_Click controlador de eventos se encuentra en el archivo de código subyacente
(AdminPage.aspx.cs) comprueba el archivo de imagen para hacerasegurarse de que coincide con
los tipos de archivo permitidos (.gif, .png, .jpeg o .jpg). A continuación, el archivo de imagen se
guarda en uncarpeta de la aplicación de ejemplo Wingtip Toys. A continuación, el nuevo producto
se añade a la base de datos.
Página 165
Para llevar a cabo la adición de un nuevo producto, se crea una nueva instancia de la clase
AddProducts y productos mencionados. La clase AddProducts tiene un método denominado
AddProduct, y los productos objeto llama a este método para agregar productos a la base de
datos.
Si el código agrega con éxito el nuevo producto a la base de datos, la página se vuelve a cargar con
el consulta valor de cadena ProductAction = añadir.
Cuando la página se recarga, la cadena de consulta se incluye en el URL. Por volver a cargar la
página, administrador puede ver inmediatamente los cambios en los DropDownList controles en
elAdminPage.aspx página. Además, mediante la inclusión de la cadena de consulta con la URL, la
página puede mostrar unmensaje de éxito al administrador.
Cuando los AdminPage.aspx cargar la página, el evento Page_Load se llama.
El controlador de eventos Page_Load comprueba el valor de cadena de consulta y determina si se
debe mostrar una mensaje de éxito.
Ejecutar la aplicación
Puede ejecutar la aplicación ahora para ver cómo se pueden agregar, eliminar y actualizar los
elementos de la carrito de compras. La cesta de la compra total será reflejar el costo total de todos
los elementos en el carrito de compras.
1. En el Explorador de soluciones, presione F5 para ejecutar la aplicación de ejemplo Wingtip
Toys.El navegador se abre y muestra el Default.aspx página.
Página 166
3. Haga clic en el Iniciar sesión enlace en la parte superior de la página.
El Login.aspx se muestra la página.
4. Utilice el siguiente nombre de usuario y la contraseña del administrador:
Nombre de usuario: Admin
Contraseña: Pa $$ palabra
Página 167
4. Haga clic en el Conectarse botón en la parte inferior de la página.
Página 168
5. En la parte superior de la página siguiente, seleccione la administración enlace para
navegar a la AdminPage.aspx página.
6. 6. Para probar la validación de entrada, haga clic en el Agregar Producto botón sin la
adición de cualquier producto detalles.
Página 169
Observe que se muestran los mensajes de campo requeridas.
Página 170
7. Agregue los detalles de un nuevo producto y, a continuación, haga clic en el Agregar Producto
botón.
Página 171
8. Seleccione los productos desde el menú de navegación superior para ver el nuevo producto que
ha añadido.
9. Haga clic en el Administrador enlace para volver a la página de administración.
10. En el Remove Producto sección de la página, seleccione el nuevo producto que ha añadido en
elDropDownListBox.
Página 172
11. Haga clic en el Eliminar el botón para quitar el nuevo producto de la aplicación.
12. Seleccione los productos desde el menú de navegación superior para confirmar que el
producto ha sido eliminado.
13. Haga clic en cerrar la sesión de existir el modo de administración.Observe que el panel de
navegación superior ya no muestra el Administrador elemento de menú.
Sumario
En este tutorial, que ha añadido una función de administrador y un usuario administrativo,
limitado acceso a la carpeta de la administración y en la página, y provisto de navegación para el
rol de administrador. usted Modelo usado vinculante para llenar un DropDownList de control con
datos. Ha implementado elFileUpload control controles y validación. También, usted ha aprendido
a agregar y quitarlos productos procedentes de una base de datos. En el siguiente tutorial,
aprenderás cómo implementar el enrutamiento de ASP.NET.
Recursos adicionales
Web.config - Elemento autorización
ASP.NET Identidad
Página 173
Enrutamiento URL
Esta serie tutorial te enseñará los fundamentos de la construcción de una aplicación Web Forms
ASP.NET utilizando ASP.NET 4.5 y Microsoft Visual Studio Express 2013 para Web. Un estudio de
2013 del proyecto de Visual con fuente de C # código está disponible para acompañar esta serie de
tutoriales.
En este tutorial, modificará la aplicación de ejemplo Wingtip Toys personalizar enrutamiento URL.
Routing permite su aplicación web para utilizar las URL que son amigables, más fácil de recordar, y
mejor apoyado por los motores de búsqueda. Este tutorial se basa en la afiliación tutorial anterior
" y Administración "y forma parte de la serie de tutoriales Wingtip Toys.
Lo que aprenderá:
Cómo registrarse rutas para una aplicación Web Forms de ASP.NET.
¿Cómo añadir rutas a una página web.
¿Cómo seleccionar los datos en una base de datos para apoyar rutas.
Descripción general del enrutamiento ASP.NET
Enrutamiento de URL le permite configurar una aplicación para aceptar la solicitud URL que no se
asignan a archivos físicos. Un URL de solicitud es simplemente el URL que un usuario introduce en
el navegador para encontrar una página en su página web. Utiliza enrutamiento para definir las
direcciones URL que son semánticamente significativa para los usuarios y que puede ayudar con la
optimización de motores de búsqueda (SEO).
Por defecto, la plantilla de formularios Web incluye URLs ASP.NET friendly . Gran parte de la
enrutamiento básico el trabajo se llevará a cabo mediante el uso de URLs. Sin embargo, en este
tutorial agregarácapacidades de enrutamiento personalizados.
Antes de personalizar el enrutamiento URL, la aplicación de ejemplo Wingtip Toys puede enlazar a
un producto utilizando la siguiente URL:
http: // localhost: 1234 / ProductDetails.aspx productID = 2
Mediante la personalización de enrutamiento URL, la aplicación de ejemplo Wingtip Toys vinculará
al mismo producto utilizando una más fácil de leer URL:
http: // localhost: 1234 / Producto / Convertible% 20Car
Rutas
Una ruta es un patrón de URL que se asigna a un controlador. El controlador puede ser un archivo
físico, tal como un archivo .aspx en un Web Forms. Un controlador también puede ser una clase
que procesa la petición. Para definir una ruta, se crea una instancia de la clase de ruta
especificando la URL patrón, el controlador y, opcionalmente, un nombre para la ruta.
Página 174
Se agrega la ruta a la aplicación mediante la adición del objeto Ruta a la propiedad rutas estáticas
de la clase RouteTable. La propiedad Rutas es un objeto RouteCollection que almacena toda las
rutas para la aplicación.
Patrones de URL
Un patrón de URL puede contener valores literales y marcadores de posición variables (referido
como URL parámetros). Los literales y marcadores de posición se encuentran en los segmentos de
la URL que son delimitado por el carácter de barra inclinada (/).
Cuando se hace una petición a la aplicación web, la URL se analiza en segmentos y marcadores de
posición, y los valores de las variables se proporcionan al controlador de solicitudes. Este proceso
es similar a la forma en que los datos en una cadena de consulta se analiza y se pasan al
controlador de solicitudes. En ambos casos, información variable se incluye en el URL y pasa al
controlador en forma de clave-valor pares. Para cadenas de consulta, tanto las claves y los valores
están en la URL. Para las rutas, las claves son la nombres de marcador de posición definidas en el
patrón de URL y sólo los valores están en la URL.
En un patrón de URL, se definen los marcadores de posición encerrándolos entre llaves ({y}).
Puedes definir más de un marcador de posición en un segmento, pero los marcadores de posición
deben estar separados por una valor literal. Por ejemplo, {idioma} - {país} / {acción} es un patrón
de ruta válida. Sin embargo, el lenguaje {} {país} / {acción} no es un patrón válido, porque no hay
literal valor o delimitador entre los marcadores de posición. Por lo tanto, el enrutamiento no
puede determinar dónde separar el valor del marcador de posición de la lengua a partir del valor
para el marcador de posición país.
Mapeo y Rutas Registro
Antes de que pueda incluir rutas a las páginas de la aplicación de ejemplo Wingtip Toys, debe
registrar las rutas cuando se inicia la aplicación. Para registrar las rutas, modificará la Controlador
de eventos Application_Start.
1. En el Explorador de soluciones de Visual Studio, encontrar y abrir la Global.asax.cs archivo.
2. Agregue el código resaltado en amarillo a la Global.asax.cs archivo de la siguiente manera:
Página 175
Cuando se inicia la aplicación de ejemplo Wingtip Toys, llama al evento Application_Start
manejador. Al final de este controlador de eventos, se llama al método RegisterCustomRoutes. los
Método RegisterCustomRoutes agrega cada ruta llamando al método MapPageRoute de el objeto
RouteCollection. Las rutas se definen utilizando un nombre de ruta, una ruta de URL y un URL
físico.
El primer parámetro ("ProductsByCategoryRoute") es el nombre de la ruta. Se utiliza para llamar a
la ruta cuando es necesario. El segundo parámetro ("Categoría / {categoryName}") define el
amigable URL de sustitución que puede ser dinámico basado en el código. Se utiliza esta ruta
cuando esté poblar un control de datos con enlaces que se genera en base a los datos. Una ruta se
muestra como de la siguiente manera:
El segundo parámetro de la ruta incluye un valor dinámico especificado por llaves ({}). En esto
caso, el categoryName es una variable que se utiliza para determinar la ruta de encaminamiento
adecuada.
Optativo
Puede que le resulte más fácil manejar su código moviendo los RegisterCustomRoutes método a
una clase separada. En la lógica de carpetas, crear una clase RouteActions separada. Movida
Página 176
el método RegisterCustomRoutes encima de las Global.asax.cs archivo en el nuevoClase
RoutesActions. Utilice la clase RoleActions y el método createAdmin como ejemplo de cómo
llamar al método RegisterCustomRoutes del Global.asax.cs archivo.
También puede haber notado la RegisterRoutes método de llamada con el objeto RouteConfig al
comienzo del controlador de eventos Application_Start. Esta llamada se realiza para implementar
enrutamiento predeterminado. Fue incluido como código por defecto al crear la aplicación
utilizando Visual Web Studio Forms plantilla.
Recuperación y Uso de Datos Ruta
Como se mencionó anteriormente, las rutas pueden ser definidos. El código que agregó a la
Application_Start controlador de eventos en el Global.asax.cs archivo de carga las rutas definibles.
Configuración de Rutas
Rutas requieren que usted agregue código adicional. En este tutorial, utilizará el modelo de unión
para recuperar un objeto RouteValueDictionary que se utiliza cuando se generan las rutas
utilizando datos de una control de datos. El objeto RouteValueDictionary contendrá una lista de
nombres de productos que pertenecer a una categoría específica de productos. Se crea un enlace
para cada producto en base a los datos y la ruta.
Habilitar rutas para Categorías y Productos
A continuación, podrás actualizar la aplicación para utilizar la ProductsByCategoryRoute para
determinar la ruta correcta para incluir para cada enlace categoría de producto. También debes
actualizar el ProductList.aspx página para incluir un enlace encaminado para cada producto. Los
enlaces se mostrarán como antes el cambio, sin embargo los enlaces usará ahora enrutamiento
URL.
1. En el Explorador de soluciones, abra el Site.Master página si no está ya abierto.
2. Actualizar el ListView control denominado "categoryList" con los cambios resaltados enamarillo,
por lo que el margen de beneficio aparece como sigue:
3. En el Explorador de soluciones, abra el ProductList.aspx página.
Página 177
4. Actualice el elemento ItemTemplate del ProductList.aspx página con las
actualizacionesresaltado en amarillo, por lo que el margen de beneficio aparece como
sigue:
5. Abra el código subyacente de ProductList.aspx.cs y añadir el espacio de nombres siguiente
comoresaltado en amarillo:
6. Vuelva a colocar el método GetProducts de los de código subyacente (ProductList.aspx.cs)
con elsiguiente código:
Página 178
Añadir Código de Detalle del producto
Ahora, actualice los de código subyacente (ProductDetails.aspx.cs) para el ProductDetails.aspx
página a utilizardatos de la ruta. Observe que el nuevo método obtenerProducto también acepta
un valor de cadena de consulta para la caso en el que el usuario tiene un vínculo marcado que
utiliza la no amigable URL mayor, no enrutado.
1. Reemplazar el método obtenerProducto de los de código subyacente
(ProductDetails.aspx.cs) con elsiguiente código:
Ejecutar la aplicación
Puede ejecutar la aplicación ahora para ver las rutas actualizadas.
1. Presione F5 para ejecutar la aplicación de ejemplo Wingtip Toys.El navegador se abre y muestra
el Default.aspx página.
2. Haga clic en el Productos enlace en la parte superior de la página.Todos los productos que se
muestran en la ProductList.aspx página. La dirección URL siguiente (usando sunúmero de puerto)
se muestra para el navegador:
http: // localhost: 1234 / Lista del producto
Página 179
3. A continuación, haga clic en el Coches enlace de categoría en la parte superior de la
página.Sólo los coches se muestran en la ProductList.aspx página. La dirección URL
siguiente (utilizando el puertonúmero) se muestra para el navegador:
http: // localhost: 1234 / Categoría / Coches
4. Haga clic en el enlace que contiene el nombre del primer coche que aparece en la página
("coche convertible")para mostrar los detalles del producto. La dirección URL siguiente
(usando su número de puerto) se muestra para el navegador:
http: // localhost: 1234 / Producto / Convertible% 20Car
5. A continuación, introduzca la siguiente URL no enrutado (usando su número de puerto) en
el navegador: http: // localhost: 1234 / ProductDetails.aspx productID = 2 El código aún
reconoce una dirección URL que incluye una cadena de consulta, para el caso donde un
usuario tiene un vínculo marcado.
Sumario
En este tutorial, que ha añadido rutas para las categorías y productos. Usted ha aprendido cómo
rutas puede ser integrado con los controles de datos que utilizan la unión modelo. En el siguiente
tutorial, poner en práctica el manejo de errores global.
Recursos adicionales
URL ASP.NET friendly
Página 180
Tratamiento de errores ASP.NET
Esta serie tutorial te enseñará los fundamentos de la construcción de una aplicación Web Forms
ASP.NET utilizando ASP.NET 4.5 y Microsoft Visual Studio Express 2013 para Web. Un estudio de
2013 del proyecto de Visual con fuente de C # código está disponible para acompañar esta serie de
tutoriales.
En este tutorial, modificará la aplicación de ejemplo Wingtip Toys para incluir el tratamiento de
errores y el registro de errores. Manejo de errores permitirá la aplicación para manejar con gracia
y errores mensajes de error pantalla en consecuencia. Registro de errores le permitirá encontrar y
corregir los errores que tienen ocurrió. Este tutorial se basa en el tutorial anterior "URL de
enrutamiento" y es parte de la punta del ala Serie de tutoriales Juguetes.
Lo que aprenderá:
¿Cómo añadir gestión de errores global para la configuración de la aplicación.
¿Cómo agregar el control de errores a nivel de aplicación, de página y códigos.
Cómo ingrese errores para su posterior revisión.
¿Cómo mostrar mensajes de error que no comprometan la seguridad.
Cómo implementar módulos de registro de error y manipuladores (ELMAH) el registro de errores.
Información general
Aplicaciones ASP.NET deben ser capaces de manejar los errores que se producen durante la
ejecución de manera coherente forma. ASP.NET utiliza el Common Language Runtime (CLR), que
proporciona una forma de notificar aplicaciones de errores de una manera uniforme. Cuando se
produce un error, se produce una excepción. Un excepción es cualquier error, condición o
comportamiento inesperado que un encuentros de aplicación.
En .NET Framework, una excepción es un objeto que hereda de la System.Exception clase. Una
excepción es lanzada desde un área de código donde se ha producido un problema. La excepción
se pasa a la pila de llamadas a un lugar donde la aplicación proporciona código para manejar la
excepción. Si la aplicación no maneja la excepción, el navegador se ve obligado a mostrar la
detalles de error.
Como práctica, controlar los errores en a nivel de código en try / catch / finally bloques dentro de
su código. Trate de colocar estos bloques de manera que el usuario puede corregir problemas en
el contexto en el cual Ocurren. Si el manejo del error bloques están demasiado lejos de donde se
produjo el error, se hace más difícil de proporcionar a los usuarios la información que necesitan
para solucionar el problema.
Excepción Clase
La clase de excepción es la clase base de la que heredan excepciones. La mayoría de los objetos de
excepción son las instancias de una clase derivada de la clase de excepción, tales como la clase
SystemException, la Clase IndexOutOfRangeException, o la clase ArgumentNullException. La
excepción
Página 181
clase tiene propiedades, como la propiedad StackTrace, la propiedad InnerException, y la
propiedad del mensaje, que proporcionan información específica acerca del error que se ha
producido.
Excepción Jerarquía de herencia
El tiempo de ejecución tiene un conjunto base de excepciones que se derivan de la clase
SystemException que el motor de ejecución emite cuando se encuentra una excepción. La mayoría
de las clases que heredan de la Clase de excepción, como la clase IndexOutOfRangeException y la
Clase ArgumentNullException, no implementan miembros adicionales. Por lo tanto, el más
información importante para una excepción se puede encontrar en la jerarquía de excepciones, las
nombre de la excepción, y la información contenida en la excepción.
Jerarquía Manejo de excepciones
En una aplicación Web Forms ASP.NET, las excepciones pueden ser manejados basados en un
manejo específico jerarquía. Una excepción puede ser manejado en los siguientes niveles:
Nivel 1. Aplicación
Nivel 2. Page
Nivel 3. Código
Cuando una aplicación se encarga de excepciones, información adicional sobre la excepción de
que es heredado de la clase Exception menudo se puede recuperar y se muestra al usuario. en
adición de la aplicación, la página y el nivel de código, también puede controlar las excepciones a
nivel de módulo HTTP y mediante el uso de un controlador personalizado IIS.
Nivel de Aplicación Tratamiento de errores
Usted puede controlar los errores por omisión a nivel de aplicación, ya sea mediante la
modificación de la aplicación configuración o mediante la adición de un controlador
Application_Error en el Global.asax archivo de su solicitud.
Usted puede controlar los errores por omisión y errores HTTP mediante la adición de una sección
customErrors a la Web.config archivo. La sección customErrors permite especificar una página
predeterminada que los usuariosser redirigido a cuando se produce un error. También permite
especificar páginas individuales para concreto errores de código de estado.
Página 182
Por desgracia, cuando se utiliza la configuración para redirigir al usuario a una página diferente,
que haces No se disponen de datos del error ocurrido.
Sin embargo, usted puede capturar los errores que se producen en cualquier lugar de su aplicación
mediante la adición de código para el Manejador Application_Error en el Global.asax archivo.
Nivel Página Control de errores Evento
Un controlador de nivel de página devuelve al usuario a la página donde se produjo el error, sino
porque las instancias de los controles no se mantienen, ya no va a ser nada en la página. A
proporcionar los detalles del error al usuario de la aplicación, se debe escribir específicamente el
error detalles a la página.
Usted normalmente utilizar un gestor de errores a nivel de página para iniciar la sesión no
controlada errores o para llevar al usuario a una página que puede mostrar información útil.
Este ejemplo de código muestra un controlador para el evento de error en una página Web
ASP.NET. Este controlador las capturas de todas las excepciones que no están ya manejadas
dentro de los bloques try / catch en la página.
Después de manejar un error, debe desactivarla mediante una llamada al método ClearError del
Servidor objeto (HttpServerUtility clase), de lo contrario, verá un error que tiene previamente
ocurrió.
Código Nivel tratamiento de errores
La sentencia try-catch consiste en un bloque try seguida de una o más cláusulas de captura, lo que
especifique manejadores para diferentes excepciones. Cuando se produce una excepción, la
lengua común runtime (CLR) busca la sentencia catch que maneja esta excepción. Si el momento
Página 183
método de ejecución no contiene un bloque catch, el CLR mira el método que llama método
actual, y así sucesivamente, hasta la pila de llamadas. Si no se encuentra un bloque catch, el CLR
muestra un mensaje de excepción no controlada para el usuario y detiene la ejecución del
programa.
El ejemplo de código siguiente se muestra una forma común de utilizar try / catch / finally para
manejar errores.
En el código anterior, el bloque try contiene el código que necesita ser protegido contra una
posible excepción. El bloque se ejecuta hasta que se lanza ya sea una excepción o el bloque se
completa exitosamente. Si bien una excepción FileNotFoundException o una excepción
IOException ocurre, la ejecución se transfiere a una página diferente. A continuación, el código
contenido en el último bloque se ejecuta, si ocurrió un error o no.
Adición de Registro de errores Soporte
Antes de agregar el control de errores de la aplicación de ejemplo Wingtip Toys, agregará el
registro de errores apoyo mediante la adición de una clase ExceptionUtility a la lógica de la
carpeta. Al hacer esto, cada vezla aplicación se encarga de un error, se añadirán los detalles del
error en el archivo de registro de errores.
1. Haga clic en la lógica de la carpeta y luego seleccione Agregar -> Nuevo elemento.El Agregar
nuevo elemento se muestra el cuadro de diálogo.
2. Seleccione el Visual C # -> Código grupo de plantillas a la izquierda. A continuación, seleccione la
clase de laLista de medio y el nombre ExceptionUtility.cs.
3. Elija Agregar. Se muestra el nuevo archivo de clase.
4. Reemplace el código existente con el siguiente:
Página 184
Cuando se produce una excepción, la excepción se puede escribir en un archivo de registro
excepción llamando al Método LogException. Este método toma dos parámetros, el objeto de
excepción y una cadena que contiene detalles sobre la fuente de la excepción. El registro de
excepción se escribe en el ErrorLog.txt archivo en el App_Data carpeta.
Adición de una página de error
En la aplicación de ejemplo Wingtip Toys, una página se utilizará para mostrar errores. La página
de error está diseñado para mostrar un mensaje de error seguro a los usuarios del sitio. Sin
embargo, si el usuario es un
Página 185
desarrollador hacer una petición HTTP que se sirve de forma local en la máquina donde el código
vidas, los detalles de error adicionales se mostrarán en la página de error.
1. Haga clic en el nombre del proyecto (Wingtip Toys) en el Explorador de soluciones y seleccione
Agregar ->Nuevo elemento.El Agregar nuevo elemento se muestra el cuadro de diálogo.
2. Seleccione el Visual C # -> Web grupo de plantillas a la izquierda. En la lista de medio,
seleccioneFormulario Web con páginas maestras, y el nombre de ErrorPage.aspx.
3. Haga clic en Agregar.
4. Seleccione el Site.Master archivo como la página principal, y luego seleccione Aceptar.
5. Vuelva a colocar el marcado actual por el siguiente:
6. Reemplace el código existente del código subyacente (ErrorPage.aspx.cs) para que
aparezca como de la siguiente manera:
Página 186
Página 187
Cuando aparezca la página de error, se ejecuta el controlador de eventos Page_Load. En el
Page_Load manejador, la ubicación de donde se determina el error fue manejado primero.
Entonces, el último error producido se determina mediante una llamada al método GetLastError
del objeto Server. Si la excepción ya no existe, se crea una excepción genérica. Entonces, si la
solicitud HTTP se hizo a nivel local, todo Se muestran los detalles del error. En este caso, sólo el
equipo local que ejecuta la aplicación web verá estos detalles del error. Después de la información
de error se ha mostrado, se añade el error en el registro archivo y el error se borra del servidor.
Mostrando mensajes de error no controladas para la Aplicación
Mediante la adición de una sección customErrors al Web.config archivo, puede manejar
rápidamente los errores simplesque se producen en toda la aplicación. También puede especificar
cómo manejar los errores en función de su valor del código de estado, como 404 - File not found.
Actualización de la configuración
Actualización de la configuración mediante la adición de una sección customErrors al Web.config
archivo.
1. En el Explorador de soluciones, encontrar y abrir el Web.config archivo en la raíz de los Juguetes
Wingtipaplicación de ejemplo.
2. Agregue la sección customErrors al Web.config archivo dentro del nodo <system.web> como
sigue:
2. Guarde el archivo Web.config archivo.
La sección customErrors especifica el modo, que se fija en "On". También especifica el
defaultRedirect, que cuenta la aplicación que la página para navegar hasta cuando se produce un
error.
Página 188
Además, se ha añadido un elemento de error específico que especifica cómo manejar un error 404
cuando no se encuentra una página. Más adelante en este tutorial, agregará el manejo de errores
adicionales que capturar los detalles de un error a nivel de aplicación.
Ejecutar la aplicación
Puede ejecutar la aplicación ahora para ver las rutas actualizadas.
1. Presione F5 para ejecutar la aplicación de ejemplo Wingtip Toys.El navegador se abre y muestra
el Default.aspx página.
2. Escriba el siguiente URL en el navegador (asegúrese de utilizar el número de puerto):http: //
localhost: 1234 / NoPage.aspx
3. Revise la ErrorPage.aspx muestra en el navegador.
Cuando usted solicita la NoPage.aspx página, que no existe, la página de error mostrará elmensaje
de error simple y la información de error detallado si los detalles adicionales están disponibles. Sin
embargo, si el usuario solicita una página inexistente desde una ubicación remota, la página de
error que sólo se mostrará el mensaje de error en rojo.
Incluyendo una excepción para los propósitos de prueba
Página 189
Para comprobar cómo funcionará su aplicación cuando se produce un error, puede crear
deliberadamente condiciones de error en ASP.NET. En la aplicación de ejemplo Wingtip Toys,
usted lanzar una prueba excepción cuando se carga la página por defecto para ver qué pasa.
1. Abra el código subyacente del Default.aspx página en Visual Studio.El Default.aspx.cs se
mostrará la página de código subyacente.
2. En el controlador de Load, agregue código para que el manejador aparece como sigue:
Es posible crear varios tipos diferentes de excepciones. En el código anterior, que está creando
una InvalidOperationException cuando el Default.aspx se carga la página.
Ejecutar la aplicación
Puede ejecutar la aplicación para ver cómo la aplicación controla la excepción.
1. Presione CTRL + F5 para ejecutar la aplicación de ejemplo Wingtip Toys.La aplicación tira el
InvalidOperationException.
Nota
Usted debe presionar CTRL + F5 para visualizar la página sin romper en el código para ver elorigen
del error en Visual Studio.
Página 190
2. Revise la ErrorPage.aspx muestra en el navegador.
Como se puede ver en los detalles del error, la excepción fue atrapado por la sección CustomError
en el Web.config archivo.
Adición de aplicaciones de nivel de tratamiento de errores
En lugar de atrapar la excepción usando la sección customErrors en el Web.config archivo,
dondeusted ganar poca información acerca de la excepción, puede interceptar el error a nivel de
aplicación y recuperar los detalles del error.
1. En el Explorador de soluciones, encontrar y abrir la Global.asax.cs archivo.
2. Añadir un Application_Error manejador para que aparezca la siguiente manera:
Página 191
Cuando se produce un error en la aplicación, el manejador Application_Error se llama. En esto
manejador, se recupera y se revisó la última excepción. Si la excepción fue controlada y la
excepción contiene detalles del centro de la excepción (es decir, InnerException no es nulo), el
transferencias de solicitud de ejecución de la página de error en el que se muestran los detalles de
la excepción.
Ejecutar la aplicación
Puede ejecutar la aplicación para ver los detalles del error adicionales proporcionados por el
manejo de la excepción a nivel de aplicación.
1. Presione CTRL + F5 para ejecutar la aplicación de ejemplo Wingtip Toys.La aplicación tira el
InvalidOperationException.
Página 192
2. Revise la ErrorPage.aspx muestra en el navegador.
Adición de página de nivel Control de errores
Puede agregar el control de errores a nivel de página a una página ya sea mediante el uso de la
adición de un ErrorPage atribuir a la directiva @ Page de la página, o mediante la adición de un
controlador de eventos Page_Error a la código subyacente de una página. En esta sección,
agregará un controlador de eventos Page_Error que lo hará transferir la ejecución a la
ErrorPage.aspx página.
1. En el Explorador de soluciones, encontrar y abrir la Default.aspx.cs archivo.
2. Agregue un controlador Page_Error para que el código subyacente aparece como sigue:
Página 193
Cuando se produce un error en la página, el controlador de eventos Page_Error se llama. En este
controlador, el se recupera y revisado última excepción. Si se produce un
InvalidOperationException, la Controlador de eventos Page_Error transfiere la ejecución a la
página de error en los detalles de la excepción se muestran.
Ejecutar la aplicación
Puede ejecutar la aplicación ahora para ver las rutas actualizadas.
1. Presione CTRL + F5 para ejecutar la aplicación de ejemplo Wingtip Toys.La aplicación tira el
InvalidOperationException.
Página 194
2. Revise la ErrorPage.aspx muestra en el navegador.
3. Cierre la ventana del navegador.
Extracción de la Excepción utilizados para las pruebas
Para permitir la aplicación de ejemplo Wingtip Toys para funcionar sin tirar la excepción que
agregado anteriormente en este tutorial, quitar la excepción.
1. Abra el código subyacente del Default.aspx página.
2. En el controlador de Page_Load, quitar el código que produce la excepción para que el
manejador aparece como sigue:
Página 195
Agregar código-Nivel de registro de error
Como se mencionó anteriormente en este tutorial, puede añadir declaraciones try / catch para
intentar ejecutar un sección del código y manejar el primer error que se produce. En este ejemplo,
sólo escribir el detalles del error en el archivo de registro de errores de manera que el error se
pueden revisar más tarde.
1. En el Explorador de soluciones, en la lógica de carpetas, busque y abra la PayPalFunctions.cs
archivo.
2. Actualizar el método HttpCall para que el código aparece como sigue:
El código anterior llama al método LogException que se contiene en el ExceptionUtility clase.
Añadiste el ExceptionUtility.cs archivo de clase a la lógica carpeta anteriormente en este tutorial.
los Método LogException toma dos parámetros. El primer parámetro es el objeto de excepción. los
segundo parámetro es una cadena que se utiliza para reconocer la fuente del error.
Inspección de la Información de Registro de errores
Como se mencionó anteriormente, puede utilizar el registro de errores para determinar qué
errores en su aplicación debe fijarse primero. Por supuesto, sólo los errores que han sido
atrapados y escritas a el registro de errores se grabará.
Página 196
1. En el Explorador de soluciones, encontrar y abrir la ErrorLog.txt archivo en el App_Data
carpeta.Puede que tenga que seleccionar la opción "Mostrar todos los archivos opción" o "Refresh
opción" de la parte superiordel Explorador de soluciones para ver la ErrorLog.txt archivo.
2. Revise el registro de error que aparece en Visual Studio:
Mensajes de error seguras
Es importante tener en cuenta que cuando su aplicación muestra mensajes de error, no se debe
darinformación de distancia que un usuario malintencionado podría resultar útil en el ataque a su
aplicación. por ejemplo, si su aplicación sin éxito intenta escribir en una base de datos, no debe
mostrar un mensaje de error que incluye el nombre de usuario que está utilizando. Por esta razón,
un error genérico mensaje en rojo se muestra al usuario. Todos los detalles del error adicionales
sólo se expresan en números desarrollador en el equipo local.
Usando ELMAH
ELMAH (Módulos de registro de error y manipuladores) es un centro de registro de errores que se
conecta a su Aplicación ASP.NET como un paquete NuGet. ELMAH proporciona las siguientes
capacidades:
4. Registro de excepciones no controladas.
5. Una página web para ver todo el registro de excepciones recodificados no controlada.
Página 197
6. Una página web para ver los detalles completos de cada excepción conectado.
7. Una notificación por correo electrónico de cada error en el momento en que se produce.
8. Un feed RSS de los últimos 15 errores del registro.
Antes de poder trabajar con el ELMAH, debe instalarlo. Esto es fácil de usar el NuGet
paqueteinstalador. Como se mencionó anteriormente en esta serie de tutoriales, NuGet es una
extensión de Visual Studio que hace que sea fácil de instalar y actualizar las bibliotecas y
herramientas de código abierto en Visual Studio.
1. Dentro de Visual Studio, desde el Herramientas menú, seleccione Biblioteca Package Manager -
>Administrar paquetes NuGet para solución.
2. La Administrar NuGet Paquetes cuadro de diálogo se muestra dentro de Visual Studio.
3. En el Administrar NuGet Paquetes cuadro de diálogo, expanda en línea a la izquierda, y luego
seleccionenuget.org. Entonces, encontrar e instalar el ELMAH paquete de la lista de paquetes
disponibles en línea.
4. Usted necesita tener una conexión a Internet para descargar el paquete.
Página 198
5. En el Seleccione Proyectos cuadro de diálogo, asegúrese de que el WingtipToys se selecciona la
selección, ya continuación, haga clic en Aceptar.
6. Haga clic en Cerrar en el Manejo de NuGet Paquetes cuadro de diálogo si es necesario.
7. Si las solicitudes de Visual Studio que se vuelva a cargar todos los archivos abiertos, seleccionar
"Sí a todo".
8. El paquete ELMAH agrega entradas para sí mismo en el Web.config archivo en la raíz de su
proyecto. Si Visual Studio le pregunta si desea volver a cargar la modificación Web.config archivo,
haga clic en Sí.
ELMAH ya está listo para almacenar los errores no controlados que se producen.
Visualización de la ELMAH Conectarse
Visualización del registro ELMAH es fácil, pero primero va a crear una excepción no controlada que
será registrada en el registro de ELMAH.
1. Presione CTRL + F5 para ejecutar la aplicación de ejemplo Wingtip Toys.
2. Para escribir una excepción no controlada en el registro ELMAH, navegue en su navegador para
la siguiente URL (usando su número de puerto): http: // localhost: 1234 / NoPage.aspx Se mostrará
la página de error.
3. Para mostrar el registro ELMAH, navegue en su navegador para la siguiente URL (usando su
número de puerto):
Página 199
http: // localhost: 1234 / elmah.axd
Sumario
En este tutorial, que ha aprendido sobre el manejo de errores a nivel de aplicación, el nivel de
página, y el nivel de código. También ha aprendido cómo iniciar sesión errores manejados y no
manejados para más tarde reseña. Añadiste la utilidad ELMAH proporcionar tala excepción y
notificación a su aplicación utilizando NuGet. Además, usted ha aprendido acerca de la
importancia de error segura mensajes.
Conclusión
Esto completa el ASP.NET 4.5 Wingtip Toys serie de tutoriales. Para obtener más información
acerca de la nueva Características Formularios Web disponibles en ASP.NET 4.5 y Studio 2013
Visual, vea ASP.NET y Web Herramientas para Visual Studio 2013 Release Notes.
Recursos adicionales
Registro Detalles de error con monitoreo ASP.NET Salud
ELMAH