Chalalo Land

Tecnologías ASP.NET y un poco Más

Contacto


 Si quierer cooperar, yo feliz, muy agradecido :)

De donde me Visitan?

Locations of visitors to this page

Generic Content

Si te gustaron los articulos, y te animas te estaría muy agradecido!


Recent Posts

Tags

Community

Blogs de MVP

Amigos Geeks

Blogs Imperdibles

GODS

Archives

Email Notifications

March 2009 - Artículos

[Off-Topic] Último día de MVP, espero que exista otro!

Ha sido una experiencia muy gratificante , he tenido la oportunidad de conocer a  excelentes profesionales que comparten su pasión por las comunidades de usuarios, compartir conocimiento, investigar y enseñar, de una manera fácil, temas de programación.

También espero que durante este año, haya estado a la altura de mis colegas, siempre leo sus blogs y sus aportes siempre son realmente excelentes, he aprendido mucho de ellos

Como muchos saben, el MVP es un reconocimiento, Fernando a dado muchos tips de como llegar a ser un MVP, para mi, ha sido un tremendo orgullo llevar esta camiseta, y quizás, mi ejemplo en Chile, de ser el único MVP que no es de Santiago (Capital) , si no del sur de mi país (que el muuuuy largo) incentive a otros, demostrando que no importa estar en la metrópolis para ser escuchado, ahora con internet, podemos aportar con las comunidades de cualquier parte, por muy lejana que esté. Aún así, no me molesta viajar 6 horas para llegar a la capital y dar una charla de 1 hora y media y volverme enseguida, acompañado del cariño de mi esposa, un libro, mi psp y como no, el agradecimiento y aliento de los asistentes, ufff, vuelvo con las pilas al ||||||||||||100%

Les agradezco también los muchos post de agradecimiento en este blog, espero poder escribir más seguido, aunque estoy a full laburo, ustedes saben, cuando se es trabajador independiente, cualquier rato libre, es un rato que se utiliza para producir!

Eso quería decir, tengo varios artículos en el tintero, espero ponerme al día este fin de semana :)

Gracias y Saludos!

Chalalo

MVP - MCT

Slides y ejemplos de Charla “Revitalizando nuestras aplicaciones con Microsoft AJAX”

Hola, gracias a los asistentes de ayer a esta charla que di junto a Leando Masotti, la verdad es que quedamos muy contentos, ya que recibimos excelentes comentarios de parte de los asistentes como así también de los organizadores. Por eso agrademos nuevamente la paciencia que tuvieron, ya que nos aguantaron 3 horas!.

Les dejo acá la ppt que utilizamos, los demos y finalmente los links para descargar los componentes que vimos.

Descargar ppt

image

Demo 1: Consiste en Agregar MS Ajax a una aplicación existente, los controles utilizados son:UpdatePanel, UpdateProgess, y el omnipresente ScriptManager.
Baja Aquí la Demo 1

image

Demo 2: Consiste en incorporar Ajax Control Toolkit a las demo1, de tal manera de potenciar nuestras aplicaciones , los controles que se ven en esta demo son AutoCompleteExtender, ModalPopUpExtender
Baja Aquí la Demo 2

 

image

La idea es no sobrecargar la página con todos los controles que existen, si no utilizar solo los precisos.

Y por último , dentro de esta misma demo, esta lo del control Chart, asociado a un ModalPopUpExtender.

image

Links de Descargas:

AJAX
Microsoft AJAX
Ajax Control Toolkit y Demos Live

Para Chart
Descargar los controles.
Descargar el soporte para VS 2008 para estos controles.
Descargar los ejemplos.
Descargar la documentación.
Visitar el foro.

Saludos!

Gonzalo

Un Problemilla con Windows 7- Muy extraño.

Estoy recontento con Windows 7, mi portátil, un Toshiba Satellite (héroe de mil batallas y pariente del tipo que sale en Discovery Channel, A Prueba de Todo) anda excelente, nada que decir, de hecho es mi máquina de producción, tengo VS2008 con el SP1, muchas herramientas hasta Apache + MySQL + PHP, todo bien.

