ASP NET Con Visual Studio NET Agenda u
- Slides: 80
ASP. NET Con Visual Studio. NET
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 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
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 Orientado a Objectos Orientado a Eventos
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 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 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 Ø 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 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 <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 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
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 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 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 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 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 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 Ø Ø Ø 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. 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 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, 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 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 aplicació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 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> <authentication mode="Windows" /> </security>
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 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 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 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( _ User. Name, Password)
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 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 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”) 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" /> </identity>
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 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 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 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 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 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. 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 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. Mode="Sort. By. Time" />
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 Event”) Trace. Warn(“Get. Customer”, ”Invalid Argument”)
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 dramático de rendimiento <%@ Output. Cache Duration= "500" %>
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, _ 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 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 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
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 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 Ø Ø 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 Ø Ø Ø 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 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 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 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 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
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 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 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 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 Ø Ø 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 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. 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. 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 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 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
- Classic asp to asp.net migration
- Asp.net agenda
- Agenda en asp.net
- Xna visual studio 2017
- Xbox xna
- Desarrollo de aplicaciones web con asp.net
- Agenda en android studio
- Agenda sistemica y agenda institucional
- Asp.net xss bypass
- Who is this
- Asp.net session management
- Asp.net execution model
- Microsoft asp.net core privilege escalation (march 2018)
- Asp net session state
- Asp.net timeline
- What is aspnet
- Asp.net server controls
- Introduction to asp.net
- Asp custom control
- Asp soap
- Asp.net core tutorialspoint
- Asp net core future
- 2160711
- Asp.net mvc 5 identity authentication and authorization
- Asp net load testing
- Asp.net core 5 odata
- Output cache in mvc
- Crud asp.net c# web forms
- 大阪 microsoft asp.net
- Reflection net
- Feature flags asp net
- 大阪 microsoft asp
- Php to asp.net
- Asp.net
- Visual studio 2015 express
- Visual studio 2010 training
- Conclusion sobre visual basic
- Visual studio ar
- Visual studio 2010 express
- Visual studio family
- Flowchart introduction
- Visual studio avd
- Visual studio 2010 express
- Microsoft visual studio 2005 tools for applications
- Oracle developer tools for visual studio 2015
- Visual studio composer
- Emacs visual studio
- Visual studio
- Appium studio download
- Visual studio wireframe
- Visual studio orcas
- Visual studio haskell
- Odac for visual studio 2015
- Visual basic cursus
- Vb6 case else
- Visual basic 2010 express
- Compilateur visual studio
- Visual studio community
- Visual studio 2005 team suite
- Vslang
- Visual prolog examples
- Visual studio disassembly
- Visual studio hmi scada
- Office developer tools for visual studio 2017
- Brk pydio
- Visual studio regular expression
- Visual studio
- Ankhsvn 다운로드
- Hmi visual studio
- Visual studio
- Visual studio code que es
- Visual studio
- Cost of visual studio
- Visual studio
- Visual studio 2002
- Visual studio 8
- Mc visual studio
- Estructura de control en visual basic
- Visual studio dsl
- Start pro
- Jake ginnivan