Problemas al enviar correos a Hotmail/Live con System.Net.MailMessage

Al realizar alguna aplicación la cual tenía que enviar un mensaje de email a Hotmail o Windows Live, casi siempre el mensaje se ubicaba dentro de la carpeta spam del cliente de correo.

Un problema que tenía a nuestro jefe de proyectos bastante malhumorado, y por más que implementábamos soluciones de registro en Dns, validación de IP, etc... el problema seguía presentándose.

Pues acabo de leer en Geek.ms la solución

En la que explica que el problema está en la transición de la clase MailMessage from System.Web.Mail to System.Net.Mail en algunos cambios que han realizado hacen que las cabeceras del mail se envien en minúsculas y que provocan que el servidor de correo los trate como spam.

La solución está en instalar el SP1 de NET 2.0 o pasarse a NET 3.5 que ya ha sido corregido.

Espero que esto deje tranquilo a algunos...

Happy Coding. 

Sea el primero en calificar este post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Credo para el Desarrollador que trabaja en equipo

Cuando se construye un equipo, como ahora en mi oficina. Se debe pensar que es muy importante manejar la cultura de equipo de tal manera que se pueda ser lo más productivo posible. A través del tiempo trabajando con equipos con difierentes disciplinas se podría ubicar un lista de actitudes e ideas que beneficien al equipo de desarrollo. Se la podría denominar el Credo de Desarrollo

Este es un artículo que Eric Wase ha publicado y me permito reproducir en su extensión. 

 Yo <Tu nombre> soy un  desarrollador.

Entiendo que la razón por la cual yo existo, es para servir y resolver las necesidades de los usuarios.  Tomaré los requerimientos del usuario seriamente y seré un apasionado del servicio al cliente. No mostraré ningun desdén por el usuario que no entienda lo que yo hago y siempre trataré de cruzar el puente entre el mundo técnico y el del usuario para poder comprenderlo mejor. Al lograr entender al usuario puedo ganarme su confianza, y con esta confianza tendré un socio valioso en el proceso de desarrollo.

Entiendo que cada uno de los miembros del staff de IT es importante para lograr alcanzar mis metas. Los administradores de Bases de Datos protegen mis datos y me ayudan a asegurar el desempeño. Los Administradores de Red aseguran que mis respaldos (backups) están seguros y que tengo los accesos, permisos, software y sistemas adecuados y funcionando para realizar mi trabajo. No formaré un "gueto" de desarrolladores ni tendré una mentalidad "nosotros vs ellos". Apoyaré a los miembros de mi equipo que no sean desarrolladores como si fuera otro cliente o compañero.

Entiendo que cada uno de los desarrolladores de mi equipo es mi compañero. Como compañeros, ellos tendrán mi respeto y así lograré tener el de ellos. Con una relación basada en confianza y respeto, no voy a temer al formular preguntas, plantear inquietudes, o de otro modo ayudar a mis compañeros en la creación de código de alta calidad. Considero cualquier conflicto intelectual como una función saludable y natural de los equipos para encontrar la mejor ruta de acción para completar una tarea. Cuando el conflicto haya concluido y una dirección haya sido decidida por el equipo, apoyaré de todo corazón el enfoque adoptado, incluso si mi sugerencia no fue la "ganadora".

Entiendo que el ego en todas sus formas es destructivo y perjudicial para el equipo. Voy a recordar que el equipo es el propietario del código, no el individuo. A pesar de que debería sentirme orgulloso de mis logros personales, siempre recordaré darle crédito a la ayuda que el equipo me haya dado para cumplir estos logros, y nunca mostraré egoismo sobre mi código y técnicas hacia mis compañeros. Voy a alentar a mis compañeros a entender mi código y siempre sentar como bienvenidas cualquier crítica constructiva. Me doy cuenta de que todo el código puede ser mejorado y tomaré la crítica como una oportunidad para el debate intelectual y una experencia de aprendizaje, mas no como algo personal.

Entiendo que mi campo de acción está en constante crecimiento y evolución. Voy a crear oportunidades para explorar nuevos conceptos y estaré abierto a nuevas Ideas. No me cerraré en patrones particulares o prácticas de desarrollo en las cuales me siento a gusto pero que no son apropiadas en ciertas situaciones. Cuando uso patrones y prácticas particulares, voy a sopesar cuidadosamente los beneficios e inconvenientes de dichos patrones y tomaré las decisiones que sean siempre lo mejor para el equipo. Aunque guste de aprender cosas nuevas, me resistiré a usar herramientes y prácticas de desarrollo sólo porque son nuevas o "avanzadas", si es que no agregan valor real al código, servicio o producto que estoy haciendo.  

