asp.net con visual studio.net. agenda introducción web forms uso del global.asax como trabajar con...

80
ASP.NET Con Visual Studio.NET

Upload: peppi-albo

Post on 03-Jan-2015

13 views

Category:

Documents


8 download

TRANSCRIPT

Page 1: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del

ASP.NET Con Visual Studio.NET

Page 2: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del

Agenda 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

Page 3: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del

IntroducciónMicrosoft .NET FrameWork

.NET.NETFramework Framework

.NET.NETFramework Framework

InternetInternetInternetInternet

COM+COM+COM+COM+

OrchestrationOrchestration OrchestrationOrchestration

Windows Windows

.NET Enterprise

Servers

.NET Enterprise

Servers

BuildingBuildingBlockBlock

ServicesServices

BuildingBuildingBlockBlock

ServicesServices

Visual Studio.NET Visual Studio.NET

Base Class LibraryBase Class Library

ADO.NET: Data & XMLADO.NET: Data & XML

UserUserInterfaceInterface

Common Language RuntimeCommon Language Runtime

WebWebServicesServices

Page 4: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del

IntroducciónModelo de ejecución de ASP.NET

Page 5: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del

Web Forms¿Qué es un Web Form?

Modelo de Código Ciclo de vida Eventos del lado del servidor Controles de servidor Validaciones

Page 6: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del

Web FormsModelo de Código

Code Behind Separación entre Lógica y Presentación Orientado a Objectos Orientado a Eventos

Page 7: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del

Web Forms Gestionando el PostBack de los Forms El control ViewState mantiene el estado de la

página durante el PostBack El evento Page_Load se lanza en cada

petición Usar Page.IsPostBack para ejecutar lógica

condicional

private void Page_Load(object server, EventArgs e)

{

if(Page.IsPostBack)

{

}

}

Page 8: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del

Web FormsCiclo de vida Página ASP.NET

Codificación de aplicaciones similar a Win32

Form_Initialize() ~ Page_Init()Form_Load() ~ Page_Load()Form_Activate() ~ Page_PreRender()Form_Unload() ~ Page_Unload()

Page 9: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del

Web FormsEventos del lado del servidor

Runat=“server” <form runat=“server”> <input type=button id=button1 OnServerClick=“Button1_Click” runat=“server” /> Button1_Click(Sender as Object, e as EventArgs) Button1.Text = “Save”

Page 10: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del

Web FormsControles de Servidor

Lanza Eventos al servidor Controles básicos

textbox, checkbox, radio, button Controles avanzados

AdRotator, Calendar, DataGrid, Validator

Page 11: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del

Web FormsControles básicos de Servidor

<asp:textbox id=text1 runat=server/>text1.text = “Hello World”

<asp:checkbox id=check1 runat=server/>check1.checked=True

<asp:button id=button1 runat=server/>button1_onClick()

<asp:DropDownList id=DropDownList1 runat=server>DropDownList1.SelectedItem.Text = “Hello”

Page 12: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del

Web FormsControles Avanzados de Servidor

DataGrid Definido por <asp:datagrid /> Ordenación por columnas Edición en línea Tabla HTML DataBinding Paginación

Page 13: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del

Web Forms Controles Avanzados de Servidor

Validaciones Required Validator Control Range Validator Control Compare Validator Control Regular Expression Validator Custom Validator Control Ejemplo:<asp:RequiredFieldValidator ControlToValidate="txtName" ErrorMessage="Please Enter Your Name" runat="server" />

Page 14: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del

Demostración 1Web Forms

Modelo de CódigoModelo de Eventos

Controles de Servidor

Page 15: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del

Application_OnStart Application_OnEnd Session_OnStart Session_OnEnd

Aplicaciones ASP.NET ASP Tradicionales (global.asa)

Page 16: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del

Aplicaciones ASP.NETGlobal.ASAX Primera Petición

Application_Start Primera petición por cada usuario

Session_Start Cada Petición

Application_BeginRequest Application_Authenticate Application_EndRequest

Error en tiempo de ejecución Application_Error

Logs Out de usuario/Times Out de sesión Session_End

Shutdown del Servidor Web Application_End

Page 17: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del

Application_BeginRequest Acciones de personalización Texto para ser incluido al principio de cada página

Application_EndRequest Texto para ser añadido al final de cada página

Application_Error Util para enviar email o escribir al event log cuando

un ocurra un error que no pueda ser manejado

ASP.NET ApplicationsGlobal.ASAX Uso de eventos

Page 18: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del

Session_End Escribir a un log o base de datos los log out de

cada usuario 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

Application_Start Útil para cargar la información de configuración

