Manual Final ASP
Manual Final ASP
Modulo:
Instructor:
Temario
Introducción al ASP ........................................................................................................ 4
¿Que es ASP .NET ?......................................................................................................... 4
Para poder crear y probar ficheros ASP necesitaras dos programas: un editor y un
servidor. ........................................................................................................................... 6
Servidores ASP ............................................................................................................ 6
Editores ASP ................................................................................................................ 6
Elección de Servidores Web ASP ................................................................................... 6
Windows 95, 98 ........................................................................................................... 6
Windows 2000 Professional....................................................................................... 6
Windows XP Home Edition........................................................................................ 7
Los usuarios que necesiten servidor web en su ordenador deberá utilizar Windows
XP Professional. .............................................................................................................. 7
Windows XP Professional........................................................................................... 7
IIS (Internet Information Server) para Windows 2000 Professional .................... 7
Instalación de IIS (Internet Information Server) ..................................................... 7
Probar IIS para Windows 2000 ................................................................................. 7
Otros enlaces sobre IIS para Windows 2000............................................................ 8
IIS (Internet Information Server) para Windows XP Professional......................... 8
Instalación de XP (Internet Information Server) ..................................................... 8
Probar IIS para Windows XP ..................................................................................... 8
Otros enlaces sobre IIS para Windows XP................................................................ 8
Ejemplo 1: Hola Mundo en ASP NET ............................................................................ 8
Código: Hola Mundo en ASP...................................... ¡Error! Marcador no definido.
Ejemplo 2: Leer Formulario y escribir respuesta ......................................................... 9
Código: Hola Mundo en ASP...................................... ¡Error! Marcador no definido.
Ejemplo 3: Concatenar cadenas de texto ...................................................................... 9
Código: Concatenar cadenas de texto en ASP NET .................................................. 9
Ejemplo 4: Sumar, Restar, Multiplicar y Dividir Números ....................................... 10
Comentarios sobre Manipulación de números .............................................................. 11
Orden de preferencia para operadores numéricos y uso de paréntesis............................ 11
Números y operadores Mayor, Menor e Igual............................................................... 11
Formatear Numeros en ASP Net con String.Format...................................................... 11
Ejemplo 5: Formatos de Fechas en ASP NET ............................................................. 12
Ejemplo 6: Sumar dos números introducidos en un formulario .............................. 12
Ejemplo 7: Ejemplo de un control Span basico .......................................................... 13
Código: Span Basico.................................................................................................. 14
Ejemplo 8: Presentación de una imagen a través del control HTMLImage............. 14
Código: HTMLimage................................................................................................. 15
Ejemplo 9: Utilización del control HTMLinputCheckBox......................................... 15
Ejemplo 10: Utilización del control HTMLSelect ....................................................... 16
Ejemplo 11: Inserción de filas y celdas en un control HTMLTable a través de código
........................................................................................................................................ 17
Ejemplo 12: Visualialización de un control CheckBox básico ................................... 18
Introducción al ASP
Microsoft Active Server Pages (ASP) es un lenguaje para entornos de servidor con
el que puede crear páginas dinámicas e interactivas.
Con el ASP puedes combinar paginas HTML, Script y componentes COM para
crear páginas web dinámicas y aplicaciones web de forma rápida.
Un fichero asp puede contener etiquetas HTML y Scripts ASP. El Script de Asp
comienza con <% y termina con %>. Todo lo que va entre medias se interpreta en el
servidor.
• Mejor Eficiencia
• Poder y Flexibilidad
• Simplicidad
• Gerenciabilidad
• Escalabilidad y Disponibilidad
• Personalización y Extensibilidad
ASP.NET entrega una arquitectura bien formada que permite que los
desarrolladores "enchufen" su código al nivel apropiado. De hecho, es posible el
extender o reemplazar cualquier sub-componente del ambiente de ejecución de
ASP.NET con un componente personalizado. La implementación de
autenticación personalizada o de servicios de mantenimiento de estado nunca
ha sido tan sencillo.
Servidores ASP
Editores ASP
Dreamweaver MX
Notepad de Windows
Windows 95, 98
El PSW es una buena opción para hacer prácticas y crear tus primeros sitios web.
El sistema windows 2000 Professional incorpora una versión reducida del Internet
Information Server que encontrarás en tu copia del sistema operativo.
Windows XP Home Edition no incluye ni soporta las versiones (1.0, 2.0, 4.0) de
Microsoft Personal Web Server (PWS).
Windows XP Professional
Todo ello esta incluido en un componente opcional que puede instalarse desde el
CD de Windows XP Professional.
Desde Panel de Control > Agregar y quitar Programas y ahora selecciones Agregar
componentes de Windows, selecciones IIS e instálelo.
Desde Panel de Control > Agregar y quitar Programas y ahora selecciones Agregar
componentes de Windows, selecciones IIS e instalelo.
Combinar dos cadenas de texto, nombre y apellido y escribirlos en una página web.
End Sub
</script><html>
<head>
<title>Operar y Formatear Numeros en ASP Net</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
Puedes tratar de hacer tus propias formulas como 2 veces el numero A menos una
vez el B que sería
Observa lo sencillo que es operar con cifras en asp, prueba a cambiar los valores de
los números. ¿ te sale algún decimal? ¿Necesitas formatear los números para
limitar el número de decimales? ¿tienes problemas con la división por 0?
¿Sabes cual de estos dos son iguales? haz la prueba y descúbrelo por ti mismo. Un
dato teórico que te puede ayudar es que el orden de preferencia del operador * es
mayor que el -
Otros operadores que puedes utilizar con los números son > < e = que al comparar
números entre si te generan valores de verdadero o falso.
La página creada para explicar esta técnica solicita dos números al visitante.
cuando se reenvía la pagina se suman estos numeros.La pagina incluye dos
procedimientos definidos por el usuario a los que se llaman desde dos rutinas de
tratamientos de eventos.Uno de los procedimientos es una Function (Función),
dado que devuelve un valor. El otro procedimientos no devuelve ningún valor dado
que es una subrutina (Sub)
Así es como se quedaría montada la estructura de la pagina una vez seguido los
pasos y comprendiendo cada símbolo.
<html>
<head>
<title>Documento sin título</title>
</head>
<body>
<form runat="server">
<asp:label ID="alvi" runat="server"/>
<asp:textbox ID="numeros2" runat="server"/>
<asp:textbox ID="numeros1" runat="server" />
<asp:button ID="Botonok" Text="sumar" OnClick="ApretarelBoton"
runat="server"/>
</form>
</body>
</html>
</head>
<body>
</head>
<body>
La página creada para describir esta técnica salicita a los visitantes que respondan
dos preguntas de tipo sí/no a través de controlesHTMLInputCheckBox.cuando los
visitantes envíen la página, verán un texto basado en sus respuestas.
mimensage.InnerHTML = ""
If (chekeoeldibujo.Checked = True ) Then
mimensage.InnerHTML = " Ha seleccionado el " & "dibujo. <br>"
End If
end If
end sub
</script>
<html>
<head>
<title>Documento sin título</title>
</head>
<body bgcolor="#FFFFFF">
<form runat="server">
<input type="checkbox" id="chekeoeldibujo" runat="server">
</form>
</body>
</html>
</form>
</body>
</html>
Debes cambiar lo que esta en rojo para que funcione. Pon la IP del servidor
sustituyendo a localhost.
End Sub
</script>
<html>
<head>
<title>Formato de Fechas en Asp NET</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<form runat="server">
<asp:textbox ID="nombre" MaxLength="100" runat="server" />
<asp:button ID="boton" Text="Enviar" runat="server" OnClick="enviaEmail"/>
</form>
</body>
</html>
<script runat="server">
Sub enviaEmail(Src As Object, E As EventArgs)
Dim Mensaje as New MailMessage
Dim MailConexion as SmtpMail
Mensaje.From = "[email protected]"
Mensaje.To = "[email protected]"
Mensaje.Subject = "TituloDelMensaje"
Mensaje.Body = "Textos del mesaje:" & nombre.Text & Chr(13) & Chr(10)
Mensaje.Priority = MailPriority.High
SmtpMail.SmtpServer = "ip.del.servidor.de.email"
Try
MailConexion.Send(Mensaje)
Response.Write("Tu mensaje ha sido enviado con exito")
End Sub
</script>
<form runat="server">
<asp:textbox ID="nombre" MaxLength="100" runat="server" />
<asp:button ID="boton" Text="Enviar" runat="server" OnClick="enviaEmail"/>
</form>
Si deseas ampliar el texto del email puedes concatenar otras líneas poniendo &_ al
final de cada linea de este modo.
Page.Controls.Add(new LiteralControl(theURLresult))
Catch ex As Exception
Page.Controls.Add(new LiteralControl(ex.Message))
End Try
End Sub
</script>
<html><head>
<title>Webresponse y Webrequest</title>
</head>
<body bgcolor="#FFFFFF">
<h3><font face="Verdana">Codigo de la pagina www.terra.es</font></h3>
</body></html>
Acceso a datos
Otra área importante en los preparativos para llevar a cabo una migración es el
acceso a datos. La aparición de ADO .NET proporciona una forma nueva y eficaz de
obtener acceso a los datos. Dado que se podrían escribir muchas páginas sobre el
acceso a datos, este tema se escapa de los objetivos de este artículo. En la mayoría
de los casos, se puede continuar usando ADO como en el pasado, pero es muy
recomendable echar un vistazo a ADO .NET a fin de mejorar los métodos de acceso
a datos en la aplicación ASP .NET.
Después de repasar los problemas que pueden aparecer con más frecuencia, quizá
se pregunte qué soluciones se pueden aplicar hoy mismo para estar mejor
preparado cuando llegue el momento de migrar a ASP .NET. Para facilitar este
proceso, se pueden seguir una serie de acciones. Muchas de estas sugerencias
mejorarán el código ASP incluso si piensa migrar a ASP. NET dentro de bastante
tiempo.
A pesar de que usar esta opción siempre ha sido una buena idea, no todo el mundo
lo hace. La obligación de declarar las variables en ASP mediante Option Explicit
permite al menos tener una idea precisa sobre dónde se ubican y cómo se utilizan
las variables. Una vez que migre a ASP .NET, sugiero que utilice Option Strict.
Option Explicit será la opción predeterminada en Visual Basic .NET, pero al
utilizar la opción más estricta Option Strict, se asegurará de que todas las
variables se declaran como el tipo de datos correcto. A pesar de que esta
metodología requiere más trabajo, a largo plazo descubrirá que los resultados
compensan el esfuerzo.
Utilice paréntesis e instrucciones Call siempre que sea posible, tal y como se
explicó anteriormente. En ASP .NET, es obligatorio utilizar paréntesis. Si comienza
a utilizar la instrucción Call a partir de hoy, estará mejor preparado para el futuro.
Esta posibilidad no se admite en ASP .NET. Por tanto, debe declarar las funciones
dentro de los bloques <script>. Consulte la sección Cambios estructurales para ver
un ejemplo de esta técnica.
En la medida de lo posible, evite mezclar JScript y VBScript del lado del servidor en
la misma página. Por lo general, esta mezcla es característica de la programación de
baja calidad. Además, plantea un problema de migración para ASP .NET, ya que
requiere un solo lenguaje en línea <% %> por página debido al nuevo modelo de
compilación. Se pueden seguir emitiendo secuencias de comandos del lado del
cliente del mismo modo en que se hace ahora.
Como se ha podido comprobar, hay que tener en cuenta varios puntos antes de
efectuar la migración de una aplicación a ASP .NET. Sin embargo, casi todos los
cambios que se han explicado en este artículo deberían implementarse con relativa
facilidad.
ASP.NET define una aplicación como el conjunto de todos los archivos, páginas,
controladores, módulos y código ejecutable que se pueden invocar o ejecutar
dentro del ámbito de un determinado directorio virtual (y sus subdirectorios) en un
servidor de aplicaciones Web. Por ejemplo, una aplicación de "pedido" podría
publicarse dentro del directorio virtual "/pedido" de un servidor Web. Para IIS, el
directorio virtual se puede configurar en el Administrador de servicios de Internet y
contiene todos los subdirectorios, a menos que los propios subdirectorios sean
directorios virtuales.
<%@Page Language="VB"%>
<html>
<body>
<h1>hello world, <% Response.Write(DateTime.Now.ToString()) %></h1>
</body>
</html>
Una aplicación ASP.NET Framework se crea la primera vez que se realiza una
solicitud al servidor; antes de ello, no se ejecuta ningún código ASP.NET. Cuando
se realiza la primera solicitud, se crea una agrupación de instancias
HttpApplication y se provoca el evento Application_Start. Las instancias
HttpApplication procesan esta solicitud y las siguientes hasta que la última
instancia termina y se provoca el evento Application_End.
Si se utilizan objetos con ámbito de aplicación, se debería tener en cuenta que ASP.NET
procesa las solicitudes de forma concurrente y que pueden ser varios los subprocesos que
obtengan acceso al objeto Application. Por lo tanto, el siguiente código es peligroso y
podría no producir el resultado esperado si diferentes clientes solicitan la página
reiteradamente al mismo tiempo.
<%
Para conseguir que este código sea seguro durante la ejecución de subprocesos, hay
que serializar el acceso al objeto Application mediante los métodos Lock y
UnLock. Sin embargo, al hacerlo se produce una efecto de merma considerable en
el rendimiento:
<%
Application.Lock()
Application("counter") = CType(Application("counter") + 1, Int32)
Application.UnLock()
%>
Resumen de la sección
Archivo Global.asax
Eventos cuyo ámbito es una sesión o una aplicación Los programadores pueden
definir controladores para eventos de la clase base HttpApplication creando métodos en el
archivo Global.asax que se ajusten al modelo de nomenclatura
"NombreDeEventoDeLaAplicación(FirmaDeArgumentosDelEvento)".
Por ejemplo:
VB Application1.aspx
La primera vez que se abre la página, se provoca el evento Start para la aplicación
y la sesión:
Los objetos estáticos, las clases de .NET Framework y los componentes COM se
pueden definir en el archivo Global.asax mediante la etiqueta object. El ámbito
puede ser appinstance, session o application. El ámbito appinstance denota
que el objeto es específico para una instancia de HttpApplication y no está
compartido.
Resumen de la sección
En este ejemplo se ilustra el uso del estado de una aplicación para leer un conjunto
de datos en Application_Start.
VB Application2.aspx
Ya que distintos subprocesos pueden tener acceso a una aplicación y a todos los
objetos que contiene dicha aplicación de forma simultánea, es mejor almacenar con
ámbito de aplicación únicamente los datos que se modifican con poca frecuencia.
Idealmente, los objetos se inicializan en el evento Application_Start y los
accesos posteriores son de sólo lectura.
Sub Application_Start()
Dim ds As New DataSet()
Dim fs As New
FileStream(Server.MapPath("schemadata.xml"),FileMode.Open,FileAccess.Read)
Dim reader As New StreamReader(fs)
ds.ReadXml(reader)
fs.Close()
La ventaja de esta solución es que el precio de obtener los datos sólo lo paga la
primera solicitud. Las siguientes solicitudes utilizarán el objeto DataView
En el ejemplo siguiente se ilustra el uso del estado de una sesión para almacenar
preferencias de usuario volátiles.
VB Session1.aspx
Es posible almacenar los datos con ámbito de sesión a fin de proporcionar datos
individuales a un usuario durante una sesión. En el ejemplo siguiente se inicializan los
valores de preferencias de usuario en el evento Session_Start del archivo Global.asax.
Sub Session_Start()
Session("BackColor") = "beige"
...
End Sub
Response.Redirect(State("Referer").ToString())
End Sub
<style>
body
{
font: <%=GetStyle("FontSize")%> <%=GetStyle("FontName")%>;
background-color: <%=GetStyle("BackColor")%>;
}
a
{
color: <%=GetStyle("LinkColor")%>
}
</style>
Para comprobar que los valores se almacenan realmente con ámbito de sesión, hay
que abrir dos veces la página del ejemplo, cambiar un valor en la primera ventana
del explorador y actualizarlo en la segunda. La segunda ventana reflejará los
cambios, ya que las dos instancias de explorador comparten un objeto Session
común.
<sessionState
mode="StateServer"
stateConnectionString="tcpip=localhost:42424"
/>
Hay que tener en cuenta que si se prueba el ejemplo anterior con este valor, es
posible restablecer el servidor Web (escriba iisreset en la línea de comandos) y así
se conservará el valor de estado de la sesión.
En el ejemplo siguiente se ilustra el uso del estado de las cookies del cliente para
almacenar preferencias de usuario volátiles.
VB Cookies1.aspx
Almacenar cookies en el cliente es uno de los métodos que utiliza el estado de las
sesiones de ASP.NET para asociar solicitudes a sesiones. También se pueden
utilizar cookies directamente para conservar datos entre solicitudes, pero después
se almacenan los datos en el cliente y se envían al servidor con cada solicitud. Los
exploradores limitan el tamaño de las cookies; por tanto, sólo se garantiza la
aceptación de un número máximo de 4096.
VB Cookies2.aspx
Response.AppendCookie(cookie)
Response.Redirect(State("Referer").ToString())
End Sub
Compruebe que el ejemplo funciona; para ello, modifique un valor, cierre todas las
ventanas del explorador y abra de nuevo el archivo cookies2.aspx. La ventana
debería mostrar aún el valor personalizado.
Utilizar ViewState
VB PageState1.aspx
Resumen de la sección
Información general
ASP.NET proporciona una API de bajo nivel para solicitudes y respuestas que
permite a los programadores utilizar clases de .NET Framework para ocuparse de
las solicitudes HTTP entrantes. Para ello, los programadores crean clases que
admiten la interfaz System.Web.IHTTPHandler e implementan el método
ProcessRequest(). Los controladores suelen ser útiles cuando los servicios
suministrados por la abstracción del marco de trabajo de página de alto nivel no
son necesarios para procesar la solicitud HTTP. Entre los usos habituales de los
controladores, se incluyen los filtros y las aplicaciones al estilo CGI, especialmente
aquéllas que devuelven datos binarios.
Cada solicitud HTTP recibida por ASP.NET se procesa en último término mediante
una instancia específica de una clase que implementa IHTTPHandler.
IHttpHandlerFactory proporciona la infraestructura que controla la resolución
real de las solicitudes URL en instancias IHttpHandler. Además de las clases
IHttpHandlerFactory predeterminadas suministradas por ASP.NET, los
programadores pueden opcionalmente crear y registrar generadores que admitan
escenarios complejos de activación y resolución de solicitudes.
Por ejemplo, ASP.NET asigna todas las solicitudes de archivos .aspx a la clase
PageHandlerFactory del archivo global machine.config:
<httphandlers>
...
<add verb="*" path="*.aspx"
type="System.Web.UI.PageHandlerFactory,System.Web" />
...
</httphandlers>
Crear un controlador HTTP personalizado
SimpleHandler de VB
Resumen de la sección
Internet está evolucionando rápidamente desde los sitios Web actuales, que
simplemente proporcionan páginas de interfaz de usuario a través de exploradores,
a una futura generación de sitios Web programables que establecen vínculos
directamente con organizaciones, aplicaciones servicios y dispositivos entre sí.
Estos sitios Web programables adquieren un valor adicional al de aquellos sitios a
los que se obtiene acceso de forma pasiva, convirtiéndose en servicios Web
reutilizables y programables.
ASP.NET proporciona soporte para servicios Web con el archivo .asmx. Un archivo
.asmx es un archivo de texto similar a un archivo .aspx. Estos archivos pueden
formar parte de una aplicación ASP.NET que incluya archivos .aspx. De esta forma,
se puede asignar una dirección URI a los archivos .asmx, como se hace con los
archivos .aspx.
Imports System
Imports System.Web.Services
End Class
Para que este servicio esté disponible, podemos asignar al archivo el nombre
HelloWorld.asmx y colocarlo en un servidor denominado SomeDomain.com
dentro de un directorio virtual cuyo nombre sea someFolder. Mediante un
explorador Web, se podría insertar la dirección URL
http://SomeDomain.com/someFolder/HelloWorld.asmx y la página
resultante mostraría los métodos públicos para este servicio Web (aquéllos
marcados con el atributo WebMethod), así como los protocolos (SOAP o HTTP
GET) que se pueden utilizar para invocar dichos métodos.
Al insertar la dirección
http://SomeDomain.com/someFolder/HelloWorld.asmx?WSDL en el
explorador, se devuelve un documento de Lenguaje de descripción del servicio Web
(WSDL). Este documento WSDL es muy importante y lo utilizarán los clientes que
obtengan acceso al servicio.
WSDL http://someDomain.com/someFolder/HelloWorld.asmx?WSDL
Desde la perspectiva del cliente, el código es sencillo, tal y como se muestra en el siguiente
ejemplo.
El resto de esta sección contiene temas más avanzados de los servicios Web, como
el envío y recepción de tipos de datos complejos. También puede encontrar una
sección sobre coincidencias de patrones de texto, una tecnología que trata
cualquier identificador URI que devuelve texto como si fuera un servicio Web.
También puede realizar operaciones de enlace de datos con servicio Web; este tema
se amplía en la sección de datos.
En este mismo archivo, se define una clase que encapsula la funcionalidad del servicio.
Esta clase debe ser pública y opcionalmente puede heredar de la clase base WebService.
Cada método que se va a exponer del servicio presenta un indicador con un atributo
[WebMethod] delante de él. Sin este atributo, no se expondrá el método del servicio. A
veces, esto resulta útil para ocultar los detalles de implementación llamados por métodos
Web Service públicos o en el caso en que la clase WebService se utilice también en
aplicaciones locales (una aplicación local puede utilizar cualquier clase pública, pero sólo
Imports System
Imports System.Web.Services
End Class
VB MathService.asmx VB MathService.asmx?wsdl
Si se tiene una clase precompilada que se desea exponer como un servicio Web de
XML (y esta clase expone métodos marcados con el atributo [WebMethod]), es
posible crear un archivo .asmx con sólo la siguiente línea.
<%@ WebService Class="MyWebApplication.MyWebService" %>
WSDL.exe acepta diversas opciones de línea de comandos; sin embargo, para crear
un proxy sólo se requiere una opción: el identificador URI al WSDL. En este
ejemplo, se pasan algunas opciones adicionales que especifican el lenguaje
preferido, el espacio de nombres y la ubicación de salida para el proxy. También es
posible compilar con un archivo WSDL guardado anteriormente en lugar del
identificador URI al propio servicio:
Una vez que existe la clase proxy, es posible crear objetos basados en ella. Cada
llamada de método realizada con el objeto pasa seguidamente al identificador URI
del servicio Web de XML (normalmente como una solicitud SOAP).
VB MathServiceClient.aspx
Tipo Descripción
Tipos primitivos Tipos primitivos estándar. En la
lista completa de tipos primitivos
admitidos se encuentran String,
Char, Byte, Boolean, Int16, Int32,
Int64, UInt16, UInt32, UInt64,
Single, Double, Guid, Decimal,
DateTime (como timeInstant de
XML), DateTime (como fecha de
XML), DateTime (como hora de
XML) y XmlQualifiedName (como
QName de XML).
Tipos Enum Tipos de enumeración, como por
ejemplo, "public enum color { red=1,
blue=2 }"
Matrices de primitivos, Enums Matrices de los tipos primitivos
anteriores, como string[] e int[]
Clases y estructuras Tipos de clases y estructuras con
campos o propiedades públicas. Se
pueden serializar los campos y
propiedades públicos.
Matrices de clases (estructuras) Matrices de los tipos anteriores.
DataSet Tipos de DataSet de ADO.NET (vea
la siguiente sección para obtener un
ejemplo). También pueden aparecer
DataSet como campos en
estructuras y clases.
Tanto los parámetros por valor, como por referencia (in/out) son compatibles si se
utiliza el protocolo SOAP. Los parámetros por referencia pueden enviar el valor en
dos direcciones: hasta el servidor y de vuelta al cliente. Cuando se analizan
parámetros de entrada a un servicio Web de XML mediante HTTP GET/POST, sólo
se admite un conjunto limitado de tipos de datos que deben ser parámetros por
valor. A continuación se enumeran los tipos compatibles con los parámetros
GET/POST de HTTP:
Tipo Descripción
Tipos primitivos (limitados) La mayoría de los tipos primitivos
estándar. La lista completa de tipos
primitivos admitidos comprende los
tipos Int32, String, Int16, Int64,
Boolean, Single, Double, Decimal,
DateTime, UInt16, UInt32, UInt64 y
Currency. Desde el punto de vista del
cliente, todos estos tipos se
transforman en cadenas.
Tipos Enum Tipos de enumeración, como por
ejemplo, "public enum color { red=1,
blue=2 }". Desde el punto de vista del
cliente, los tipos enum se convierten
en clases con una cadena const
estática para cada valor.
Matrices de primitivos, Enums Matrices de los tipos primitivos
anteriores, como string[] e int[]
VB DataTypes.asmx VB DataTypes.asmx?wsdl
VB DataTypesClient.aspx
VB DataService.asmx VB DataService.asmx?wsdl
VB DataServiceClient.aspx
El primer método del archivo .asmx de ejemplo, UpdateHitCounter, tiene acceso al objeto
Session y agrega e incrementa en una unidad el valor de "HitCounter". Después devuelve
este valor en forma de cadena. El segundo método, UpdateAppCounter, hace lo mismo,
pero con el objeto Application. Hay que tener en cuenta lo siguiente:
<WebMethod(EnableSession:=true)>
VB SessionService.asmx VB
SessionService.asmx?wsdl
[Ejecutar ejemplo] | [Ver código
fuente] [Ver ejemplo]
Cuando se tiene acceso al cliente proxy, éste contiene una colección de cookies.
Esta colección se utiliza para aceptar y devolver la cookie APSESSIONID que utiliza
ASP.NET para hacer un seguimiento de las sesiones. Esto es lo que permite al
cliente recibir distintas respuestas al método Hit de Session.
VB SessionServiceClient.aspx
Comportamiento WebService
Este ejemplo muestra cómo crear un proxy cliente para cualquier URL que
proporcione texto. En vez de crear el archivo .asmx, se puede crear un archivo
WSDL que describa la página HTML (o XML o cualquier otro formato no binario)
actual. El archivo WSDL puede utilizarse para generar un proxy cliente mediante la
herramienta de línea de comandos WSDL.exe que utilizará RegEx para analizar la
página HTML especificada y extraer los valores.
VB MatchClient.aspx
Pre-requisitos
Puede ser que aún teniendo uno de los sistemas operativos necesarios no tengamos
instalado el IIS, que por defecto no viene en la configuración por defecto de
instalación. Si es así, instalaremos el IIS.
Una vez con el IIS corriendo, seleccionamos "Visual C# Projects" -> ASP.NET Web
Application y ponemos el nombre del proyecto que vamos a crear, en este ejemplo
"WebEstiloEjemplos".
Una vez creado el directorio "ejem01", pasamos a añadir nuestro primer Web
Form. Seleccionamos con el ratón el directorio "ejem01", pulsamos el botón
derecho y seleccionaremos "Add" -> "Add Web Form...", como se puede ver en la
imagen.
Una vez creado nuestro Web Form, ya podemos añadir controles de servidor,
primero hacemos doble clic sobre el fichero "Ejemplo01.aspx". Nos aparecerá una
página en blanco con una cuadrícula en la que añadiremos los controles.
Para añadir controles tan solo hay que arrastrarlos desde la ventana "Toolbox" a al
Web Form en blanco.
En este caso vamos a añadir un título <H1> y algunos retornos de carro <BR> y
obtenemos algo como esto:
Ejemplo01.aspx
Usando el Code-Behind
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
namespace WebEstiloEjemplos.ejem01
{
/// <summary>
/// Summary description for Ejemplo01.
/// </summary>
public class Ejemplo01 : System.Web.UI.Page
{
protected System.Web.UI.WebControls.TextBox txtNombre;
protected System.Web.UI.WebControls.Label lblNombre;
protected System.Web.UI.WebControls.Button btnEnviar;
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
}
}
Primero vemos que hay una sección "using" en la que se especifican qué espacios
de nombre vamos a usar en este fichero. Los espacios de nombre sirven para
agrupar clases, las cuales tiene normalmente funcionalidades comunes. Así por
ejemplo, hemos incluido el espacio de nombres System.Web.UI.WebControls para
trabajar con controles web de servidor. Este espacio de nombres (namespace)
contiene todas las clases relacionadas con los controles de servidor.
Seguidamente pasamos a especificar en qué espacio de nombres estará la clase que
vamos a definir, todas las clases deben pertenecer a un espacio de nombres. En este
caso indicamos que el espacio de nombres (namespace) en el que se incluirá
nuestra clase es WebEstiloEjemplos.ejem01.
A continuación definimos la clase que se asociará con la página web, la clase que
manejará todo el funcionamiento de la página web Ejem01.apsx.
La clase se llama Ejemplo01 y como pertenece al espacio de nombres
WebEstiloEjemplos.ejem01, su nombre real es
WebEstiloEjemplos.ejem01.Ejemplo01, si os dais cuenta coincide con el atributo
Inherits de la página Ejemplo01.aspx que se encuentra en la cabecera de dicha
namespace WebEstiloEjemplos.ejem01
{
/// <summary>
/// Summary description for Ejemplo01.
/// </summary>
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.btnEnviar.Click += new System.EventHandler(this.btnEnviar_Click);
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
Eventos de Página
Así como los controles de servidor pueden tener eventos, también las páginas
disparan eventos. El más habitual de los eventos es el que se produce cuando la
página se carga, es el evento "Load". Este evento es disparado siempre que se carga
la página.
Ejemplo02.aspx
namespace WebEstiloEjemplos.ejem02
{
/// <summary>
/// WebEstilo.com
/// Clase que muestra el funcinamiento del evento Load.
/// </summary>
public class Ejemplo02 : System.Web.UI.Page
{
protected System.Web.UI.WebControls.Label lblHora;
Alumno Instructor