Microsoft Visual Estudio 2010 Y SQL Server

Apuntes de Clase


Resumen, 2017

238 Páginas


Extracto


CONTENIDO

INTRODUCCIÓN

1. CONCEPTOS PREVIOS
1.1 CONTROLES DE SERVIDOR
1.2 CONTROLES DE VALIDACIÓN
1.3 CONTROLES AJAX
1.4 MASTER PAGES
1.4.1 ¿Qué son los Master Pages?
1.4.2 Definición de un Master Page
1.5 WEB SERVICES
1.5.1 Características de los Web Services
1.5.2 Estructura Interna de los Servicios Web
1.5.3 Tipos de Servicios Web
1.5.4 Creación de Servicios Web con .NET
1.6 CONTROLES DE INICIO DE SESIÓN
1.7 CONEXIÓN A UNA BASE DE DATOS DE SQL SERVER DESDE ASP.NET
1.7.1 Proyecto Saber Pro
1.7.2 Insertar un nuevo registro
1.7.3 Uso del GridView para trabajar tablas
1.7.4 Pedir confirmación del botón Eliminar en el GridView
1.7.5 Insertar botón Nuevo en el GridView
1.7.6 Insertar un DropDownList al editar un registro
1.7.7 Validación de Usuarios y perfil
1.7.8 Envío de Correo desde ASP.NET
1.7.9 Módulo Entrenador Pruebas Saber Pro
1.7.10 Seleccionar aleatoriamente registros de una tabla
1.7.11 Mostrar una imagen de una tabla en una grilla
1.7.12 Validar DropDownList insertado dentro de un GridView
1.8 Proyecto Banco de Proyectos de Grado
1.8.1 Cambiar el MasterPage dinámicamente
1.8.2 La función InsertarRegistro
1.8.3 Pedir confirmación del botón eliminar en el GridView
1.8.4 Módulo Administración de Áreas de Investigación
1.8.5 Módulo administración de líneas de investigación
1.8.6 Agregar en la grilla un campo de descripción de otra tabla
1.8.7 Seleccionar valor de una celda de un GridView
1.9 GENERACIÓN DE REPORTES
1.10 GENERACIÓN DE GRÁFICOS

2. SQL SERVER
2.1 INTRODUCCIÓN A SQL
2.1.1 ¿Qué es SQL?
2.2 LAS CONSULTAS SIMPLES
2.2.1 Sintaxis de la SELECT (para consultas simples)
2.2.2 Ordenar las filas (ORDER BY)
2.2.3 Las cláusulas DISTINCT / ALL
2.2.4 La cláusula TOP
2.2.5 La cláusula WHERE
2.2.5 Condiciones de selección
2.2.6 Caracteres Comodines
2.3 Las consultas multitablas
2.3.1 La unión de tablas
2.3.2 La composición de tablas
2.3.3 Las funciones de Columna
2.3.4 La cláusula GROUP BY
2.3.5 La cláusula HAVING
2.4 PROCEDIMIENTOS ALMACENADOS
2.4.1 Creación Procedimiento Almacenado (Sin Parámetros De Entrada)
2.4. 2 Ejecutar Un Procedimiento Almacenado
2.4.3 Forma General de un Procedimiento Almacenado
2.4.4 Modificación de un Procedimiento Almacenado
2.5 TRIGGERS EN TRANSACT SQL
2.5.1 Los Desencadenadores DML
2.5.2 Los desencadenadores DDL
2.5.3 Ejemplo práctico de cómo crear un Triggers en Transact SQL
2.6 TRANSACCIONES EN TRANSACT SQL
2.6.1 Transacciones implícitas y explicitas
2.6.2 Transacciones anidadas
2.6.3 Puntos de recuperación (SavePoint)
2.6.4 Ejercicio de transacciones
2.7 FUNCIONES EN TRANSACT SQL
2.7.1 Función Escalar
2.7.2 Funciones con valores de tabla de varias instrucciones
2.7.3 Funciones con valores de tabla en línea
2.8 CURSORES EN TRANSACT SQL
2.8.1 Ventajas de los Cursores
2.8.2 Estructura de un Cursor
2.8.3 Asignación y Asociación de Cursores
2.8.4 Procedimientos Almacenados y Cursores
2.9 SQL DINÁMICO EN TRANSACT SQL
2.10 CERTIFICADOS DIGITALES
2.10.1 Firma Digital
2.10.2 Utilizar Certificados Digitales Desde .NET
2.10.3 Consultar la información del certificado y sus extensiones
2.10.4 Encriptación y Desencriptación Utilizando un Certificado

Agradecimientos