específica de un site

ASP.NET ApplicationsGlobal.ASAX Uso de eventos

Page 19: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del

Son esencialmente variables globales para la aplicación

Application(“CompanyName”)Se pueden bloquear o desbloquear

variables de Applicación Application.lock Application(“GlobalCounter”) = NewValue Application.unlock

ASP.NET ApplicationsSalvando el estado de una aplicación

Page 20: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del

Variables por usuario Disponible para todas las páginas en el site Session(“UserID”) = 5 UserID = Session(“UserID”)

ASP.NET ApplicationsSalvando el estado de una sesión

Page 21: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del

Sesiones ASP 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 ApplicationsSesiones ASP vs. Sesiones ASP .NET

Page 22: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del

Información de configuración almacenada en Web.Config

<sessionStateInproc=“true”mode=“sqlserver” cookieless=“false”timeout=“20”sqlconnectionstring=“data source=127.0.0.1;user id=sa;password=“”

stateConnectionString="tcpip=127.0.0.1:42424" />

</sessionState>

ASP.NET ApplicationsConfigurando estados

Page 23: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del

Modo InProc – 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. Cookieless

Determina si las sesiones sin Cookies deberían ser usadas Valores posibles true o false

TimeOut Determina el timeout por defecto para las sesiones en el sitio

web

ASP.NET ApplicationsConfigurando estados

Page 24: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del

SQLConnectionString contiene los parámetros datasource, userid, y

password necesarios para conectar a la base de datos que almacena las sesiones

stateConnectionString contiene toda la información necesaria para

conectar al servidor de estados.

ASP.NET ApplicationsConfigurando estados

Page 25: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del

Para configurar SQL Server para almacenar información de estados se debe ejecutar un pequeño script en el servidor

InstallSQLState.sql puede ser encontrado en [sysdrive]\winnt\Microsoft.NET\Framework\[version]

Crea lo siguiente en el servidor Una base de datos llamada ASPState Procedimientos almacenados Tablas en TempDB para almacenar los datos de los

estados. Para desinstalar ejecutaremos el script

UninstallSQLState.sql

ASP.NET ApplicationsAlmacenado datos en SQL Server

Page 26: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del

Demostración 2Aplicaciones ASP.NET

Uso del Global.asaxSalvando el estado de la

aplicación

Page 27: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del

Seguridad Conceptos de seguridad

Autentificación Autorización Impersonación

Page 28: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del

Seguridad Autentificación

Windows Basic Digest Integrated

Passport Form

Page 29: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del

SeguridadAutentificación Windows

Se habilita através de Internet Services Manager

Page 30: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del

Seguridad Autentificación Windows

Se habilita para ASP.NET através de Web.config

<security>

<authentication mode="Windows" />

</security>

Page 31: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del

Seguridad Autentificación Windows El Site puede acceder fácilmente al Nombre

de usuario

Dim UserName As String

UserName = User.Identity.Name

Grupos “NT” son automáticamnete mapeados a Roles ASP.NET

If User.IsInRole(“Administrators”) Then…

Page 32: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del

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

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 loginUrl="Registration.aspx">

</forms></authentication><authorization>

<deny users="?" /></authorization>

Cualquier usuario no autentificado será enviado a “Registration.aspx”

Page 33: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del

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

User ID y Password Para Autentificar un usuario:

FormAuthentication.RedirectFromLoginPage(UserName, False)

RedirectFromLoginPage 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

Page 34: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del

Seguridad Autentificación Form - Declarativa

Para Sites simples, se puede almacenar el User ID y Password en el Web.config

<credentials passwordFormat="clear">

<user name="MSDN" password="online" />

<user name="Guest" password="guest" />

</credentials>

Page 35: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del

Seguridad Autentificación Form - Declarativa

Authenticate devuelve true o false

FormsAuthentication.Authenticate( _

UserName, Password)

Page 36: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del

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

SQL = “Select * From Users ” & _

“Where UserID = ‘” & UserName & “’”

If UserFoundInDataBase then

FormAuthentication.RedirectFromLoginPage(UserNam e,false)

Else

lblLoginError.Text = “User Not Found or Invalid Password”

end if

Page 37: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del

Seguridad Roles

JaneJaneJaneJane

JillJillJillJill

JohnJohnJohnJohn

JennyJennyJennyJenny

JamieJamieJamieJamie

ComercialComercialComercialComercial

AdminsAdminsAdminsAdmins

WEBWEBContenido Contenido ComercialComercial

WEBWEBContenido Contenido ComercialComercial

Contenido Contenido Admin.Admin.

Page 38: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del

