jump to navigation

Caso de exito TFS July 10, 2008

Posted by npaez in noticia.
add a comment

Esta semana fue publicado como caso de exito una solución que implementamos en uno de nuestros clientes utilizando Visual Studio Team Foundation Server. Para más información aquí.

WebGet operations July 7, 2008

Posted by npaez in .NET.
Tags:
add a comment

En ocasiones puede que tengamos un servicio WCF con operaciones del tipo webget (sobre webHttpBinding), pero que a pesar de ser de tipo GET, las mismas no devuelvan ningun dato (void). En estos casos, por default WCF nos devolverá un objeto JSON vacio. Para evitar dicho objeto y especificar que la operación no devuelva nada podemos utilizar la siguiente línea de código:

WebOperationContext.Current.OutgoingResponse.SupprressEntityBody = true;

Espero les resulte útil.

Salida en producción “Championes” July 5, 2008

Posted by npaez in evento.
add a comment

La semana pasada después de unos arduos meses de trabajo, finalmente salimos en producción y como corresponde salimos todos los integrantes del equipo a festejar el hecho.

De izquierda a derecha: Charly, Martín, Leandro, Alejandro, Santiago L, Manuel (infiltrado ocupando el lugar de Martín L) Nicolás y Santiago F.

Great job, well done team!

www.haycodigos.com.ar

Encripción del web.config June 29, 2008

Posted by npaez in .NET.
Tags:
add a comment

Es una práctica muy común el guardar información de configuración de la aplicación el correspondiente archivo de configuración provisto por .NET (app.config o web.config).

También es común que ciertas polítcas de seguridad prohiban que ciertos datos sensibles de la aplicación como cadenas de conexión a base de datos, sean almacenados en forma plana dentro de los archivos de configuración.

Es por eso que a partir de la versión 2.0 la plataforma .net nos brinda soporte nativo para encriptar la información almacenada en los archivos de configuración. Este link de MSDN brinda detalles al respecto.

Si bien el uso de funcionalidad debiera ser una práctica común, me parece que muchos programadores la desconocen.

Espero que les resulte útil.

Charla: Mantenimiento evolutivo de aplicaciones en ambientes de múltiples tecnologías June 27, 2008

Posted by xdcarp in evento.
add a comment

Ayer, 26 de junio de 2008, Nicolas Paez, Cristian Kedijian y Yo, dimos en las instalaciones de Microsoft una charla acerca del mantenimiento evolutivo de aplicaciones en ambientes de múltiples tecnologías.

Durante la misma se hablaron de temas tales como qué es el mantenimiento, cuáles son los tipos de mantenimientos que se conocen y una breve descripción de ellos, se definió qué es mantenimiento evolutivo y las ventajas de invertir en el mismo. Por otro lado se presentó una solución para el proceso de mantenimiento basada en las pautas propuestas por ITIL explicando brevemente que es ITIL y finalmente como implementar dicho proceso en una herramienta que en este caso fue el TFS de Microsoft.

Para bajarse las diapositivas con los comentarios de autor incluidas, deben ir a la dirección de internet http://www.codeplex.com/snoop/Release/ProjectReleases.aspx?ReleaseId=14765

Firefox 3 June 19, 2008

Posted by dariofederico in Tools.
add a comment

El 17 de Julio se lanzo el nuevo Firefox 3, después de sus pruebas y versiones beta, con muchas innovaciones, más rápido, más efectivo y ya supero las 8 millones de descargas en un solo día.

La navegación es más rápida ya que limpia de manera automática la memoria y su gestor proporciona un bajo consumo de recurso cuando se está lo está ejecutando.

Su apariencia nueva es totalmente distinta a sus anteriores versiones. Firefox 3 se adapta a la apariencia que tienes en tu sistema operativo, ya sea Windows Vista, Windows XP, Linux o Mac. La barra de direcciones también fue modificada para poder obtener una búsqueda de páginas visitadas más rápidas.

Al igual que sus versiones anteriores posee la integración de complementos, aunque algunos no pueden ser utilizados y habrá que esperar las nuevas actualizaciones para la nueva versión.

En resumen, Firefox 3 es una nueva forma de navegación con millones de usuarios en el mundo utilizándolo. Esto parece generar un dolor de cabeza a Microsoft ya que hace competencia a su navegador IE.

Con Firefox 3 la Fundación Mozilla aspira a quitarle otro trozo de pastel a Microsoft, a quitarle otro argumento para que la gente deje de usar Windows. El reto es una nueva pelea entre David y Goliat. En este caso, David se compone de 140 empleados y una multitud de programadores voluntarios distribuidos por todo el mundo. Goliat (Microsoft), que estuvo cinco años sin actualizar su navegador, ha reaccionado a cada movimiento de Mozilla y también lo hará en esta ocasión. Si el Firefox 2 acabó con el monopolio del Explorer, la versión 3 intenta arrebatarle la mayoría.

Más información sobre Firefox 3 la encontraras acá: http://www.mozilla-europe.org/es/firefox/features/

