viernes, 25 de marzo de 2011

IIS: Nueva versión de IIS 7.5 Express para desarrolladores.

Qué bueno, Microsoft pode a disposición de los desarrolladores una nueva versión llamada IIS 7.5 Express. Según Microsoft mejora el desarrollo y las pruebas que se pueden hacer para las aplicaciones web, es una versión más liviana como la que existe en Visual Studio llamada ASP.NET Development Server (Cassini) pero con la ventaja de que posee casi las mismas características que un IIS en un servidor de producción como el que encontramos en Windows Server 2008, y eso es bueno, porque siempre que se instala en producción se comienzan a ver errores en el sitio web desarrollado y con éste IIS Express podremos descubrirlos y depurarlos más rápido.

Otras ventajas aparte de que podremos testear mejor las aplicaciones, es que no se ocupan derechos de administrador, soporta SSL, URL Rewrite y contiene todos los módulos de IIS 7.X que se han ido agregando, es compatible desde Windows XP con SP 3 y versiones de SO superiores. Y además también sirve para PHP.

IIS 7.5 Express viene incluido en WebMatrix, que es una nueva herramienta de desarrollo de Microsoft la cual trae base de datos, IIS, ASP.Net, PHP, y un motón de cosas más y lo bueno es que es gratis y compatible con varios proyectos web Open Source como Drupal, Joomla, DotNetNuke, etc.

Para hacerlo compatible con Visual Studio 2010, les puedo decir que es un dolor de ???? porque no hay un buen instalador todavía, pero aquí me encontré una buena descripción: Instalar IIS Express para Visual Studio 2010. Recordar que hay que instalar el SP1 de Visual Studio 2010 el cual tiene nada más y nada menos que 1.5 GB, que poquito verdad!.

domingo, 20 de marzo de 2011

Silverlight: El objeto de silverlight crece pero no aparece el scrollbar

En una página web normal, cuando el contenido interno que está en un elemento DIV crece ya sea porque agregamos contenido de texto o porque aparece un control u otros elementos adicionales, generalmente aparece al lado derecho una barra de desplazamiento para poder observar el contenido que no se puede ver.

Pues resulta que en silverlight no existe el elemento DIV, lo que existe en silverlight y que son equivalentes a los DIV son: Grid, StackPanel, DockPanel, Canvas, ScrollViewer, etc. Esos controles tienen la capacidad de crecer conforme crece su contenido interno. El problema aparece cuando el contenedor principal crece pero el objeto DIV que contiene al objeto de silverlight no crece de ninguna manera. Uno esperaría que aparezca una barra de desplazamiento en el lado derecho de la pantalla, sin embargo, la página no crece en altura.

Existen dos soluciones una aplicando javascript y otra usando el control ScrollViewer.

Usando Javascript:

Los pasos para resolver el problema de la altura de la página son los siguientes:

1º Al control Grid que es por así decir el contenedor principal que generalmente lo tenemos por defecto en la página MainPage.xaml, tenemos que agregarle el evento LayoutUpdated para que se dispare cada vez que el contenido interno crece en altura. Por más mínimo que sea el cambio de altura o inclusive de anchura de un control interno, ese evento se va a disparar.



2º El segundo paso es agregar una línea de código el cual debe ejecutar el evento LayoutUpdatedcada vez que cambie las dimensiones de un control interno:




 3º Finalmente, hay que poner la función de javascript en la página que contiene al objeto de silverlight:




Noten que la función getElementId de javascript devuelve la referencia del elemento de silverlight que previamente se le asignó el nombre "silverlightControlHost".

Cada vez que se dispare el evento LayoutUpdated, éste invoca a una función de javascript la cual se encarga de cambiar la altura del control DIV que contiene al objeto OBJECT que hace referencia al control del silverlight.

Usando el control ScrollViewer:

Más fácil, y menos dolores de cabeza. Si usted llegó a mi blog buscando una solución para la altura en silverlight, está salvado, jeje!.

Lo primero es lo primero, hay que limpiar el código que tenemos en la página xaml. Principalmente la altura del control contenedor más externo se podría reemplazar por MinHeight (solo si fuera necesario). En mi caso, yo quite todos los Height, Width, VerticalAlignment, HorizontalAlignment y dejo los que son estrictamente necesarios de los cuales puse MinHeight y lugar de Height.

El siguiente paso es utilizar el control ScrollViewer. Lo que se debe hacer es colocarlo como el control más externo y lo más importante es ponerle las propiedades VerticalAlignment y HorizontalAlignment con el valor Strech para que se extiendan en toda la página. Adicionalmente usando CSS, hay que poner al 100% el ancho y alto del DIV que contiene al objeto de silverlight y también ponérselo al mismo objeto de silverlight.

Una buena ayuda en el foro de silverlight

lunes, 7 de marzo de 2011

ASP.Net: Network Service Account

Interesante documento que explica todo lo relacionado con la cuenta "Network Service Account" o mejor dicho "NT AUTHORITY\Network Service". Clic aquí para leer éste interesante explicación.

Una breve explicación sería la siguiente:

NT Authority es una cuenta de usuario que actúa como agente de seguridad para  Windows. No es una cuenta de usuario como la que se utiliza para ingresar a Windows, es más bien una cuenta de seguridad utilizada para llevar a cabo tareas a nivel de sistema operativo tales como tareas programadas sin la necesidad o intervención de usuarios físicos.

Por ejemplo, el programa SVCHOST.EXE es el programa que corre todos los servicios de Windows y utiliza la cuenta del sistema (NT Authority) para correr esos servicios internamente.  Dicha cuenta de Windows se conoce también como "Host Process For Windows Services" o "Services Host Program".