Está en la página 1de 22

Modulo 1

Qu es
Microsoft. NET?
Microsoft. NET es un modelo de desarrollo que puede utilizar para crear un software independiente
de la plataforma e independiente del dispositivo. Tambin puede utilizar. NET ramewor! para los
datos disponibles a travs de "nternet. . NET ramewor! es la infraestructura de Microsoft. NET.
#os componentes de Microsoft. NET
Microsoft. NET se constru$e desde la base en una arquitectura abierta $ se puede utilizar para
%enerar $ e&ecutar la pr'(ima %eneraci'n de Microsoft )indows * $ aplicaciones )eb. El ob&etivo
de Microsoft. NET es simplificar el desarrollo de la )eb $ otras aplicaciones.
Microsoft .NET inclu$e las si%uientes tecnolo%+as,
1 - .NET ramewor! proporciona un modelo de pro%ramaci'n que permite a los
desarrolladores crear aplicaciones )indows $ )eb $ servicios )eb .M#.
/ - 0ervidores. Microsoft. NET proporciona una infraestructura para inte%rar1 e&ecutar1 operar
$ administrar. NET ramewor! soluciones en servidores tales como Microsoft )indows 0erver 2
/334 $ Microsoft 0Q# 0erver 2.
4 - 5lientes. Microsoft. NET permite a los desarrolladores para ofrecer al usuario una
e(periencia completa a travs de una familia de dispositivos tales como dispositivos m'viles1
nave%adores )eb1 $ computadoras personales.
6 - 7isual 0tudio /338 $ otras 9erramientas de desarrollo. Mediante el uso de estas
9erramientas1 los usuarios pueden r:pidamente desarrollar servicios )eb .M# $ aplicaciones
)indows $ )eb para una e(periencia de usuario enriquecida.
Qu es el. NET ramewor!?
.NET ramewor! proporciona una base para construir $ e&ecutar aplicaciones $ servicios )eb .M#.
#a unicidad del. NET ramewor! si%nifica que todas las aplicaciones1 sea cual sea su tipo1 utilizar
un con&unto com;n de 9erramientas $ el c'di%o $ se puede inte%rar f:cilmente con otros.
.NET ramewor! se compone de,
1 - El 5ommon #an%ua%e <untime =5#<>. El 5#< mane&a los servicios de tiempo de
e&ecuci'n1 incluida la inte%raci'n del len%ua&e1 la se%uridad $ la %esti'n de memoria. ?urante el
desarrollo1 el tiempo de e&ecuci'n inclu$e funciones que simplifican el desarrollo en m;ltiples
len%ua&es de pro%ramaci'n.
/ - #ibrer+a de clases, proporcionan c'di%o reutilizable para las tareas m:s comunes1 como
el acceso de datos1 desarrollo de servicios )eb .M#1 $ los formularios web $ )indows.
4 - 0istema @perativo. .NET ramewor! debe e&ecutarse en un sistema operativo. #os
sistemas operativos compatibles con la versi'n. NET ramewor! 4.A son Microsoft )indows 0erver
* /3341 )indows 7ista 2 $ )indows .B.
6 - El 5#0 es un con&unto de las caracter+sticas b:sicas del idioma que la ma$or+a de las
aplicaciones requieren.
NET ramewor! /.3 Tecnolo%+as.
Broporciona una amplia colecci'n de clases que proporcionan funciones de diferentes :reas
tecnol'%icas. Estas tecnolo%+as inclu$en,
1 - C0B.NET1 que es un marco de pro%ramaci'n para la creaci'n de potentes aplicaciones
)eb.
/ - C?@.NET1 que proporciona una funcionalidad para acceder a fuentes de datos e(ternas1
inclu$endo amplia compatibilidad con .M#.
4 - 0ervicios )eb .M#1 que se pueden pro%ramar los componentes )eb que se puede
compartir entre las aplicaciones en "nternet o una intranet.
6 - )indows orms1 que proporciona la funcionalidad para desarrollar aplicaciones
e&ecutables que se e&ecutan en equipos cliente.
. NET Framework 3.0 Tecnologas
#a versi'n de. NET ramewor! 4.3 se basa en la versi'n. NET ramewor! /.3 $ ofrece las nuevas
tecnolo%+as para a$udarle a desarrollar la pr'(ima %eneraci'n de aplicaciones distribuidas. . NET
ramewor! 4.3 se inclu$e como parte del sistema operativo )indows 7ista $ est: disponible para
)indows .B $ )indows 0erver /334.
. NET ramewor! 4.31 las tecnolo%+as son,
1 - Windows Communication Foundation (WCF), que proporciona un modelo de
pro%ramaci'n unificado para aplicaciones orientadas a servicios.
/ - Windows Presentation Foundation (WPF)1 que proporciona clases para las
aplicaciones de cliente inteli%ente que combina la interfaz de usuario1 documentos $ medios de
comunicaci'n.
4 Windows Work!low Foundation (WF)1 que proporciona un modelo de pro%ramaci'n $
9erramientas para construir aplicaciones de flu&o de traba&oDpermiti' que los procesos del modelo
de ne%ocio.
6 - Windows Card"#ace1 lo que simplifica la se%uridad de traba&ar en l+nea utilizando la
informaci'n de identidad personal en forma de tar&etas de visita virtual.
. NET Framework 3.$ Tecnologas.
@frece nuevas funciones en varias :reas tecnol'%icas. Estas caracter+sticas est:n contenidas en
nuevas asambleas para evitar romper las aplicaciones e(istentes que est:n escritas para versiones
anteriores de. NET ramewor!.
. NET Framework 3.$ tecnologas inclu%en&
1 - #an%ua%e "nte%rated Quer$ =#"NQ>1 que le permite escribir c'di%o para tener acceso $
manipular los datos mediante el uso de cualquier len%ua&e 9abilitado para #"NQ.
2 - C0B.NET CEC.1 que permite crear aplicaciones )eb m:s eficiente e interactiva.
4 #as nuevas adiciones de clases en la biblioteca de clases base1 por e&emplo Fi%"nte%er1
Gas90et $ tipos ?ateTime/.
6 - soporte para desarrolladores completo para )1 )5 $ )B1 que inclu$e nuevas clases
para la creaci'n de flu&o de traba&o de los servicios 9abilitados.
A - 0oporte para m:s est:ndares )0DH1 por e&emplo )0D<eliableMessa%in% 1.1.
'isual "tudio (00)& *a +erramienta #ara el ,esarrollo NET.
1 7isual 0tudio /338 constitu$e el n;cleo de Microsoft. NET. Es un entorno de desarrollo
completo en el cual usted puede diseIar1 desarrollar1 depurar e implementar aplicaciones. NET $
servicios )eb .M#.
#ecci'n /
-.u/ es 0"P.NET1
J
Microsoft C0B.NET es un con&unto de tecnolo%+as de desarrollo de aplicaciones )eb que permite a
los pro%ramadores construir sitios web din:micos1 aplicaciones )eb $ servicios )eb .M#. ?ebido
a que C0B.NET es parte de. NET ramewor!1 puede desarrollar aplicaciones )eb C0B.NET en
cualquier idioma. NET.
A El componente fundamental de C0B.NET es el formulario )eb. Kn formulario )eb es la
p:%ina web que los usuarios ven en un nave%adorL tambin puede e&ecutar c'di%o de servidor para
acceder a una base de datos1 para %enerar in%resos adicionales de formularios )eb1 o para tomar
venta&a de la se%uridad inte%rada en el servidor.
Kna aplicaci'n C0B.NET desple%ado se e&ecuta como un proceso en el "nternet "nformation
0ervices =""0>.
"er2icios We3 45*
La tecnologa ASP.NET tambin soporta servicios Web XML. Los servicios Web XML son aplicaciones
istrib!ias "!e !tili#an XML para trans$erir in$ormaci%n entre los clientes& aplicaciones ' otros servicios
Web XML.
Com#onentes de una a#licaci6n 0"P.NET We3 inclu%en&
- )eb orms o. Csp(. ormularios )eb proporcionan la interfaz de usuario de la aplicaci'n web.
- B:%inas de c'di%o sub$acente. se asocian con formularios )eb $ contienen el c'di%o del lado
del servidor para el )eb orm. Tambin puede crear una p:%ina C0B.NET de un solo arc9ivo1 que
contiene tanto el marcado de la p:%ina $ el .NET ramewor! en el mismo arc9ivo.
- #os arc9ivos de confi%uraci'n son arc9ivos .M# que definen la confi%uraci'n de la aplicaci'n
web $ el servidor )eb. 5ada aplicaci'n web tiene uno o m:s arc9ivos de confi%uraci'n web.confi%.
Cdem:s1 cada servidor web s'lo tiene un arc9ivo mac9ine.confi%.
- Crc9ivo Mlobal.asa(. estos arc9ivos contienen c'di%o para responder a eventos de nivel de
aplicaci'n que se plantean por C0B.NET.
- #os art+culos adicionales que se pueden incluir en una aplicaci'n web inclu$en arc9ivos GTM#
para contenido est:tico1 arc9ivos de te(to1 arc9ivos .M# $ E(tensible 0t$les9eet #an%ua%e
Transformations =.0#T>.
- El almacenamiento en cac9 permite que la aplicaci'n )eb para devolver los formularios )eb
orms $ los datos m:s r:pidamente despus de la primera solicitud.
Primera solicitud
5uando el cliente solicita una p:%ina )eb por primera vez1 el con&unto de los si%uientes eventos,
1. El nave%ador cliente env+a una solicitud MET GTTB al servidor.
/. El analizador de C0B.NET interpreta el c'di%o fuente.
4. 0i el c'di%o no se 9a compilado $a en una biblioteca de v+nculos din:micos =?##>1 C0B.NET
invoca el compilador.
6. #as car%as de tiempo de e&ecuci'n $ e&ecuta el len%ua&e intermedio de Microsoft =M0"#>.
"egunda "olicitud
5uando el usuario solicita la misma p:%ina )eb1 por se%unda vez1 la si%uiente serie de eventos,
1. El nave%ador cliente env+a una solicitud MET GTTB al servidor.
/. #as car%as de tiempo de e&ecuci'n e inmediatamente se e&ecuta el c'di%o M0"# que se compil'
$a durante el intento de acceso del usuario en primer lu%ar.
Modulo /
A
#ecci'n 1
7n!ormaci6n general de 'isual "tudio (00)
El entorno de 7isual 0tudio /338 de desarrollo inte%rado ="?E> es la interfaz com;n de usuario =K">
$ un con&unto de 9erramientas que puede utilizar para todos los tipos de pro$ectos diferentes $
len%ua&es de pro%ramaci'n 7isual 0tudio /338 admite.
Nnico "?E que proporciona una apariencia co9erente
Multiples len%ua&es,
- 7isual 5 O
- 7isual Fasic
- Microsoft 7isual 5 P P *
M;ltiples tipos de pro$ectos.
0oporte de aplicaciones para diferentes versiones de. NET ramewor!
Nave%ador inte%rado
7isual 0tudio /338 contiene un nave%ador inte%rado que se basa en Microsoft
"nternet E(plorer *
Cdmite la depuraci'n de su c'di%o inicial 9asta el lanzamiento de la
aplicaci'n
"nterfaz personalizable.
Broporciona plantillas de pro$ecto para )indows Bresentation oundation
=)B> $ )indows 5ommunication oundation =)5>. 7isual 0tudio /338 tambin
proporciona un diseIador de flu&os de traba&o basados en .CM# $ un con&unto
me&orado de wid%ets para )indows orms $ aplicaciones de )B.
Buede crear potentes controles C0B.NET CEC. $ rica de formularios )eb
$ las p:%inas maestras.
Bermite crear modelos de datos para datos relacionales. C continuaci'n1
puede escribir ricos #an%ua%e "nte%rated Quer$ =#"NQ> consultas en 7isual 5 O $
7isual Fasic para recuperar1 vincular $ actualizar datos.
0oluciones $ Bro$ectos
Entorno de desarrollo inte%rado.
E8aminador de o39etos
El E(aminador de ob&etos es una ventana que ofrece informaci'n acerca de los ob&etos $
sus mtodos1 propiedades1 eventos $ constantes
E8#lorador de soluciones
E(plorador de soluciones muestra la &erarqu+a de arc9ivos de pro$ecto.
Pro#iedades
"alida
#a ventana de resultados puede mostrar mensa&es de estado para diversas funciones en el
"?E.
E8#lorador de ser2idores
Ksted puede utilizar el E(plorador de servidores para ver las cone(iones locales de datos1
servidores $ servicios. Brmite la inte%raci'n de servicios e(ternos en su sitio web.
Ca9a de :erramientas
#a ca&a de 9erramientas que permite utilizar una operaci'n de arrastrar $ colocar los
controles en la aplicaci'n. #as 9erramientas est:n a%rupadas por cate%or+as $ se muestran
s'lo si est: disponible para su uso
#ecci'n /
Creaci6n de un #ro%ecto de a#licaci6n We3 0"P.NET
Bara crear una aplicaci'n )eb C0B.NET mediante 7isual 0tudio /3381 debe realizar los si%uientes
pasos b:sicos,
1 1. 5rear una especificaci'n de diseIo. #a especificaci'n de diseIo es el modelo que se
utiliza para crear una aplicaci'n web.
/ /. 5rear un nuevo pro$ecto. 5uando se selecciona una nueva plantilla de pro$ecto1 7isual
0tudio /338 crea autom:ticamente los arc9ivos $ el c'di%o predeterminado que se requieren para
apo$ar el pro$ecto.
4 4. 5rear la interfaz $ escribir el c'di%o. Bara crear la interfaz de la aplicaci'n )eb1 primero
debe colocar los controles $ ob&etos en las p:%inas )eb mediante la ventana del editor en modo de
diseIo.
6 6. Menerar. 5uando se %enera un pro$ecto1 se compila todo el c'di%o en las p:%inas )eb
$ otros arc9ivos de clase en una biblioteca de v+nculos din:micos =?##> convocaron a una
asamblea. 7isual 0tudio /338 cuenta con dos opciones de %eneraci'n, depuraci'n $ lanzamiento.
#a primera vez que desarrollar un pro$ecto1 a crear versiones de depuraci'n. 5uando est listo
para lanzar el pro$ecto1 se crea una versi'n de lanzamiento del pro$ecto.
A A. Brobar $ depurar. Bruebas $ depuraci'n no es un paso de una sola vez1 sino m:s bien
al%o que se 9ace iterativamente en todo el proceso de desarrollo.
J J. "mplementar. 5uando se 9an depurado totalmente el pro$ecto $ construido una versi'n
de lanzamiento1 puede implementar los arc9ivos necesarios para un servidor )eb de producci'n.
Ti#os de a#licaciones We3 % estructura de arc:i2os
puede crear una aplicaci'n web utilizando la aplicaci'n )eb C0B.NET o C0B.NET )eb plantilla de
pro$ecto de la web,
0#licaci6n We3 0"P.NET plantilla de pro$ecto. Broporciona un modelo de pro$ecto )eb
que es similar a la de 7isual 0tudio. NET /334 modelo de pro$ecto )eb.
"itio We3 0"P.NET plantilla de pro$ecto. Broporciona un modelo de pro$ecto )eb con
m:s funciones $ ma$or fle(ibilidad en la %esti'n de las aplicaciones )eb.
0#licaci6n We3 0"P.NET Crc9ivos de plantilla de pro$ecto
Cl crear una aplicaci'n web utilizando C0B.NET la plantilla de pro$ecto Cplicaci'n )eb1 7isual
0tudio /338 crea una carpeta para la soluci'n que contiene el arc9ivo. 0ln soluci'n. El arc9ivo es
un mapa de todos los arc9ivos de varios que enlazan uno o m:s pro$ectos &untos1 $ almacena la
informaci'n %lobal.
Tipo Nombre ?escripci'n
5arpetas CppQ?ata Kna carpeta que contiene los datos de
aplicaci'n los arc9ivos inclu$endo los
arc9ivos M?1 arc9ivos .M#1 $ otros
arc9ivos de almacn de datos.
Fin Kna carpeta que contiene el arc9ivo de
ensamblado del pro$ecto.
@b& Kna carpeta que contiene subcarpetas
para sus confi%uraciones de %eneraci'n.
Bropiedades Kna carpeta que inclu$e el arc9ivo
Cssembl$"nfo1 este arc9ivo contiene
informaci'n %eneral1 espec+ficamente los
atributos de versi'n de ensamblado $
monta&e1 sobre la asamblea.
Crc9ivos ?efault.asp( El 2alor #or de!ecto 0"P.NET )eb orm.
?efault.asp(.cs o ?efault.asp(.vb El arc:i2o de c6digo sub$acente para el
formulario.
?efault.asp(.desi%ner.cs o
?efault.asp(.desi%ner.vb
#a clase #arcial en tiem#o de dise;o
para el formulario.
)eb.confi% El arc9ivo de confi%uraci'n )eb que
contiene los a9ustes de con!iguraci6n
#ara la a#licaci6n we3.
)ebCpplicationName.cspro& o
)ebCpplicationName.vbpro& o
El documento .M# que contiene
referencias a todos los elementos del
pro$ecto =tales como formularios $ clases>1
adem:s de las referencias del pro$ecto $
las opciones de compilaci'n.
)ebCpplicationName.cspro&.user o
)ebCpplicationName.vbpro&.user
#a confi%uraci'n del pro$ecto para el
usuario.
"itio We3 0"P.NET 0rc:i2os de #lantilla de #ro%ecto
5uando se crea una aplicaci'n web mediante la plantilla de pro$ecto C0B.NET )eb 0ite1 7isual
0tudio /338 crea una carpeta que no inclu$e un arc9ivo de soluci'n.
Tipo Nombre ?escripci'n
5arpetas CppQ?ata Kna carpeta que contiene los datos de
aplicaci'n los arc9ivos inclu$endo los
arc9ivos M?1 arc9ivos .M#1 $ otros
arc9ivos de almacn de datos.
Crc9ivos ?efault.asp( El valor por defecto C0B.NET )eb
orm.
?efault.asp(.cs o ?efault.asp(.vb El arc9ivo de c'di%o sub$acente para el
formulario.
web.confi% El arc9ivo de confi%uraci'n )eb que
contiene los a&ustes de confi%uraci'n
para la aplicaci'n web
*os arc:i2os de a#licaciones We3
7isual 0tudio /338 es compatible con varios tipos de arc9ivos de aplicaciones $ e(tensiones,
0"P.NET We3 Forms (. 0s#8). Ksted puede utilizar C0B.NET )eb orms para construir
sitios web din:micos que se accede directamente por los usuarios. Bueden ser apo$ados
por un p:%ina de c'di%o sub$acente que es desi%nado por la e(tensi'n )eborm.asp(.vb
o )eborm.asp(.cs.
"er2icios We3 0"P.NET (. 0sm8). Ksted puede utilizar servicios web de C0B.NET para
crear sitios )eb din:micos que se accede s'lo por otros pro%ramas. 0ervicios web de
C0B.NET puede ser apo$ado por una p:%ina de c'di%o sub$acente que es desi%nado por
la e(tensi'n )eb0ervice.asm(.cs o )eb0ervice.asm(.vb.
Clases % #<ginas de c6digo su3%acente (. '3 o. Cs). Cntes de que el. NET ramewor!1
versiones anteriores de 7isual Fasic utiliza las e(tensiones de arc9ivos diferentes para
distin%uir entre las clases =. 5ls>1 formas =. rm>1 los m'dulos =. Fas>1 $ controles de usuario
=. 5tl>. 7isual Fasic permite a9ora a mezclar varios tipos en una sola vb.
,escu3rimiento de los arc:i2os (. ,iscoteca %. 'sdisco). ?escubrimiento arc9ivos son
arc9ivos basado en .M# que contienen enlaces =K<#s> a los recursos que proporcionan
informaci'n de descubrimiento para un servicio )eb .M#. Estos arc9ivos permiten el
descubrimiento de pro%ramaci'n de servicios )eb .M#.
Clases 5undial de la a#licaci6n (glo3al.asa8). El arc9ivo Mlobal.asa(1 tambin conocido
como el arc9ivo de aplicaci'n C0B.NET1 es un arc9ivo opcional que contiene c'di%o para
responder a eventos de nivel de aplicaci'n que son provocados por C0B.NET o planteadas
por GttpModules. En tiempo de e&ecuci'n1 Mlobal.asa( se analiza $ se compila como un
%enerado de forma din:mica la clase. NET ramewor! que se deriva de la clase base
GttpCpplication.
0rc:i2os de recursos (. =es8). Kn recurso es cualquier dato no e&ecutable que se
implementa l'%icamente con una aplicaci'n. Kn recurso se puede mostrar en una
aplicaci'n como mensa&es de error o como parte de la interfaz de usuario. #os recursos
pueden contener datos de varias formas1 inclu$endo cadenas1 im:%enes1 ob&etos $
persisti'. Clmacenar los datos en un arc9ivo de recursos le permite cambiar los datos sin
tener que recompilar toda la aplicaci'n.
"t%les.css. "t%les.css es el estilo por defecto arc9ivo de 9o&a para la aplicaci'n web.
Crc9ivo we3.con!ig. El arc9ivo )eb.confi% contiene opciones de confi%uraci'n que el
5ommon #an%ua%e <untime lee como la pol+tica de enlace del ensamblado $ ob&etos
remotos. Este arc9ivo tambin contiene la confi%uraci'n que la aplicaci'n puede leer $ las
clases de aplicaciones %lobales que apo$an un pro$ecto.
#ecci'n 4
,escri#ci6n de 5icroso!t. NET 3asado en
. NET ramewor! es compatible con muc9os len%ua&es de pro%ramaci'n1 est: diseIado para
soportar un n;mero ilimitado de len%ua&es de desarrollo1 asumiendo que los idiomas se a&usten a
los requisitos de NET ramewor!.. . NET ramewor! es una biblioteca orientada a ob&etos que se
compone de espacios de nombres que son tipos reutilizables que reducen el tiempo de desarrollo.
Esta lecci'n describe los len%ua&es de pro%ramaci'n que son compatibles con. NET ramewor!.
Tambin presenta espacios de nombres1 que son una caracter+stica fundamental de. NET
ramewor! $ los len%ua&es. NET ramewor!.
Tiem#o de e9ecuci6n Com#ilaci6n % e9ecuci6n
5ada len%ua&e compatible con. NET proporciona su propio compilador para compilar el c'di%o en
M0"#. ?espus de que el c'di%o se compila en M0"#1 el 5#< compila el c'di%o M0"# a c'di%o
nativo $ lue%o e&ecuta la aplicaci'n.
Com#ilaci6n de lengua9es
Kn e(plorador )eb solicita una p:%ina )eb desde un servidor )eb que e&ecuta "nternet
"nformation 0ervices =""0>. #a p:%ina )eb solicitada est: compilado con el compilador del len%ua&e
adecuado1 en funci'n del idioma que se utiliza para escribir la p:%ina. "ndependientemente de que
el compilador $ el len%ua&e utilizado1 la aplicaci'n se compila en M0"#.
Com#ilaci6n >7T
El M0"# es mane&ado por el 5#<. El 5#< utiliza un compilador E"T para compilar el c'di%o M0"# a
c'di%o nativo. ?espus de la aplicaci'n es E"TDcompilado1 se almacena en cac9 para que no tener
que ser recompilados en cada solicitud.
E9ecuci6n de la a#licaci6n
?espus se compila la aplicaci'n1 el 5#< se e&ecuta la aplicaci'n en el servidor )eb $ %enera el
G$perte(t Mar!up #an%ua%e =GTM#> $ el %ui'n que se devuelve al cliente.
-Cu<les son los es#acios de nom3res1
,e!inici6n
#os espacios de nombres proporcionan una a%rupaci'n l'%ica de clases que pueden ser utilizados
por todos los len%ua&es de pro%ramaci'n compatible con. NET. 5ada espacio de nombres contiene
tipos que se pueden utilizar en su aplicaci'n. #os espacios de nombres est:n or%anizados
&er:rquicamente1 que a$uda a reducir los conflictos de nombres $ aumenta la capacidad de
reutilizaci'n de c'di%o.
7m#ortaci6n de es#acios de nom3res
Bara utilizar las clases en un espacio de nombres1 se puede calificar plenamente cada tipo con la
&erarqu+a de espacio de nombres completo1 o puede proporcionar una declaraci'n declarativa en el
inicio de la aplicaci'n. Bara emitir una declaraci'n declarativa1 se utiliza la instrucci'n usin% de
7isual 5 O
#ecci'n 6,
Creaci6n de un com#onente utili?ando 'isual "tudio (00)
-Cu<les son las clases % com#onentes1
5uando se utiliza un len%ua&e orientado a ob&etos =como 7isual 5 O o 7isual Fasic> para desarrollar
una aplicaci'n1 puede utilizar las clases e(istentes $ componentes.
Clase ,e!inici6n
#as clases son %rupos de instrucciones de c'di%o que no tienen interfaz de usuario. #as clases
proporcionan la funcionalidad de una aplicaci'n. Tambin tienen propiedades $ mtodos. #as
propiedades son la forma que establezca las caracter+sticas de una clase $ los mtodos son la
forma en que se invoca las acciones de una clase. 5uando se desea utilizar una clase $ sus
mtodos1 una instancia de la clase.
,e!inici6n de com#onente
#os componentes son clases que se compilan en un arc9ivo ?##. ?ebido a que el componente es
su propio arc9ivo1 se puede reutilizar en diferentes partes de una aplicaci'n. Buede 9acer
referencia a un componente de una aplicaci'n utilizando el componente de espacios de nombres $
nombres de las clases.
0cceso a los com#onentes en un !ormulario We3 0"P.NET
#as clases que se crean en un componente est:n disponibles para otros pro%ramas. En primer
lu%ar1 debe 9acer referencia al componente =?##>. El componente no tiene por qu ser un NET
ramewor!L. Buede ser otro pro$ecto en la soluci'n o una ?## 5@M. Entonces1 para acceder a los
mtodos de la clase1 una instancia de la clase de ob&eto por referencia a su nombre de espacio de
nombres $ de clase.
Crear instancias de los o39etos
?espus de a%re%ar una referencia al componente1 una instancia de la clase de ob&eto.
E&, 5ompan$C.09ippin% s9ippin%@b&ect R new 5ompan$C.09ippin%=>L
Tambin puede utilizar el usin%,
[Visual C#]
using CompanyA;
...
Shipping shippingObject = new Shipping(;
0cceso al o39eto
?espus de que se crea una instancia1 el ob&eto se utiliza como cualquier otro ob&eto en el
pro$ecto. Todos los mtodos p;blicos en la clase est:n disponibles para su uso. Bor e&emplo1 la
si%uiente l+nea de c'di%o pasa un par:metro a la funci'n 5alculate09ippin% de la clase de env+o $
le asi%na el valor devuelto a la variable s9ippin%5ost.
[Visual C#]
shippingCost = shippingObject.CalculateShipping(shipping!"ice;
M'dulo 4
Crear un !ormulario We3 0"P.NET 5icroso!t
)eb orms se pueden pro%ramar p:%inas web que sirven como interfaz de usuario =K"> de
Microsoft * aplicaci'n )eb C0B.NET. Kn formulario )eb presenta informaci'n al usuario en
cualquier tipo de nave%ador1 $ que implementa la l'%ica de aplicaci'n mediante el uso de c'di%o de
servidor. En este m'dulo se describe c'mo crear $ rellenar formularios )eb orms.
#ecci'n 1,
Qu es un formulario web?
Por caso e $!er#a ma'o pasamos al mo!lo 12
"il2erlig:t Creaci6n de a#licaciones 3asadas en 'isual "tudio (00)
7isual 0tudio /338 le permite crear aplicaciones de 0ilverli%9t 1.1 mediante el uso de c'di%o
administrado $ E0cript. Cl crear una aplicaci'n de 0ilverli%9t1 7isual 0tudio crea una soluci'n con
un marco para la aplicaci'n.
Buede utilizar la plantilla de pro$ecto de 0ilverli%9t para crear una aplicaci'n de 0ilverli%9t o la
plantilla Fiblioteca de clases de 0ilverli%9t para crear una biblioteca de clases de 0ilverli%9t.
7isual crea un pro$ecto de 0ilverli%9t1 que inclu$e por defecto un arc9ivo GTM#1 un arc9ivo E0cript1
un arc9ivo .CM#1 $ un inicio de 7isual 5 O o 7isual arc9ivo de c'di%o fuente de base de c'di%o.
Contenido de una a#licaci6n de "il2erlig:t
5uando se crea un pro$ecto de 0ilverli%9t en 7isual 0tudio1 el E(plorador de soluciones contiene
los si%uientes arc9ivos,
Page.8aml. Esta p:%ina es la interfaz de usuario para el contenido de 0ilverli%9t. El arc9ivo
se 9ace referencia como par:metro de la fuente por la llamada al mtodo create0ilverli%9t.
#a etiqueta de elemento ra+z inclu$e las definiciones (mlns para la aplicaci'n de 0ilverli%9t.
Page.8aml.cs o Ba%e.(aml.vb. Este arc9ivo se compila en el ensamblado que proporciona
los controladores de c'di%o administrado de eventos en tiempo de e&ecuci'n. El c'di%o
define las mismas clases especificadas en el valor (, 5lase de Ba%e.(aml. Ksted puede
utilizar esta clase para escribir controladores de eventos para los miembros de esta clase.
"il2erlig:t.9s. Este arc9ivo E0cript define los mtodos 5reate@b&ect $ create@b&ectE( que
llama desde TestBa%e.9tml.&s crear una instancia del control 0ilverli%9t en la p:%ina GTM#.
Tambin mane&a el nave%ador si el control de 0ilverli%9t no est: presente.
TestPage.:tml. Este arc9ivo proporciona el punto de entrada de base para su aplicaci'n.
"ncorpora el control de 0ilverli%9t de base $ 9ace referencia a dos arc9ivos E0cript,
TestBa%e.9tml.&s $ 0ilverli%9t.&s.
El c6digo asociado su3%acente arc:i2o tiene una e8tensi6n @9s.@,
TestPage.:tml.9s. Este arc9ivo E0cript contiene un mtodo denominado create0ilverli%9t
que llama a los mtodos create@b&ect o create@b&ectE(1 los cuales son definidos por
0ilverli%9t.&s. Estos mtodos de especificar el tamaIo del complemento 0ilverli%9t en el
tamaIo de la p:%ina GTM# $ la referencia del arc9ivo de marcado .CM# que contiene la
interfaz de usuario de 0ilverli%9t.
7m#lementar o39etos 405*
E(isten numerosos tipos de ob&etos que se pueden definir en .CM# $ cada uno tiene un uso
espec+fico. Bara declarar un ob&eto1 se utiliza la si%uiente sinta(is.
#object$ame%
#&object$ame%
?ebe abrir una etiqueta para declarar el ob&eto $ lue%o cerrar la etiqueta de la misma manera como
lo 9ar+a para .M# $ GTM#.
Buede utilizar un ob&eto 5anvas para contener otros ob&etos mediante la adici'n de los ob&etos
dentro de las etiquetas de lona. El si%uiente e&emplo ilustra este c'di%o .CM#.
#Can'as%
#(ectangle%
#&(ectangle%
#&Can'as%
0e pueden combinar las dos etiquetas de un ob&eto en uno si el ob&eto no contiene otro ob&eto. El
si%uiente e&emplo ilustra este c'di%o .CM#.
#Can'as%
#(ectangle &%
#&Can'as%
@b&eto <esumen
5anvas 5ontiene otros ob&etos. Que colocar los ob&etos en relaci'n con el lienzo en que se
encuentren in Kn lienzo no tiene que ser visible en la pantalla1 puede actuar como
un contenedor invisible. Tambin puede contener otros ob&etos del lienzo.
<ectan%le 5rea una forma rectan%ular que se define por las propiedades Cnc9o $ Clto.
Ellipse 5rea una forma circular que se define por las propiedades Cnc9o $ Clto.
Bat9 5rea formas comple&as mediante el uso de la %eometr+a. 0e puede definir la
%eometr+a mediante la propiedad de datos para especificar las coordenadas de
cada punto de la ruta. Kn camino puede tener l+neas rectas $ curvas.
#ine 5rea un ob&eto lineal que es un camino simple desde un punto a otro. 0e definen
las coordenadas ( e $ las coordenadas de dos puntos en la l+nea utilizando el .11
S11 ./1 S/ $ propiedades.
"ma%e Muestra una ima%en de mapa de bits como un arc9ivo EBEM o BNM una. #as
referencias a ob&etos de la ima%en de la ima%en con la propiedad 0ource $ act;a
como un contenedor para la misma.
MediaElement E&rcitos de audio o arc9ivos de v+deo. Cl i%ual que el ob&eto de ima%en1 debe
9acer referencia el arc9ivo con la propiedad @ri%en $ uso del ob&eto MediaElement
para controlar los medios de comunicaci'n que se &ue%a en ella.
Te(tFloc! Muestra el te(to. Ksted puede especificar el tipo de letra1 tamaIo de fuente1 $ la
cadena de te(to utilizando las propiedades ontamil$1 ont0ize $ te(to.
No 9a$ nin%una restricci'n al n;mero de ob&etos que se pueden incluir en la aplicaci'n de
0ilverli%9t.
Bropiedades de los ob&etos son importantes porque definen el aspecto real1 la posici'n $
caracter+sticas de un ob&eto. 0e puede declarar un ob&eto =como un rect:n%ulo>1 pero el ob&eto no
se representar: 9asta que definir al%unas propiedades.
Pro#iedades 3<sicas
Bropiedades b:sicas son propiedades simples que se pueden aplicar a un ob&eto utilizando la
sinta(is de atributo. El si%uiente e&emplo ilustra este c'di%o .CM#.
!"ope"ty=)Value);
Bor e&emplo1 el e&emplo de .CM# si%uiente c'di%o muestra un ob&eto <ectan%le que tiene un
relleno de color ro&o $ es /33 por /33 p+(eles de tamaIo.
#(ectangle *i+th=),--) .eight=/,--/ 0ill=)(e+) &%
Bropiedad <esumen
(,Name "dentifica de forma ;nica los elementos de ob&eto1 para que pueda acceder a los
ob&etos en un arc9ivo de c'di%o sub$acente o su c'di%o %eneral
5anvas.#eft
5anvas.Top
Bosici'n de un ob&eto en relaci'n con su padre =que contiene> lienzo.
5anvas.#eft especifica la coordenada ( $ 5anvas.Top especifica la coordenada
$ del ob&eto en p+(eles de resoluci'n independiente.
)idt9
Gei%9t
?efinir el tamaIo del ob&eto en p+(eles.
ill ?efine un relleno de color s'lido para el ob&eto. Ksted puede especificar un
valor 9e(adecimal como O 3333. Clternativamente1 puede utilizar un
nombre de color predefinido compatibles con 0ilverli%9t1 tales como <ed o
Mainsboro.
0tro!e ?efine un borde alrededor del ob&eto. El valor define el color del trazo. 0e utiliza
la propiedad 0tro!e con muc9os ob&etos de forma1 como un rect:n%ulo o una
ruta
0tro!eT9ic!ness Especifica el %rosor del trazo alrededor de un ob&eto.
Fac!%round ?efine el color de fondo para el ob&eto. Buede utilizar la propiedad Fac!%round
de la misma manera que utilice la propiedad ill. Cl%unos ob&etos1 tales como el
lienzo1 no admiten la propiedad ill.
ore%round ?efine el color del te(to de un ob&eto Te(tFloc!. 0e utiliza esta en la misma
forma que utilice la propiedad ill.
@pacit$ ?efine la transparencia del ob&eto. #os valores van desde 3 =transparente> $ 1
=opaco>. #os ob&etos que tienen la opacidad de 3 si%uen prestados1 $ todav+a se
puede 9acer clic en los ob&etos para interactuar con ellos a pesar de que no son
visibles.
7isibilit$ Especifica si un ob&eto es visible en la pantalla utilizando los valores de la visible
o colapsadas. Esto difiere de la propiedad @pacit$ de varias maneras. En primer
lu%ar1 si el ob&eto est: colapsado1 no se representa1 por lo que no puede
interactuar con l. Esto proporciona una manera m:s eficiente de esconder un
ob&eto. En se%undo lu%ar1 el ob&eto es visible o invisible =contra+do>1 por lo que
no puede utilizar esta propiedad para definir un ob&eto semitransparente en la
forma en que se puede mediante la propiedad de opacidad.
5lip ?efine un :rea de recorte de un ob&eto. 0e establece el valor a una %eometr+a
requerida =como la %eometr+a de surco> para especificar la forma para el :rea
de recorte. 0ilverli%9t no 9ace que cualquier parte del ob&eto fuera del :rea de
recorte1 por lo que se enmascaran.
0ource Especifica el K<" de la ima%en de ori%en o los medios de comunicaci'n. Buede
utilizar la propiedad 0ource de un ob&eto o una ima%en de MediaElement
5ursor Especifica la apariencia del puntero del rat'n cuando se est: sobre el ob&eto.
Buede establecer este valor a lec9a1 Forrador1 Mano1 "Feam1 Nin%uno1 0t$lus1
espera1 o por defecto. Bor e&emplo1 es posible que desee establecer el valor del
cursor de la mano de un bot'n para que el puntero del rat'n aparece como una
mano cuando lo mueve sobre el bot'n.
*as #ro#iedades asociadas
Buede ad&untar al%unas propiedades de un ob&eto aunque el ob&eto no admite de forma nativa la
propiedad particular. 5anvas.#eft1 5anvas.Top $ 5anvas.T"nde( son e&emplos de las propiedades
Aesti6n de e2entos
Buede controlar los eventos que se ori%inan a partir de elementos en una aplicaci'n de 0ilverli%9t
por escrito,
E0cript controladores. - #os controladores de eventos para len%ua&es din:micos que se
diri%en a c'di%o administrado ="ronB$t9on o %estionados E0cript>.
Mestionado controladores de c'di%o de evento en 7isual 5 O o 7isual Fasic.
Cl crear una aplicaci'n de 0ilverli%9t en 7isual 0tudio1 se a%re%a el mane&o de eventos de c'di%o
en los arc9ivos de c'di%o fuente asociado a las p:%inas .CM#.
+acer re!erencia al controlador de e2entos
Ksted puede 9acer referencia al controlador en el marcado .CM# o en el arc9ivo de c'di%o fuente
asociado. Bara 9acer referencia a un controlador en el marcado .CM#1 en la etiqueta de ob&eto1
establezca el evento con el nombre del controlador de eventos. El e&emplo de c'di%o si%uiente se
a%re%a un nuevo elemento 5anvas que mane&a Mouse#eftFutton?own.
#Can'as 12$ame=)3utton4) *i+th=)5-) .eight=),-) 3ac6g"oun+=)7"ay)
8ouse9e:t3utton;own=)OnClic6)%
#<e1t3loc6 <e1t=)Submit) &%
#&Can'as%
Tambin puede asociar controladores de eventos en el arc9ivo fuente de c'di%o administrado de la
p:%ina .CM#. En 7isual 5 O1 se puede asociar controladores de eventos de e&emplo1 utilizando el
operador P R. El e&emplo de c'di%o si%uiente se asocia el controlador @n5lic! e(istentes para el
evento Mouse#eftFutton?own del ob&eto Futton1.
[Visual C#]
public 'oi+ !age=9oa+e+(object o> ?'entA"gs e
@
...
3utton4.8ouse9e:t3utton;own A= new 8ouse?'ent.an+le"(OnClic6;
B
Escri3ir el controlador de e2entos
?ebe definir todos los controladores de eventos de la p:%ina .CM# en la clase $ de reuni'n que se
declara por (, 5lass. En 0ilverli%9t1 %estionado eventos suele utilizar EventGandler1 a menos que
9a$a datos en particular evento que activa un controlador diferente.
M'dulo 14
El consumo % la Creaci6n de "er2icios We3 45*
#ecci'n 1
Banorama de los 0ervicios )eb .M#
#os servicios )eb .M# proporcionan un modelo sencillo1 fle(ible $ basada en est:ndares que se
pueden utilizar para conectar aplicaciones en con&unto a travs de "nternet. #os servicios )eb .M#
permiten aprovec9ar la infraestructura e(istente de "nternet $ aplicaciones de enlace1
independientemente de que las plataformas1 len%ua&es de pro%ramaci'n o modelos de ob&etos que
utilizan.
Qu es un servicio )eb .M#?
#os servicios )eb .M# son similares a los componentes1 $a que representan la funcionalidad de
recuadro ne%ro que los desarrolladores pueden utilizar para a%re%ar caracter+sticas a un formulario
)eb1 Microsoft )indows orm *1 o incluso otro servicio )eb .M# sin tener que preocuparse
acerca de c'mo el servicio de apo$o se lleva a cabo.
#os servicios )eb .M# no tienen interfaz de usuario ="K>1 en su lu%ar1 los servicios )eb .M#
proporcionan interfaces est:ndar definido llamados contratos que describen los servicios que
proporcionan.
Protocolo de la 7nde#endencia
C diferencia de las tecnolo%+as de componentes actuales1 los servicios )eb .M# no utilizan
protocolos que son espec+ficos de determinados modelos de ob&etos1 tales como el ?istributed
5omponent @b&ect Model =?5@M>. #os servicios )eb .M# se comunican utilizando protocolos
est:ndar de "nternet $ los formatos de datos tales como GTTB1 .M# $ 0imple @b&ect Cccess
Brotocol =0@CB>. 5ualquier servidor que soporte estos est:ndares de la )eb pueden tener acceso
o el 9ost de servicios )eb .M#.
Cp:tridas Crquitectura
El modelo de servicios )eb .M# asume una arquitectura de servicio sin estado. arquitecturas sin
estado son %eneralmente m:s escalables que las arquitecturas con estado. 5ada respuesta del
servicio )eb .M# es un nuevo ob&eto con un nuevo estado. C menos que el servicio )eb .M#
utiliza Microsoft de %esti'n de estado de C0B.NET para mantener el estado entre las solicitudes1 el
estado de la respuesta se pierde en el servidor de servicios )eb .M#.
5omunicaci'n as+ncrona
#os servicios )eb .M# son asincr'nicas porque el ob&eto de la petici'n de la aplicaci'n cliente $ el
ob&eto de respuesta del servicio )eb .M# son ;nicos paquetes 0@CB que no requieren una
cone(i'n compartida. #as interacciones entre la aplicaci'n cliente $ el servicio )eb .M# se puede
dividir a;n m:s en una primera solicitud $ respuesta para iniciar el mtodo de servicios )eb .M# $
una se%unda solicitud $ respuesta para reco%er los resultados.
Normas )45
#os servicios )eb .M# se basan en un )orld )ide )eb 5onsortium =)45> est:ndar que
evoluciona constantemente.
Encontrar un servicio )eb .M#
El proceso para encontrar $ unirse a un servicio )eb .M# es el si%uiente,
1 1. Bublicar descripciones $ ubicaciones para los servicios )eb .M# en un Kniversal
?escription1 ?iscover$1 and "nte%ration =K??"> del sitio )eb.
/ /. 5onsultar el sitio )eb de K??" para encontrar la disposici'n de servicios )eb .M# que
cumplen sus requisitos. El sitio )eb de K??" proporciona una lista de servicios )eb .M# que
inclu$e el arc9ivo de descubrimiento =?"05@> ?ocumento de direcciones K<# de los servicios )eb
.M#.
4 4. 0eleccione un servicio )eb .M# $ tener acceso al documento ?"05@ para localizar la
direcci'n K<# del servicio )eb .M# $ las relacionadas con )eb 0ervices ?escription #an%ua%e
=)0?#> K<#.
6 6. 5rear una referencia al servicio )eb. 7isual 0tudio /338 crea la clase de pro($ en el
documento )0?# para el servicio.
A A. Enlazar el servicio )eb .M# utilizando el ob&eto pro($.
J J. #lame al servicio )eb .M# desde el formulario )eb mediante la invocaci'n de los
mtodos del ob&eto pro($.
Kna clase de pro($ es el c'di%o que se ve e(actamente como la clase que representa1 sin
embar%o1 la clase de pro($ no contiene nin%una de la l'%ica de aplicaci'n. En cambio1 la clase de
pro($ contiene el c:lculo de referencias $ la l'%ica del transporte. Kn ob&eto pro($ permite a un
cliente para acceder a un servicio )eb .M# como si fuera un componente local.
B,,7
#a especificaci'n K??" define una manera de publicar $ descubrir informaci'n acerca de servicios
)eb .M# $ las empresas que los suministran.
,7"CC 0rc:i2os
?"05@ arc9ivos de %rupo de servicios comunes $ en un servidor )eb. arc9ivos ?iscover$1 tienen
la e(tensi'n. discoteca $. vsdisco $ son arc9ivos basado en .M# que contienen enlaces en forma
de K<# a los recursos que proporcionan informaci'n de descubrimiento para un servicio )eb .M#.
Crc9ivos de m;sica disco. Kn descubrimiento est:tico =.?iscoteca> arc9ivo es un
documento .M# que contiene v+nculos a otros recursos que describen los servicios )eb
.M#. . Crc9ivos de m;sica disco se %eneran autom:ticamente para un servicio )eb .M#
cuando el servicio se accede mediante una direcci'n K<# con? ?"05@ dispuesto en la
cadena de consulta.
Crc9ivos. 7sdisco. arc9ivos de descubrimiento din:mico =.vsdisco> son documentos
din:micos descubrimiento de que son %enerados autom:ticamente por 7isual 0tudio /3381
durante la fase de desarrollo de un servicio )eb .M#. No se utilizan normalmente para los
sistemas de producci'n.
0rc:i2os W",*
Kn arc9ivo )0?# es un arc9ivo .M# que describe un servicio )eb. En concreto1 el arc9ivo )0?#
define la %ram:tica .M# que se utiliza para comunicarse con un servicio )eb .M#. 7isual 0tudio
/338 utiliza el arc9ivo )0?# para crear ob&etos pro($ para comunicarse con un servicio )eb .M#.
5ontiene la si%uiente informaci'n sobre un servicio )eb .M#,
K<# de la ubicaci'n.
)eb .M# mtodos de servicio $ las propiedades.
#os tipos de datos utilizados.
Brotocolos de comunicaciones.
5odelo de "er2icio We3 45*
Kn servicio web consiste en mtodos que se almacenan en un arc9ivo. Csm(.
0cceso mediante un e8#lorador
Ccceso directo a un servicio )eb .M# requiere un usuario para enviar la solicitud de K<# en GTTB
utilizando un nave%ador. El servicio )eb .M# responde con una lista de los mtodos $
propiedades desi%nadas en .M#. El usuario tiene la oportunidad de enviar una solicitud directa al
servicio )eb .M# $ recibir los resultados en .M#. Este proceso de acceso directo1 no se
recomienda para el uso normal1 $ por defecto se puede acceder al servicio web directamente s'lo
desde el servidor local. 0in embar%o1 este proceso no le permiten probar la funcionalidad del
servicio )eb .M#.
Bara acceder directamente a un servicio )eb .M#
1 1. #lame al servicio )eb .M# desde el nave%ador para determinar qu mtodos est:n
disponibles.
/ /. #lamar a un mtodo del servicio )eb .M# desde el nave%ador.
5uando se llama a un mtodo de un servicio )eb .M# desde un nave%ador1 el protocolo que se
utiliza es GTTB1 $ los datos se devuelven en formato .M#.
0cceso mediante un !ormulario We3
Tambin puede llamar a los mtodos del servicio )eb .M# mediante c'di%o en un formulario )eb.
Bara llamar a un servicio )eb .M# desde un formulario )eb
1 1. Cveri%Ue qu servicios )eb .M# est:n disponibles.
Bara lo%rar esto usted debe encontrar la direcci'n del servicio )eb .M#.
1 /. 5rear un )eb<eference al servicio )eb .M#.
Esto crea un vb. @. 5s que contiene el c'di%o fuente de la representaci'n tal como fue creado por
7isual 0tudio /338.
1 4. 5ompilar el pro$ecto1 que a su vez reco%e el pro($.
/ 6. Cbra un formulario )eb.
4 A. Escribir c'di%o para crear una instancia de la )eb<eference.
6 J. Escribir c'di%o para llamar a los mtodos del servicio )eb .M#.
A V. Ktilizar los datos .M# que devuelve el servicio )eb .M#.
*ecci6n (
-.u/ es un #ro8%1
Bara llamar a un servicio )eb .M# desde un formulario )eb1 debe crear una referencia )eb al
servicio )eb .M# en su pro$ecto de aplicaci'n )eb. #a referencia )eb crea el ob&eto pro($ que
utiliza para comunicarse con el servicio )eb .M# mediante 0@CB.
Kna clase de pro($ es el c'di%o que se ve e(actamente como la clase que representa1 sin
embar%o1 no contiene nin%una de la l'%ica de aplicaci'n. En cambio1 la clase de pro($ contiene el
c:lculo de referencias $ la l'%ica del transporte. Kn ob&eto pro($ permite a un cliente para acceder
a un servicio )eb .M# como si fuera un componente local. El poder debe estar en el equipo que
tiene la aplicaci'n web.
M'dulo 16
0dministrar el estado
Microsoft * C0B.NET le permite administrar el estado en una aplicaci'n web. Estado es la
capacidad de una aplicaci'n )eb para retener la informaci'n del usuario.
#a cone(i'n que se establece entre un usuario =el equipo de cliente> $ un servidor )eb se
denomina sesi'n. #as sesiones pueden abarcar varias p:%inas )eb $ se realiza un se%uimiento
mediante el uso de la administraci'n del estado. %esti'n del Estado es el proceso mediante el cual
se mantiene la misma informaci'n a travs de m;ltiples peticiones de las p:%inas web de i%uales o
diferentes.
En esta lecci'n se e(plica la %esti'n del lado del servidor del estado $ la %esti'n del lado del cliente
del estado $ describe el arc9ivo Mlobal.asa(.
-.u/ es la Aesti6n del Estado1
5omo ocurre con cualquier protocolo de transferencia de 9iperte(to =GTTB> basado en la
tecnolo%+a1 )eb orms no tienen estado1 lo que si%nifica que no indican autom:ticamente si las
solicitudes en una secuencia son todos de un mismo cliente o incluso si es una instancia del
e(plorador si%ue activa ver una p:%ina )eb o un sitio )eb. Cdem:s1 las p:%inas )eb se
destru$en $ lue%o vuelve a crear con cada nueva petici'n al servidor )eb1 por lo tanto1 informaci'n
de la p:%ina no e(iste m:s all: del ciclo de vida de una sola p:%ina.
Cdministraci'n del estado
C0B.NET proporciona una %esti'n del servidor del estado que %uarda la informaci'n en el servidor
de una p:%ina1 lo que a$uda a mantener la continuidad de la informaci'n del usuario =del estado> a
travs de una visita a un sitio )eb. C0B.NET tambin proporciona una %esti'n del lado del cliente
estatales en forma de coo!ie
Tipos de administraci'n del estado
#os dos tipos de administraci'n del estado son,
?el lado del servidor. del lado del servidor las opciones de %esti'n del Estado utilizar los
recursos de servidor para almacenar informaci'n de estado. Estas opciones tienen ma$or
se%uridad que la administraci'n del estado del lado del cliente.
del lado del cliente. %esti'n del lado del cliente Estado no 9ace uso de los recursos del servidor
para almacenar informaci'n de estado. @pciones del lado del cliente tienden a tener una
se%uridad m+nima1 pero s+ r:pida ofrecen el rendimiento del servidor1 porque no 9a$ demanda
en el servidor para mantener el estado.
?el lado del servidor de administraci'n del Estado
Cplicaci'n del estado
Estado de sesi'n
Microsoft 0Q# 0erver 2 base de datos o un servidor de estado.
El ob&eto 5ac9e.
?el lado del cliente la administraci'n del estado
#as coo!ies.
#a propiedad 7iew0tate.
5adenas de consulta.
,el lado del ser2idor de administraci6n del Estado
Estado de la a#licaci6n
C0B.NET proporciona el estado de aplicaci'n utilizando una instancia de la clase
GttpCpplication0tate para cada aplicaci'n )eb activa. El estado de aplicaci'n es un mecanismo de
almacenamiento %lobal1 que es accesible desde todas las p:%inas en la aplicaci'n web1 es por lo
tanto ;til para almacenar la aplicaci'n o la informaci'n mundial que se debe mantener entre ida $
vuelta entre el servidor $ p:%inas.
'aria3les de a#licaci6n
C0B.NET proporciona las variables de aplicaci'n que mantienen el estado de aplicaci'n. #os datos
ideal para insertar en las variables de aplicaci'n son los datos que es compartida por varias
sesiones $ no cambia con frecuencia. Esto es particularmente importante $a que el acceso a
variables de aplicaci'n requiere una sobrecar%a adicional para el cierre de se%uridad e 9ilo1 donde
los valores m;ltiples potencialmente se pueden sobrescribir.
Estado de sesi6n
C0B.NET proporciona el estado de sesi'n mediante una instancia de la clase Gttp0ession0tate
para cada sesi'n de aplicaci'n )eb activa.
*as 2aria3les de sesi6n
C0B.NET proporciona las variables de sesi'n para mantener el estado de sesi'n. #os datos ideal
para almacenar en las variables de estado de sesi'n es de corta duraci'n1 los datos sensibles que
es espec+fico de una sesi'n individual.
Ten%a en cuenta, #os estados de aplicaci'n $ de sesi'n se implementa como una tabla 9as9 $
almacn de datos basado en clave W valor par de combinaciones. Kna tabla 9as9 es similar al
concepto de un ob&eto de diccionario.
7denti!icaci6n % seguimiento de una sesi6n
5ada sesi'n activa de aplicaciones )eb es identificado $ rastreado mediante una cadena
0ession"? de 1/3 bits que contiene los caracteres C05"" que se permiten en las direcciones K<#.
?el lado del cliente la administraci'n del estado
#a ma$or+a de las aplicaciones )eb usan coo!ies para la administraci'n del estado del lado del
cliente.
Cookies
Kna coo!ie es una pequeIa cantidad de datos que se almacenan en un arc9ivo de te(to en el
sistema de arc9ivos del equipo cliente o en la memoria en la sesi'n de clienteDnave%ador.
Tipos de los 5oo!ies
#os dos tipos de coo!ies son,
Temporal. #as coo!ies temporales1 tambin llamado el per+odo de sesiones o coo!ies no
persistentes1 s'lo e(isten en la memoria del nave%ador.
Bersistentes. #as coo!ies persistentes son similares a las coo!ies temporales1 salvo que
las coo!ies persistentes dispondr: de un plazo de vencimiento determinado.
,e 2encimiento
#as coo!ies pueden caducar en la sesi'n del e(plorador =coo!ies temporales>1 o pueden e(istir
indefinidamente en el equipo cliente1 con su&eci'n a las normas de vencimiento en el cliente
=coo!ies persistentes>.
"eguridad
#as coo!ies no son tan se%uras como las opciones de servidor de administraci'n del estado.
El arc:i2o Alo3al.asa8
El arc9ivo %lobal.asa( es un arc9ivo declarativo que puede utilizar para controlar los eventos1
mientras que la aplicaci'n )eb se est: e&ecutando. Cl%unas de las caracter+sticas del arc9ivo
Mlobal.asa( son,
5ada aplicaci'n )eb de C0B.NET soporta un arc9ivo Mlobal.asa( por aplicaci'n web.
El arc9ivo %lobal.asa( se almacena en la ra+z virtual de la aplicaci'n web.
El arc9ivo Mlobal.asa( puede mane&ar la aplicaci'n $ el per+odo de sesiones =inicio $ final>
los eventos que puede utilizar para inicializar variables de aplicaci'n $ sesiones.
El arc9ivo Mlobal.asa( es opcional. 0i no se define el arc9ivo1 el marco de p:%inas
C0B.NET se supone que no 9a definido los controladores de eventos de aplicaci'n o de
sesi'n1 pero a;n puede utilizar variables de aplicaci'n o de sesi'n
5ate%or+as de Eventos
El arc9ivo Mlobal.asa( es compatible con tres tipos de eventos,
Eventos que se invocan cuando se solicita una p:%ina.
#os eventos que se disparan cuando la p:%ina solicitada se env+a.
Eventos de aplicaci'n condicional.
M'dulo 1A
#ecci'n 1
Cplicaci'n de la cac9 de ob&etos
Kna de las maneras m:s efectivas para aumentar el rendimiento de una aplicaci'n )eb C0B.NET
es utilizar el ob&eto C0B.NET 5ac9e. El ob&eto 5ac9e le permite depositar ob&etos en la memoria
del servidor de modo que usted puede r:pidamente recuperarlas.
Kn ob&eto 5ac9e permite almacenar elementos en la memoria la primera vez que se solicitan a
continuaci'n1 utilice la copia en cac9 para las solicitudes posteriores. Mediante el uso de la copia
en cac91 no tiene que recrear la informaci'n que satisface una solicitud anterior1 en particular la
informaci'n que e(i%e el tiempo de procesador si%nificativa en el servidor cada vez que se crea.
El ob&eto 5ac9e proporciona una sencilla interfaz del diccionario que le permite insertar valores con
facilidad $ lue%o recuperarlos m:s tarde. Clmacenar el valor utilizando el ob&eto 5ac9e tiene varias
venta&as
Escrito a la cac:/ de o39etos
Ksted puede escribir un art+culo en un ob&eto de cac9 de forma impl+cita. El c'di%o si%uiente
ilustra esto.
[Visual C#]
Cache[)my6ey)] = myValue;
Eliminar elementos de la cac:/ de o39etos
El ob&eto 5ac9e de C0B.NET est: diseIado para ase%urar que no se usa demasiado de la
memoria del servidor. 5omo resultado1 el ob&eto de cac9 elimina autom:ticamente los art+culos
menos utilizados cuando se dispon%a de la memoria escasea.
03soluteE8#iration
Buede definir el tiempo de vida m:(imo absoluto de un art+culo mediante el par:metro
absoluteE(piration.
"lidingE8#iration
Buede definir el tiempo de vida m:(imo relativo de un art+culo mediante el par:metro
0lidin%E(piration.
#ecci'n /
C0B.NET Clmacenar en cac9 de salida
Kno de los factores que debe considerar cuando se crea de alto rendimiento de las aplicaciones
)eb es la manera de minimizar el tiempo de respuesta a las solicitudes de p:%ina. Ksted puede
almacenar una p:%ina1 o partes de una p:%ina en la memoria en el servidor )eb la primera vez
que se pide $ lue%o usar esa p:%ina almacenada1 o las artes p de la p:%ina1 para las solicitudes
posteriores. Esto le permite evitar el tiempo de procesamiento necesario para crear la p:%ina.
#ecci'n 4
5onfi%urar una aplicaci'n )eb C0B.NET
#a informaci'n de confi%uraci'n para los recursos C0B.NET est: contenido en una colecci'n de
arc9ivos de confi%uraci'n. 5ada arc9ivo de confi%uraci'n contiene un entramado &er:rquico de los
elementos .M# con atributos que especifican los valores de confi%uraci'n.
5ac:ine.con!ig
confi%uraci'n del nivel de la m:quina de confi%uraci'n se %uardan en el arc9ivo Mac9ine.confi%.
0'lo 9a$ un arc9ivo Mac9ine.confi% en cada servidor web. 5omo resultado1 puede utilizar el
arc9ivo Mac9ine.confi% para almacenar la confi%uraci'n que se aplican a todas las aplicaciones
C0B.NET )eb que residen en ese servidor )eb.
)eb.confi%
Cplicaci'n $ confi%uraci'n de nivel de directorio se almacenan en arc9ivos web.confi%. 5ada
aplicaci'n )eb normalmente tiene al menos un arc9ivo web.confi%. #os directorios virtuales
pueden tener sus propios arc9ivos web.confi% que contienen valores que son espec+ficos de ese
directorio. 0i una aplicaci'n web no tiene un arc9ivo web.confi% en la carpeta ra+z de la aplicaci'n1
9ereda la confi%uraci'n en el arc9ivo web.confi% en la carpeta de confi%uraci'n del marco instalado
en el servidor. Este arc9ivo a su vez 9ereda la confi%uraci'n del arc9ivo Mac9ine.confi%.
Fic:ero de con!iguraci6n de atri3utos
?ebido a que las etiquetas en los arc9ivos Mac9ine.confi% $ web.confi% debe estar bien formado
.M#1 los elementos $ atributos distin%uen entre ma$;sculas $ min;sculas. #os nombres de
etiquetas $ nombres de atributos son camel5ased1 lo que si%nifica que el primer car:cter de un
nombre de etiqueta es min;scula $ la primera letra de cualquier palabra concatenada subsi%uiente
es ma$;scula. Toda la informaci'n de confi%uraci'n en un arc9ivo. 5onfi% reside entre el
Xconfi%urationY $ XW confi%urationY ra+z de etiquetas .M#.
#as re%las de 9erencia para los arc9ivos de confi%uraci'n son las si%uientes,
El nivel del equipo web.confi% arc9ivo de confi%uraci'n 9ereda del arc9ivo Mac9ine.confi%.
Nivel de la aplicaci'n arc9ivos web.confi% 9eredan la confi%uraci'n de nivel de m:quina
arc9ivo web.confi%.
confi%uraci'n de conflicto en un niIo arc9ivo web.confi% reemplazar la confi%uraci'n
9eredada.
directorios individuales pueden tener los arc9ivos web.confi% que 9eredan de nivel de
aplicaci'n web.confi% arc9ivo de confi%uraci'n $ puede cambiar estas confi%uraciones.
=ecu#erar datos de We3.con!ig
#a secci'n Xapp0ettin%sY del arc9ivo web.confi% es un repositorio de confi%uraci'n de la
aplicaci'n. Que contiene pares de clave $ valor para los datos que se utiliza com;nmente en toda
la aplicaci'n )eb. Cdem:s1 la secci'n de Xconnection0trin%sY contiene pares de clave $ valor que
especifica una o m:s cadenas de cone(i'n para bases de datos $ otras aplicaciones. En al%unas
situaciones1 puede que ten%a que recuperar la aplicaci'n o la confi%uraci'n de la cadena de
cone(i'n mediante pro%ramaci'n.
=ecu#erar los 2alores de con!iguraci6n de We3.con!ig
Bara recuperar la confi%uraci'n de la aplicaci'n de los arc9ivos web.confi%1 se utiliza la clase
0$stem.)eb.5onfi%uration.)eb5onfi%urationMana%er. Bara las secciones Xapp0ettin%sY $
Xconnection0trin%sY1 esta clase proporciona las propiedades Cpp0ettin%s $ 5onnection0trin%s.
Ktilice estas propiedades para acceder a los pares de clave $ valor en las secciones. Bara otras
secciones del arc9ivo de confi%uraci'n1 la clase )eb5onfi%urationMana%er proporciona el mtodo
Met0ection
#ecci'n 6
"mplementar una aplicaci'n )eb C0B.NET
?espus de confi%urar el almacenamiento en cac9 $ or%anizar la confi%uraci'n de la aplicaci'n
)eb entre el Mac9ine.confi% $ arc9ivos web.confi%1 usted est: listo para implementar la aplicaci'n
)eb C0B.NET.
En esta lecci'n se describe c'mo seleccionar los arc9ivos que son necesarios para e&ecutar la
aplicaci'n )eb $ utilizar el protocolo .5@BS o transferencia de arc9ivos =TB> para copiar estos
arc9ivos al directorio de producci'n.
4CCPD im#lementaci6n
.5@BS es una utilidad de l+nea de comandos que puede utilizar para copiar los arc9ivos de la
aplicaci'n desde el equipo de desarrollo en el servidor )eb de producci'n. .5@BS es ;til para
escenarios de implementaci'n simple pero a menudo no es adecuada para implementaciones m:s
comple&as. Bor e&emplo1 no se puede utilizar .5@BS si desea crear accesos directos o de las
entradas del men; "nicio1 o instalar ensamblados en la cac9 de ensamblados %lobal =MC5>.
5opiar sitio )eb de utilidad
7isual 0tudio /338 proporciona la copia del sitio )eb de utilidad1 que le permite abrir una carpeta
en un servidor de producci'n $ el intercambio de arc9ivos entre el desarrollo $ entornos de
producci'n.
7m#lementaci6n de 7nternet 7n!ormation "er2ices
""0 es un servidor )eb de producci'n que tambin se puede usar al desarrollar las aplicaciones
C0B.NET. 7isual 0tudio /338 tambin contiene un servidor de desarrollo de C0B.NET1 lo que
simplifica el proceso de pruebas durante el desarrollo. 0in embar%o1 no se puede utilizar el servidor
de desarrollo web para 9ospedar sitios )eb de producci'n1 por lo tanto1 cuando usted est: listo
para implementar el sitio1 debe utilizar el entorno de ""0.
*as solicitudes de 77" % directorios 2irtuales
Ktiliza aplicaciones $ directorios virtuales en ""0 para subdividir el contenido en un servidor )eb.
Kn directorio virtual es un alias que apunta a una ubicaci'n de la carpeta espec+fica en un servidor
)eb. Kna aplicaci'n de ""0 es un directorio que 9ace que su contenido en un sitio web
independiente. Cntes de poder implementar una aplicaci'n )eb en un directorio de producci'n1 la
carpeta a la que se desple%ar: la aplicaci'n )eb debe estar confi%urado como aplicaci'n en ""0. 0i
crea un pro$ecto de instalaci'n )eb1 estos pasos se llevan a cabo como parte de la instalaci'n de
la aplicaci'n web. ?e lo contrario1 debe crear la aplicaci'n manualmente.
*os arc:i2os Eue se reEuieren en el ser2idor de #roducci6n inclu%en&
#a carpeta bin $ los arc9ivos ?## que est:n en l. Estos arc9ivos son los arc9ivos de
recursos compilados $ p:%inas de c'di%o sub$acente.
Todos los formularios )eb1 control de usuario $ arc9ivos de servicio )eb .M# =. Csp(1.
Csc(. Csm(>. Estos son los arc9ivos de usuario $ la interfaz de aplicaci'n.
Crc9ivos1 inclu$endo arc9ivos de confi%uraci'n web.confi% $ %lobal.asa(. 0i 9a cambiado
los valores de confi%uraci'n en el arc9ivo Mac9ine.confi% en el equipo de desarrollo1 debe
realizar los mismos cambios en el arc9ivo Mac9ine.confi% en el servidor de producci'n.
Todos los arc9ivos de soporte tcnico adicionales que se encuentran en el directorio =por
e&emplo1 arc9ivos .M#>.
M'dulo 1J
#ecci'n 1
"nformaci'n %eneral sobre se%uridad de aplicaciones )eb
Esta lecci'n ofrece una visi'n %eneral de los conceptos de se%uridad diferentes, autenticaci'n1
autorizaci'n $ mecanismos de autenticaci'n de ""0. Tambin e(plica 0ecure 0oc!ets #a$er =00#>.
0utenticaci6n
#a autenticaci'n es el proceso de obtenci'n de credenciales de identificaci'n tales como nombre $
una contraseIa de un usuario $ la validaci'n de las credenciales contra al%una autoridad1 como
una base de datos. 0i las credenciales son v:lidas1 la entidad que present' las credenciales se
considera una identidad autenticada
0utori?aci6n
?espus de una identidad se 9a autenticado1 el proceso de autorizaci'n determina si esa identidad
tiene acceso a un recurso determinado. El proceso de autorizaci'n limita los derec9os de acceso
mediante la concesi'n o dene%aci'n de permisos espec+ficos a una identidad autenticada.
5u:les son los mtodos de autenticaci'n C0B.NET?
5/todos de autenticaci6n
C0B.NET es compatible con tres tipos de mtodo de autenticaci'n,
autenticaci'n basada en )indows
autenticaci'n basada en formularios
Microsoft autenticaci'n de Bassport
0utenticaci6n 3asada en Windows
5on la autenticaci'n basada en )indows1 la aplicaci'n )eb de C0B.NET se basa en el sistema
operativo )indows para autenticar al usuario. C0B.NET utiliza la autenticaci'n basada en )indows
&unto con la autenticaci'n de ""0. 5on la autenticaci'n basada en )indows1 el usuario solicita una
p:%ina )eb se%ura desde la aplicaci'n )eb $1 a petici'n del entonces pasa a travs de ""0. 0i las
credenciales del usuario no coinciden con los de un usuario autorizado1 ""0 rec9aza la solicitud. El
usuario tiene que introducir su nombre $ contraseIa en el formulario de inicio de sesi'n. #as
credenciales de nuevo verificado por ""0. 0i es correcto1 ""0 diri%e la solicitud ori%inal a la aplicaci'n
web. #a p:%ina )eb se%uro se devuelve al usuario.
0utenticaci6n 3asada en !ormularios
Cutenticaci'n basada en formularios se refiere a un sistema donde no autenticado solicitudes se
rediri%en a una G$perte(t Mar!up #an%ua%e =GTM#> mediante el uso de transferencia de 9iperte(to
=GTTB> redirecci'n del lado del cliente. El usuario proporciona las credenciales $ env+a el
formulario. 0i la aplicaci'n valida las credenciales en la forma1 el sistema emite una coo!ie de
autenticaci'n para el usuario. #as peticiones posteriores por parte del usuario se emiten con la
coo!ie de autenticaci'n en las cabeceras de petici'n1 $ el usuario se autentica basado en los
encabezados de solicitud.
5icroso!t autenticaci6n de Pass#ort
autenticaci'n Bassport es un servicio de autenticaci'n centralizado proporcionado por Microsoft.
@frece una opci'n de inicio de sesi'n ;nico $ servicios de perfil b:sico de los sitios miembros. #os
usuarios que se inscriban en el uso de Bassport se autentican para acceder a sitios )eb utilizando
una cuenta de Bassport sola. Microsoft Bassport es un servicio )eb .M# $ utiliza una coo!ie de
autenticaci'n que es similar a la autenticaci'n basada en formularios.
-Cu<les son los mecanismos de autenticaci6n de 77"1
Cntes de poder utilizar la autenticaci'n basada en )indows1 primero debe confi%urar ""0. 5uando
un usuario solicita una p:%ina que requiere autorizaci'n1 ""0 autentica al usuario. ""0 proporciona
varios mecanismos que puede utilizar para establecer la autenticaci'n1 inclu$endo,
El acceso an'nimo
Cutenticaci'n b:sica
<ecopilaci'n de autenticaci'n
"nte%rada de se%uridad de )indows
-.u/ es la ca#a de sockets seguros1
""0 proporciona a los usuarios un canal de comunicaci'n se%uro1 apo$ando el protocolo 00# $
encriptaci'n <0C de se%uridad de datos en el servidor $ el cliente.
Nota, <0C es sin'nimo de <ivest1 09amir $ Cdleman1 que son los nombres de los cient+ficos que
crearon este al%oritmo.
-.u/ es ""*1
00# es un protocolo que puede utilizar para transmitir datos de forma se%ura a travs de una red.
00# prote%e la comunicaci'n de datos mediante,
5ifrado de datos
0ervidor de autenticaci'n
"nte%ridad de los datos

También podría gustarte