Visual Studio 2005 – Refactoring

"Es fácil tener una idea complicada, pero es realmente complicado tener una idea simple." Carver Mead

Buenas ¡!

He aquí una de las cosas mas interesantes que posee Visual Studio 2005 Beta 2, la capacidad de implementar algunos casos de Refactoring. Si bien por ahora solo esta implementada en C#, la idea es que en la versión final de Visual Studio 2005, todos los lenguajes la soporten. Para comenzar a entender un poco de que se trata todo esto, lo primero que deberíamos hacer es leer el siguiente libro:

  • Refactoring: Improving the Design of Existing Code. Martin Fowler (un grande)

Este texto es imperdible, y explica la evolución de los conceptos de Refactoring, desde sus comienzos en SmallTalk (¿?) hasta las mejores implementaciones que se vieron en IDEs de Java. En el mundo .Net, hay una serie de AddIns para Visual Studio 2003 que permiten integrar estas capacidades al IDE de desarrollo, como por ejemplo el, C# Refactor o para una lista mas completa podemos consultar http://sharptoolbox.com/Categorye3245c84-ff62-46fc-a4af-041e19327a09.aspx.

Dentro de Visual Studio 2005, se han implementado una serie de casos de Refactoring. No todos, pero si los mas útiles.

Veamos un ejemplo de ello. No entraremos en detalles ampliados sobre conceptos avanzados de Refactoring, simplemente mostraremos un pantallaza de su utilización en Visual Studio 2005.

Creemos una nueva aplicación del tipo Consola

 

 

Dentro de la misma agregamos una nueva clase C# y la llamamos Cliente

 

 

Dentro de la misma definimos 2 variables privadas

 

 

Y (esta es la parte interesante), al seleccionar una de las variables, sobre el menú contextual que muestra la misma, nos aparece una nueva opción para trabajar que es Refactor. Dentro de la misma podemos ver como tenemos la posibilidad de convertir esta variable privada en una nueva propiedad (Field) de nuestra clase. Para esto seleccionamos la opción Encapsulte Field.

 

 

Luego nos aparece un formulario donde se nos ofrece las diferentes opciones que poseemos al momento de crear la nueva Property.

 

 

Entre las cosas interesantes que se nos ofrecen, podemos actualizar las referencias internas de nuestro código para que utilicen la nueva propiedad en lugar de la variable privada.

 

 

Finalmente podemos ver un preview del cambio que realizaremos. Y nuestro código quedaría de la siguiente forma.

 

 

 

 

Para más información, hay muchísima en la red. Sin embargo, siempre es útil saber a quien preguntarle. Por ejemplo, en este blog, se tratan constantemente temas relacionados con Programación Extrema. http://www.programacion.com/blogs/14_refactoring/categories/39_refactorizaciones_de_cdigo.html. También se pueden suscribir a la pagina de Programación Ágil de España http://www.agile-spain.com/, donde hay muchísimos desarrolladores especializados en este tipo de temas. Finalmente aconsejo el MUG (Microsoft User Group) www.mug.org.ar, que también alberga a desarrolladores con un nivel altísimo.

 

Saludos.

 

Completo en http://www.flowruler.com/brunodocs/Vs2005%20Refactoring/Vs2005%20Refactoring.htm

Windows 2000 moves into Extended Support after June 30th

Mmmm… noticia interesantísima. Se cambia la política para el soporte de Windows 2000, (solo W2000 SP4, SP3 debe hacer un upgrade urgente) hacia una política del tipo Extended Support. La principal diferencia de este tipo de licencia, es que Microsoft no aceptara reclamos sobre la garantía del SO, o sobre peticiones de nuevas características del SO. Se continuara con los updates de seguridad, hasta el año 2010 (ciclo de vida planeado de Windows 2000).

 

Si queremos conocer un poco mas sobre los ciclos de vida de los productos Microsoft, podemos navegar http://support.microsoft.com/common/international.aspx?rdpath=fh;en-us;lifecycle, o en Español http://support.microsoft.com/?LN=es-es&scid=fh%3Ben-us%3Blifecycle&x=9&y=11.

 

La noticia interesante en este momento, es que parece que el futuro IE7, no estará disponible para Windows 2000. Es una pena que un navegador con la potencia y con las nuevas características quede fuera de este SO.

 

Más info. –> IEBlog http://blogs.msdn.com/ie/archive/2005/05/27/422721.aspx

Enterprise Library – Hands On Labs

Aqui hay una nueva forma de practicar y aprender a utilizar Enterprise Library. Se trata de 8 proyectos de Labs en C# y Visual Basic.Net. Cada uno dura aproximadamente entre 30 y 60 minutos. Que los disfruten –> http://www.microsoft.com/downloads/details.aspx?FamilyID=B9BFF619-236C-4BBB-9AA1-2E7BC562C7F5&displaylang=en

Enterprise Library – Logging EMail Sink (Error :S)

Probando los diferentes tipos de Sinks de la versión 1.0 de Enterprise Library, me encontré con un error al momento de querer guardar los errores en formato EMail.