Este trabajo se ha llevado a cabo gracias al aporte de nuestros ex - alumnos y alumnos y en especial a la Universidad Libre, lo cual nos ha llevado a cumplir un sueño de tanto años que por fin hemos culminado y esperamos que sea un aporte a la comunidad como herramienta de apoyo de consulta.

Fredys Alberto Simanca Herrera Fabián Blanco Garrido

INTRODUCCIÓN

Hoy en día las capacidades de comunicación, el trabajo en grupo y los conocimientos técnicos, son iniciativas que apoyan a la adaptación de nuestro país a las nuevas tecnologías de aprendizaje, es por ello que se pretende con este material de clase apoyar el desarrollo de éstas capacidades.

Este libro se presenta como el resultado de la experiencia que se ha desarrollado en la asignatura Electiva Profesional VI (ASP.NET - SQL Server) en la Universidad Libre y al desarrollo de proyectos en el sector empresarial.

Con esta recopilación de apuntes se busca que los estudiantes conozcan los controles más utilizados en ASP.NET, como también realizar las operaciones básicas de las bases de datos: crear, modificar y borrar tablas, actualizar datos, seleccionar datos de una tabla, establecer relaciones entre tablas para la selección de dos o más tablas y realizar consultas avanzadas de bases de datos desde ASP.NET, conocer la conceptualización de los Servicios Web, procedimientos almacenados, funciones con Transact - SQL, Triggers, Transacciones en Transact SQL y Cursores.

A medida que se va siguiendo el material se encontraran ejemplos prácticos buscando con ello aclarar los conceptos teóricos aplicando la práctica, y a su vez sean referentes para ser aplicados en otros proyectos de ambientes laborales, tomando como base las situaciones planteadas en los ejercicios que se encuentran en el presente libro.

Los Autores

1. CONCEPTOS PREVIOS

1.1 CONTROLES DE SERVIDOR

DropDownList1. Permite a los usuarios realizar una selección en una lista desplegable de selección única. La lista desplegable puede contener cualquier número de elementos.

Utilice el control DropDownList para crear un control de lista desplegable de selección única. Para controlar la apariencia del control DropDownList, establezca el valor de las propiedades BorderColor, BorderStyle y BorderWidth.

Para especificar los elementos que van a figurar en el control DropDownList, coloque un elemento ListItem por cada entrada entre las etiquetas de apertura y de cierre del control DropDownList.

El control DropDownList también admite el enlace de datos. Para enlazar el control a un origen de datos, cree primero un origen de datos, como una lista ArrayList, que contenga los elementos que se van a mostrar en el control. A continuación, utilice el método DataBind para enlazar el origen de datos al control DropDownList. Utilice las propiedades DataTextField y DataValueField para especificar qué campo del origen de datos se va a enlazar a las propiedades Text y Value, respectivamente, de cada elemento de lista del control. Ahora, el control DropDownList mostrará la información del origen de datos. Esta opción la veremos en funcionamiento cuando utilicemos el control en nuestro aplicativo.

La propiedad que se tiene que tener en cuenta es la SelectedIndex para determinar mediante programación el índice del elemento seleccionado por el usuario en el control DropDownList. A continuación, se podrá utilizar el índice para recuperar el elemento seleccionado de la colección Items del control, la otra propiedad es la propiedad SelectedValue, esta nos determina el valor del elemento seleccionado.

Ejemplo:

Inserte los controles que observa en la imagen en un Web Forms (TextBox1, Button1 y DropDownList1).

illustration not visible in this excerpt

Ingresemos en el botón el código que se observa en la imagen.

illustration not visible in this excerpt

Ejecute la aplicación (F5) e ingrese valores en el Textbox y de clic en el botón, observe el resultado.

De esta forma se agregan ítems al DropDownList por medio de código, se puede de igual manera agregar valores de manera manual, para ello, seleccione el Control, de Clic en la pestaña ( ), seleccione Editar Elementos, y observe la siguiente imagen.

illustration not visible in this excerpt

Observe las propiedades Text y Value, estas son las dos propiedades que luego podremos evaluar cuando se seleccione una opción. Clic en Aceptar.

Si queremos programar los eventos del DropDownList, debemos de activar el Habilitar AutoPostBack.

illustration not visible in this excerpt

Insertemos un Label1, al frente del control para mostrar el Ítem seleccionado.

El código es el siguiente:

illustration not visible in this excerpt

En este caso el mismo valor del SelectedItem es igual al SelectedValue, edite los elementos del Control nuevamente y cambie la propiedad Value, cuando se traen datos desde una base de datos muchas veces estas dos propiedades deben de tener valores distintos, supóngase que al usuario se le desea mostrar los nombres de unos clientes, pero internamente el valor que nos interesa es el número de documento del cliente, pero como nuestro usuario no se sabe los números de documentos lo que se le debe de mostrar a él, son los nombres. El siguiente código nos agrega opciones diferentes a text como a value, tiene la misma funcionalidad cuando se desea hacer con base de datos.