Ahora el Problema, cuando inicio por primera vez el portatil, extrañamente el ventilador de la cpu no funciona, una vez que el notebook está a punto de arder (o no tanto) reinicio y el ventilador vuelve a funcionar. (parece secador de pelo como tira el aire!)

Ahora bien, podría decirse que es un problema de HW y no de SW, pero he probado con Windows XP, Windows Vista y el ventilador funciona de manera correcta, probé con distros live de linux e hice una partición con OpenSuse y también funcionó bien el ventilador.

image

Midiendo la temperatura, cuando llega a 85 grados, se apaga, jejeje, ya he pasado por limpiar el ventilador y todo eso.

El modelo del portátil es: Satellite M105-SP381.

Raro verdad?
Saludos,
gonzalo

Posted: 4/3/2009 14:25 por Gonzalo Perez | con 43 comment(s)
Archivado en:
Paginando Eficientemente en ASP.NET

Suena un poco arrogante, pero no es una frase mía, me la dijeron una vez, un tipo que si era arrogante, bueno el tema que quiero tocar es la paginación de grillas en ASP.NET.
A través del tiempo, muchos desarrolladores utilizan las ventajas únicas de crear websites con ASP.NET, en donde con unos simples click, podemos visualizar, modificar, eliminar, crear registros mediante controles que realmente nos hacen la vida más sencilla. Pero, esta sencillés muchas veces nos llega a recordar la frase “lo barato sale caro” y por que?, por que en el caso de la grilla, cuando tenemos muchos datos y paginamos con el método por Default,( que es hacer un click en páginación) estamos sacrificando rendimiento por facilidad.

El Problema de la paginación por Default.

Imaginemos que tenemos una tabla con datos y vamos a mostrarlos en un Gridview, pensemos en una cantidad de unos 500 datos (que no es un cantidad excesivamente grande). La paginación por default va obtener los 500 datos y a mostrar solo 10 (si es esa la cantidad de registros por página que seleccionaron). Es decir , se trae TOOOODO y se muestran 10, no es muy eficiente verdad?

Entonces como muestra la figura, tenemos 500 registros que registros obtenidos para solo mostrar 10, no tiene mucha lógica, aunque la comodidad y la tentación es grande.

image

Figura 1: Paginación por Default.

Paginación Personalizada (Custom Paging)

O podríamos decir, paginación eficiente, ya que solo obtenemos los datos necesarios para mostrarlos al usuario, y si, tiene mucha más lógica que obtener registros que , posiblemente, nunca mostraremos.

image

Figura 2: Paginación Eficiente

Para que eso sea posible, debemos cambiar el modo de obtener los datos, y además, entender un poco como funciona.

Paso 1 Entendiendo la Paginación

 

 

 

Hay 3 variables que son fundamentales  en el uso de este tipo de paginación, que son:

  1. Start Row Index : Representa el indice de inicio de la obtención de registros.
  2. Maximum Rows: Representa la cantidad de registros a obtener
  3. Total Record Count: El total de registros de la tabla (o el total del conjunto de registros que vamos a obtener).

Para hacerlo más claro, vemos la figura 3.

image

Figura 3: Diagrama explicativo de la paginación eficiente

Entonces, lo que vamos haciendo, es “corriendo” el Start Row Index, de tal manera de movernos por los registros obteniendo solo lo que necesitamos.

Ejemplo:

Pagina 1

Pagina 2

Pagina 3

StarRowIndex =0
Maximum Rows=10
Total Record Count=500
StarRowIndex =10
Maximum Rows=10
Total Record Count=500
StarRowIndex =20
Maximum Rows=10
Total Record Count=500

Como vez, es el StarRowIndex, que se va incrementando en la cantidad de Maximum Rows por cada página.

Paso 2 Implementando

Existe un manual increíblemente bueno, en www.asp.net, en su tiempo , aprendí de ahí por lo que te recomiendo que lo leas, para aprender esto:

http://www.asp.net/learn/data-access/tutorial-25-vb.aspx 

Ojo, es una lectura Obligatoria!!! No quise volver a escribir lo que está escrito, por eso, puse el link.

Resumen del tutorial
1) Hacer un SP con el Count de los registros
SELECT COUNT(*) FROM Products

2) Hacer un SP que traiga los datos desde el StartRowIndex hasta el StartRowIndex + Maximum Rows.

CREATE PROCEDURE dbo.GetProductsPaged ( @startRowIndex int, @maximumRows int ) AS
SELECT ProductID, ProductName, SupplierID, CategoryID, QuantityPerUnit, UnitPrice, UnitsInStock, UnitsOnOrder, ReorderLevel, Discontinued, CategoryName, SupplierName FROM (
        SELECT ProductID, ProductName, SupplierID, CategoryID, QuantityPerUnit, UnitPrice, UnitsInStock, UnitsOnOrder, ReorderLevel, Discontinued, (SELECT CategoryName
        FROM Categories
       WHERE Categories.CategoryID = Products.CategoryID) AS CategoryName, (
          SELECT CompanyName FROM Suppliers WHERE Suppliers.SupplierID = Products.SupplierID) AS SupplierName, ROW_NUMBER() OVER (ORDER BY ProductName) AS RowRank FROM Products ) AS ProductsWithRowNumbers WHERE RowRank > @startRowIndex AND RowRank <= (@startRowIndex + @maximumRows)

Marqué con negrita lo que es importante ya que es para obtener un subconjunto, pero véelo mejor en el tutorial :)

3) Configurar la Grilla y el ObjectDataSource (en el tutorial!)

Paso 3 Los Resultados

Si bien son múltiples factores que afectan la obtención de registros desde una fuente de datos, hay patrones que nos indican claramente los resultados y podemos hacer y podemos concluir que la paginación customizada, tiene mucho mejor desempeño y, obviamente,una mejora en nuestras aplicaciones.

Tipo de Paginación

Prom duración(seg)

Lecturas

Default Paging – SQL Profiler 1.411 383
Custom Paging – SQL Profiler 0.002 29
Default Paging – ASP.NET Trace 2.379 N/A
Custom Paging – ASP.NET Trace 0.029 N/A

Espero que esto te sirva de ayuda para decidir que tipo de paginación hacer, si bien esto es un tema que podría parecer normal para algunos, no se engañen, mucha gente desconoce el tema, por lo que un refresca memoria como este, nunca esta de más.

Nos vemos!

Gonzalo

Posted: 2/3/2009 16:55 por Gonzalo Perez | con 16 comment(s) |
Archivado en:
Charla Revitalizando sus aplicaciones Web con ASP.NET AJAX

Con mucho gusto empezamos el periódo de charlas, esta vez con un tema que me apasiona bastante, que es ajax y como revitalizar nuestras aplicaciones mediante esta técnología, utilizando Microsoft Ajax, Ajax Toolkit, y Jquery. 

Revitalizando sus aplicaciones Web con ASP.NET AJAX
Fecha y hora:
Jueves 12 de Marzo, 18:30 a 21:30 hrs.
Lugar: Mariano Sánchez Fontecilla 310, piso 6. Las Condes.
Oradores:Gonzalo Perez (MVP) Universidad del Bío Bío y Leandro Masotti, Líder de Desarrollo, Accendra.
Inscríbete Aquí
Ver más

Abastract:

En este evento veremos cómo potenciar nuestras aplicaciones web utilizando ASP.NET AJAX. Analizaremos al detalle como agregar dinamismo e inteligencia a nuestras páginas, cómo agregar gráficos, cómo agregar ventanas pop-up, paneles descolgables y mucho más...imperdible realmente!

Espero que puedan ir!
Saludos,
Gonzalo

Posted: 2/3/2009 12:45 por Gonzalo Perez | con 5 comment(s)
Archivado en: ,