mejores practicas en aplicaciones servidor ¿y qué c#~ es esto? alejandro mezcua byteabyte...
TRANSCRIPT
![Page 1: Mejores Practicas en Aplicaciones Servidor ¿Y qué c#~ es esto? Alejandro Mezcua ByteaByte Microsoft MVP Alejandro.mezcua@byteabyte.net Jose Murillo Microsoft](https://reader038.vdocuments.pub/reader038/viewer/2022103110/54a79cd7497959eb6d8b49e9/html5/thumbnails/1.jpg)
Mejores Practicas en Aplicaciones ServidorMejores Practicas en Aplicaciones Servidor¿Y qué c#~€ es esto?¿Y qué c#~€ es esto?
Alejandro MezcuaAlejandro MezcuaByteaByteByteaByte
Microsoft MVPMicrosoft [email protected]@byteabyte.net
Jose MurilloJose MurilloMicrosoft IbéricaMicrosoft IbéricaISV Developer EvangelistISV Developer [email protected]@microsoft.com
![Page 2: Mejores Practicas en Aplicaciones Servidor ¿Y qué c#~ es esto? Alejandro Mezcua ByteaByte Microsoft MVP Alejandro.mezcua@byteabyte.net Jose Murillo Microsoft](https://reader038.vdocuments.pub/reader038/viewer/2022103110/54a79cd7497959eb6d8b49e9/html5/thumbnails/2.jpg)
• Pruebas de StressPruebas de Stress• Páginas Web AsíncronasPáginas Web Asíncronas• Instrumentación de AplicacionesInstrumentación de Aplicaciones• Entornos de Alto RendimientoEntornos de Alto Rendimiento• Localización de problemas de memoria con Localización de problemas de memoria con
CLRProfilerCLRProfiler• Microsoft Pattern & PracticesMicrosoft Pattern & Practices• ReferenciasReferencias
![Page 3: Mejores Practicas en Aplicaciones Servidor ¿Y qué c#~ es esto? Alejandro Mezcua ByteaByte Microsoft MVP Alejandro.mezcua@byteabyte.net Jose Murillo Microsoft](https://reader038.vdocuments.pub/reader038/viewer/2022103110/54a79cd7497959eb6d8b49e9/html5/thumbnails/3.jpg)
Pruebas de StressPruebas de Stress
![Page 4: Mejores Practicas en Aplicaciones Servidor ¿Y qué c#~ es esto? Alejandro Mezcua ByteaByte Microsoft MVP Alejandro.mezcua@byteabyte.net Jose Murillo Microsoft](https://reader038.vdocuments.pub/reader038/viewer/2022103110/54a79cd7497959eb6d8b49e9/html5/thumbnails/4.jpg)
• QoSQoS
![Page 5: Mejores Practicas en Aplicaciones Servidor ¿Y qué c#~ es esto? Alejandro Mezcua ByteaByte Microsoft MVP Alejandro.mezcua@byteabyte.net Jose Murillo Microsoft](https://reader038.vdocuments.pub/reader038/viewer/2022103110/54a79cd7497959eb6d8b49e9/html5/thumbnails/5.jpg)
• QoSQoS• Una de las mayores razones por las que Una de las mayores razones por las que
fracasan los proyectosfracasan los proyectos• SoluciónSolución
– Pruebas de carga integradas en los ciclos de Pruebas de carga integradas en los ciclos de compilacióncompilación
– Visual Studio Test EditionVisual Studio Test Edition para automatizarlas para automatizarlas
![Page 6: Mejores Practicas en Aplicaciones Servidor ¿Y qué c#~ es esto? Alejandro Mezcua ByteaByte Microsoft MVP Alejandro.mezcua@byteabyte.net Jose Murillo Microsoft](https://reader038.vdocuments.pub/reader038/viewer/2022103110/54a79cd7497959eb6d8b49e9/html5/thumbnails/6.jpg)
Visual StudioVisual StudioTeam Test EditionTeam Test Edition
![Page 7: Mejores Practicas en Aplicaciones Servidor ¿Y qué c#~ es esto? Alejandro Mezcua ByteaByte Microsoft MVP Alejandro.mezcua@byteabyte.net Jose Murillo Microsoft](https://reader038.vdocuments.pub/reader038/viewer/2022103110/54a79cd7497959eb6d8b49e9/html5/thumbnails/7.jpg)
• Aseguraos de definir vuestros requisitos de Aseguraos de definir vuestros requisitos de calidad de serviciocalidad de servicio
• Incorporar las pruebas de carga a vuestro ciclo Incorporar las pruebas de carga a vuestro ciclo de pruebas diarios con Team Testerde pruebas diarios con Team Tester
![Page 8: Mejores Practicas en Aplicaciones Servidor ¿Y qué c#~ es esto? Alejandro Mezcua ByteaByte Microsoft MVP Alejandro.mezcua@byteabyte.net Jose Murillo Microsoft](https://reader038.vdocuments.pub/reader038/viewer/2022103110/54a79cd7497959eb6d8b49e9/html5/thumbnails/8.jpg)
Páginas Web AsíncronasPáginas Web Asíncronas
![Page 9: Mejores Practicas en Aplicaciones Servidor ¿Y qué c#~ es esto? Alejandro Mezcua ByteaByte Microsoft MVP Alejandro.mezcua@byteabyte.net Jose Murillo Microsoft](https://reader038.vdocuments.pub/reader038/viewer/2022103110/54a79cd7497959eb6d8b49e9/html5/thumbnails/9.jpg)
• IIS 6 Worker ProcessesIIS 6 Worker Processes
![Page 10: Mejores Practicas en Aplicaciones Servidor ¿Y qué c#~ es esto? Alejandro Mezcua ByteaByte Microsoft MVP Alejandro.mezcua@byteabyte.net Jose Murillo Microsoft](https://reader038.vdocuments.pub/reader038/viewer/2022103110/54a79cd7497959eb6d8b49e9/html5/thumbnails/10.jpg)
• ASP.NET Worker Process (w3wp.exe)ASP.NET Worker Process (w3wp.exe)
![Page 11: Mejores Practicas en Aplicaciones Servidor ¿Y qué c#~ es esto? Alejandro Mezcua ByteaByte Microsoft MVP Alejandro.mezcua@byteabyte.net Jose Murillo Microsoft](https://reader038.vdocuments.pub/reader038/viewer/2022103110/54a79cd7497959eb6d8b49e9/html5/thumbnails/11.jpg)
• Cualquier operación que bloquee un Cualquier operación que bloquee un working working threadthread reduce la escalabilidad del servidor reduce la escalabilidad del servidor
• Si el bloqueo se debe a operaciones de CPU no Si el bloqueo se debe a operaciones de CPU no podemos hacer mucho, pero si son bloqueos en podemos hacer mucho, pero si son bloqueos en espera de eventos externos (IO, eventos, etc.) espera de eventos externos (IO, eventos, etc.) podemos usar otro hilo asíncronopodemos usar otro hilo asíncrono– Llamadas a otros servicios webLlamadas a otros servicios web– Accesos a BDsAccesos a BDs– Acceso a ficheros localesAcceso a ficheros locales– Páginas ASPX pesadasPáginas ASPX pesadas– ……
![Page 12: Mejores Practicas en Aplicaciones Servidor ¿Y qué c#~ es esto? Alejandro Mezcua ByteaByte Microsoft MVP Alejandro.mezcua@byteabyte.net Jose Murillo Microsoft](https://reader038.vdocuments.pub/reader038/viewer/2022103110/54a79cd7497959eb6d8b49e9/html5/thumbnails/12.jpg)
Páginas WebPáginas WebAsíncronasAsíncronas
![Page 13: Mejores Practicas en Aplicaciones Servidor ¿Y qué c#~ es esto? Alejandro Mezcua ByteaByte Microsoft MVP Alejandro.mezcua@byteabyte.net Jose Murillo Microsoft](https://reader038.vdocuments.pub/reader038/viewer/2022103110/54a79cd7497959eb6d8b49e9/html5/thumbnails/13.jpg)
• Pasad a páginas asíncronas aquellas que Pasad a páginas asíncronas aquellas que consuman mucho tiempo en espera de IOconsuman mucho tiempo en espera de IO
• Ya no es necesario implementar Ya no es necesario implementar IHttpAsyncHandler “a manubrio” como en IHttpAsyncHandler “a manubrio” como en ASP.NET 1.x. Todo lo hace el atributo async=trueASP.NET 1.x. Todo lo hace el atributo async=true
• Cuidado, peticiones desde un mismo browser Cuidado, peticiones desde un mismo browser con mismo SessionID son serializadas por con mismo SessionID son serializadas por ASP.NETASP.NET
• Insisto, haced pruebas de stress Insisto, haced pruebas de stress
![Page 14: Mejores Practicas en Aplicaciones Servidor ¿Y qué c#~ es esto? Alejandro Mezcua ByteaByte Microsoft MVP Alejandro.mezcua@byteabyte.net Jose Murillo Microsoft](https://reader038.vdocuments.pub/reader038/viewer/2022103110/54a79cd7497959eb6d8b49e9/html5/thumbnails/14.jpg)
Instrumentación de AplicacionesInstrumentación de Aplicaciones
![Page 15: Mejores Practicas en Aplicaciones Servidor ¿Y qué c#~ es esto? Alejandro Mezcua ByteaByte Microsoft MVP Alejandro.mezcua@byteabyte.net Jose Murillo Microsoft](https://reader038.vdocuments.pub/reader038/viewer/2022103110/54a79cd7497959eb6d8b49e9/html5/thumbnails/15.jpg)
• ImprescindibleImprescindible en aplicaciones empresariales en aplicaciones empresariales• La instrumentación permite que la aplicación La instrumentación permite que la aplicación
exponga información de monitorización, exponga información de monitorización, depuración, rendimiento, etc.depuración, rendimiento, etc.– Permite hacerlo en un formato estándar para Permite hacerlo en un formato estándar para
analizarla desde herramientas de monitorización analizarla desde herramientas de monitorización empresariales tipo MOMempresariales tipo MOM
• La única forma de analizarla si la tenemos La única forma de analizarla si la tenemos hospedada en un hospedada en un hosterhoster externo externo
![Page 16: Mejores Practicas en Aplicaciones Servidor ¿Y qué c#~ es esto? Alejandro Mezcua ByteaByte Microsoft MVP Alejandro.mezcua@byteabyte.net Jose Murillo Microsoft](https://reader038.vdocuments.pub/reader038/viewer/2022103110/54a79cd7497959eb6d8b49e9/html5/thumbnails/16.jpg)
• Esenciales para instrumentar las aplicaciones Esenciales para instrumentar las aplicaciones con logs, trazas y contadores de rendimientocon logs, trazas y contadores de rendimiento
Módulo 1
LAB System.Diagnostics
Módulo 2
LAB System.Diagnostics
![Page 17: Mejores Practicas en Aplicaciones Servidor ¿Y qué c#~ es esto? Alejandro Mezcua ByteaByte Microsoft MVP Alejandro.mezcua@byteabyte.net Jose Murillo Microsoft](https://reader038.vdocuments.pub/reader038/viewer/2022103110/54a79cd7497959eb6d8b49e9/html5/thumbnails/17.jpg)
• Esenciales para instrumentar las aplicaciones Esenciales para instrumentar las aplicaciones con logs, trazas y contadores de rendimientocon logs, trazas y contadores de rendimiento
Módulo 1
LAB System.Diagnostics
Módulo 2
LAB System.Diagnostics
Event Log Ficheros
DB MSMQ
![Page 18: Mejores Practicas en Aplicaciones Servidor ¿Y qué c#~ es esto? Alejandro Mezcua ByteaByte Microsoft MVP Alejandro.mezcua@byteabyte.net Jose Murillo Microsoft](https://reader038.vdocuments.pub/reader038/viewer/2022103110/54a79cd7497959eb6d8b49e9/html5/thumbnails/18.jpg)
• Esenciales para instrumentar las aplicaciones Esenciales para instrumentar las aplicaciones con logs, trazas y contadores de rendimientocon logs, trazas y contadores de rendimiento
Módulo 1
LAB System.Diagnostics
Módulo 2
LAB System.Diagnostics
Event Log Ficheros
DB MSMQWMI
![Page 19: Mejores Practicas en Aplicaciones Servidor ¿Y qué c#~ es esto? Alejandro Mezcua ByteaByte Microsoft MVP Alejandro.mezcua@byteabyte.net Jose Murillo Microsoft](https://reader038.vdocuments.pub/reader038/viewer/2022103110/54a79cd7497959eb6d8b49e9/html5/thumbnails/19.jpg)
• Esenciales para instrumentar las aplicaciones Esenciales para instrumentar las aplicaciones con logs, trazas y contadores de rendimientocon logs, trazas y contadores de rendimiento
Módulo 1
LAB System.Diagnostics
Módulo 2
LAB System.Diagnostics
Event Log Ficheros
DB MSMQWMI
Performance Monitor
![Page 20: Mejores Practicas en Aplicaciones Servidor ¿Y qué c#~ es esto? Alejandro Mezcua ByteaByte Microsoft MVP Alejandro.mezcua@byteabyte.net Jose Murillo Microsoft](https://reader038.vdocuments.pub/reader038/viewer/2022103110/54a79cd7497959eb6d8b49e9/html5/thumbnails/20.jpg)
• Esenciales para instrumentar las aplicaciones Esenciales para instrumentar las aplicaciones con logs, trazas y contadores de rendimientocon logs, trazas y contadores de rendimiento
Módulo 1
LAB System.Diagnostics
Módulo 2
LAB System.Diagnostics
Microsoft Operations Manager
Event Log Ficheros
DB MSMQWMI
Performance Monitor
![Page 21: Mejores Practicas en Aplicaciones Servidor ¿Y qué c#~ es esto? Alejandro Mezcua ByteaByte Microsoft MVP Alejandro.mezcua@byteabyte.net Jose Murillo Microsoft](https://reader038.vdocuments.pub/reader038/viewer/2022103110/54a79cd7497959eb6d8b49e9/html5/thumbnails/21.jpg)
• Los detalles de la instrumentación quedan en Los detalles de la instrumentación quedan en los ficheros de configuración para los los ficheros de configuración para los administradoresadministradores– Destino de cada evento o traza (eventlog, fichero, Destino de cada evento o traza (eventlog, fichero,
DB, etc.)DB, etc.)– Nivel de logging (Nivel de logging (info, verbose, full, etcinfo, verbose, full, etc.).)
• Arquitecturas DistribuidasArquitecturas Distribuidas– Distributor ServiceDistributor Service
![Page 22: Mejores Practicas en Aplicaciones Servidor ¿Y qué c#~ es esto? Alejandro Mezcua ByteaByte Microsoft MVP Alejandro.mezcua@byteabyte.net Jose Murillo Microsoft](https://reader038.vdocuments.pub/reader038/viewer/2022103110/54a79cd7497959eb6d8b49e9/html5/thumbnails/22.jpg)
• Descargar y utilizar el Descargar y utilizar el Logging Application Logging Application BlockBlock y y System.Diagnostics System.Diagnostics en vuestras en vuestras aplicaciones!!aplicaciones!!– Incluid información para administradores en el log Incluid información para administradores en el log
de eventos (errores, avisos, etc.)de eventos (errores, avisos, etc.)– Incluid información de depuración y log para Incluid información de depuración y log para
desarrolladores en ficheros de trazasdesarrolladores en ficheros de trazas– Incluid contadores de rendimiento para el Incluid contadores de rendimiento para el
tuneado de aplicaciones a través del performance tuneado de aplicaciones a través del performance monitormonitor
![Page 23: Mejores Practicas en Aplicaciones Servidor ¿Y qué c#~ es esto? Alejandro Mezcua ByteaByte Microsoft MVP Alejandro.mezcua@byteabyte.net Jose Murillo Microsoft](https://reader038.vdocuments.pub/reader038/viewer/2022103110/54a79cd7497959eb6d8b49e9/html5/thumbnails/23.jpg)
Entornos de alto rendimientoEntornos de alto rendimiento
![Page 24: Mejores Practicas en Aplicaciones Servidor ¿Y qué c#~ es esto? Alejandro Mezcua ByteaByte Microsoft MVP Alejandro.mezcua@byteabyte.net Jose Murillo Microsoft](https://reader038.vdocuments.pub/reader038/viewer/2022103110/54a79cd7497959eb6d8b49e9/html5/thumbnails/24.jpg)
• Alta disponibilidad del servicioAlta disponibilidad del servicio
Objetivo: ‘5 nueves’ ;-)Objetivo: ‘5 nueves’ ;-)
Disponibilidad Tiempo sin sistema al año permitido
99% 3.65 Días
99.9% 8.67 Horas
99.99% 51.98 Minutos
99.999% 5 Minutos
![Page 25: Mejores Practicas en Aplicaciones Servidor ¿Y qué c#~ es esto? Alejandro Mezcua ByteaByte Microsoft MVP Alejandro.mezcua@byteabyte.net Jose Murillo Microsoft](https://reader038.vdocuments.pub/reader038/viewer/2022103110/54a79cd7497959eb6d8b49e9/html5/thumbnails/25.jpg)
• Alto rendimiento continuadoAlto rendimiento continuado– El sistema completo ‘escala’ para el número de El sistema completo ‘escala’ para el número de
usuarios planteadousuarios planteado•El tiempo de respuesta es predecible El tiempo de respuesta es predecible
independientemente del número de independientemente del número de usuarios concurrentes (dentro del usuarios concurrentes (dentro del margen establecido)margen establecido)
![Page 26: Mejores Practicas en Aplicaciones Servidor ¿Y qué c#~ es esto? Alejandro Mezcua ByteaByte Microsoft MVP Alejandro.mezcua@byteabyte.net Jose Murillo Microsoft](https://reader038.vdocuments.pub/reader038/viewer/2022103110/54a79cd7497959eb6d8b49e9/html5/thumbnails/26.jpg)
• Escalabilidad verticalEscalabilidad vertical– Utilizar hardware más potenteUtilizar hardware más potente
•Más RAM, mejores discos…Más RAM, mejores discos…
• Escalabilidad horizontalEscalabilidad horizontal– Repartir la carga entre diversos equiposRepartir la carga entre diversos equipos
•Cluster Server para bases de datos …Cluster Server para bases de datos …•Network Load Balancing para Network Load Balancing para
aplicaciones (Web, FTP, …)aplicaciones (Web, FTP, …)
![Page 27: Mejores Practicas en Aplicaciones Servidor ¿Y qué c#~ es esto? Alejandro Mezcua ByteaByte Microsoft MVP Alejandro.mezcua@byteabyte.net Jose Murillo Microsoft](https://reader038.vdocuments.pub/reader038/viewer/2022103110/54a79cd7497959eb6d8b49e9/html5/thumbnails/27.jpg)
Inte
rnet
Servidores Web IIS Balance de carga NLB
Firewall balance de cargaMicrosoft ISA Server / NLBCheckPoint / StoneBeat
Cluster Base de DatosSQL Server / Microsoft Cluster Server
LAN DMZ
LAN Interna
Usuarios (IE / Firefox)
![Page 28: Mejores Practicas en Aplicaciones Servidor ¿Y qué c#~ es esto? Alejandro Mezcua ByteaByte Microsoft MVP Alejandro.mezcua@byteabyte.net Jose Murillo Microsoft](https://reader038.vdocuments.pub/reader038/viewer/2022103110/54a79cd7497959eb6d8b49e9/html5/thumbnails/28.jpg)
• Servicios repartidos por varias máquinas Servicios repartidos por varias máquinas físicasfísicas– Mayor latencia por cada solicitudMayor latencia por cada solicitud
• Más procesadoresMás procesadores– Ojo con los threadsOjo con los threads
• ClusterCluster– No fijar nada por código al nombre concreto de No fijar nada por código al nombre concreto de
una máquina, se usará el nombre virtual del una máquina, se usará el nombre virtual del clustercluster
![Page 29: Mejores Practicas en Aplicaciones Servidor ¿Y qué c#~ es esto? Alejandro Mezcua ByteaByte Microsoft MVP Alejandro.mezcua@byteabyte.net Jose Murillo Microsoft](https://reader038.vdocuments.pub/reader038/viewer/2022103110/54a79cd7497959eb6d8b49e9/html5/thumbnails/29.jpg)
• Network Load BalancingNetwork Load Balancing– No fijar por código nada al nombre de una máquinaNo fijar por código nada al nombre de una máquina– ¿Se usan variables de sesión/aplicación?¿Se usan variables de sesión/aplicación?
•¿Es posible codificar los datos en la URL o ¿Es posible codificar los datos en la URL o en un campo de formulario oculto?en un campo de formulario oculto?
•Si no, en ASP.NET es fácil mover la sesión a Si no, en ASP.NET es fácil mover la sesión a un servidor externoun servidor externo
•Las variables de aplicación están asociadas Las variables de aplicación están asociadas a la máquinaa la máquina
![Page 30: Mejores Practicas en Aplicaciones Servidor ¿Y qué c#~ es esto? Alejandro Mezcua ByteaByte Microsoft MVP Alejandro.mezcua@byteabyte.net Jose Murillo Microsoft](https://reader038.vdocuments.pub/reader038/viewer/2022103110/54a79cd7497959eb6d8b49e9/html5/thumbnails/30.jpg)
• CachingCaching• Habilitar/deshabilitar ‘session state’ y ‘view Habilitar/deshabilitar ‘session state’ y ‘view
state’state’• Optimizar el acceso a datosOptimizar el acceso a datos
– No consultar 1000 registros para mostrar 10 ;-)No consultar 1000 registros para mostrar 10 ;-)– Impersonar al usuario para acceder a SQL Server Impersonar al usuario para acceder a SQL Server
deshabilita ‘connection pooling’deshabilita ‘connection pooling’
![Page 31: Mejores Practicas en Aplicaciones Servidor ¿Y qué c#~ es esto? Alejandro Mezcua ByteaByte Microsoft MVP Alejandro.mezcua@byteabyte.net Jose Murillo Microsoft](https://reader038.vdocuments.pub/reader038/viewer/2022103110/54a79cd7497959eb6d8b49e9/html5/thumbnails/31.jpg)
Localización de problemas de Localización de problemas de memoria con CLRProfilermemoria con CLRProfiler
![Page 32: Mejores Practicas en Aplicaciones Servidor ¿Y qué c#~ es esto? Alejandro Mezcua ByteaByte Microsoft MVP Alejandro.mezcua@byteabyte.net Jose Murillo Microsoft](https://reader038.vdocuments.pub/reader038/viewer/2022103110/54a79cd7497959eb6d8b49e9/html5/thumbnails/32.jpg)
• Aplicación no soportada que permite trazar la Aplicación no soportada que permite trazar la memoria en uso de una aplicación .NETmemoria en uso de una aplicación .NET– Desktop, servicios de sistema o WebDesktop, servicios de sistema o Web
• MuestraMuestra– Estado de la memoria en un momento dado Estado de la memoria en un momento dado
mediante gráficosmediante gráficos– Estadísticas del GCEstadísticas del GC– Información sobre los métodos llamados y cargadosInformación sobre los métodos llamados y cargados– Mucho más…Mucho más…
![Page 33: Mejores Practicas en Aplicaciones Servidor ¿Y qué c#~ es esto? Alejandro Mezcua ByteaByte Microsoft MVP Alejandro.mezcua@byteabyte.net Jose Murillo Microsoft](https://reader038.vdocuments.pub/reader038/viewer/2022103110/54a79cd7497959eb6d8b49e9/html5/thumbnails/33.jpg)
CLR ProfilerCLR Profiler
![Page 34: Mejores Practicas en Aplicaciones Servidor ¿Y qué c#~ es esto? Alejandro Mezcua ByteaByte Microsoft MVP Alejandro.mezcua@byteabyte.net Jose Murillo Microsoft](https://reader038.vdocuments.pub/reader038/viewer/2022103110/54a79cd7497959eb6d8b49e9/html5/thumbnails/34.jpg)
Microsoft Pattern & PracticesMicrosoft Pattern & Practices
![Page 35: Mejores Practicas en Aplicaciones Servidor ¿Y qué c#~ es esto? Alejandro Mezcua ByteaByte Microsoft MVP Alejandro.mezcua@byteabyte.net Jose Murillo Microsoft](https://reader038.vdocuments.pub/reader038/viewer/2022103110/54a79cd7497959eb6d8b49e9/html5/thumbnails/35.jpg)
• Web Services Software FactoryWeb Services Software Factory• Enterprise Library for .NET Framework 2.0Enterprise Library for .NET Framework 2.0
– Caching Application BlockCaching Application Block– Configuration Application BlockConfiguration Application Block– Cryptography Application BlockCryptography Application Block– Data Access Application BlockData Access Application Block– Exception Handling Application BlockException Handling Application Block– Logging & Instrumentation Application BlockLogging & Instrumentation Application Block– Security Application BlockSecurity Application Block
![Page 36: Mejores Practicas en Aplicaciones Servidor ¿Y qué c#~ es esto? Alejandro Mezcua ByteaByte Microsoft MVP Alejandro.mezcua@byteabyte.net Jose Murillo Microsoft](https://reader038.vdocuments.pub/reader038/viewer/2022103110/54a79cd7497959eb6d8b49e9/html5/thumbnails/36.jpg)
• Data PatternsData Patterns• Web Service Security GuidanceWeb Service Security Guidance• Improving .NET Application Performance and Improving .NET Application Performance and
ScalabilityScalability• Improving Web Application SecurityImproving Web Application Security• Application Architecture for .NET: Designing Application Architecture for .NET: Designing
Applications and ServicesApplications and Services• Enterprise Solution Patterns Using Enterprise Solution Patterns Using
Microsoft .NETMicrosoft .NET
![Page 37: Mejores Practicas en Aplicaciones Servidor ¿Y qué c#~ es esto? Alejandro Mezcua ByteaByte Microsoft MVP Alejandro.mezcua@byteabyte.net Jose Murillo Microsoft](https://reader038.vdocuments.pub/reader038/viewer/2022103110/54a79cd7497959eb6d8b49e9/html5/thumbnails/37.jpg)
• Software Tester Team CenterSoftware Tester Team Center– http://msdn2.microsoft.com/en-us/teamsystem/aa71
8941.aspx
• Asynchronous Pages in ASP.NET 2.0 – Wicked Asynchronous Pages in ASP.NET 2.0 – Wicked CodeCode– http://msdn.microsoft.com/msdnmag/issues/05/10/
WickedCod
• Enterprise Library for .NET Framework 2.0Enterprise Library for .NET Framework 2.0– http://msdn2.microsoft.com/en-us/library/aa480453.
aspx
• http://www.byteabyte.net • http://geeks.ms/blogs/amezcua
![Page 38: Mejores Practicas en Aplicaciones Servidor ¿Y qué c#~ es esto? Alejandro Mezcua ByteaByte Microsoft MVP Alejandro.mezcua@byteabyte.net Jose Murillo Microsoft](https://reader038.vdocuments.pub/reader038/viewer/2022103110/54a79cd7497959eb6d8b49e9/html5/thumbnails/38.jpg)