Title: Desarrollo de una Aplicacin Web con ASP'NET 2'0
1Desarrollo de una Aplicación Web con ASP.NET 2.0
- Sergio Tarrillo Lujan
- starrillo_at_msJovenes.com
- Analista y Desarrollador
- 3Dev Business Consulting
2Agenda
- Aplicaciones Web?
- Introducción a Visual Studio .NET 2005
- ASP.NET 2.0 Page Framework
- Presentación de una Aplicación Web
- Acceso a Datos
- Seguridad en una Aplicación Web
3Aplicaciones Web?
4Por qué una Aplicación Web?
- No se dispone de un gran presupuesto para
invertir en una gran infraestructura - La aplicación necesita ser constantemente
actualizada - Ofrecer un servicio en Internet
- Se necesita facilitar el trabajo a distancia y
permanentemente - Se necesita un acceso único, y no se requiere
distribuir la aplicación en todos los usuarios
5Puntos Clave, de una Aplicación Web
- La necesidad de una conexión permanente y rápida
a Internet - La comunicación se realiza a través de un medio
que no es seguro, que es lento, y con diferentes
protocolos de comunicación. - Diferencia de presentación entre plataformas y
navegadores - Hay que decidir qué recursos se aprovecharán del
cliente y cuáles del servidor.
6Introducción a Visual Studio .NET 2005
7Visual Studio 2005
- Herramienta para crear aplicaciones .NET
- Soporta varios lenguajes (C, VB.Net, C, J, y
más) - Varios tipos de Aplicaciones Aplicaciones
Windows, Soluciones para Office, Aplicaciones
Web, Aplicaciones Móviles, Servicios Windows,
Servicios Web, entre otros.
8Características
- Document Outline
- ToolStrip Designer
- Smart Tags
- SnapLines
- ClickOnce
- Client Configuration
- Windows XP Visual Style Support
- Mejora en el soporte a Acceso a Datos
9Quiero empezar a desarrollar en .NET y no tengo
Visual Studio?
10Expandiendo Visual Studio
11(No Transcript)
12Línea de Productos Express
- Herramientas de desarrollo para Windows, Web, y
base de datos - Incluye componentes opcionales
- Express MSDN Library
- SQL Server 2005 Express Edition
Client
Web/Web Services
Database
13Visual Web Developer
- Herramienta de desarrollo orientada para
principiantes, entusiastas, y no profesionales - Las características incluyen
- Intellisense en todas partes
- Proceso de depuración simplificado
- Superficie rica en diseño
- Incluye Servidor Web
- Soporte integrado para hosting
- Preservación del 100 del HTML
- Proyectos basados en el sistema de archivos
14Características de Productividad
- Interacción HTML
- Editor de Tabla
- Navegador de Tags
- Tag Outlining
- Validación
- Formato
- Separación de la UI y lógica
- Web Parts
15Características para ASP.NET
- 50 nuevos controles
- Soporte para 64Bits
- Publicación desde VS
- Soporte para Startert Kits
- Mejoras en el manejo de Seguridad
- ASP.NET Administration Tool
- Soporte para proyectos Web vía FTP
- Soporte para Dispositivos Móbiles
16ASP.NET 2.0 Page Framework
17Novedades en ASP.NET 2.0
Controles de Data
Controles de Login
Web Parts
Otros Nuevos Controles
Controles
Master Pages
Themes y Skins
Mejoras en Client Scripting
Compilación Localización
Page Framework
Membership
Role Management
Profiles
Configuration
Servicios y APIs
Site Maps
Health Monitoring
Otros Nuevos Servicios
18Ejecución de ASP.NET
aspnet_wp.exe
generar
Motor ASPX
Analizar
1er Pedido
Archivo de clase de código subyacente
generar
Archivo ASPX (presentación)
Tempory ASP.NET File
expande
Archivo de clase de página generado
2do Pedido
clase de página
crear instancia, procesa y presenta
19Master Pages
20Introducción a Master PagesSoporte en diseño
Content PlaceHolders son editables
Página maestra
Página de contenido
MasterPage visible pero de solo lectura
21Introducción a Master PagesFuncionamiento
site.master
header
placeholder
left pane
footer
default.aspx
page1.aspx
page2.aspx
page-specific content
page-specific content
page-specific content
22Como trabajar con Master Pages
- Master pages define un contenido común y
contenedores placeholders - Content pages hace referencia a la master page y
coloca en el su contenido en lugar del placeholder
Site.master
default.aspx
http//.../default.aspx
Content
Content-PlaceHolder
23Introducción a Master PagesBases
- Las páginas maestras definen contenido común y
marcadores (ltaspContentPlaceHoldergt) - Las páginas de contenido referencian a las
maestras y llenan los marcadores con contenido
(ltaspContentgt)
lt!-- MasterPage.master --gt lt_at_ master
language"C" gt ltbodygt ltform runat"server"gt
lth1gtMy common headerlt/h1gt ltaspcontentplaceholde
r id"MainContentPlaceHolder" runat"server" /gt
...
lt!-- Page1.aspx --gt lt_at_ page language"C"
master"/MasterPage.master" gt ltaspcontent
id"Content1" contentplaceholderid"MainC
ontentPlaceHolder" runat"server"gt
ltaspbutton id"Button1" runat"server"
text"Button" /gt lt/aspcontentgt
24La Propiedad Page.Master
- Recupera una referencia a la página maestra
- Instancia de la clase derivada de
System.Web.UI.MasterPage - Nula si la página no tiene una página maestra
- Usada para acceder programáticamente al contenido
definido en la página maestra - Verificación de tipos débil método FindControl
- Verificación de tipos fuerte (recomendada)
propiedades públicas de la página maestra
25DEMO 01
26Acceso a Datos en ASP.NET 2.0
27Controles DataSource
- Enlace a datos, en forma declarativa, sin código
Sql- DataSource
Object- DataSource
Access- DataSource
Xml- DataSource
SiteMap- DataSource
Componente Data
Site Map Provider
Bases de Datos SQL
Cualquier Data
Base de Datos Access
Datos XML
Site Maps
28Controles DataSource (cont.)
- Introducción
- Representan distintas fuentes de datos base de
datos, objetos de negocio, xml - Eliminan gran parte del código de enlace a data
- Provee capacidades ricas sobre los datos
- Ordenar, Paginar, Filtrar, actualizar etc.
- Parametrizables (Controles, QueryString, etc)
- Ejm SqlDataSource, ObjectDataSource,
XmlDataSource, AccessDataSource, entre otros
29Control SqlDataSource
- Enlaza controles de forma declarativa a orígenes
de base de datos - Cualquier servidor de base de datos a través de
un proveedor administrado - Dos forma de enlazar
- SelectCommand define semánticas de consultas
- InsertCommand, UpdateCommand, and DeleteCommand
definen semánticas de actualización - Caching opcional para resultados de consultas
- Operaciones parametrizadas
30Control SqlDataSourceEmpleando el SqlDataSource
ltaspSqlDataSource ID"Titles" Runat"server" Con
nectionString"serverlocalhostdatabasepubs in
tegrated securitytrue" SelectCommand"sele
ct title_id, title, price from titles"
/gt ltaspDataGrid DataSourceID"Titles"
Runat"server" /gt
31Control SqlDataSourcePropiedades clave del
SqlDataSource
Nombre
Descripción
ConnectionString
Cadena de conexión usado para conectar a un orígen
SelectCommand
Comando usando para realizar consultas
InsertCommand
Comando usado para realizar inserciones
UpdateCommand
Comando usado para realizar actualizaciones
DeleteCommand
Comando usado para realizar eliminaciones
DataSourceMode
Especifica si se usará un DataSet o un
DataReader (por defecto es DataSet)
ProviderName
Especifica el proveedor (por defecto SQL Server
.NET provider)
32Control XmlDataSourceIntroducción
- A diferencia del control sqlDataSource, el
control XmlDataSource es ideal para enlazar a
documentos XML que no tienen una estructura
similar a un DataSet - Ahora muchos sitios Web usan RSS, y tienen como
salida un XML
33Control XmlDataSourceUsando el control
lt?xml version"1.0" encoding"utf-8"
?gt ltxslstylesheet version"1.0"
xmlnsxsl"http//www.w3.org/1999/XSL/Transform"gt
ltxsltemplate match"libros3DEV"gt
ltlibros3DEVgt ltxslapply-templates
select"libro" /gt lt/libros3DEVgt
lt/xsltemplategt ltxsltemplate match"libro"gt
ltautorgt ltxslelement name"nombre"gt ltxslva
lue-of select"autor"/gt lt/xslelementgt
lt/autorgt lt/xsltemplategt lt/xslstylesheetgt
lt?xml version"1.0" encoding"utf-8"
?gt ltlibros3DEVgt ltlibro codigo"L105"gt
lttitulogtTips amp Tricks en ASP.NET
2.0lt/titulogt ltautorgtSergio Tarrillolt/autorgt
lt/librogt ltlibro codigo"L243"gt
lttitulogtPatrones con C 2.0lt/titulogt
ltautorgtJoel Francialt/autorgt lt/librogt lt/libros3DE
Vgt
ltaspXmlDataSource ID"XmlDataSource2"
runat"server" DataFile"/App_Data/L
ibros.xml" TransformFile"/App_Data/L
ibros.xsl" XPath"libros3DEV/autor"gt
lt/aspXmlDataSourcegt
34Control ObjectDataSourceIntroducción
- El ObjectDataSource es uno de los controles que
mas se esperaba de los nuevos controles
DataSource - Este da la oportunidad de enlazar controles
List-Bound con objetos de negocios (Capa de
Objetos del Negocio)
35Caching en controles DataSourceSqlDataSource y
Caching
- SqlDataSource soporta manejo de caching de forma
declarativa para resultados, usando las
siguientes propiedades
Nombre
Descripción
EnableCaching
Establece si se habilitará el caching (default
false)
CacheDuration
Establece el tiempo de vida en segundos para el
caching
CacheExpirationPolicy
Especifica si la duración es absoluta o extendida
CacheKeyDependency
Crea dependencias en determinados items del cache
SqlCacheDependency
Crea dependencias sobre entidades de base de datos
36Controles List-Bound
- Nuevos Controles data-bound
- Incorporados con soporte para seleccionar,
editar, paginar, ordenar, y más
GridView
DetailsView
FormView
37Enlace Declarativo
Database
Data-bound Control
ltaspGridView DataSourceIdMySource
runatserver/gt
ltaspTreeView DataSourceIdMySource
runatservergt
Business Object
Data Source Control
ltaspSqlDataSource IdMySource
ConnectionString SelectCommandselect
id from authors runatserver /gt
ltaspObjectDataSource IdMySource
TypeNameCustomersDB SelectMethodGetCusto
mersByRegion runatserver /gt
ltaspXmlDataSource IdMySource
DataFileBookstore.xml XPath/bookstore/bo
ok_at_genrefiction runatserver /gt
XML Document
38Usando el GridView
- Mejora las características del control DataGrid
control - Retorna conjunto de registros como tablas HTML
- Implementa ordenamiento, paginación, selección,
actualización, y eliminación - Soporta presentación para tipos de datos
enriquecidos, incluyendo ImageFields y
CheckBoxFields - Declarado en elementos ltColumnsgt
- Alta personalización de la IU
- Soporte construido para ordenación, paginación,
selección, actualización y borrado.
39Usando el GridViewPaginando y ordenando
ltaspGridView ID"GridView1" AllowSorting"true"
AllowPaging"true" runat"server"
DataSourceID"SqlDataSource1 /gt
40Filtrando datos usando comandos parametrizados
- Las propiedades XxxParameters permiten
parametrizar comandos de base de datos - Ejemplo otener un valor para la cláusula WHERE
de un SelectCommand desde un parámetro de
QueryString o un item seleccionado de un
dropdownlist - Ejemplo obtener un valor para la cláusula WHERE
de un DeleteCommand desde un GridView - Los tipos en XxxParameter especifican el origen
del valor del parámetro
41Filtrando InformaciónTipos XxxParameter
Nombre
Descripción
Parameter
Enlaza un parámetro a un campo de datos
ControlParameter
Enlaza un parámetro a una propiedad de control
CookieParameter
Enlaza un parámetro a un valor de un cookie
FormParameter
Enlaza un parámetro a un campo de formulario
QueryStringParameter
Enlaza un parámetro a un valor de un QueryString
SessionParameter
Enlaza un parámetro a una variable de Sesión
42DetailsView
- Retorna registros individuales
- A la par con el GridView para vistas
maestro-detalle - O si el GridView para mostrar registros
individuales - Incorpora paginación, inserción, actualización,
eliminación - Usa los mismos tipos de campos como el GridView
- Declarado en elementos ltFieldsgt
- Alta personalización de la IU
43FormView
- Es un nuevo control incluido en ASP.NET
- Tiene igual funcionamiento que el control
DetailsView - Permite insertar, editar y eliminar
- Pero este control requiere que el usuario defina
la presentación de cada input usando
ItemTtemplates.
44Demo 02
- Acceso a Datos en ASP.NET
45Seguridad en ASP.NET
46Servicio de Membership
- Maneja usuarios y credenciales
- Acceso declarativo vía la herramienta Web Site
Administration - Acceso desde la programación vía la API de
Membership - Simplifica enormemente la autenticación basada en
formularios - Provee lógica para la validación de nombres de
usuario y claves, creación de cuentas, y más - Proporciona almacenamiento de datos para guardar
credenciales, direcciones de correo, y otros
datos de membership - Basado en el Proveedor, para la flexibilidad del
almacenamiento de los datos
47Esquema Membership
Controles
Login
LoginStatus
LoginView
Otros
API Membership
Membership
MembershipUser
Proveedores Membership
SqlMembershipProvider
ActiveDirectory-MembershipProvider
Otros Proveedores
Datos de Membership
SQL Server
Active Directory
Otras Fuentes de Datos
48Administración de Roles
- Seguridad Basada en Roles en un cuadro
- Acceso declarativo vía la herramienta Web Site
Administration - Acceso desde la programación vía la API de Roles
- Simplifica la adición de Seguridad basada en
Roles para sitios que usan la autenticación
basada en formularios - Usuarios mapeados por roles en cada pedido
- Proporciona almacenamiento de datos para la
información del Rol - Basado en Proveedor para la flexibilidad en el
almacenamiento de los datos
49Esquema de la Administración de Roles
Controles
Login
LoginStatus
LoginView
Otros
API Role
Roles
Proveedores Role
SqlRole-Provider
AuthorizationStore-RoleProvider
Otros Proveedores
WindowsToken-RoleProvider
Datos de Role
SQL Server
Authorization Manager ("AzMan")
Otras Fuentes De Datos
50Controles Login
- UI y lógica para las tareas relacionadas con la
seguridad
Login
LoginStatus
LoginName
Membership Role Management
LoginView
CreateUser- Wizard
Password- Recovery
Change- Password
51DEMO 03
52Referencias Web Sites (ESP)
- Sergio Tarrillo starrillo_at_msJovenes.com (mail)
supersergioman_at_hotmail.com (msn) - Mi Blog http//blogs.3devnet.com/blogs/starrillo/
default.aspx - ASP.NET en ESPAÑOL http//www.asp.net/es
- El Guille http//www.elguille.info/
- WillyDev http//www.willydev.net
- Foro .NET http//foros.solocodigo.com/index.php?s
howforum169 - Centro de Desarrollo ASP.NET http//www.microsoft
.com/spanish/msdn/centro_recursos/asp_net/default.
mspx - Blog Geeks.ms http//geeks.ms/blogs/default.aspx
53Referencias Web Sites (ENG)
- Blog de ASP.NET http//weblogs.asp.net/scottgu
- Sitio Oficial de ASP.NET http//www.asp.net
- Developer Center ASP.NET http//msdn.microsoft.co
m/aspnet - 400 Diferencias de VS2005 http//www.400plusdiffe
rences.com/ - Visual Studio 2005 Guided Tour
http//msdn.microsoft.com/vstudio/tour/vs2005_guid
ed_tour/ - Descargas de ASP.NET http//www.asp.net/downloads
/default.aspx?tabid62 - Descarga Visual Web Developer Express
http//msdn.microsoft.com/vstudio/express/vwd/