ASP NET Con Visual Studio NET Agenda u

  • Slides: 80
Download presentation
ASP. NET Con Visual Studio. NET

ASP. NET Con Visual Studio. NET

Agenda u u u u u Introducción Web Forms Uso del Global. asax Como

Agenda u u u u u Introducción Web Forms Uso del Global. asax Como trabajar con estados Como securizar aplicaciones ASP. NET Uso del Web. Config Caching Monitorización de aplicaciones ASP. NET Web Service

Introducción Microsoft. NET Frame. Work Web Services User Interface A D O. N E

Introducción Microsoft. NET Frame. Work Web Services User Interface A D O. N E T : D a ta & X ML Base Cl ass L i b rary Visual Studio. NET C o m m o n L a n g u a g e R u n ti m e Orchestration Internet. NET Framework COM+ . NET Enterprise Servers Windows Building Block Services

Introducción Modelo de ejecución de ASP. NET

Introducción Modelo de ejecución de ASP. NET

Web Forms ¿Qué es un Web Form? u u u Modelo de Código Ciclo

Web Forms ¿Qué es un Web Form? u u u Modelo de Código Ciclo de vida Eventos del lado del servidor Controles de servidor Validaciones

Web Forms Modelo de Código u u Code Behind Separación entre Lógica y Presentación

Web Forms Modelo de Código u u Code Behind Separación entre Lógica y Presentación Orientado a Objectos Orientado a Eventos

Web Forms Gestionando el Post. Back de los Forms u u El control View.

Web Forms Gestionando el Post. Back de los Forms u u El control View. State mantiene el estado de la página durante el Post. Back El evento Page_Load se lanza en cada petición Ø Usar Page. Is. Post. Back para ejecutar lógica condicional private void Page_Load(object server, Event. Args e) { if(Page. Is. Post. Back) { … } }

Web Forms Ciclo de vida Página ASP. NET u Codificación de aplicaciones similar a

Web Forms Ciclo de vida Página ASP. NET u Codificación de aplicaciones similar a Win 32 Form_Initialize() Form_Load() Form_Activate() Form_Unload() ~ ~ Page_Init() Page_Load() Page_Pre. Render() Page_Unload()

Web Forms Eventos del lado del servidor u u u Runat=“server” <form runat=“server”> <input

Web Forms Eventos del lado del servidor u u u Runat=“server” <form runat=“server”> <input type=button id=button 1 On. Server. Click=“Button 1_Click” runat=“server” /> Button 1_Click(Sender as Object, e as Event. Args) Button 1. Text = “Save”

Web Forms Controles de Servidor u u Lanza Eventos al servidor Controles básicos Ø

Web Forms Controles de Servidor u u Lanza Eventos al servidor Controles básicos Ø u textbox, checkbox, radio, button Controles avanzados Ø Ad. Rotator, Calendar, Data. Grid, Validator

Web Forms Controles básicos de Servidor u u <asp: textbox id=text 1 runat=server/> text

Web Forms Controles básicos de Servidor u u <asp: textbox id=text 1 runat=server/> text 1. text = “Hello World” <asp: checkbox id=check 1 runat=server/> check 1. checked=True <asp: button id=button 1 runat=server/> button 1_on. Click() <asp: Drop. Down. List id=Drop. Down. List 1 runat=server> Drop. Down. List 1. Selected. Item. Text = “Hello”

Web Forms Controles Avanzados de Servidor u Data. Grid Ø Ø Ø Definido por

Web Forms Controles Avanzados de Servidor u Data. Grid Ø Ø Ø Definido por <asp: datagrid /> Ordenación por columnas Edición en línea Tabla HTML Data. Binding Paginación

Web Forms Controles Avanzados de Servidor u Validaciones Ø Ø Ø Required Validator Control

