Hola grupo !!!
Tengo una aplicacion desarrollada para ser usada en por unos 2000 clientes, (
asp.net 4.5.1, legacy webforms, con updatepanel, jquery (+ algunos plugins), unas 200 páginas aspx, con SqlSiteMapProvider, etc). Siendo novato-profano-torpe en temas de rendimiento, mi duda es que con
el paso del los años habrá herramientas gratuitas para mejorar el
rendimiento de aplicaciones web
ASP.NET 4.0 (legacy webforms -
updatepanel, etc) ? o una checklist avanzada sobre temas de
optimización, rendimiento y SEO en aplicaciones
ASP.NET?
A grosso modo, tengo estas tareas: pienso en validar XHTML de todas las 200 páginas aspx, de establecer correctamente las META en el head, el favicon, y luego pensar en configuración del web.config y configuración del IIS 7.5 de Windows 2008 R2 para aumentar rendimiento. También pienso en optimización del código fuente C# de todas las páginas aspx, controles ascx y handlers ashx (algo que no es nada trivial y ando totalmente perdido). Igual podría pensar en "cachear" datos o minimizar consultas a la base de datos. Y finalmente, de forma muy secundaria y no prioritaria pensar en el SEO. Ahora me pregunto cómo abordar todas estas tareas sin tener ni idea y siendo un torpe.
(en particular)
Debido a que en algunas pc que acceden estoy teniendo problemas
aleatorios de acceso al sistema (mucho tiempo para devolver la
informacion en el browser), Desde chrome o IE estoy utilizando las developer tools, y viendo los tiempos de acceso y esas cosas, pero no estoy obteniendo ningun mensaje de error en si, sino tiempos muy largos en ciertas ocasiones
(En general), Querria saber si me pueden comentar sobre recursos que habitualmente
usan para diagnosticar donde se pueden encontrar posibles problemas.
Target: Trucos, herramientas, recursos para rendimiento y optimización de aplicaciones asp.net 4.0?lmgtfy puedo obtener miles de referencias, para volverse loco. Desde MSDN Magazine,
https://msdn.microsoft.com/en-us/magazine/ee310108.aspx, Codeproject, blogs, etcétera.
Lo ideal serían dos cosas:
1.) una guía avanzada y detallada de Microsoft, consejos que Microsoft aporta para el desarrollo de aplicaciones web de alto rendimiento.
2.) Aplicaciones
asp.net reales de ejemplo que sigan esas buenas prácticas de rendimiento y optimización
NO encontré nada de alto nivel.
Algo para empezar,
Configuración web.config:
http://www.humanlevel.com/articulos/desarrollo-web/como-configurar-internet-information-server-iis-para-mejorar-el-rendimiento-y-el-seo-de-tu-web.htmlConsejos muy generales, pero sin ejemplos prácticos:
http://www.josecuellar.net/microsoft-asp-net/optimizando-el-rendimiento-de-asp-net/http://miscosas.montisoft.es/asp-net/20-tips-para-mejorar-el-rendimiento-de-aplicaciones-asp-nethttp://www.esandra.com/mejores-practicas-para-crear-sitios-web-de-alto-rendimiento/Pueden existir cientos de herramientas, "existen varias herramientas que te ayudarán y permitirán analizar la optimización del código para mejorar el posicionamiento en buscadores. Microsoft SEO Toolkit es una buena opción.", "herrramientas para optimizar el tiempo de carga, como por ejemplo GTMetrix", imagino que muchas más, yo me pierdo, y como torpón en esto, me pregunto cuáles deben ser las que se pueden utilizar (de forma gratuita)
Pueden comentar sus experiencias, su visión, sus buenas prácticas al respecto, sus ejemplos o aplicaciones
asp.net que compartan, sus enlaces delicious o Pocket que compartan, etc ?
Desde ya muchas gracias!!
================================
Recopilatorio de años pasados en el grupo:
Libros de referencia pero antiguos
1. High Performance Web Sites, escrito en 2007
2. Cómo Diseñar Sitios Web Más Rápidos, escrito en 2009,
el complemento Firebug, una vez que lo tengamos instalado, debemos descargar nuestro segundo complemento YSlow,
Yo tambien he usado MiniProfiler (
http://miniprofiler.com/) y me sirvio bastante. Es un poco intrusivo, pero sirve.
Otro que escuche es bastante bueno es Glimpse (
http://getglimpse.com/) pero no lo he usado aun.
Yo uso para la parte de client side:
YSlow para Firefox
https://addons.mozilla.org/en-US/firefox/addon/yslow/ para diagnosticar multiples request, tamaños etc... creo que con las dev tools de Chromer también lo podes hacer.
Combres
http://combres.codeplex.com/, para unificar y minificar JS y CSS, en MVC 4 ya vienen los bundles, pero igual me gusta más Combres.
Luego ya en Server Side podes mirar Glimpse
http://getglimpse.com/ que además tiene un "plugin" para Entity Framework
http://www.nuget.org/packages/Glimpse.efAdemás trato de usar el Profiler de Ayende, el de Entity es:
http://efprof.com/Server != Client
Se puede decir que:
Render Time != Transfer Time != Layout time
En general: Tiempo para ver una pagina = (Server Render Time + Request Time + Response Transfer Time + Client Render Time) * Componentes * Factor de Correccion...
Ojo que del lado del server lo UNICO que sabes es el Server Render Time, todo lo demas depende tanto del cliente (Distancia, Browser, Red, Latencia, posicion de las estrellas, etc..)...
1.- Si no querés implementar nada lo mejor es contratar un SaaS que haga el análisis que necesitas, tené en cuenta que estos productos están enfocados para Business Intelligence por lo que pueden parecer excesivos para lo que nos explicas pero tienen las herramientas para hacer el trabajo.
mixpanel
https://mixpanel.com/KISSmetrics
http://www.kissmetrics.com/2.- Si querés implementar hay una librería desarrollada por Yahoo que se encarga de toda la parte del cliente, entonces tenes que implementar el lado del servidor, recibir, analizar y exportar los datos.
Boomerang
https://github.com/yahoo/boomerang/3.- Existe este proyecto, PiWik, que en su tiempo surgió como una alternativa libre a Google Analytics, esta en PHP+MySQL y es desarrollado activamente, no estoy seguro que haga todo lo que pedís pero lo podes usar como base, tiene su sistema de plugins y el foro es bastante bueno.
http://piwik.org/Fijate este post de Jeff Atwood acerca de la performance de StackOverflow
http://www.codinghorror.com/blog/2011/06/performance-is-a-feature.html y este de Steve Souders sobre Web Performance Optimization
http://www.stevesouders.com/blog/2012/02/10/the-performance-golden-rule/http://www.codeproject.com/Articles/149251/Debugging-Tracing-and-Instrumentation-in-NET-and-A Quizas algo de este post te sirva
http://samsaffron.com/archive/2012/03/23/sam-s-ultimate-web-performance-tools-and-resources