illustration not visible in this excerpt

ListBox. El componente ListBox tiene el mismo comportamiento que el control DropDownList.

FileUpload. Crea un control <input type=file> (que por lo general se muestra como un control de cuadro de texto y un botón de examinar) que permite a los usuarios seleccionar un archivo para cargarlo en el servidor.

Ejemplo: En el ejemplo siguiente se muestra cómo crear un control FileUpload que guarda los archivos en una ruta de acceso especificada en código. Se llama al método SaveAs para guardar el archivo en el servidor en la ruta de acceso especificada. La aplicación ASP.NET que contiene el ejemplo debe tener derechos de escritura en el directorio especificado del servidor. Se puede conceder explícitamente derecho de escritura a la cuenta en que se está ejecutando la aplicación, en el directorio en que se van a guardar los archivos cargados. Si se prefiere, se puede aumentar el nivel de confianza que se concede a la aplicación ASP.NET.

Diseñe una vista como la de la imagen.

illustration not visible in this excerpt

Seleccione el Botón (UpLoad) y en el código ingrese el siguiente:

illustration not visible in this excerpt

Ejecute la aplicación, el resultado debe ser como se observa en la imagen.

illustration not visible in this excerpt

Hagamos ahora unas pequeñas modificaciones para tener información sobre el archivo. Modifique el código y déjelo como se ve en la imagen.

illustration not visible in this excerpt

Ejecute y observe los cambios.

1.2 CONTROLES DE VALIDACIÓN

Se usan para validar los valores que se especifican en otros controles de la página. Los controles de validación realizan la validación en el cliente, el servidor o ambos, según las capacidades del explorador en el que se muestra la página. Los controles de validación proporcionan las ventajas siguientes:

- Puede asociar uno o varios controles de validación a cada control que desee validar.  La validación se realiza cuando se envía el formulario de la página.
- Puede especificar mediante programación si debería realizarse la validación, lo que resulta de utilidad si desea proporcionar un botón de cancelación para que el usuario pueda salir sin tener que rellenar con datos válidos todos los campos.

Los controles de validación detectan automáticamente si se debe realizar la validación en el cliente o en el servidor.

RequiredFieldValidator. El control RequiredFieldValidator se utiliza para convertir un control de entrada en un campo obligatorio. El control de entrada no supera la validación si el valor que contiene no cambia con respecto al valor inicial cuando se realizó la validación. Esto impide que el usuario deje el control de entrada asociado sin modificar. De manera predeterminada, el valor inicial es una cadena vacía (""), lo que indica que se debe especificar un valor en el control de entrada para que supere la validación.

CompareValidator . El control CompareValidator permite comparar el valor especificado por el usuario en un control de entrada (por ejemplo, un control TextBox) con el valor especificado en otro control de entrada o con un valor constante. También se puede usar el control CompareValidator para determinar si el valor especificado en un control de entrada se puede convertir al tipo de datos especificado por la propiedad Type.

Especifique el control de entrada que desee validar estableciendo la propiedad ControlToValidate. Si desea comparar un control de entrada específico con otro control de entrada, establezca la propiedad ControlToCompare en el nombre del control que desee comparar.

En lugar de comparar el valor de un control de entrada con otro control de entrada, se puede comparar el valor de un control de entrada con un valor constante. Especifique el valor constante que va a comparar estableciendo la propiedad ValueToCompare.

CustomValidator. El control CustomValidator permite crear un control de validación con lógica de validación personalizada. Por ejemplo, se puede crear un control de validación que compruebe si el valor especificado en un cuadro de texto es un número par.

Los controles de validación siempre realizan la comprobación de validación en el servidor. También tienen una implementación completa en el cliente que permite a los exploradores compatibles con DHTML (como Microsoft Internet Explorer 4.0 ó posterior) realizar la validación en el cliente. La validación en el cliente mejora el proceso de validación ya que se comprueban los datos proporcionados por el usuario antes de enviarlos al servidor. De este modo se pueden detectar los errores en el cliente antes de enviar el formulario y se evita la acción de ida y vuelta de la información necesaria para la validación en el servidor.

Para crear una función de validación de servidor, proporcione un controlador para el evento ServerValidate que realiza la validación. Se puede obtener acceso a la cadena del control de entrada que se va a validar utilizando la propiedad Value del objeto ServerValidateEventArgs que se pasa al controlador de eventos como parámetro. El resultado de la validación se almacena después en la propiedad IsValid del objeto ServerValidateEventArgs.