Recordemos que los formatos que soporta por defecto son:

  • EventLog: el clásico. Si hay muchas excepciones queda bastante poco prolijo. Especialmente, si no hemos creado un EventLog en particular para este Sink, por defecto lo guarda en el Application.
  • FlatFile: Mucho mas manuable, pero tiene a crecer indefinidamente y luego se hace difícil comprenderlo.
  • Message Queue: una de las mejores opciones, los mensajes quedan en una cola de mensajes y luego los puedo procesar por mi cuenta.
  • EMail: Otra de las opciones interesantes, ya que una configuración para los errores críticos a través de mails, logra un muy buen impacto a nivel administración
  • DataBase: EntLib viene con una pequeña Base de Datos que permite almacenar con gran detalle todos los mensajes.

Mi problema en particular fue configurando la opción para EMail. A través de la herramienta de configuración el Sink del tipo EMail quedaba con la siguiente configuración:

<sink

xsi:type="EmailSinkData"

name="Email Sink"

toAddress="JoseMadrid@bruno.com"

fromAddress="error@bruno.com"

subjectLineStarter="Error Line Starter"

subjectLineEnder="Error from Server"

smtpServer="127.0.0.1" />

Sin embargo al momento de invocarlo, EntLib generaba un error y lo almacenada en el EventLog:

An error occurred while the Distributor was processing the message.  Please check your configuration files for errors or typos.  Verify that your sinks are reachable (queues exist, permissions are set, database exists, etc…)

 

Sink failed because: System.Web.HttpException: Could not access ‘CDO.Message’ object. —> System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. —> System.Runtime.InteropServices.COMException (0x8004020F): El servidor rechazó una o más direcciones de destinatarios. Respuesta del servidor: 550 5.7.1 Unable to relay for JoseMadrid@bruno.com

 

Buscando en Internet encontré la siguiente información que me permitió configurar correctamente el SMPT Server para que el proceso del IIS pueda tener acceso al mismo.

Suggestion 1
Specify a valid mail server for the SmtpMail.SmtpServer property. If that property is not set, at least set it to 127.0.0.1. For example:

SmtpMail.SmtpServer = "127.0.0.1"

Suggestion 2
If you are using "localhost" or "127.0.0.1" as the SmtpMail.SmtpServer, you may not have permissions to relay through the IIS SMTP Service. To allow access, open up the IIS Admin MMC. Locate the SMTP Virtual Server, and right-click, then select Properties. On the Access tab, click the Relay button. In the Relay Restrictions dialog, grant your IP address (127.0.0.1) to the Computers listbox. Close down all dialogs, and restart the SMTP Service.

Más à http://www.systemwebmail.com/faq/4.2.3.aspx

Pues bien el resultado final fue

Completamente contento con el funcionamiento de Enterprise Library.

Saludos

MSN PostMaster

Una noticia excelente !

Por fin una agrupacion (todos participamos) para eliminar el Spam entre otras cosas.

Creación del sitio de MSN Postmaster
Este sitio se ha desarrollado para proporcionar a los remitentes de correo electrónico masivo, los ISP, los proveedores de servicios de correo electrónico (ESP, E-mail Services Providers) y los administradores de correo y de dominio, una ubicación que les permitirá obtener más información sobre los problemas y soluciones relacionados con el envío de comunicaciones a los consumidores de MSN Hotmail. Este sitio incluye:

  1. Las últimas noticias y cuestiones de interés relativas a la comunicación con los usuarios de MSN Hotmail
  2. Nuestros esfuerzos para combatir el correo electrónico no deseado
  3. Herramientas e información para administradores de correo y de dominio relativas a usuarios que envían correo electrónico masivo
  4. Herramientas e información para ISP y ESP
  5. Directrices necesarias para enviar comunicaciones a los usuarios de MSN
  6. Ayuda para la solución de problemas de entrega

Este sitio se actualizará periódicamente. Vuelve a visitarnos con regularidad.

MSN ha incorporado algunas mejoras en el servicio Hotmail:
Desde hace poco, Hotmail ofrece la posibilidad de obtener bandejas de entrada de 250 MB para los nuevos usuarios de nueve mercados y ha lanzado una herramienta de carga de fotos para todos los usuarios que facilitará el uso compartido de imágenes en línea. Además, Hotmail funciona a la perfección con MSN Messenger y MSN Spaces, lo que proporciona un conjunto completo de servicios de comunicaciones a los usuarios de Internet de nuestro tiempo. Lee más información aquí (en inglés):
http://www.microsoft.com/presspass/press/2004/dec04/12-01MSNWave10PR.asp
Para obtener más información acerca de Hotmail, visita (en inglés):
http://www.microsoft.com/presspass/newsroom/msn/factsheet/hotmail.asp

 

Mas –> http://postmaster.msn.com/cgi-bin/dasp/postmaster.asp

Milan – Liverpool

Partidazo el de la Champions !!! 

3 a 0 a favor del Milan en el final del primer tiempo, y a los 15 min del 2do tiempo ya iban 3 a 3 !!! Realmente uno de esos partidos que vale la pena ver. La copa se la llevo el Liverpool, pero ambos se la merecian. Un partidazo.

Longhorn decoupled from .Net

Pues bien … ahora resulta que solo "parte" del nuevo Longhorn estara basado en .Net 2.0.

security architecture touted as one of the core benefits of Microsoft’s next major Windows upgrade look like being the next casualty of the Longhorn death march.

Mary Jo Foley reports that only some parts of Longhorn will be based on .NET 2.0, rather than the entire OS, as originally intended. If this latest bout of indigestion is true, developers gain compatibility at the expense of the superior developer environment of .NET.

mas –> http://www.theregister.co.uk/2005/05/26/dotnet_longhorn/