Tengo como idea principal que a pesar de que soy el primero en escribir algún código en particular, no voy a ser el último en mantenerlo, administrarlo o hacerle cambios. Voy a tratar de mantener mi código legible, bien documentado y que tenga la menor complejidad posible. No asumiré que ya que conozco de una herramienta o patrón de desarrollo el resto de desarrolladores lo conocerá. Documento cuidadosamente los usos y justificativos para usar un patrón o herramienta para que los que vengan detrás de mí puedan entender mejor lo que yo estaba tratando de lograr con este código. Nunca construiré código "obscuro" o difícil de entender, solo por intentar lograr "un empleo seguro" o demostrar lo listo que soy.

Léelo Completo: My Team's Developer Credo en - Eric Wase Blog

 

Actualmente calificado con 5.0 por 1 personas

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

ASP.NET MVC Design Philosophy

Eilon Lipton, el desarrollador líder del proyecto ASP.NET MVC comparte algunos de sus pensamientos sobre la filosofía de diseño alrededor de la figura del nuevo framework.

A pesar de que existen muchos artículos y post que describen lo que es este framework y cómo realizar tareas, lo realmente útil es tener información a la mano que nos permita tomar decisiones al momento de tratar de implementar este framework. Así como determinar la mejor estrategia para realizar el "salto" de nuestras aplicaciones utilizando las nuevas características que Microsoft nos presenta.

Una de las características que más me interesan es el incluir el "mindset" de pruebas al desarrollar sitios y aplicaciones web. A pesar que ya existen formas de hacerlo, hacía falta algo que nos obligue a hacerlo... para muchos quienes trabajamos desarrollando aplicaciones web, el tema de pruebas no es muy tomado en cuenta.

Estoy seguro que será de gran utilidad... léanlo, realmente despeja muchas dudas.

ASP.NET MVC Design Philosophy

Eilon Lipton's Blog 

Sea el primero en calificar este post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Guerra Open-Source: terrorismo y software libre

Open source communism Sin palabras...

Léan el artículo original y opinen....

Open Source Warfare en  IEEE Spectrum Online

 

 

Vía Geeks.ms 

 

 

 

 

 

Sea el primero en calificar este post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Microsoft Live Labs: Volta, Web development using only the Materials in the Room

La tecnología Volta (technology preview) es un set de herramientas para desarrolladores que permite construir aplicaciones web multi-capa, aplicando técnicas familiars y patrones. Suena bastante interesante... demasiado interesante diría yo!.

Según textualmente indica el sitio oficial:

First, design and build your application as a .NET client application, then assign the portions of the application to run on the server and the client tiers late in the development process. The compiler creates cross-browser JavaScript for the client tier, web services for the server tier, and communication, serialization, synchronization, security, and other boilerplate code to tie the tiers together.

En teoría los desarrolladores podríamos utilizar ya sea web browser o el CLR como clientes y Volta manejaría la complejidad del manejo de capas (tier-splitting). Volta comprende herramientas para ejecutar tareas de profiling a todo nivel con la finalidad de realizar refactoring a nivel de arquitectura y optimizaciones de forma simple y rápida.

Me he bajado el technology preview y te anticipo los requerimientos:

Design Time Requirements:

  • Visual Studio 2008 (Beta 2 [20706.1] or RTM [21022.8]) with .NET Framework 3.5, and
  • A web browser (Internet Explorer 6+ or Firefox 2) for integrated debugging

Client Run Time Requirements:

Volta applications can be compiled target either the full .NET framework runtime version 3.5 or standards-conformant web browsers with JavaScript support.

Server Run Time Requirements (Remote Deployment):

On the server tier Volta applications require version 3.5 of the Microsoft .NET framework, Internet Information Services (IIS) version 6 or 7, and ASP.NET.

Samples

Qué sería de la mención a este projecto sin algo de ejemplos, aquí los ubico: 

Word Worm

Una aplicación de Búsqueda de palabras en Inglés con mecanismo de sugerencias... Realmente sorprendedor...

 

Virtual Earth SDK - Volta Style

Un subset del actual SDK de Virtual, a diferencia del original, este utiliza Volta, de manera que todo el código es C#.

 

 

Descarga.

Yo no esperaría demasiado... siempre es bueno aprender:

 http://labs.live.com/volta/download/

 

 

Sea el primero en calificar este post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Categorías

Sponsors


    Blogroll