Para crear una función de validación en el cliente, agregue primero la función de validación en el servidor que se ha descrito anteriormente. A continuación, agregue a la página .aspx la función de script de validación en el cliente.

Si utiliza Visual Basic, la función debe tener el siguiente formato:

Sub ValidationFunctionName (source, arguments)

Si utiliza JScript, la función deberá tener la siguiente forma: Function ValidationFunctionName (source, arguments)

Utilice la propiedad ClientValidationFunction para especificar el nombre de la función de script de validación de cliente que está asociada al control CustomValidator. Como la función de script se ejecuta en el cliente, debe estar en un lenguaje que el explorador de destino admita, como Visual Basic o JScript.

Al igual que en el caso de la validación en el servidor, la propiedad Value del parámetro arguments obtiene acceso al valor que se va a validar. Para devolver el resultado de la validación, establezca la propiedad IsValid del parámetro arguments.

RangeValidator. El control RangeValidator permite comprobar si la entrada de un usuario se encuentra entre un límite inferior y un límite superior especificados. Se pueden comprobar intervalos entre parejas de números, caracteres alfabéticos y fechas. Los límites se expresan como constantes.

Utilice la propiedad ControlToValidate para especificar el control de entrada que se va a validar. Las propiedades MinimumValue y MaximumValue especifican los valores mínimo y máximo del intervalo válido, respectivamente.

La propiedad Type se utiliza para especificar el tipo de datos de los valores que se van a comparar. Los valores que se van a comparar se convierten a este tipo de datos antes de realizarse cualquier comparación.

RegularExpressionValidator. El control RegularExpressionValidator se utiliza para determinar si el valor de un control de entrada coincide con un patrón definido por una expresión regular. Este tipo de validación permite comprobar secuencias de caracteres previsibles, como las de los números de la seguridad social, las direcciones de correo electrónico, los números de teléfono y los códigos postales, entre otras.

ValidationSummary. El control ValidationSummary permite resumir los mensajes de error de todos los controles de validación de una página Web en una sola ubicación. El resumen puede aparecer en forma de lista, lista con viñetas o un único párrafo, en función del valor de la propiedad DisplayMode. El mensaje de error que se muestra en el control ValidationSummary para cada control de validación de la página viene especificado por la propiedad ErrorMessage de cada control de validación. Si no está establecida la propiedad ErrorMessage del control de validación, no se mostrará ningún mensaje de error en el control ValidationSummary correspondiente a dicho control de validación. También se puede especificar un título personalizado en la sección de encabezado del control ValidationSummary estableciendo la propiedad HeaderText.

Vamos a ver entonces un ejemplo de cómo funcionan los controles de validación. Descargue de internet o utilice otro medio para crear una hoja de estilo (css).

Copie el archivo css a la raíz de su sitio web, para adjuntar la hoja de estilos a su página, vaya al menú contextual a Formato Adjuntar hoja de estilos.

illustration not visible in this excerpt

Seleccione la hoja de estilo, luego de clic en Aceptar. Después de haber adjuntado la hoja de estilo hagamos el siguiente diseño:

illustration not visible in this excerpt

Ahora en vista diseño, vamos a arrastrar los siguientes controles de Validación, tal y como se puede observar en la figura.

illustration not visible in this excerpt

Vamos a usar los siguientes controles de validación: RequiredFieldValidator, RangeValidator, RegularExpresionValidator, Compare Validator y por último ValidationSumary.

illustration not visible in this excerpt

En el control ValidatorSummary no hay necesidad de estipular nada, ya que lo que hace es sacar un resumen de todos los errores presentados.

Al final debe quedar un diseño como el que se puede observar a continuación.

illustration not visible in this excerpt

Ejecute la aplicación y pruebe los resultados.

1.3 CONTROLES AJAX

Visual Studio 2010 y ASP.NET 3.5 permite el diseño y desarrollo de aplicaciones con soporte AJAX.

AJAX son las siglas de Asynchronous JavaScript And XML, o lo que es lo mismo, JavaScript y XML asíncrono, que en otras palabras, es la capacidad de las aplicaciones Web de establecer un camino de comunicación asíncrono con el servidor y en segundo plano, para nuestras aplicaciones web.

En realidad, esta técnica tiene mucha importancia con aspectos como SOA (Service Oriented Architecture) y RIA (Rich Internet Applications).

Aunque no debe haber problemas en el uso de AJAX ya que la mayoría de los navegadores Web lo soportan, hay que tener en cuenta que existen navegadores Web que no soportan AJAX.

