Hugo, the Agilist Programmer

Microsoft ha preparado las nuevas herramientas de desarrollo con las que trabajamos en estos días, pensando en 3 personajes principales Mort, Elvis y Einstein. Cada uno de ellos posee sus caracteristicas personales, y cada uno de ellos representa un area de desarrollo, en pocas palabras:

 

Mort, the opportunistic developer, likes to create quick-working solutions for immediate problems and focuses on productivity and learn as needed. Elvis, the pragmatic programmer, likes to create long-lasting solutions addressing the problem domain, and learn while working on the solution. Einstein, the paranoid programmer, likes to create the most efficient solution to a given problem, and typically learn in advance before working on the solution. In a way, these personas have helped guide the design of features during the Whidbey product cycle

 

El mapeo original que haciamos hace un tiempo era Mort VB.Net, Elvis C# y Einstein C++. Sin embargo, Scott Bellware nos ha presentado un nuevo desarrollador con caracteristicas de los 3 anteriores y new features muy interesantes; Hugo.

 

El planteo que hace Scott, es bastante interesante ya que plantea conceptos como que Hugo desestima VSTS por herramientas Open Source, ya que la relación costo-beneficio no justifica la inversion inicial; el concepto de desarrollo de Hugo es 100% test-first programming utilizando tecnicas como TDD, etc; Hugo no cree en RAD, ya que la utilización incorrecta de este tipo de herramientas tienden a complicar el codigo y los componentes del mismo; etc.

 

Finalmente, Scott predice que tal vez Hugo sea el próximo eslabon en la cadena evolutiva de los desarrolladores.

 

Si tienen un tiempo, les recomiendo leerlo.

 

Saludos

Visual Studio 2005 – WebServices Contract First 6.0

 

 

Novedades.En www.ingoramer.com han liberado una nueva versión de WSCF (Web-Services Contract First) para Visual Studio 2005. La misma posee

 

           Full support for Visual Studio 2005 and .NET Framework 2.0

           Generation of partial classes

           Support for Nullable types

           Support for SOAP 1.2 binding

           Pascal case conversion is now optional

           Improved support for generating code from SSL-hosted WSDLs

           The parameter ?wsdl can be configured to return the modeled WSDL

           Option for generating different styles of async calling code

           Option for generating improved data binding code available

           Option for generating List<T> types instead of Collections

           As always – it’s free!

 

Y es un de los 10 must have addins de Visual Studio 2005, que MSDN Magazine propuso hace un tiempo. La pueden encontrar en http://www.thinktecture.com/WSCF

 

Saludos.  

Office 2007 – Calendar Time Zones

Office 2007, no deja de sorprenderme. Estaba tratando de reconfigurar algunas cosillas de Outlook, cuando en las opciones de Calendario, me encontre con la posibilidad de agregar una nueva zona horaria a la misma. Esta funcionalidad, que a simple vista no parece muy práctica, a mi en este momento me resulta super útil, ya que de esta manera puedo coordinar el trabajo entre 2 puntos del globo y de un solo pantallazo tengo una vista inmediata de las tareas y las fechas y horas de las mismas.

 

Para configurarlo, hay que ir a las clasicas opciones de Outlook. Luego seleccionar las opciones de Calendario.

 

 

Seleccionar Time Zone.

 

 

Y agregar un additional TimeZone, en mi caso Eastern Time (US & Canada).

 

Luego nuestra vista del calendario quedaría de la siguiente forma.

 

 

De una manera muy simple, podemos ver los items del calendario dentro de las 2 zonas horarias y de esta manera, no agendar por ejemplo, una call conference a las 09:00 AM hora Madrid, 03:00 AM hora Seattle.

Muy práctico, no ???

 

Saludos

 

PD: aquí les dejo una vista completa del Outlook, donde pueden ver que los cambios abarcan bastantes cosillas en el modo calendario.

 

Google CodeJam – India

No creo que mucha gente de la India revise este blog, pero como la convocatoria es para todos, apunto el dato. Desde el 20 de marzo, queda inaugurada otra edición del Google CodeJam, esta vez en la India. 

Para los interesados, pueden encontrar más informacion aquí.

 

Saludos

 

 

Hello elbruno,

 

As a participant of past Code Jams, we thought you would be interested in hearing about Google Code Jam India, Powered by TopCoder.  This exciting competition puts you head-to-head with some of the best coders. Take this opportunity to contend for prize money galore, because Google is giving away Rs. 1,500,000 in cash and prizes. You may not only win money, but a prospect to land a job for the future.

 

Registration is now open for the competition and will remain open through March 20, 2006 at 9AM IST (GMT +5:30).  Anyone intending to compete in this competition must register for the event through the registration path that has been set up exclusively for the tournament: www.google.com/Indiacodejam

Enterprise Library – WebCasts

 

Si quieres estar al tanto de los WebCasts de Enterprise Library 2.0, te recomiendo revisar periódicamente el blog de Tom Hollander (Product Manager @ Microsoft)

Por ejemplo, hace unos dias, hubo uno muy interesante sobre extensiones de EntLib.

Obviamente, tampoco debemos dejar de revisar la pagina de P&P, en la sección Upcoming WebCasts.

Finalmente, la pagina de Microsoft Events and Webcasts, es la lista completa de recursos.

 

Ahh, me olvidaba, Webcasts en Español !!! en ese caso, les recomiendo revisar el blog de Haaron Gonzalez. Hace unos días presento la 3ra parte de VSTS 2005, y la serie completa es buenísima :D

 

Saludos.

 

PD: Gracias a Haaron que me “prestó” el header de este post.

Visual Studio 2005 – BackgroundWorker

Mientras trabajaba con un par de WebServices integrando Devices con Microsoft CRM, recordé que para poder realizar llamadas asincrónicas a los mismos, ahora tengo otra opción más además de los métodos Begin y End que traen los Webservices.

 

Básicamente es trabajar con el control BackgroundWorker. El mismo es de muy simple utilización, simplemente lo agregamos a nuestro form y utilizamos los eventos DoWork() y RunWorkerCompleted().

 

Por ejemplo, supongamos que necesitamos invocar a un WebService pasando un parámetro desde el Clic de un botón y mostrar el resultado de esta llamada en un MessageBog. Luego de agregar un control BackgroundWorker y renombrarlo como bwHelloWorld, agregamos el siguiente código al evento clic del botón.

 

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

       Me.bwHelloWorld.RunWorkerAsync("bruno")

End Sub

 

Como pueden ver, invocamos al método RunWorkerAsync del BackgroundWorker y la pasamos como parámetro un string. Luego en el evento DoWork(), agregamos el siguiente código.

 

Private Sub bwHelloWorld_DoWork(ByVal sender As Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles bwHelloWorld.DoWork

       Dim ws As New localhost1.Service1

       Dim res As String = ""

       res = ws.HelloWorld(e.Argument)

       e.Result = res

End Sub

 

Este método invoca al WebService y procesa la ejecución del mismo. Finalmente, el evento RunWorkerCompleted() es el que se dispara cuando se termina el proceso en DoWork(). Dentro del mismo agregamos el siguiente código.

 

Private Sub bwHelloWorld_RunWorkerCompleted(ByVal sender As Object, ByVal e As System.ComponentModel.RunWorkerCompletedEventArgs) Handles bwHelloWorld.RunWorkerCompleted

       MsgBox(e.Result)

End Sub

 

 

Realmente simple no ??

 

Saludos