RAF 08 June 6, 2008

Posted by npaez in evento.
add a comment

Los días 27 y 28 de mayo participamos del cuarto Foro Regional de Arquitectos, organizado por Microsoft Cono Sur. En el contexto del mismo dictamos una sesión sobre aplicaciones desconectadas (el título de la sesión fue “On-off Applications”) en la cual hicimos incapié en la problemática de sincronización y en el framework provisto por Microsoft como solución a dicha problemática.

El slide deck y el ejemplo de código utilizados pueden descargarse de nuestro workspace. (http://www.codeplex.com/snoop/Release/ProjectReleases.aspx?ReleaseId=13927, http://www.codeplex.com/snoop/Release/ProjectReleases.aspx?ReleaseId=13894)

En total hubo 25 sesiones, las cuales fueron grabadas y proximamente estarán disponibles para acceso al público en general.

De las sesiones que vimos:

- la mejor: “Interoperabilidad gubernamental”, excelentemente presentada,  pareció algo aplicable en nuestro contexto (sudamérica) , lo cual ya es mucho considerando que muchas veces Microsoft propone cosas demasido lejanas a nuestra realidad.

- la peor: “La batalla de las plataformas de desarrollo web”, no aportó nada, se  intentó comparar la plataforma ofrecida por Microsoft con la competencia (PHP y Java) pero sin tener el suficiente conocimiento y exponiendo opiniones más que hechos. Una lástima.

En cuanto a organización, impecable y la evalución general del evento, 10 puntos.

Gracias al grupo de arquitectura de Microsoft Cono Sur por la invitación, felicitaciones y esperamos que nos inviten el año próximo.

Seguridad en .net June 6, 2008

Posted by xdcarp in .NET.
1 comment so far

Para entender seguridad en .net para aplicaciones Web necesitamos primero conocer ciertos conceptos así que empecemos con algunos.

Autenticación(autentication): mecanismo para identificar un usuario.

Autorización(authorization): mecanismo para permitir el acceso a un recurso a un usuario.

Internet Information Server (IIS) soporta cuatro formas de autenticación a saber anónima, básica (basic), implícita (digest), integrada (Windows Autentication) por certificados (user certificates). También soporta tres tipos de autorización a saber permisos web, permisos NTFS, restricciones de dirección IP.

ASP .Net soporta cuatro tipos de autenticación a saber, Windows, Formularios (Forms), Passport o Ninguna. A su vez soporta tres tipos de autorización a saber, Archivos, Direcciones URL y Funciones .NET.

La mayoría de las aplicaciones informáticas que desarrollamos necesitan acceder a recursos del sistema. Nuestra aplicación Web también necesita acceder a recursos y para eso necesita un usuario, necesita sus permisos. Entonces, debemos especificar con que usuario la aplicación va a arrancar y tomar sus permisos.

El usuario .net

Por defecto todas las aplicaciones ASP .NET utilizan un solo usuario para arrancar. Este usuario puede cambiarse en el archivo de configuración machine.config que se encuentra en la ruta de instalación de .NET.

En la rama processModel tenemos las propiedades userName y password, estas son las que controlan el usuario con el que se ejecutan las aplicaciones ASP .NET.

Suplantación y delegación

El problema de esta configuración es que todas las aplicaciones instaladas en el servidor se ejecutan con la misma cuenta de usuario y esto sería un problema de seguridad.

Surge entonces el concepto de Suplantación(Impersonation). Usando la suplantación, las aplicaciones se ejecutarán con la identidad del cliente que está operando. La razón para usar suplantación es confiar en el IIS para autenticar y autorizar al usuario sin hacerlo en el código de la aplicación. La aplicación entonces suplanta el cliente y confia en las configuraciones de los directorios NTFS y los archivos para permitir el acceso o no.

¿Pero que pasa si se quiere acceder a recursos que están en servidores remotos? Surge lo que se llama Delegación (Delegation) y permite la suplantación pero a través de la red. Para que funcione, es necesario que ASP .NET sea capaz de autenticarse en el servidor remoto usando credenciales del cliente en el que se desea realizar la delegación. Hay que tener en cuenta que para que se pueda aplicar la delegación, es necesario conocer el esquema de autenticación del IIS, el identificador de proceso de ASP .NET y el sistema operativo de las computadoras involucradas.

Cómo se realiza la suplantación

La suplantación, por defecto, está deshabilitada y se debe indicar expresamente que se va a suplantar. Si la suplantación está habilitada, ASP .NET siempre suplanta al usuario de acceso que IIS provee. Sólo el código de la aplicación se suplanta; compilación y configuración son leídas con el usuario del proceso.

Si se quiere habilitar la suplantación se debe agregar la siguiente línea en el web.config:

< identity impersonate=”true” />

Añadiendo esta línea y dependiendo del tipo de autenticación seleccionada, ASP .NET va a usar el usuario que manda el IIS, por ejemplo el usuario autenticado si usa autenticación integrada de Windows (el usuario posee cuenta en el sistema operativo) u otro tipo de autenticación como basic, digest o por certificados. Si se eligió la autenticación anónima, IIS manda el usuario anónimo representado por IUSR_MACHINENAME.

Si se quiere suplantar usando un usuario determinado se debería agregar la siguiente línea:

< identity impersonate=”true” userName=”contoso\Jane” password=”pass”/>

Esto permite que la aplicación corra con los permisos de contoso\Jane mas allá del usuario que mande el IIS. Para que el nombre de usuario y el password no estén escritos en el web.config se debería encriptar el elemento <identity> y para eso se usa el programita aspnet_setreg.exe.

Encriptación

aspnet_regiis –pef “system.web/identity” “c:\Sites\IntranetSite”

Revertir la encriptación

aspnet_reiis –pdf “system.web/identity” “C:/Sites/IntranetSite”

Para obtener el usuario suplantado se puede ejecutar la siguiente línea:

string userName = System.Security.Principal.WindowsIdentity.GetCurrent().Name;

En la próxima entrada escribo sobre autenticacion (IIS y ASP NET).

Espero sirva, saludos…

MIX Essentials - Argentina - 2008 June 5, 2008

Posted by Manuel Trejo in evento.
Tags: , ,
add a comment

El dia 6 de junio tuvimos la suerte de poder concurrir al primer evento Mix Essentials que se realiza en Argentina. El tema central del evento -que duro todo el dia y se dieron cerca de 11 charlas - fueron las tecnologias Web.

El evento arranco a cargo de Mauro Sant’Anna que hizo un repaso de loas capacidades de Silverlight 1, para pasar a mostrara algunas de las ventajas que posea su sucesor; Silverlght 2, que todavia esta en beta.

Despues, la gente de D2B nos conto en que estado estan y acual es el futuro de las interfaces interactivas, todo esto, haciendo una analogia a los ejemplos ficticios que se ven en la pelicula Minority Report.

Una vez terminado, tuvo lugar un panel de SEO y nos estuvieron trasmitiendo tecnicas para que los buscadores indexen de manera efectiva nuestros sitios web, todo esto, claro, contado desde la experiencia de profesionales del tema.

Gabriel Corvera Ortiz -un integrante del Grupo Windows Live Platform- nos estuvo mostrando las API’s proporcionadas por la plataforma Live de Miscrosoft, entre las cuales podemos hacer mencion del Virtual Earth, Live Id, Contacts, Messenger, Live Search, Alerts, y muchas mas.

Martin Salias hablo (y nos demostro!) sobre las caracteristicas y potencia de los lenguajes dinamicos, haciendo incapie en su implementacion en el framework .NET (para saber mas sobre esto, les recomiento leer este blog -y en especial este post- a cargo de unos de los cerebros de este proyecto). Tambien nos comento en que estado estan los proyectos IronPhyton y IronRuby.

Despues tuvo lugar una charla sobre perfomance de aplicaciones Web a cargo de la gente de SouthWorks. Fue realemente interesante, y algo que todos los programadores web deberiamos tener en cuenta a la hora construir un sitio. La charla se baso en ir aplicando una serie de tip’s a una web standart, e ir viendo como su peso, velocidad de carga y http request’s iban decreciendo. Estos ‘tip’s’ son los propuestos en este recomendable libro. Lo llamativo tambien fue los ejemplos de dieron acerca de sitios muy conocidos que no implementan ninguna de estas tecnicas, y que ayudarian en gran medida a mejores epxeriencias de usuarios en sus sitios.

La ultima charla estuvo a cargo de Three Melons y nos estuvieron comentando acerca de la construccion de juegos en plataformas web usando SilverLight.

En sintesis, concurrimos a un evento en que nos sirvio tanto como para conocer nuevas tendencias y tecnologias, como para conocer algunos aspectos de la web (como SEO y Peraformance de app web) de los que tal vez no estemos tan en contacto pero que no dejan de ser importantes. Esperemos que no se corte y el año que viene podamos volver.

Saludos!

Error de Authoring Component al instalar Visual Studio 2008 June 4, 2008

Posted by Leandro Romero in .NET, Tips.
Tags: ,
add a comment

Si se tiene instalado Office 2007 al momento de instalar Visual Studio 2008 es normal que haya un error en la instalación del componente “Visual studio web authoring component”. Si bien la solución mas intuitiva sería la de desinstalar el Office, esta no sería la solución mas cómoda. Sin embargo no hace falta hacer eso.

El problema lo origina un componente (por increíble que suene es Beta) llamado Info Path MUI 2007 (mas informacion sobre que es esto aca)

Si este componente no es vital para tu existencia lo podés quitar sin problemas de esta manera: Ir a Inicio -> Ejecutar y allí copiar lo siguiente:

msiexec /x {30120000-0044-0C0A-0000-0000000FF1CE}

Una vez que desinstales este componente vas a poder instalar el VS2008 sin problemas. Esta solucion funciona tanto como para XP o Vista.

Creditos de esta solucion en este link.