Para crear aplicaciones AJAX en aplicaciones Web con Visual Studio 2010, disponemos de diferentes objetos que encontraremos dentro del Cuadro de herramientas tal y como se indica en la siguiente imagen:

illustration not visible in this excerpt

Atendiendo al Cuadro de herramientas, encontramos diferentes objetos AJAX, como son el objeto ScriptManager, ScriptManagerProxy, Timer, UpdatePanel y UpdateProgress.

A continuación se expone un ejemplo sencillo del uso de AJAX en aplicaciones Web.

Partimos de una aplicación Web ASP.NET 3.5 dentro de la cuál insertaremos dos controles Label y un control Button.

Los nombres de los controles Label son HoraActual y Mensaje. El objetivo es mostrar en HoraActual la hora actual del sistema, y en Mensaje un mensaje de texto que nos servirá para indicar que el código pasa por donde queremos.

Nuestra aplicación Web en la fase de diseño tendrá un aspecto similar al que se indica en la siguiente imagen:

illustration not visible in this excerpt

A continuación, indicaremos el código de nuestra aplicación Web:

illustration not visible in this excerpt

Este ejemplo, mostrará una determinada información la primera vez que se ejecuta nuestra aplicación y mostrará la siguiente información:

illustration not visible in this excerpt

Si pulsamos el botón, la aplicación realizará un refresco de toda la aplicación Web y ejecutará un camino de ida y vuelta refrescando todos los objetos de la aplicación. El resultado una vez ejecutado el control Button es el siguiente:

illustration not visible in this excerpt

En este proceso no obstante, no hemos utilizado AJAX aún.

Como vemos, este es el mecanismo tradicional de ejecutar aplicaciones Web, con caminos de ida y vuelta y refresco de toda la página web completa.

Imaginemos entonces que tenemos varias fuentes de datos asociadas a nuestra página Web y que cada vez que refrescamos, se vuelven a lanzar todas las acciones de consulta sobre las bases de datos.

En la red se produciría un gran consumo de ancho de banda, y además, penalizaríamos seguramente al servidor Web.

La idea de AJAX es la de refrescar únicamente aquella información que queremos refrescar.

Por lo tanto, basándonos en el ejemplo que hemos desarrollado, vamos a valernos de los controles AJAX de Visual Studio 2010 y vamos a crear una aplicación que refresque únicamente aquella información que queremos refrescar, y no toda la página Web.

Para hacer esto, vamos a insertar primero un control ScriptManager, y posteriormente un control UpdatePanel. Estos dos controles están dentro del grupo de controles de AJAX.

Una vez hecho esto, insertaremos los controles Button y Label de nombre Mensaje en el control UpdatePanel.

Nuestra aplicación Web quedará en el entorno de diseño tal y como se indica a continuación:

illustration not visible in this excerpt

Como el código de nuestra aplicación es el mismo, a continuación ejecutaremos nuestra aplicación Web:

illustration not visible in this excerpt

Pulsaremos el control Button de nuestra aplicación y observaremos el resultado obtenido, que será similar al que se indica en la siguiente imagen:

illustration not visible in this excerpt

Atendiendo a los resultados, podemos deducir que mientras en el primer caso en el que no usábamos AJAX, el resultado de la página web era un camino de ida y vuelta refrescando toda la página web, en el uso de AJAX ese camino de ida y vuelta se ha reducido únicamente a aquellos controles u objetos que hemos colocado dentro del control UpdatePanel.

Este control actúa como repositorio contenedor de aquellos controles que queremos actualizar, permitiendo que el resto de la aplicación no quede afectada por esta actualización.

Pruebe por ejemplo colocando un textbox por fuera del control UpdatePanel para que note mejor como la página no se refresca al momento de dar clic sobre el botón.

1.4 MASTER PAGES

Lo más habitual cuando se crea una aplicación o un sitio Web es que las páginas que lo conforman sean todas bastante parecidas o al menos que existan varios grupos de páginas similares que sólo varían ciertos contenidos entre ellas. Por ejemplo, puede haber una categoría de páginas para mostrar artículos en el que todas son iguales excepto por el contenido del propio artículo en su parte central, mientras que en otra zona de la aplicación el diseño es completamente diferente pero sus páginas se parecen todas entre sí.

Por ejemplo, la siguiente figura muestra capturas de dos páginas pertenecientes al portal MSDN:

illustration not visible in this excerpt

dos páginas similares en MSDN

Ambas páginas difieren únicamente en el contenido y los menús que muestran en el lateral (los banners del lateral son rotativos), y conservan una estática y una serie de elementos que permanecen constantes en todas las páginas del sitio.