Web Forms Controles Avanzados de Servidor u Validaciones Ø Ø Ø Required Validator Control Range Validator Control Compare Validator Control Regular Expression Validator Custom Validator Control Ejemplo: <asp: Required. Field. Validator Control. To. Validate="txt. Name" Error. Message="Please Enter Your Name" runat="server" />

Demostración 1 Web Forms Modelo de Código Modelo de Eventos Controles de Servidor

Demostración 1 Web Forms Modelo de Código Modelo de Eventos Controles de Servidor

Aplicaciones ASP. NET ASP Tradicionales (global. asa) u u Application_On. Start Application_On. End Session_On.

Aplicaciones ASP. NET ASP Tradicionales (global. asa) u u Application_On. Start Application_On. End Session_On. Start Session_On. End

Aplicaciones ASP. NET Global. ASAX u Primera Petición Ø u Primera petición por cada

Aplicaciones ASP. NET Global. ASAX u Primera Petición Ø u Primera petición por cada usuario Ø u Ø Ø Application_Error Logs Out de usuario/Times Out de sesión Ø u Application_Begin. Request Application_Authenticate Application_End. Request Error en tiempo de ejecución Ø u Session_Start Cada Petición Ø u Application_Start Session_End Shutdown del Servidor Web Ø Application_End

ASP. NET Applications Global. ASAX Uso de eventos u Application_Begin. Request Ø Ø Acciones

ASP. NET Applications Global. ASAX Uso de eventos u Application_Begin. Request Ø Ø Acciones de personalización Texto para ser incluido al principio de cada página u Application_End. Request Ø Texto para ser añadido al final de cada página u Application_Error Ø Util para enviar email o escribir al event log cuando un ocurra un error que no pueda ser manejado

ASP. NET Applications Global. ASAX Uso de eventos u Session_End Ø Escribir a un

ASP. NET Applications Global. ASAX Uso de eventos u Session_End Ø Escribir a un log o base de datos log out de cada usuario u Application_End Ø Útil para escribir a un log cuando se ha parado una aplicación web. Se podría escribir un mensaje en el event log u Application_Start Ø Útil para cargar la información de configuración específica de un site

ASP. NET Applications Salvando el estado de una aplicación u Son esencialmente variables globales

ASP. NET Applications Salvando el estado de una aplicación u Son esencialmente variables globales para la aplicación u Application(“Company. Name”) u Se pueden bloquear o desbloquear variables de Applicación Ø Application. lock Ø Application(“Global. Counter”) Ø Application. unlock = New. Value

ASP. NET Applications Salvando el estado de una sesión u u Variables por usuario

ASP. NET Applications Salvando el estado de una sesión u u Variables por usuario Disponible para todas las páginas en el site Session(“User. ID”) = 5 User. ID = Session(“User. ID”)

ASP. NET Applications Sesiones ASP vs. Sesiones ASP. NET u Sesiones ASP Ø Ø

ASP. NET Applications Sesiones ASP vs. Sesiones ASP. NET u Sesiones ASP Ø Ø Ø u Forzar “Server Affinity” Dependiente de cookies No tolerancia a fallos Sesiones ASP. NET Ø Ø Ø Soporte para granjas Web No necesitan cookies Mejor tolerancia a fallos

ASP. NET Applications Configurando estados u Información de configuración almacenada en Web. Config <session.

ASP. NET Applications Configurando estados u Información de configuración almacenada en Web. Config <session. State Inproc=“true” mode=“sqlserver” cookieless=“false” timeout=“ 20” sqlconnectionstring=“data source=127. 0. 0. 1; user id=sa; password=“” state. Connection. String="tcpip=127. 0. 0. 1: 4 2424" /> </session. State>

ASP. NET Applications Configurando estados u Modo Ø Ø Ø In. Proc – Similar

ASP. NET Applications Configurando estados u Modo Ø Ø Ø In. Proc – Similar a ASP. Almacena las sesiones en la memoria del servidor web. Stateserver – Las sesiones son almacenadas en un servidorexterno, en memoria. SQLServer – Las sesiones son almacenadas en una base de datos de SQL Server. u Cookieless Ø Ø Determina si las sesiones sin Cookies deberían ser usadas Valores posibles true o false u Time. Out Ø Determina el timeout por defecto para las sesiones en el sitio web

