Blog de Francisco Velázquez

otro blog personal

Tiene sentido usar una DAL con un ORM?

leave a comment »

Interesantes comentarios de de la lista altnet-hispano. Mi respuesta corta es que NO, que normalmente abstraer el ORM traería casi tanto trabajo como reemplazarlo cuando hiciera falta, y si además por algún nuevo requisito hubiera que cambiar el ORM, seguramente esto sería lo que menos trabajo nos causara.

Incluyo la opinión del superhéroe Ayende: In short, I am completely opposed for even trying doing something like that.

Written by fravelgue

November 2, 2011 at 6:53 pm

Posted in development

Tagged with , ,

Google Reader compact

with one comment

Si tienes una pantalla con no mucha resolución como yo y usas Google Reader,  te puede interesar este script de Greasemonkey, para poseer la versión compact.

Yo personalmente comento las siguientes dos líneas, porque me gusta ver la barra de google, su logo y la búsqueda.

//GM_addStyle("#top-bar {display: none;}");

//GM_addStyle("#gb {display: none;}");
//GM_addStyle("#title-and-status-holder {display: none;}");

Y además cambio el color del enlace (elemento a) por: #D14836

Written by fravelgue

November 2, 2011 at 6:32 pm

Posted in util

Tagged with , , ,

Nueva interfaz de Google

with one comment

A mi me parece un auténtico desperdicio de espacio.

Written by fravelgue

November 1, 2011 at 11:50 am

Posted in design

Tagged with , , , ,

Generar SQL a partir de SQL

leave a comment »

Algo que que no se me había ocurrido antes, pero que me ayudó a resolver un problema de una manera muy sencilla. La idea es usar SQL para generar sentencias SQL que realizarán actualizaciones de muchas filas.

Por ejemplo, imaginemos que tenemos una tabla (Log) que posee una columna Url. El problema es que queremos actualizar el dominio de todas estas Urls.

select 'update Log set url='''+url+''' from Log

Con un pequeño reemplazar tendremos una serie de consultas SQL que nos permitirán actualizar los dominios.

Written by fravelgue

November 1, 2011 at 11:08 am

Posted in development

Tagged with ,

Modificar el valor de Request.Param o QueryString

with one comment

Hace unos días necesité modificar el valor de Request.Param y de la QueryString en una página ASP.NET. Parece que no es algo común pero sin embargo, había gente que también había necesitado hacerlo.

La manera de hacerlo fue usando un HttpModule y usando un poco de Reflection. La verdad algo bastante sencillo de hacer y con un buen resultado.

    public class ChangeParamsModule : IHttpModule
    {
        public void Dispose()
        {
            throw new NotImplementedException();
        }

        public void Init(HttpApplication context)
        {
            context.BeginRequest += (sender, e) =>
            {
                HttpApplication httpContext = (HttpApplication)sender;
                // reflect to getting readonly property
                PropertyInfo isReadOnly = typeof(System.Collections.Specialized.NameValueCollection).GetProperty("IsReadOnly", BindingFlags.Instance | BindingFlags.NonPublic);

                // make collection editable
                isReadOnly.SetValue(httpContext.Request.QueryString, false, null);
                isReadOnly.SetValue(httpContext.Request.Params, false, null);

                httpContext.Request.QueryString.Set("nuevoParam", "nuevoValor");
                httpContext.Request.Params.Set("nuevoParm", "nuevoValor");

                // make collection readonly again
                isReadOnly.SetValue(httpContext.Request.QueryString, true, null);
                isReadOnly.SetValue(httpContext.Request.Params, true, null);
            };
        }
    }

Written by fravelgue

October 19, 2011 at 5:47 pm

ASP.NET sirviendo contenido estático

leave a comment »

Dos interesantes propuestas para mejorar el rendimiento de nuestras aplicaciones ASP.NET, y del mismo blog, al que habrá que echarle un ojo.

Cargar contenido estático de otro dominio de forma automática.

Eliminar las cookies de contenido estático.

Si a esto le añadimos un proxy inverso delante de nuestro IIS, ganaremos bastante en rendimiento.

Written by fravelgue

October 19, 2011 at 5:37 pm

Posted in development

Tagged with , ,

ASP.NET SessionState Cookieless

leave a comment »

Llevo varios días intentando modificar el comportamiento de cookieless en la sesión. Comencé queriendo heredar SessionIDManager pero los métodos virtuales expuestos no lo permiten. Después intenté desarrollar mi propio SessionStateModule y aunque es posible, la verdad, es que la mayoría de la funcionalidad es interna o privada. A pesar de tener el código de mono y haber investigado mucho con reflector no he podido encontrar la solución todavía.

Pienso que esta parte del framework no esta lo suficientemente clara y el abuso de internal y private sólo intentan ocultar una mala implementación.

El equipo de MVC se vangloria de lo extensible que es su framework, pues valdría la pena que le echaran un vistazo a esta parte del framework. Porque la verdad no termino de enterder porque no es posible realizar esto de una manera sencilla.

Written by fravelgue

October 14, 2011 at 4:00 pm

Problema en ASP.NET visitando la página desde móvil

leave a comment »

Este error, a parte de sufrirlo, es una pregunta bastante común, aún hoy. Normalmente, ocurre al visitar una página ASP.NET con webforms.  Se debe básicamente al Content-Type que ASP.NET rellena en las cabeceras HTTP.

Por ejemplo, si visitamos esta página, y usamos la herramienta Fiddler desde un navegador tradicional podemos ver lo siguiente:

Sin embargo, si navegamos desde un terminal móvil, como por ejemplo, un SonyEricsson C903 [1]:

Bueno ahora tenemos el problema, una solución podría ser sobre-escribir las “capabilities” para que el Content-Type sea el adecuado. En mi caso suelo tener las capabilities construidas a partir de WURFL.

[1] User-Agent: SonyEricssonC903a/R1FA Browser/NetFront/3.4 Profile/MIDP-2.1 Configuration/CLDC-1.1 JavaPlatform/JP-8.4.3

Written by fravelgue

September 26, 2011 at 7:01 pm

Posted in development

Tagged with , , ,

Helper para ConfigurationElementCollection

leave a comment »

Interesante utilidad que ayuda muchísimo para trabajar con colecciones en archivos de configuración.

    [ConfigurationCollection(typeof(ConfigurationElement))]
    public class ConfigurationElementCollection<T> :
        ConfigurationElementCollection, IEnumerable<T> where T : ConfigurationElement, new()
    {
        protected override ConfigurationElement CreateNewElement()
        {
            return new T();
        }
        protected override object GetElementKey(ConfigurationElement element)
        {
            return ((T)(element)).ToString();
        }
        public T this[int idx]
        {
            get { return (T)BaseGet(idx); }
        }

        public new IEnumerator<T> GetEnumerator()
        {
            int count = base.Count;
            for (int i = 0; i < count; i++)
                yield return base.BaseGet(i) as T;
        }

Written by fravelgue

September 6, 2011 at 4:41 pm

Posted in development

Tagged with , , ,

Linq y su futuro

leave a comment »

Interesante publicación de E.Meijer, sobre Linq y uso uso para el acceso a datos de diversas y heterogéneas fuentes, como podrían ser los diferentes repositorios NoSQL.

Sería estupendo que Microsoft dedicara recursos para este tipo de desarrollos, por según Ayende no es nada sencillo realizar un proveedor para Linq.

Written by fravelgue

September 5, 2011 at 8:02 pm

Posted in development

Tagged with , ,

Design a site like this with WordPress.com
Get started