Tradicionalmente para conseguir esta similitud entre páginas había que crearlas individualmente o recurrir a artificios propios como por ejemplo el de utilizar archivos de inclusión para renderizar ciertas partes de las páginas desde un mismo origen en disco. Aún en este último caso la capacidad de modificación era limitada y normalmente se reducía a las cabeceras y pies de las páginas y poco más. En el primero de los casos (retocar una a una) cualquier cambio estético de un sitio medianamente grande era poco menos que una locura de realizar.

A partir de ASP.NET 2.0 se ofrece una nueva característica destinada a paliar esta tradicional carencia y permite definir páginas cuyo aspecto y funcionalidad deriva de unas páginas especiales comunes llamadas Páginas principales o Master Pages.

1.4.1 ¿Qué son las Master Pages?

Una Master Page proporciona una forma de definir una estructura e interfaz común para un grupo de páginas pertenecientes a un mismo sitio Web. Esta estructura común se almacena en un único archivo independiente. Ello facilita mucho su mantenimiento puesto que, para actualizar todas las páginas que lo utilizan, basta con editar dicho archivo.

Una MP es en realidad como una página ASPX normal que contiene código, elementos HTML y controles Web de servidor. Sin embargo posee una extensión diferente (.master) y utilizan una directiva <% @ master %> en lugar de una directiva <% @ page %>. Por lo demás se pueden considerar prácticamente equivalentes. Esto es importante porque significa que ya sabemos todo lo necesario para crearlas.

Una página ASPX normal puede derivar su estructura a partir de una MP simplemente añadiendo un atributo MasterPageFile a su directiva de página, así:

illustration not visible in this excerpt

Que indica el archivo de página principal que se utilizará para su estructura.

1.4.2 Definición de una Máster Page

Para agregar una Máster Page a nuestro proyecto sólo hay que elegir el icono Página Principal en el diálogo de agregar nueva referencia de cualquier carpeta del mismo:

Al abrir una MP aparece un diseñador idéntico al de una página ASPX normal. Podemos arrastrar sobre su superficie cualquier control así como editar su HTML de la manera usual. También lleva un archivo de código asociado en el que se puede responder a sus diversos eventos. La única diferencia apreciable a simple vista respecto a una página normal es que contiene por defecto un control de tipo ContentPlaceHolder. La sintaxis de este control es análoga a la siguiente:

illustration not visible in this excerpt

Su única propiedad interesante es precisamente su identificador ya que este tipo de control se utiliza para marcar las posiciones en las que irán los diferentes contenidos de las páginas derivadas dentro de la plantilla de estructura que es una Master Page.

De este modo, cuando una página normal derive de una MP, sólo se podrá introducir código dentro de las zonas definidas por estos comodines de contenido.

Cuando añadimos una nueva página ASPX a nuestro proyecto y existe al menos una Master Page, podemos marcar una opción para que, antes de crearla, nos permita seleccionar de qué MP derivará.

Para ello agregue una nueva página, como se muestra en la imagen.

illustration not visible in this excerpt

Esto nos evita tener que escribir el atributo MasterPageFile manualmente.

Al editar una página que deriva de una Master Page aparece el aspecto y estructura de la página principal en el diseñador, pero sólo se pueden tocar las partes correspondientes a los comodines de contenido.

Diseñemos ahora la página master. Puede usar como guía la imagen que se ve en la siguiente figura.

illustration not visible in this excerpt

En vista web se debe de ver así:

illustration not visible in this excerpt

En la página master cambie el nombre del ContentPlaceHolder:

<asp:ContentPlaceHolder id="Detalles" runat="server"> </asp:ContentPlaceHolder>

Igualmente en la PaginaHija.aspx modifique tambien la siguiente línea:

<asp:Content ID="Content1" ContentPlaceHolderID="Detalles" Runat="Server"> </asp:Content>

Ahora vayamos a la PaginaHija.aspx, debe ya aparecer algo como esto:

illustration not visible in this excerpt

Escribe o diseña algo dentro de la etiqueta Detalles, luego presiona F5 para ver el resultado de la página.

De esta manera todas nuestras páginas pueden tener el mismo diseño sin necesidad que tengamos que repetir el diseño en cada una de ellas.

Observe la siguiente imagen para ver los resultados.

illustration not visible in this excerpt

1.5 WEB SERVICES

Los servicios web pretenden dar un paso más en el desarrollo de aplicaciones para la web, ya que su objetivo es que éstas puedan ser utilizadas por otros programas capaces de procesar las respuestas con otro fin que no sea el de la presentación de información en pantalla, permitiendo además automatizar ciertos procesos en la web al posibilitar transacciones de datos sin intervención de un usuario.

Un servicio web es un componente de software que expone un conjunto de operaciones en la Web (métodos), que pueden ser utilizados desde otros programas.