SeguridadRoles

Construir la aplicación basándose en Roles Acceso a Páginas Contenido personalizado de páginas

Después del Deployment, asignar usuarios a roles

Page 39: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del

SeguridadRoles Asignación programática de usuarios a

roles

Sub Application_AuthenticateRequest(ByVal Sender As Object, ByVal e As EventArgs)

If request.IsAuthenticated = True Thensql = “select role from roles where userid=‘“

& UserID & “’”

‘ Get Roles from Result Setcontext.User = New GenericPrincipal(user,

roles)End If

End Sub

Page 40: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del

SeguridadRoles

Mostrar contenido basado en roles

If User.IsInRole(“HumanRes”) Then

cmdEditSalary.Visible = true

End If

Page 41: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del

SeguridadImpersonalización Autentificación Windows Web.config

<identity>

<impersonation enable="true"

name="username"

password="password" />

</identity>

Page 42: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del

Demostración 3Seguridad

Autentificación Windows Registro basado en formularios

Autentificación basada en formularios

Asignación de usuarios a roles

Page 43: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del

Configuración y OptimizaciónWeb.Config

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

Page 44: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del

Configuración y Optimización Configuración jerárquica

Web.Config y sus configuraciones son heredadas en una jerarquía Configuración a nivel de máquina (Winnt\Microsoft .NET\Version\) Directorio raiz de la aplicación web Sub directorios

Page 45: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del

Configuración y Optimización Configuración jerárquica

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>

Page 46: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del

Configuración y Optimización Configuración jerárquica

Machine.config Tracing Disabled Execution Timeout 90 Seconds Session State Enabled, Inproc Authentication Allow Anonymous Multi CPU Support Disabled

Page 47: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del

Configuración y Optimización Configuración personalizada

Ejemplos de Personalización AppSettings CustomErrors Trace Settings Authentication Session Settings

Page 48: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del

Configuración y Optimización Configuración Personalizada

Personalizar configuración en el Web.config

<configuration><appSettings><add key="DSN" value="server=localhost…</appSettings></configuration>

Accediendo con código

DSN = ConfigurationSettings.AppSettings("DSN")

Page 49: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del

Configuración y Optimización Configuración Personalizada Redirigir ciertos errores a ciertas

páginas

<customErrors mode="On"><error statusCode="404" redirect="errorpage404.aspx" />

</customErrors>

<customErrors mode=“RemoteOnly"><error statusCode="404" redirect="errorpage404.aspx" />

</customErrors>

Page 50: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del

Configuración y Optimización Configuración Personalizada

Tracing

<trace enabled=“true" requestLimit="10" pageOutput=“true" traceMode="SortByTime"

/>

Page 51: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del

Configuración y Optimización Configuración Personalizada

Opciones de Traza Enabled

Se almacena información de traza . Esta información se puede consultar através de la siguiente página http://site/trace.axd

RequestLimit Limita el almacenamiento de las trazas a un límite de peticiones

PageOutput Se muestran la información de las trazas en la página.

TraceMode Permite ordenar la información de las trazas por tiempo o categoría.

Page 52: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del

Configuración y Optimización Configuración Personalizada Escribir al log de trazas

Trace.Write(“Page_Load”,”Entering Event”)Trace.Warn(“GetCustomer”,”Invalid Argument”)

Page 53: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del

Demostración 4Configuración y

Optimización

Configuración ASP.NET

Page 54: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del

Configuración y Optimización Cacheo de Páginas

Páginas que no cambian frecuentemente

Incremento dramático de rendimiento

<%@ OutputCache Duration= "500" %>

Page 55: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del

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

<%@ OutputCache Duration=“60" %>

Page 56: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del

Configuración y Optimización API’s de cacheo

Cachear datos programaticamente

Cache.Insert( _Key, _Value, _CacheDependency, _AbsoluteExpiration, _SlidingExpiration, _Priority, _PriorityDecay, _Callback)

Page 57: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del

Configuración y Optimización Cache API’s

Key String usado para buscar el elemento

cacheado

Value Elemento almacenado en caché

CacheDependency El elemento en caché puede expirar

automáticamente cuando un fichero, directorio u otro elemento en caché cambie

Page 58: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del

Configuración y Optimización Cache API’s AbsoluteExpiration

Un elemento en caché puede expirar en algún tiempo fijo

SlidingExpiration Un elemento en caché puede expirar después de

una cierta cantidad de inactividad Priority

Elementos con prioridad baja son eliminados antes que elementos con prioridad alta

PriorityDecay Dentro de un rango de prioridad, este elemento

expira antes o después que otro elemento