ASP. NET Applications Configurando estados u SQLConnection. String Ø contiene los parámetros datasource, userid,

ASP. NET Applications Configurando estados u SQLConnection. String Ø contiene los parámetros datasource, userid, y password necesarios para conectar a la base de datos que almacena las sesiones u state. Connection. String Ø contiene toda la información necesaria para conectar al servidor de estados.

ASP. NET Applications Almacenado datos en SQL Server u Para configurar SQL Server para

ASP. NET Applications Almacenado datos en SQL Server u Para configurar SQL Server para almacenar información de estados se debe ejecutar un pequeño script en el servidor u Install. SQLState. sql puede ser encontrado en [sysdrive]winntMicrosoft. NETFramework[ve rsion] u Crea lo siguiente en el servidor Ø Ø Ø Una base de datos llamada ASPState Procedimientos almacenados Tablas en Temp. DB para almacenar los datos de los estados. u Para desinstalar ejecutaremos el script Uninstall. SQLState. sql

Demostración 2 Aplicaciones ASP. NET Uso del Global. asax Salvando el estado de la

Demostración 2 Aplicaciones ASP. NET Uso del Global. asax Salvando el estado de la aplicación

Seguridad Conceptos de seguridad u u u Autentificación Autorización Impersonación

Seguridad Conceptos de seguridad u u u Autentificación Autorización Impersonación

Seguridad Autentificación u Windows Ø Ø Ø u u Basic Digest Integrated Passport Form

Seguridad Autentificación u Windows Ø Ø Ø u u Basic Digest Integrated Passport Form

Seguridad Autentificación Windows u Se habilita através de Internet Services Manager

Seguridad Autentificación Windows u Se habilita através de Internet Services Manager

Seguridad Autentificación Windows u Se habilita para ASP. NET através de Web. config <security>

Seguridad Autentificación Windows u Se habilita para ASP. NET através de Web. config <security> <authentication mode="Windows" /> </security>

Seguridad Autentificación Windows u El Site puede acceder fácilmente al Nombre de usuario Dim

Seguridad Autentificación Windows u El Site puede acceder fácilmente al Nombre de usuario Dim User. Name As String User. Name = User. Identity. Name u Grupos “NT” son automáticamnete mapeados a Roles ASP. NET If User. Is. In. Role(“Administrators”) Then…

Seguridad Autentificación Form u El sitio web es el responsable de la seguridad, no

Seguridad Autentificación Form u El sitio web es el responsable de la seguridad, no IIS Ø Ø u Configurar IIS para permitir acceso anonimo Configurar Web. Config para forzar a los usuarios a autentificarse através de un formulario <authentication mode="Forms"> <forms login. Url="Registration. aspx"> </forms> </authentication> <authorization> <deny users="? " /> </authorization> Cualquier usuario no autentificado será enviado a “Registration. aspx”

Seguridad Autentificación Form u u Se codifica un formulario para obtener el User ID

Seguridad Autentificación Form u u Se codifica un formulario para obtener el User ID y Password Para Autentificar un usuario: Form. Authentication. Redirect. From. Login. Page(User. Name, False) u Redirect. From. Login. Page Ø Ø Marca un usuario como autentificado Lleva al usuario a la página que ha pedido originalmente Si el usuario ha pedido la página de login, takes se redirige a Default. aspx Se puede persistir la autentificación en una cookie

Seguridad Autentificación Form - Declarativa u Para Sites simples, se puede almacenar el User

Seguridad Autentificación Form - Declarativa u Para Sites simples, se puede almacenar el User ID y Password en el Web. config <credentials password. Format="clear"> <user name="MSDN" password="online" /> <user name="Guest" password="guest" /> </credentials>