1.5.1 Características de los Servicios Web

Los servicios web poseen una serie de características que los hacen preferibles a estas tecnologías. Entre ellas se pueden destacar:

- Utilización de estándares existentes. La base de la arquitectura de servicios web la constituye el protocolo HTTP y el estándar XML. La comunicación cliente - servicio Web se lleva a cabo mediante el intercambio de documentos XML entre ambos. Utilizando HTTP como protocolo de comunicación.

illustration not visible in this excerpt

Figura1. Acceso a un servicio web desde un cliente

- Independencia de la plataforma. La utilización de XML como formato de intercambio de información entre el cliente y el servicio web permite que la comunicación entre ambos pueda realizarse independientemente de la tecnología o lenguaje con el que tanto uno como otro estén implementados, así como la plataforma en la que se ejecuten.
- Nuevos estándares abiertos. HTTP y XML constituyen la base principal de los servicios web. Se han desarrollado una serie de tecnologías que permiten estandarizar operaciones como la descripción o la publicación de un servicio web.

1.5.2 Estructura Interna de los Servicios Web

La estructura y la complejidad de un servicio web dependen de las funciones a realizar y del tipo de servicio que se trate. En cualquier caso se pueden distinguir dos componentes básicos:

- Componentes software. Se trata de componentes de código reutilizable que implementan la funcionalidad del servicio, sus métodos pueden incluir acceso a diferentes fuentes de datos. La funcionalidad que proporcionan puede ser compartida por el resto de módulos que forman parte de la aplicación web. Estos componentes pueden estar implementados con cualquier tecnología software; en este caso de .NET, esta funcionalidad estaría implementada mediante clases independientes compiladas en un ensamblador dll.
- Servidor SOAP. Hace de interfaz entre el cliente y el componente que implementa el servicio. La comunicación entre el cliente y el servicio web se realiza vía XML, utilizando un protocolo de codificación conocido como SOAP. Así que por un lado, este módulo debe encargarse de decodificar las peticiones SOAP que llegan desde el cliente e invocar a los métodos del componente, mientras que por otro lado, debe codificar los resultados devueltos por el componente en mensaje SOAP y enviarlos al cliente. En .NET esta labor se llevaría a cabo mediante páginas aspx dentro de una aplicación ASP.NET

illustration not visible in this excerpt

Figura 2. Servicio web con .NET

1.5.3 Tipos de Servicios Web

En función de cómo va a ser procesada la información por un servicio web, se pueden dividir estos en dos categorías:

- Servicios web orientados a método

Se basan en una interacción de tipo Invocación Remota a Método (RPC), donde el documento XML de petición del servicio web representa la llamada a un método o procedimiento con sus respectivos parámetros de entrada, mientras que el documento XML generado como repuesta representa el valor devuelto por dicho método. Es el caso más sencillo de servicio web y el más utilizado, donde cliente y servicio se comunican de forma asíncrona.

- Servicios web orientados a documento

El documento XML enviado por el cliente al servicio web es procesado por este en su totalidad. Este proceso se lleva a cabo de forma asíncrona y el mismo puede implicar llamadas a diferentes métodos y procedimientos en los componentes del servidor.

La llamada de este tipo de servicios web se realiza de forma asíncrona, lo que significa que el cliente puede continuar su ejecución mientras el servicio web procesa el documento.

1.5.4 Creación de Servicios Web con .NET

Para crear un servicio web vamos a Archivo -> Nuevo Sitio Web

Luego en la ventana siguiente seleccionamos las opciones que se ven en la imagen.

illustration not visible in this excerpt

Clic en Aceptar. Por defecto crea un método llamado HelloWorld

illustration not visible in this excerpt

Vamos a crear nuestro propio método, el método que se va hacer de ejemplo será el devolver un vector con n número de registros dependiendo de un filtro.

Para ello necesitamos la clase que nos conecta a la base de datos en el servicio web.

illustration not visible in this excerpt

Volvemos al servicio web y creamos la función que nos interesa.

illustration not visible in this excerpt

Esta es la tabla de la cual sacaremos los registros aleatorios.

illustration not visible in this excerpt

Luego ejecutamos la aplicación para ello presionamos Ctrl + F5

Luego en el navegador podemos observar que el servicio web se está ejecutando

illustration not visible in this excerpt

Si queremos probar el Servicio Web, de clic sobre el procedimiento e ingrese los datos.

illustration not visible in this excerpt

Clic en Invocar y el resultado sería:

illustration not visible in this excerpt

En este caso, se debe de tener en la tabla un buen número de registros, si se quiere ingresar parámetros mayores. Vamos ahora a elaborar un proyecto web del cual consumiremos el servicio web.