Page 59: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del

Demostración 5 Configuración y Optimización

Cacheo

Page 60: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del

Configuración y Optimización Monitorizando Aplicaciones ASP.NET

Herramientas de monitorización Performance Monitor Tracing Control de servicios y monitorización

Page 61: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del

Configuración y Optimización Contadores de rendimiento

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

Page 62: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del

Configuración y Optimización Contadores globales de rendimiento

Contadores Globales de Rendimiento Reinicio de Aplicaciones Aplicaciones en ejecución Peticiones Encoladas Tiempo de espera de peticiones

Page 63: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del

Configuración y Optimización Contadores especificos de aplicación

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

Page 64: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del

Configuración and Monitorización

Clase PerformanceCounter La clase PerformanceCounter permite acceder a los

datos de los contadores desde código

Dim Req_Bytes_Total As New PerformanceCounter(“asp .net applications", “Request Bytes Out Total”, _Total_)

Dim s as Integer

S = Req_Bytes_Total.NextValue()

Page 65: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del

Configuración and Monitorización

Tracing Habilitar Tracing para una página específica

<%@ Page trace=true Language="vb" AutoEventWireup="false" Codebehind="Write_Trace_Info.aspx.vb" Inherits="Opt_Monitor.Write_Trace_Info"%>

Escribiendo sentencias de traza personalizadas

Trace.Write(“Custom Trace”, “Begin Load DataSet”)

Page 66: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del

Configuración and Monitorización Accediendo a Servicios Clase ServiceController

Permite acceder a servicios locales o remotos Constructor

Nombre del servicio como parámetro Métodos

Stop Start Pause WaitForStatus

Srv.WaitForStatus(ServiceControllerStatus.Stopped, System.TimeSpan.FromSeconds(30))

Te permite esperar a que un servicio cambie al estado deseado antes de seguir

Propiedades MachineName

Obtiene o asigna el nombre de la máquina

Page 67: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del

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

Protected Sub CheckServiceState(ByVal ServiceName As String) as String

Dim Srv As New ServiceController(ServiceName)Select Case Srv.Status

Case ServiceControllerStatus.Running CheckServiceState = "Started" Case ServiceControllerStatus.Stopped CheckServiceState = "Stopped"

Case Else CheckServiceState = "Unknown"

End Select End Sub

Page 68: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del

Demostración 6Configuración y

Optimización

ASP .NET Optimización y Monitorización

Page 69: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del

Web Service Agenda

¿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

Page 70: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del

Web Service Características de Web Services

Permite que aplicaciones se comuniquen a través de internet Independiente del lenguaje Independiente del protocolo Independiente de la plataforma Arquitectura sin estados

Page 71: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del

Web Service Modelo de ejecución de Web Services

Page 72: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del

Web Service Ejemplos de Web Services existentes

http://www.xmethods.net http://www.gotdotnet.com

Page 73: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del

Web Service Llamando a un Web Service desde un browser 1/2

http://server/vroot/webservice.asmx

Page 74: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del

Web Service Llamando a un Web Service desde un browser 2/2

Pasar el nombre del método y todos los parámetros requeridos en la URL del Web Servicehttp://server/vroot/webservice.asmx/method?param=value

Se devuelve el resultado en XML

Page 75: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del

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

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 .asmxWsdl /l:vb /n:mynamespaces http://location/service.asmx?wsdl

Page 76: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del

Web Service Compilando el proxy dentro de una dll

Compilando una clase proxy dentro de una DLL

vbc /out:..\bin\proxyclassname.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

Page 77: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del

Web Service Llamando métodos de Web Service

Creando una instancia del proxymyStore.Store myStoreProxy;

myStoreProxy= new myStore.Store();

Llamando a métodosDataSet ds;

ds=myStoreProxy.products();

Page 78: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del

Web Service Escribiendo un Web Service Añadiendo una Directiva de página

<%@ WebService Language=“C#” Class=“MyStore” %>

Importando namespacesusing System;

using System.Web.Services;

Definiendo una clase con Web Methodspublic class MyStore{

<WebMethod()>public int price(){

}

}

Page 79: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del

Web Service Llamando a un Web Service usando Visual Studio .NET 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

Page 80: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del

Recursos adicionales

http://www.microsoft.com/spanish/msdn/spain

http://www.microsoft.com/spanish/msdn/wmatrix.asp

http://www.microsoft.com/spanish/msdn/comunidad/dce

http://www.microsoft.com/spanish/msdn/spain/eventos/presentaciones/online.asp

http://www.asp.net/ http://www.microsoft.com/spanish/msdn/

comunidad/uni.net