Seguridad Autentificación Form - Declarativa u Authenticate devuelve true o false Forms. Authentication. Authenticate(

Seguridad Autentificación Form - Declarativa u Authenticate devuelve true o false Forms. Authentication. Authenticate( _ User. Name, Password)

Seguridad Autentificación Form - Programaticamente u Código usado para autentificar un usuario SQL =

Seguridad Autentificación Form - Programaticamente u Código usado para autentificar un usuario SQL = “Select * From Users ” & _ “Where User. ID = ‘” & User. Name & “’” If User. Found. In. Data. Base then Form. Authentication. Redirect. From. Login. Page(User. Nam e, false) Else lbl. Login. Error. Text = “User Not Found or Invalid Password” end if

Seguridad Roles Jane John Comercial WEB Contenido Comercial Jill Jamie Jenny Admins Contenido Admin.

Seguridad Roles Jane John Comercial WEB Contenido Comercial Jill Jamie Jenny Admins Contenido Admin.

Seguridad Roles u Construir la aplicación basándose en Roles Ø Ø u Acceso a

Seguridad Roles u Construir la aplicación basándose en Roles Ø Ø u Acceso a Páginas Contenido personalizado de páginas Después del Deployment, asignar usuarios a roles

Seguridad Roles u Asignación programática de usuarios a roles Sub Application_Authenticate. Request(By. Val Sender

Seguridad Roles u Asignación programática de usuarios a roles Sub Application_Authenticate. Request(By. Val Sender As Object, By. Val e As Event. Args) If request. Is. Authenticated = True Then sql = “select role from roles where userid=‘“ & User. ID & “’” ‘ Get Roles from Result Set context. User = New Generic. Principal(user, roles) End If End Sub

Seguridad Roles u Mostrar contenido basado en roles If User. Is. In. Role(“Human. Res”)

Seguridad Roles u Mostrar contenido basado en roles If User. Is. In. Role(“Human. Res”) Then cmd. Edit. Salary. Visible = true End If

Seguridad Impersonalización u u Autentificación Windows Web. config <identity> <impersonation enable="true" name="username" password="password" />

Seguridad Impersonalización u u Autentificación Windows Web. config <identity> <impersonation enable="true" name="username" password="password" /> </identity>

Demostración 3 Seguridad Autentificación Windows Registro basado en formularios Autentificación basada en formularios Asignación

Demostración 3 Seguridad Autentificación Windows Registro basado en formularios Autentificación basada en formularios Asignación de usuarios a roles

Configuración y Optimización Web. Config u u u Fichero de configuración del site Se

Configuración y Optimización Web. Config u u u Fichero de configuración del site Se distribuye con el Site Almacena la mayoría de las opciones de configuración Fácil mantenimiento y despliegue Los cambios toman efecto inmediatamente

Configuración y Optimización Configuración jerárquica u Web. Config y sus configuraciones son heredadas en

Configuración y Optimización Configuración jerárquica u Web. Config y sus configuraciones son heredadas en una jerarquía Ø Ø Ø Configuración a nivel de máquina (WinntMicrosoft. NETVersion) Directorio raiz de la aplicación web Sub directorios

Configuración y Optimización Configuración jerárquica u La configuración puede apuntar a un conjunto específico

Configuración y Optimización Configuración jerárquica u La configuración puede apuntar a un conjunto específico de ficheros o directorios mediante el uso del tag <location> <configuration> <location path=“/admin”> <system. web> <security> <authorization> <allow roles=“Admins”> </authorization> </security> </system. web> </location> </configuration>

Configuración y Optimización Configuración jerárquica u Machine. config Ø Ø Ø Tracing Execution Timeout

Configuración y Optimización Configuración jerárquica u Machine. config Ø Ø Ø Tracing Execution Timeout Session State Authentication Multi CPU Support Disabled 90 Seconds Enabled, Inproc Allow Anonymous Disabled

Configuración y Optimización Configuración personalizada u Ejemplos de Personalización Ø Ø Ø App. Settings

Configuración y Optimización Configuración personalizada u Ejemplos de Personalización Ø Ø Ø App. Settings Custom. Errors Trace Settings Authentication Session Settings

Configuración y Optimización Configuración Personalizada u Personalizar configuración en el Web. config <configuration> <app.

Configuración y Optimización Configuración Personalizada u Personalizar configuración en el Web. config <configuration> <app. Settings> <add key="DSN" value="server=localhost… </app. Settings> </configuration> u Accediendo con código DSN = Configuration. Settings. App. Settings("DSN")

Configuración y Optimización Configuración Personalizada u Redirigir ciertos errores a ciertas páginas <custom. Errors

Configuración y Optimización Configuración Personalizada u Redirigir ciertos errores a ciertas páginas <custom. Errors mode="On"> <error status. Code="404" redirect="errorpage 404. aspx" /> </custom. Errors> <custom. Errors mode=“Remote. Only"> <error status. Code="404" redirect="errorpage 404. aspx" /> </custom. Errors>

Configuración y Optimización Configuración Personalizada u Tracing <trace enabled=“true" request. Limit="10" page. Output=“true" trace.

Configuración y Optimización Configuración Personalizada u Tracing <trace enabled=“true" request. Limit="10" page. Output=“true" trace. Mode="Sort. By. Time" />

Configuración y Optimización Configuración Personalizada u Opciones de Traza Ø Enabled Ø Ø Request.

Configuración y Optimización Configuración Personalizada u Opciones de Traza Ø Enabled Ø Ø Request. Limit Ø Ø Limita el almacenamiento de las trazas a un límite de peticiones Page. Output Ø Ø Se almacena información de traza. Esta información se puede consultar através de la siguiente página Ø http: //site/trace. axd Se muestran la información de las trazas en la página. Trace. Mode Ø Permite ordenar la información de las trazas por tiempo o categoría.

Configuración y Optimización Configuración Personalizada u Escribir al log de trazas Trace. Write(“Page_Load”, ”Entering

Configuración y Optimización Configuración Personalizada u Escribir al log de trazas Trace. Write(“Page_Load”, ”Entering Event”) Trace. Warn(“Get. Customer”, ”Invalid Argument”)

Demostración 4 Configuración y Optimización Configuración ASP. NET

Demostración 4 Configuración y Optimización Configuración ASP. NET

Configuración y Optimización Cacheo de Páginas u u Páginas que no cambian frecuentemente Incremento

Configuración y Optimización Cacheo de Páginas u u Páginas que no cambian frecuentemente Incremento dramático de rendimiento <%@ Output. Cache Duration= "500" %>

Configuración y Optimización Cacheando fragmentos u u User Control Datos que no cambian frecuentemente

Configuración y Optimización Cacheando fragmentos u u User Control Datos que no cambian frecuentemente <%@ Output. Cache Duration=“ 60" %>

Configuración y Optimización API’s de cacheo u Cachear datos programaticamente Cache. Insert( _ Key,

Configuración y Optimización API’s de cacheo u Cachear datos programaticamente Cache. Insert( _ Key, _ Value, _ Cache. Dependency, _ Absolute. Expiration, _ Sliding. Expiration, _ Priority. Decay, _ Callback)

Configuración y Optimización Cache API’s u Key Ø u Value Ø u String usado

Configuración y Optimización Cache API’s u Key Ø u Value Ø u String usado para buscar el elemento cacheado Elemento almacenado en caché Cache. Dependency Ø El elemento en caché puede expirar automáticamente cuando un fichero, directorio u otro elemento en caché cambie

Configuración y Optimización Cache API’s u Absolute. Expiration Ø u Sliding. Expiration Ø u

Configuración y Optimización Cache API’s u Absolute. Expiration Ø u Sliding. Expiration Ø u Un elemento en caché puede expirar después de una cierta cantidad de inactividad Priority Ø u Un elemento en caché puede expirar en algún tiempo fijo Elementos con prioridad baja son eliminados antes que elementos con prioridad alta Priority. Decay Ø Dentro de un rango de prioridad, este elemento expira antes o después que otro elemento

Demostración 5 Configuración y Optimización Cacheo

Demostración 5 Configuración y Optimización Cacheo

Configuración y Optimización Monitorizando Aplicaciones ASP. NET u Herramientas de monitorización Ø Ø Ø

Configuración y Optimización Monitorizando Aplicaciones ASP. NET u Herramientas de monitorización Ø Ø Ø Performance Monitor Tracing Control de servicios y monitorización

Configuración y Optimización Contadores de rendimiento u u Algunos contadores son ahora mas específicos

Configuración y Optimización Contadores de rendimiento u u Algunos contadores son ahora mas específicos de aplicación como oposición al tradicional ASP que son mas específicos para servidor Grupos de contadores Ø Ø Contadores de rendimiento globales Contadores específicos de aplicación

Configuración y Optimización Contadores globales de rendimiento u Contadores Globales de Rendimiento Ø Ø

Configuración y Optimización Contadores globales de rendimiento u Contadores Globales de Rendimiento Ø Ø Reinicio de Aplicaciones en ejecución Peticiones Encoladas Tiempo de espera de peticiones

Configuración y Optimización Contadores especificos de aplicación u Contadores de rendimiento de Aplicaciones Ø

Configuración y Optimización Contadores especificos de aplicación u Contadores de rendimiento de Aplicaciones Ø Ø Ø Entradas totales en caché Cache Total Hit Ratio Bytes pedidos en total Ejecuciones Pedidas Timed Out Pedidos Time Out de sesiones

Configuración and Monitorización Clase Performance. Counter u La clase Performance. Counter permite acceder a

Configuración and Monitorización Clase Performance. Counter u La clase Performance. Counter permite acceder a los datos de los contadores desde código Dim Req_Bytes_Total As New Performance. Counter(“asp. net applications", “Request Bytes Out Total”, _Total_) Dim s as Integer S = Req_Bytes_Total. Next. Value()

Configuración and Monitorización Tracing u Habilitar Tracing para una página específica <%@ Page trace=true

Configuración and Monitorización Tracing u Habilitar Tracing para una página específica <%@ Page trace=true Language="vb" Auto. Event. Wireup="false" Codebehind="Write_Trace_Info. aspx. vb" Inherits="Opt_Monitor. Write_Trace_Info"%> u Escribiendo sentencias de traza personalizadas Trace. Write(“Custom Trace”, “Begin Load Data. Set”)

Configuración and Monitorización Accediendo a Servicios u Clase Service. Controller Ø Permite acceder a

Configuración and Monitorización Accediendo a Servicios u Clase Service. Controller Ø Permite acceder a servicios locales o remotos Ø Ø Constructor Ø Nombre del servicio como parámetro Métodos Ø Stop Ø Start Ø Pause Ø Wait. For. Status Ø Te permite esperar a que un servicio cambie al estado deseado antes de seguir Propiedades Ø Machine. Name Ø Obtiene o asigna el nombre de la máquina Ø Ø Srv. Wait. For. Status(Service. Controller. Status. Stopped, System. Time. Span. From. Seconds(30))

Configuración and Monitorización Comprobando el estado de un servicio u Comprobando el estado de

Configuración and Monitorización Comprobando el estado de un servicio u Comprobando el estado de un servicio Protected Sub Check. Service. State(By. Val Service. Name As String) as String Dim Srv As New Service. Controller(Service. Name) Select Case Srv. Status Case Service. Controller. Status. Running Check. Service. State = "Started" Case Service. Controller. Status. Stopped Check. Service. State = "Stopped" Case Else Check. Service. State = "Unknown" End Select End Sub

Demostración 6 Configuración y Optimización ASP. NET Optimización y Monitorización

Demostración 6 Configuración y Optimización ASP. NET Optimización y Monitorización

Web Service Agenda u u u ¿Qué es un Web Service? Llamando a un

Web Service Agenda u u u ¿Qué es un Web Service? Llamando a un Web Service desde un browser Llamando a un Web Service usando un proxy Creando un Web Service usando C# Creando y llamando un Web Service usando Visual Studio. NET

Web Service Características de Web Services u u u Permite que aplicaciones se comuniquen

Web Service Características de Web Services u u u Permite que aplicaciones se comuniquen a través de internet Independiente del lenguaje Independiente del protocolo Independiente de la plataforma Arquitectura sin estados

Web Service Modelo de ejecución de Web Services

Web Service Modelo de ejecución de Web Services

Web Service Ejemplos de Web Services existentes u u http: //www. xmethods. net http:

Web Service Ejemplos de Web Services existentes u u http: //www. xmethods. net http: //www. gotdotnet. com

Web Service Llamando a un Web Service desde un browser 1/2 http: //server/vroot/webservice. asmx

Web Service Llamando a un Web Service desde un browser 1/2 http: //server/vroot/webservice. asmx

Web Service Llamando a un Web Service desde un browser 2/2 u Pasar el

Web Service Llamando a un Web Service desde un browser 2/2 u Pasar el nombre del método y todos los parámetros requeridos en la URL del Web Service http: //server/vroot/webservice. asmx/method? param=value u Se devuelve el resultado en XML

Web Service Compilando un fichero. asmx dentro de un proxy u Una clase proxy

Web Service Compilando un fichero. asmx dentro de un proxy u Una clase proxy Ø Ø u Parece la clase original pero no tiene ninguna lógica de la aplicación Permite a un cliente acceder a un Web Service como si fuera un objeto COM local Creando una clase proxy desde un fichero. asmx Wsdl /l: vb /n: mynamespaces http: //location/service. asmx? wsdl

Web Service Compilando el proxy dentro de una dll Compilando una clase proxy dentro

Web Service Compilando el proxy dentro de una dll Compilando una clase proxy dentro de una DLL vbc /out: . . binproxyclassname. dll /t: library /r: System. Web. Services. dll /rs: system. dll /r: system. xml. dll proxyclassname. dll La dll se publica en la carpeta /bin u

Web Service Llamando métodos de Web Service u Creando una instancia del proxy my.

Web Service Llamando métodos de Web Service u Creando una instancia del proxy my. Store. Proxy; my. Store. Proxy= new my. Store(); u Llamando a métodos Data. Set ds; ds=my. Store. Proxy. products();

Web Service Escribiendo un Web Service u Añadiendo una Directiva de página <%@ Web.

Web Service Escribiendo un Web Service u Añadiendo una Directiva de página <%@ Web. Service Language=“C#” Class=“My. Store” %> u Importando namespaces using System; using System. Web. Services; u Definiendo una clase con Web Methods public class My. Store{ <Web. Method()>public int price(){ } }

Web Service Llamando a un Web Service usando Visual Studio. NET u Llamando a

Web Service Llamando a un Web Service usando Visual Studio. NET u Llamando a un Web Service Ø Ø Ø Abrir una aplicación Web Crear una referencia Web para el Web Service usando la opción Add Web Reference Crear una instancia del Web Service Llamar a las funciones del Web Service Compilar el proyecto

Recursos adicionales u http: //www. microsoft. com/spanish/msdn/spain u http: //www. microsoft. com/spanish/msdn/wmatri x. asp

Recursos adicionales u http: //www. microsoft. com/spanish/msdn/spain u http: //www. microsoft. com/spanish/msdn/wmatri x. asp http: //www. microsoft. com/spanish/msdn/comun idad/dce http: //www. microsoft. com/spanish/msdn/spain/e ventos/presentaciones/online. asp http: //www. asp. net/ http: //www. microsoft. com/spanish/msdn/comun idad/uni. net u u