Programación con ASP.NET
ASP.NET se ha convertido, por méritos propios, en una de las primeras herramientas de Desarrollo Web en las empresas. Permite realizar verdaderos programas con la incorporación de controles profesionales, siendo el mejor entorno para el desarrollo de Intranets corporativas.
En este curso realizaremos un aprendizaje de este lenguaje, para conseguir crear nuestras propias páginas con acceso a bases de datos y pequeñas aplicaciones de gestión.
Finalizaremos con un gran proyecto de ejemplo, aplicando lo aprendido y viendo distintas soluciones a flujos de trabajo que se puedan requerir en una Intranet.
- Personas que quieran conocer el mundo de ASP.NET, de las Intranets y cómo crear páginas que exploten los mismos datos que las aplicaciones corporativas.
- Programadores de .NET que quieran conocer su aplicación en el mundo Web de ASP.NET
Introducirse en el mundo .NET para el desarrollo de Intranets avanzadas. El alumno adquirirá los conocimientos necesarios para crear aplicaciones de negocios integradas con la propia gestión de la empresa.
1. Introducción a Asp.Net. Instalación
Introducción a Asp.Net. Instalación
Introducción
Destino de los desarrollos en .Net
Objetivos de la unidad de aprendizaje
.Net Framework
La evolución
La solución
ASP.NET y el entorno .NET Framework
¿Qué es .NET Framework?
.Net en ASP.NET
Una definición más profunda de .NET
Runtime del lenguaje común
Biblioteca de clases
Capa de datos
Capa de formularios y ASP
Capas de CLS y lenguajes
Instalar ASP.NET
¿Qué es un servidor web?
Instalación del entorno de desarrollo de Asp.Net
Windows Server
IIS y ASP.NET
Comenzar con ASP.NET
Primeros pasos con ASP.NET
Página ASP.NET en marcha
Detalles de nuestra primera página
Ejecución del lado del servidor
ASP.NET y el servidor web
Publicar sitio Web
Programación en ASP.NET
El lenguaje de programación. Desde nuestro código hasta el código máquina
Código interpretado
Código pre-compilado
Los objetos
Las clases
Los Objetos
La clase base .NET
Directivas
Hemos aprendido
2. Programación con ASP.NET. Visual Basic.NET
ASP.NET y Visual Basic.Net
Introducción
Objetivos
Estructura de una aplicación ASP.NET
Página .vb de código
Carpetas de una aplicación ASP.NET
Añadir carpetas
Visual Basic .NET
Las variables y los tipos de datos
Variables, constantes y otros conceptos relacionados
Distintos tipos de variables
Declarar la variable
Tipos de datos de Visual Basic.NET y su equivalente en el Common Language Runtime (CLR)
Detalles sobre los tipos de datos
Elegir el tipo de datos
Ejemplo
Preparar un entorno de pruebas antes de hacer ejemplos
Realización del ejemplo
Personalizar los controles
Activar eventos
Ejemplo
Declarar variables
Ejemplos
¿Qué ventajas tiene usar constantes en lugar de usar el valor directamente?
Detalles de las asignaciones y tipos de datos
Convenciones de nombre
Nombres para controles
Operadores y comparadores
Tabla de operadores.
Comparación
Comparaciones
Matrices
Asignar valores
Formas de declarar una matriz
Recorrer una matriz. Bucles For Next y For Each
Clasificar el contenido de un array
El contenido de los arrays son tipos por referencia
Copiar los elementos de un array en otro array
Límites de las matrices
Arrays multidimensionales
Declarar arrays multidimensionales
Tamaño de un array multidimensional
Número de dimensiones de un array multidimensional.
Cambiar el tamaño de un array y mantener los elementos que tuviera.
Redimensionar un array multidimensional
Eliminar un array de la memoria.
¿Podemos clasificar un array multidimensional?
Copiar un array multidimensional en otro.
Arraylist
Propiedades y métodos de las matrices
Propiedades
Métodos:
Estructuras
Declaración
Ejemplo de estructura
Enumeraciones (Enum)
Declaración
Valores
Atención a la definición
Resumen
Función "IsDefined"
Gettype y GetName
Ejemplo
Otros métodos
Hemos aprendido
3. Visual Basic.NET. Flujo de programas
Visual Basic .Net. Flujo de programas
Introducción
Objetivos
Operaciones con variables
Matemáticas avanzadas
Métodos más importantes
Conversión de tipos
Ejemplos
Manipulación de objetos
El tipo de datos String
Los tipos de datos DateTime y TimeSpan
El tipo Array
Más sobre variables y estructuras
Declarar varias variables en una misma línea:
Declarar varios tipos de variables en una misma línea:
Tipo de dato por defecto de las variables:
Tipo de datos Object
Flujo de programa. Condiciones
If… Then … Else
Evaluación de la expresión
Select … Case
Más opciones con el Select/Case
Detalles de If…then…else
Decisión simple
Decisión simple en una línea
Decisión doble
Doble decisión en una línea
Decisión múltiple
Utilizar más de un comparador: AndAlso y OrAlso
Flujo de programa. Bucles
Bucles For / Next.
Ejemplos
Bucles For Each
Bucles While / End While
Bucle Do / Loop
Finalización anticipada de bucles
Ejemplo de bucles
1ª Solución: bucle For-Next
2º Solución, Bucle For con ruptura
3ª Solución: Bucle condicional
4ª Solución: bucle condicional con ruptura
5ª Solución: bucle condicional con "centinela"
Métodos
Modularización
Procedimientos
Declaración de argumentos
Sintaxis de llamada
Funciones
Valores devueltos
Sintaxis de llamada
Detalles de la función:
Ámbito de las variables
Duración de las variables
Variables globales
Sintaxis en la declaración de los procedimientos y funciones
Public
Protected
Friend
Protected Friend
Private
Métodos sobrecargados
Ejemplo
Delegación
Ejemplo
Prioridad de los operadores
Hemos Aprendido
4. Programación orientada a objetos. Proyectos y sitios Web
Programación orientada a objetos. Proyectos y sitios Web
Introducción
Objetivos
Tipos, objetos y espacios de nombres
De la programación estructurada al enfoque orientado a objetos
Elementos básicos de la POO
Las clases
Los Objetos
Los miembros de una clase
Los tres pilares de la Programación Orientada a Objetos
Herencia
Tipos de herencia
Encapsulación
Polimorfismo
Jerarquía de clases
Relaciones entre objetos
Herencia
Pertenencia
Utilización
Reutilización
Caso práctico
Crear o definir una clase
Definir los miembros de una clase
Crear un objeto a partir de una clase
Acceder a los miembros de una clase
Ejemplo de cómo usar la herencia
Ejemplo
Ejemplo completo
Sobrecargar el constructor de las clases
Los campos y las propiedades.
Ejemplo
Controlar la clase
¿Cómo declarar una propiedad como un procedimiento Property?
Declaración
Propiedades de sólo lectura.
Propiedades de sólo escritura.
Campos de sólo lectura.
Diferencias
Ejemplo
Pasos por valor y referencia
Tipos de datos por valor
Tipos de datos por referencia
Espacios de nombres (namespace) y ensamblados (assemblies)
Espacios de nombres (namespace)
Espacios de nombres en ASP.NET
Utilizar namespace
Importar namespace
Ensamblados (Assemblies)
Proyectos o aplicaciones Web y sitios Web
Escenarios para sitio Proyectos de aplicación
Escenarios para sitio Web
Tabla con diferencias
¿Qué vamos a utilizar: proyectos Web o sitios Web?
Estructura de un sitio Web
Compilación e Implementación
Compilación
Implementación
Compilar una aplicación Web
Proceso en sitios Web
Estructura de carpetas de proyectos web de ASP.NET
Crear un sitio Web ASP vacío
Crear un Proyecto Web vacío
Carpetas en ASP.NET
Páginas predeterminadas
Carpeta de aplicación
Administrar subcarpetas
Restringir el acceso al contenido del sitio
Tipos de archivos
Extensiones de los archivos
Servidores Web
IIS en Windows 10
Hemos aprendido
5. Formularios Web y la clase Page
Formularios Web y la clase Page
Introducción
Objetivos
Formularios Web
Controles de servidor
Controles HTML de servidor
Formularios HTML
La etiqueta <form>
Cuadro de texto
Contraseña
Área de texto
Casilla de verificación
Botón de opción
Cuadro de lista
Botones
Campos invisibles
Ejemplo 1
Código HTML
Ejecutar la página
Realizar la conversión
Secuencia de ejecución
Ampliamos el ejemplo
Selector de monedas
Control de eventos
Selección de la lista
Ejecutar el ejemplo
Comparación con el anterior ejemplo
Clases de los controles HTML
Eventos de los controles
Eventos avanzados con el control HtmlInputImage
Detectar el evento
La clase HtmlControls
La clase HtmlContainerControl
La clase HtmlInputControl
Controladores de eventos
¿Qué es un evento?
¿Qué es la programación orientada a eventos?
La clase Page
Propiedades
Fases
Objeto Request
Colecciones del objeto Request
Ejemplo
Ejemplo de "ServerVariables"
Objeto Response
Colecciones del objeto Response
Propiedades del objeto Response
Buffer
Write
Redirect
Ejemplo
Objeto Server
Codificación de HTML
Almacenar estados y las aplicaciones con ASP.NET
¿Qué alcance o duración tiene este estado?
Estado "Application"
El fichero GLOBAL.ASAX
Estructura
Lenguaje
Parámetros y propiedades
Fin de la sesión
Estado "Session"
Ejemplos
Configuración en el servidor
Ciclo de vida de una página ASP.NET y de una aplicación
Ciclo de vida de una página
Fases generales del ciclo de vida de la página
Eventos del ciclo de vida
Consideraciones adicionales sobre el ciclo de vida
Hemos aprendido
6. El entorno de trabajo. Configuración
El entorno de trabajo y configuración
Introducción
Objetivos
El entorno de trabajo
Paneles
Menú Ayuda
Ver la ayuda
Editar páginas
Editar páginas
Etiquetas HTML
Añadir imágenes
Cambiar propiedades
Vista de código
Ver la página en el navegador
Compatibilidad con exploradores Web
Crear tablas HTML
Añadir enlaces
Todos los paneles
Ayudas a la edición
Regla y cuadrícula
Ayudas visuales
Marcas de formato
Explorador de soluciones
Iconos de acceso rápido
Propiedades de proyecto
Opción de Agregar
Propiedades de páginas
Team Explorer
Explorador de servidores
Cloud Explorer
Explorador de base de datos
Ventana de marcadores
Jerarquía de llamadas
Vista de clases
Ventana definición de código
Esquema del documento
Examinador de objetos
Lista de errores
Panel "salida" o "resultados"
Lista de tareas
Cuadro de herramientas
Ventana Propiedades
Diseñar con estilos
Tipos de estilos
Los ficheros CSS
Ejemplo
Estilos en "cascada"
Generador de estilos
Definir un estilo
Aplicar el estilo
Crear una página de estilos
Crear reglas de estilos
Definir reglas con el generador de estilos
Utilizar estilos DIV
Los temas
Utilizar temas en las páginas
Otras formas de aplicar temas
Definir un tema para el web
Temas frente a hojas de estilo en cascada
Esquematización, Intellisense y código automático
Esquematización
Opciones
Intellisense
Ayuda en el código
Autocorrección
Acceso rápido a las opciones de Intellisense
Insertar fragmentos de código HTML
Insertar código HTML
Insertar fragmentos de código VB.NET
Administrador de fragmentos de código
Depuración de páginas
Una depuración sencilla
Iniciar paso a paso
Puntos de interrupción
Inspeccionar variables
Acelerar la ejecución
Paso a paso por procedimientos
Moverse por la depuración
Ventana Inmediato
Pila de llamadas
Configuración de ASP.NET
Configuraciones anidadas
Almacenar información en el fichero web.config
Secciones del fichero Web.config
Utilizar el diseñador de formularios.
Objetos en planos
Alineación de controles
Ajustar tamaños
Hemos aprendido
7. Controles Web, clases y eventos. Estado de la aplicación
Controles Web, clases y eventos. Estado de la aplicación
Introducción
Objetivos
Introducción a los controles de servidor de ASP.NET o controles Web
Ejemplos
Clases de controles Web
Código HTML
Sintaxis
Propiedades
Los controles ASP.NET en ejecución
Clases de controles Web
Propiedades
Unidades
Enumeraciones
Colores
Ejemplo
Fuentes
El enfoque
El botón "default"
Controles ASP.NET
El control <asp:label>
Atributos del control <asp:label>
Ejemplo 1
Ejemplo 2
Ejemplo 3
Control de cuadro desplegable <asp:dropdownlist>
Código en HTML y ASP.NET
Propiedad "id"
Editar elementos
Acceso a propiedades desde el IDE
Ejemplo
Código de la página resultante
Controles ocultos
Control de lista <asp:listbox>
Código en HTML y ASP.NET
Ejemplo
Control de texto <asp:textbox>
Ejemplo
Controles de botones de opción <asp:radiobutton> y <asp:radiobuttonlist>
Sintaxis
Solución con grupos de "radiobutton"
Ejemplo
Controles de casilla de verificación <asp:checkbox> y <asp:checkboxlist>
Sintaxis
Ejemplo
"Ispostback"
Recorrido con "for each"
Detalles de los controles Web
Control de listas enumeradas y viñetas (BulletedList)
Propiedades
Respuesta a eventos
Control de tabla
Ejemplo de código HTML
Página de ejemplo
Eventos de los controles Web y el "autopostback"
Proceso de envío de datos
Controles con "autopostback"
Cómo trabajan los eventos "postback"
Código JavaScript de cliente para el "postback"
Ciclo de vida de una página
Un ejemplo completo
Mejoras del ejemplo
Asignar nombres de colores conocidos
Mejoras de la aplicación web para las fuentes
Mejoras de la aplicación web para los colores
Mejoras de la aplicación web para los contornos
Estado de la aplicación
Administración del estado
El problema del estado
Estado de la aplicación
Probar el estado
La colección “The ViewState”
Ejemplo
Hacer segura la vista estado
Transferir información entre páginas
“Cross-Page Posting” o envío entre páginas.
Query string
Ejemplo
Cookies
Código de las cookies
Ejemplo:
Sesiones
Estado de la sesión
Configuración de la sesión
Estado de la aplicación (Application)
Ejemplo
Bloqueo de variables
¿Qué tipo de almacenamiento de estado debo utilizar?
Hemos aprendido
8. Colecciones, controles de validación y control de errores
Colecciones, controles de validación y control de errores
Introducción
Objetivos
Colecciones
Matrices como colecciones
Ejemplo de sintaxis
Ejemplo
Enlace a datos
Ventajas e inconvenientes de trabajar con matrices
ArrayList
Sintaxis
Insertar elementos en las matrices
Métodos
Depuración y control de errores
Errores de sintaxis
Errores lógicos
Errores de sistema
Buenas costumbres
Tabular el código
Utilizar nombres descriptivos
Comentar el código
Estructurar el código
Convertiremos las variables a su valor correcto
Uso de la clase Convert
Controlar errores de ejecución
Fichero de configuración "web.config"
Trabajo de comprobación de datos
Controles de validación
Lista de controles
Mensajes de error de los controles de validación
RequiredFieldValidator
Ejemplo
Nueva forma de funcionamiento
RangeValidator
Javascript en acción
ValidationSummary
CompareValidator
RegularExpressionValidator
Page.Isvalid
CustomValidator
Más opciones de los controles de validación
Utilizar imágenes y sonidos en las notificaciones
Mensajes emergentes para los errores
Trabajando con grupos de validación
Encontrar errores
Error de compilación
Error en tiempo de ejecución
Error de tipo de datos
Modo depuración
Interceptación de errores
Interceptación de errores no estructurada
Interceptación de errores estructurado
Detalles de la clase Exception
Propiedades
Intercepción de errores anidada
Ejemplo
Más información de errores
Registro de excepción
Páginas de error
Traza de páginas
Información de la traza
Más información en las trazas
Hemos aprendido
9. Controles II y controles avanzados
Controles II y controles avanzados
Introducción
Objetivos
Control Calendario
Rangos de fechas
Formato del control
Estilos
Formato automático
Restringir fechas
Tipos de fechas
Configuración de fechas en tiempo de ejecución
Control Addrotator
Propiedades
La clase AdRotator
Propiedades
Ejemplo
Eventos
Páginas con varias vistas. Paneles y vistas múltiples
Paneles
Ejemplo
Control "MultiView"
Diseño
Ejemplo
El asistente o control Wizard
Diseño
Propiedades
Gestionar los pasos "Setp"
Eventos
Estilos y plantillas
"e"
Controles Literal y PlaceHolder
Literal
PlaceHolder Server Control
Crear controles nuevos en tiempo de ejecución
Controles Button e Imagebutton
Propiedades
Ejemplo
Ver coordenadas
Control FileUpload
Propiedades
Ejemplo
Detalles del código de ejemplo
Otros controles
Control HiddenField
Control ImageMap
Control XML
Dibujar con ASP.NET
Dibujo básico
Métodos para dibujar
Parámetros de los métodos
Dibujar una imagen personalizada
Código
Detalles del ejemplo
Más conceptos del GDI
Estructuras sencillas
Clase Graphics
Ejemplo
Gráficos vectoriales y 2D
Manipulación de imágenes
Tipografías
Coordenadas
Colores
Los pinceles
Dibujar entidades sencillas
Punto
Línea
Rectángulo
Elipse
Arco
Polígono
Curva Bézier
Curvas cardinales
Las brochas
Brochas o pinceles
SolidBrush
HatchBrush
LinearGradientBrush
PathGradientBrush
Añadir Textos
Y más…
Hemos aprendido
10. Navegación, páginas maestras y a Acceso a datos con ADO.NET
Navegación, páginas maestras y Acceso a datos con ADO.NET
Introducción
Objetivos
Páginas maestras
Una página maestra sencilla con una página de contenidos
Crear la página maestra
Crear una página basada en maestra
Zona de edición de las páginas
Conexión de las páginas con las maestras
Definiciones de las páginas maestras
Página maestra con varias regiones
Páginas maestras y rutas relativas
Páginas maestras avanzadas
Esquemas basados en tablas
Código en la página maestra
Navegación por el sitio Web
Organizar nuestras páginas
Origen de datos
Crear un mapa del sitio
XmlSiteMapProvider
Ejemplo de mapa de sitio
Enlazar páginas maestras con un mapa de sitio (Site Map)
Detalles del control SiteMapDataSource
Utilizar distintos mapas en el mismo archivo
La clase SiteMap
Mapear direcciones URL
El control SiteMap
Propiedades
Plantillas y estilos
Control TreeView
Propiedades de funcionamiento
Propiedades de estilos
El control Menu
Estilos del menú
Crear controles de usuario
ADO.NET
Definición
Administrar proveedores
Objetos en ADO.NET
Espacios de nombres
Datatable
Objetos
Espacios de nombres (Namespace) que disponibles en ADO.NET
Clases del proveedor de datos
Administración de bases de datos
Las tablas
Relaciones
Configurar la base de datos
Instalar SQL Server Express
Autenticación en SQL Server
Consola administración de SQL Server
Conexión con SQL Server Express
Base de datos de ejemplo
Conexión con SQL Server LocalDB
Conexión con bases de datos OLE DB
SQL y las tablas en las bases de datos
Ejemplo de ejecución desde la consola
Consulta con relaciones
Tablas en SQL Server
Tipos de datos
Resumen de tipos de datos
Administrar tablas
Crear tablas
Crear una tabla de transacciones
Hemos aprendido
11. Acceso a datos por código y controles enlazados a datos
Acceso a datos por código y controles enlazados a datos
Introducción
Objetivos
Acceso directo a datos
Acceso a SQL Server Express
Conectarse a una base de datos
Sintaxis de conexión
Partes de la cadena de conexión.
Autenticación de Windows
Tipo de seguridad
Crear usuarios nuevos
Cadena de conexión
Almacenar la cadena de conexión
Configuración en web.config
Comprobación
Instrucción Using
Errores en la conexión
Error en el nombre del servidor o el servidor está apagado
Error en el nombre de la base de datos
Error en el usuario de acceso a la base de datos
Error por una contraseña de acceso incorrecta
Acceso al fichero web.config
Los objetos Command y Data Reader
Consultas SQL
Ejemplo
Ampliamos el ejemplo
Actualizar datos
Comandos para insertar datos
Crear comandos más robustos
Solucionar error en la ejecución
Actualizar registros
Sintaxis
Borrar un registro
Solución para comprobar las relaciones
Acceso a datos desconectado
Seleccionar datos desconectados
Ejemplo
Detalles del ejemplo
Acceso a los datos
Seleccionar varias tablas
Esquema de tablas enlazadas
Definir relaciones
Enlaces a datos
Tipos de enlace de datos de ASP.NET
Cómo funciona el enlace a datos.
Enlace sencillo
Enlace con propiedades
Problemas con el enlace sencillo de datos
Utilizar código en lugar de enlace sencillo de datos
Enlace datos repetitivos
Enlace de datos con un control de lista
Ejemplo
Enlace con Colecciones fuertemente tipificadas
Ejemplo
Utilizar la propiedad "DataValueField"
Enlace a un dataset
Enlace a una consulta de datos
Crear la cadena de conexión
Editar los registros
Controles con origen de datos
Ciclo de vida del enlace de datos.
SQLDataSource
Seleccionar registros
Detalles de la ejecución de los orígenes de datos
Comandos parametrizados
Ejemplo
Resumimos
Mas parámetros
Establecer más valores de parámetros en el código
Control de errores
Actualizar registros
Definir los comandos
Añadir los comandos
Un detalle más…
Hemos aprendido
12. Controles avanzados de datos
Controles avanzados de datos
Introducción
Objetivos
Controles avanzados de datos
GridView
Generación automática de columnas
Ejemplo con código
Ejemplo con el IDE
Definir columnas
Código de las columnas
Tipos de "BoundField"
Propiedades
Generación de columnas
Ejemplo
Dar formato a la cuadrícula
Formato de los campos
Utilizar estilos
Formato especial para datos
Seleccionar una fila
Estilo para la selección