illustration not visible in this excerpt

Después de crear el sitio web, vamos a Sitio Web  Agregar Referencia Web

Nos mostrara una ventana como la siguiente, en URL copie la ruta del servicio web que está en ejecución. Clic en el botón Continuar, ingrese un nombre de Referencia y clic en Agregar Referencia.

illustration not visible in this excerpt

El resultado será:

illustration not visible in this excerpt

Ahora vamos a consumir el servicio web, para ello en el archivo Default.aspx, diseñemos una vista como la siguiente.

illustration not visible in this excerpt

Seleccionamos el botón Traer Preguntas e ingresamos el siguiente código.

Ejecute la aplicación, ingrese los datos y observe el resultado.

illustration not visible in this excerpt

1.6 CONTROLES DE INICIO DE SESIÓN

1. ChangePassword: Permite a los usuarios cambiar la contraseña. El usuario debe proporcionar primero
la contraseña original y, a continuación, crear y confirmar la nueva contraseña. Si la contraseña original es correcta, la contraseña de usuario se cambia a la nueva contraseña. El control también permite enviar un mensaje de correo electrónico acerca de la nueva contraseña.
2. CreateUserWizard: Permite crear un asistente para la creación de nuevo usuario donde se puede
capturar la información necesaria para tal fin. De hecho, se requiere información, asimismo, de la contraseña del usuario nuevo grupo, dirección de correo electrónico, la pregunta de seguridad y respuesta.
3. Login: Muestra una interfaz de usuario para la autenticación de usuarios. El control Login contiene
cuadros de texto para el nombre de usuario y la contraseña y una casilla de verificación que permite a los usuarios indicar si desean que el servidor almacene su identidad mediante la suscripción de ASP.NET y que los autentique automáticamente la próxima vez que visiten el sitio.
4. LoginName: Permite mostrar el nombre de inicio de sesión de un usuario si este ha iniciado la sesión
mediante la suscripción de ASP.NET. Por el contrario, si el sitio utiliza la Autenticación de Windows integrada, el control muestra el nombre de cuenta de Windows del usuario.
5. LoginStatus: Este control muestra un vínculo de inicio de sesión para los usuarios que no están
autenticados y un vínculo de cierre de sesión para los que están autenticados. El vínculo de inicio de sesión lleva al usuario a una página de inicio de sesión. El vínculo de cierre de sesión restablece la identidad del usuario actual y lo convierte en un usuario anónimo.
6. LoginView: Permite mostrar información diferente a los usuarios anónimos y a los que han iniciado
una sesión. El control muestra una de las dos plantillas: AnonymousTemplate o LoggedInTemplate. En las plantillas, puede agregar marcado y controles que muestren información apropiada para usuarios anónimos y usuarios autenticados, respectivamente.
7. PasswordRecovery: Permite recuperar las contraseñas de usuario basándose en la dirección de correo electrónico que se usó al crear la cuenta. El control PasswordRecovery envía al usuario un mensaje de correo electrónico con la contraseña.

Creamos un sitio nuevo

illustration not visible in this excerpt

Y agregamos dos Web Form uno con el nombre de Login y otro create account

illustration not visible in this excerpt

Agregamos un Master Page

illustration not visible in this excerpt

Agregamos un Web Form con el nombre de home y seleccionamos el Master Page y otro Default2.

illustration not visible in this excerpt

Vamos al formulario login y agregamos un control LoginView.

illustration not visible in this excerpt

Agregamos junto al LoginView el control Login

illustration not visible in this excerpt

[...]

Final del extracto de 238 páginas

Detalles

Título
Microsoft Visual Estudio 2010 Y SQL Server
Subtítulo
Apuntes de Clase
Universidad
Free University of Colombia
Autores
Año
2017
Páginas
238
No. de catálogo
V353096
ISBN (Ebook)
9783668394636
ISBN (Libro)
9783668394643
Tamaño de fichero
13390 KB
Idioma
Español
Palabras clave
Microsoft visual 2010, ASP.NET, SQL, SQL SERVER
Citar trabajo
Fredys A. Simanca H. (Autor)Fabian Blanco Garrido (Autor), 2017, Microsoft Visual Estudio 2010 Y SQL Server, Múnich, GRIN Verlag, https://www.grin.com/document/353096

Comentarios

  • No hay comentarios todavía.
Leer eBook
Título: Microsoft Visual Estudio 2010 Y SQL Server



Cargar textos

Sus trabajos académicos / tesis:

- Publicación como eBook y libro impreso
- Honorarios altos para las ventas
- Totalmente gratuito y con ISBN
- Le llevará solo 5 minutos
- Cada trabajo encuentra lectores

Así es como funciona