MicroFramework 3.0 SDK beta disponible

    Ya podemos descargar para empezar a realizar las primeras pruebas de desarrollo con el nuevo MicroFramework, que cada vez mas le vamos a tener que cambiar el nombre de micro a macro, por la cantidad de implementaciones que esta teniendo, 🙂 .  Las principales novedades son:

 

  • Interop con codigo nativo.
  • Touch Screen.
  • Inking.
  • Soporte para USB.
  • Sistema de ficheros.

 

   Para descargarlo primero tendreis que  registraros en http://connect.microsoft.com/netmf y contestar a una pequeña encuesta. Asi entrareis a la comunidad de desarrolladores y poder participar activamente en este testeo.

http://connect.microsoft.com/Images/MSConnect_Logo.gif

Ajax y el "Access Denied" cross-domain con un IFrame

   Uno de los grandes problemas que tenemos en lo referente a seguridad web,
son los temido ataques “cross-site scripting”. Algo que navegadores como
IE (Internet Explorer) solventa con la negacion por defecto de acceso a scripts
que estan hospedados en dominios distintos a los de nuestras aplicacion. Algo
que otros navegadores no han optado por llevarlo desde un inicio.

   Esto nos lleva a que si tenemos que empotrar nuestro desarrollo dentro de
un iframe de terceros, hospedados ambos en servidores distintos nuestra
aplicacion funcionara perfectamete en Firefox, Safari, ….. pero no en IE,
dandonos el error de “Access is denied” a ese script.

   La solucion es bastante mas sencilla de lo que hayamos podidos leer en
otros sitios (1
y 2),
simplemente tendremos que agregar a nuestra pagina o master page (dependiendo de
donde nos convenga) el siguiente script:

<script type=
text/javascript>


if (Sys.Browser.agent == Sys.Browser.InternetExplorer){

                Sys.UI.DomElement.getLocation=function(a){

                if(a.self||a.nodeType===9)

                    return new Sys.UI.Point(0,0);

                var b=a.getBoundingClientRect();

                if(!b)

                    return new Sys.UI.Point(0,0);

                var c=a.document.documentElement,d=b.left-2+c.scrollLeft,e=b.top-2+c.scrollTop;

                try{

                    var g=a.ownerDocument.parentWindow.frameElement||null;

                    if(g){

                        var f=2-(g.frameBorder||1)*2;

                    d+=f;e+=f

                    }

               }catch(h){}

               return new Sys.UI.Point(d,e)}};

</script>

Espero que os sea util, y no os saque de vuestras casillas las distintas
politicas e interpretaciones de cada navegador.