Ir al contenido principal

Entradas

Mostrando las entradas de noviembre, 2011

Guardar Milisegundos con NHibernate

Hoy casualmente en el trabajo nos topamos con un comportamiento un poco extraño en NHibernate, con una propiedad de tipo DateTime, mapeado a un campo DateTime en una base de datos SQL Server, resulto que necesitábamos tener hasta los milisegundos almacenados y el problema es que nhibernate para "compatibilidad"  con multiples RDBMS, trunca hasta los segundos, por lo que despues de mucho buscar nos encontramos finalmente con la solución. agregar en el archivo hbm, donde esta definido el mapeo, el atributo type="timestamp" a la propiedad. por ejemplo <property column="CREATION_DATE" name="created" type="timestamp"> aunque en la base de datos se mantiene DateTime. y en la propiedad del objeto tambien se mantiene DateTime. 

Cargar JS De Forma Dinamica

El hecho de minimizar la cantidad de información que necesita transmitirse al usuario la primera vez que carga una pagina web hace mas agradable la experiencia para el usuario, todos hemos pasado por la desesperación de ver una pagina cargarse lentamente y francamente creo que son pocos los que esperan y somos muchos los que simplemente nos cambiamos a la siguiente pagina, en el ambiente tan competitivo que se vive hoy en día en internet, el cual no nos permite darnos el lujo de perder un visitante por un tiempo de respuesta deficiente en nuestras "landing pages" Lazy Loading tambien conocida como "On Demand Loading"  y algunos otros alias, es una idea que se viene manejando en los ORM desde hace tiempo, por ejemplo en una relacion Uno a Muchos, la data del lado de muchos no se carga hasta que efectivamente se intenta acceder a ella, por lo que no se realiza el costoso proceso de cargar todo el detalle, hasta que efectivamente se vuelve inevitable (necesario). e

C# Performance, Acelerando C#, Tip #1 List.Contains() vs Dictionary.ContainsKey()

Generalmente el rendimiento de una aplicación no se toma en cuenta hasta que este se vuelve inaceptable, es decir, si todo funciona y esta dentro de los limites aceptables,  pues nadie se pone a pensar en optimizar nada, por ahí dicen "no optimice demasiado pronto" pero esto no significa "no optimice nunca", para mi la optimización empieza desde el momento en el que se piensa la  solución, es inaceptable no considerar el rendimiento cuando se planea la forma de implementar una característica.  Hoy publico uno de los tantos casos con los que me ha tocado optimizar, es muy común y muchas personas no tienen presentes este tipo de consideraciones al decidir que método utilizar, es mas ahora con LINQ y la inferencia de tipos mucha gente se enfoca mas en usar querys LINQ para resolverlo todo, sin ponerse a pensar ni por un momento las implicaciones que esta "maravilla" tienen en el rendimiento final de una aplicación.  En esta publicación voy a presenta