El Bruno

Blog dedicado a las experiencias del desarrollo con tecnologías Microsoft.

noviembre 2006 - Posts

XmlNotepad 2007 !!! y lo que se viene para Navidad ...

Buenas,

cuando quedan poco mas de 30 dias para que llegue el nuevo año; la verdad es que estoy asustado. Les enumero los motivos

 

 

Las novedades que trae el XmlNotepad 2007 son mas bien escasas; asi que destaco que funciona el F3 como shortcut para las busquedas y ... nada mas !!! ahh si , que es multidioma. Al mismo lo podemos descargar desde http://www.microsoft.com/downloads/details.aspx?familyid=72D6AA49-787D-4118-BA5F-4F30FE913628&displaylang=en.

Lo sigo viendo como una opción interesante cuando no hay Visual Studio, pero sigue muy lejos del mejor editor de Xml que existe XmlSpy ojala algun dia se pasen al lado oscuro.

XmlNotepad2007.gif

 

Saludos

El Bruno

Posted jueves, 30 de noviembre de 2006 15:15 by elbruno | with no comments

Filed under:

Configurando cuentas de mails con Outlook 2007

Buenas,

desde la Beta 1; una de las características que mas me sorprendió y me gustó de Microsoft Outlook 2007; es la capacidad para configurar automáticamente una cuenta de mail a partir de los datos de la misma.

Por ejemplo para mi cuenta de Bruno  en Avanade, los parametros que pide son los siguientes:

capture_29112006_103025.jpg

Como podemos ver es tan simple como poner la direccion de mail y despues solo el servicio se encarga de resolver los parametros necesarios (servidor de mail, parametros de autenticación, etc)

capture_29112006_103055.jpg

Sin embargo, yo pensé que esta configuración solo funcionaba en entornos Windows; es decir con Exchange; pero me llevé una muy grata sorpresa cuando comencé a probar con mis cuentas de GMail (el lado oscurro de las Betas !!!!)

capture_29112006_103338.jpg

Una vez ingresado todos los datos; Nombre; Mail y contraseñas; Outlook solo se encarga de configurar los servidores POP y SMTP asociados a estas cuentas.

capture_29112006_103354.jpg

Pero aqui no termina todo; mi fabulosa cuenta de MSN; también esta soportada por este mecanismo,

capture_29112006_103434.jpg

Asi que hasta ahora; todas las cuentas de Microsoft mas las cuentas de GMal ... perdón Gmail tambien se soportan. Y en una tarea que antes nos consumia mas de 10 minutos; ahora la hacemos en poco menos de uno ... impresionante ¿no?.

 

 

 

Saludos

El Bruno

PD: Gracias Microsoft Office Development Team !!! esto lo voté como una sugerencia hace unos meses en los posts de los Beta Testers y ... :D

Posted jueves, 30 de noviembre de 2006 12:15 by elbruno | with no comments

Filed under:

Migrando de VB6 a WPF ... the easy way !!!

Buenas,

pues sí, otro traductor mas para migrar formularios a WPF. En este caso se trata de una aplicación mafiosa de origen italiano; que se presenta de la siguiente forma:

Questo convertitore consente di convertire una Form di Visual Basic 6.0 in una Windows di Windows Presentation Foundation, utilizzando XAML come linguaggio di descrizione.

Que traducido quedaría en algo parecido a: pasame un form de VB6 y te lo dejo en WPF. Básicamente genera el Xaml a partir de un archivo .frm.

Se puede descargar desde aqui; http://www.codesapiens.net/English/Products/VB62XAML/tabid/74/Default.aspx 

La primera prueba no fue muy exitosa; pero ya me instalaré VB6 para ver como se comporta frente a situaciones mas "faciles".

ConvertVB6ToXaml.gif

Saludos

El Bruno

Posted miércoles, 29 de noviembre de 2006 19:09 by elbruno | with no comments

Filed under:

TFS Permission Manager 1.0 (administremos TFS)

News Room

Buenas,

he aqui otra excelente opción para administrar los persmisos de los ususarios de Team Foundation Server y complementar al ya popular TFSAdmin.

En este caso es el TFS Permission Manager 1.0; que entre las cosas interesantes con las que cuenta es la capacidad de crear templates para gestionar plantillas con los permisos con los que queremos trabajar.

El que esté interesado, lo puede descargar desde http://blogs.microsoft.co.il/files/folders/leon/entry5018.aspx

 

Saludos

El Bruno

Posted miércoles, 29 de noviembre de 2006 12:08 by elbruno | with no comments

Como definir un StrongName comun para todos los proyectos de una Solucion

Buenas,

como bien decían en un comentario sobre mi anterior artículo Cómo setear las propiedades comunes de los assemblies para varios proyectos; una opción interesante en estos casos es aplicar tambien la firma de los proyectos utilizando un strong name.

Para esto podemos agregar la siguiente linea en el GlobalAssemblyInfo.cs

<Assembly: AssemblyKeyFile("C:\Temp\MyKey.snk")>

 

otro pequeño truquito que nos ayuda un poco más.

 

Saludos

El Bruno

Posted martes, 28 de noviembre de 2006 22:48 by elbruno | with no comments

Filed under:

Validation Application Block

Proven practices for predictable results

Buenas,

algo nos habia contado Tom Hollander en el TechEd, pero por fin ... tenemos otro un AppBlock para las validaciones.

 

Validation Application Block: Revealed!(11/27/2006 12:33:01 PM)

Some early details of the upcoming Validation Application Block have been posted to Tom's blog. Please take a look and let us know if you have any questions or suggestions!

Posted By tomhollander

Tengo que compararlo con el que poseemos en Avanade y ver las virtudes y desventajas del mismo ... ya les contaré.

 

 

Saludos

El Bruno

Posted martes, 28 de noviembre de 2006 9:15 by elbruno | 1 comment(s)

Accediendo a TFS desde Delphi

News Room

Buenas,

después de ver una interfaz cliente para acceder a Team Foundation Server 100% desarrollada en Java por la gente de Teamprise, e implementada en Eclipse en el TechEd; ahora me encuentro con SourceConneXion.

SourceConneXion provee una interfaz para acceder a las funcionalidades de Team Foundation Server desde el IDE de Borland; Borland Developer Studio para Delphi y C++. En realidad provee una interfaz para acceder a la API SCC, por lo que es TFS compatible, y tambien permite conectarse con SourceOffSite, StarTeam, PVCS, Serena VM 8, Perforce, Surround SCM, CVS (With PushOk CVS Proxy), Subversion (with PushOk SVN Proxy), ClearCase, MKS Source Integrity, QVCS, CS-RCS, etc.

Impresionante , no ??? a ver si consigo quer algun amigote del lado oscuro de C o Delphi lo pruebe y me cuente algo al respecto.

 

Saludos

El Bruno

Posted lunes, 27 de noviembre de 2006 12:07 by elbruno | with no comments

Desarrollando con Office, .Net y algun (anti)virus molesto

Buenas,

después de pasar una semana mas que interesante en Barcelona, donde los días de 15 hrs de trabajo no me dejaron postear todo lo que hibiese querido; voy a recapitular y a comenzar a contar las cosas interesantes con las que me encontré.

Por ejemplo, parte de la aplicación que desarrollamos se integra con Microsoft Office 2007 y aprovecha el modelo de objetos de Outlook para realizar algunas tareas. Sin embargo, en algunas PCs nos encontrábamos con el siguiente error:

System.IO.FileNotFoundException: Retrieving the COM class factory for component with CLSID {0006F03A-0000-0000-C000-000000000046} failed due to the following error: 8007007e. at ConsoleOutContactsLabs.Program.GetOutlookContacts() in C:\Documents and Settings\Administrator\My Documents\Visual Studio 2005\Projects\OutContacts\ConsoleOutContactsLabs\Program.cs:line 36

Además este error no podía ser reproducido, y se ocasionaba de forma errática. Así que manos a la obra y a ver que tenía en particular en algunos momentos particulares alguna PCs en particular que lanzaba este error. Después de buscar y preguntar bastante (muchas gracias a todos los compañeros de Microsoft, a Pedro y a Jaume); terminamos dándonos cuenta que el error estaba dado por un bloqueo en el acceso a la interfaz COM de algunos componentes de Office.

En particular la interfaz de acceso de Outlook se encuentra en el registro de Windows en la clave HKEY_CLASSES_ROOT\CLSID\{0006F03A-0000-0000-C000-000000000046}\InprocServer32; dentro de la misma hay que modificar el valor de la entrada por defecto y dejarla en blanco. En el caso del error, la misma apuntaba a C:\Archivos de programa\Archivos comunes\Symantec Shared\Script Blocking\ScrBlock.dll; y era este otro componente de un antivirus muy conocido el que se encargaba de bloquear el acceso.

Pues bien, aqui les dejo esta pequeña experiencia y espero que nadie tenga que sufrirla mucho :D.

 

Saludos

El Bruno

Posted sábado, 25 de noviembre de 2006 16:32 by elbruno | with no comments

Download de archivos (the easy way)

Buenas,

después de unos días mas que movidos en Barcelona, donde tuve un par de jornadas intensivas de produccion A FUEGGOOO !!! he sacado en claro lo siguiente:

  1. Parece que existe una harina que no hace grumos, yo ni siquiera sabia que la harina con grumos es un problema; pero se ve que este invento es mejor que el WWF.
  2. Para la próxima semana en Sabadell (Barcelona); me tengo que traer un poco mas de ropa porque parece que 2 dias son igual a 5 y un parapente para pasear; con el viento que hay es la mejor forma de viajar.
  3. Hay muchas formas de bajar un archivo utilizando .Net; antes podíamos utilizar el objeto xmlHttpRequest, que estaba dentro del paquete MSXML2. Ahora con .Net 2.0 y la nueva librería System.Net, las cosas son mucho mas fáciles.

Dentro de esta librería tenemos la clase WebClient, que es realmente fantástica. La misma posee los siguientes métodos y lo interesante de los mismos, es que para bajar un archivo, por ejemplo; ya traen una interfaz para realizar este trabajo en Background.

OpenWrite

Retrieves a Stream used to send data to the resource.

OpenWriteAsync

Retrieves a Stream used to send data to the resource, without blocking the calling thread.

UploadData

Sends a byte array to the resource and returns a Byte array containing any response.

UploadDataAsync

Sends a Byte array to the resource, without blocking the calling thread.

UploadFile

Sends a local file to the resource and returns a Byte array containing any response.

UploadFileAsync

Sends a local file to the resource, without blocking the calling thread.

UploadValues

Sends a NameValueCollection to the resource and returns a Byte array containing any response.

UploadValuesAsync

Sends a NameValueCollection to the resource and returns a Byte array containing any response, without blocking the calling thread.

UploadString

Sends a String to the resource, without blocking the calling thread.

UploadStringAsync

Sends a String to the resource, without blocking the calling thread.

OpenRead

Returns the data from a resource as a Stream.

OpenReadAsync

Returns the data from a resource, without blocking the calling thread.

DownloadData

Downloads data from a resource and returns a Byte array.

DownloadDataAsync

Downloads data from a resource and returns a Byte array, without blocking the calling thread.

DownloadFile

Downloads data from a resource to a local file.

DownloadFileAsync

Downloads data from a resource to a local file, without blocking the calling thread.

DownloadString

Downloads a String from a resource and returns a String.

DownloadStringAsync

Downloads a String from a resource, without blocking the calling thread.

 

Los nombres son muy claros, pero como siempre 2 lineas de código valen mas que mil comentarios.

 

   1:  Public Class Form1
   2:   
   3:    Private WithEvents client As New System.Net.WebClient
   4:   
   5:    ''' <summary>
   6:    ''' Handles the Load event of the Form1 control.
   7:    ''' </summary>
   8:    ''' <param name="sender">The source of the event.</param>
   9:    ''' <param name="e">The <see cref="System.EventArgs" /> instance containing the event data.</param>
  10:    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  11:   
  12:      Dim file As String = "www.google.com/images/el_logo_de_google.gif"
  13:      Dim fileDownload As String = "ellogodegoogle.gif"
  14:   
  15:      ' inicia la descarga
  16:      client.DownloadFileAsync(New System.Uri(file), fileDownload)
  17:   
  18:    End Sub
  19:   
  20:    ''' <summary>
  21:    ''' Handles the DownloadFileCompleted event of the client control.
  22:    ''' </summary>
  23:    ''' <param name="sender">The source of the event.</param>
  24:    ''' <param name="e">The <see cref="System.ComponentModel.AsyncCompletedEventArgs" /> instance containing the event data.</param>
  25:    Private Sub client_DownloadFileCompleted(ByVal sender As Object, ByVal e As System.ComponentModel.AsyncCompletedEventArgs) Handles client.DownloadFileCompleted
  26:   
  27:      ' validacion de errores
  28:      If e.Cancelled Or Not (e.Error Is Nothing) Then
  29:        MsgBox("ha ocurrido un error durante la descarga")
  30:        Exit Sub
  31:      End If
  32:      MsgBox("Descarga finalizada")
  33:   
  34:    End Sub
  35:   
  36:  End Class
.csharpcode, .csharpcode pre { font-size: small; color: black; font-family: consolas, "Courier New", courier, monospace; background-color: #ffffff; /*white-space: pre;*/ } .csharpcode pre { margin: 0em; } .csharpcode .rem { color: #008000; } .csharpcode .kwrd { color: #0000ff; } .csharpcode .str { color: #006080; } .csharpcode .op { color: #0000c0; } .csharpcode .preproc { color: #cc6633; } .csharpcode .asp { background-color: #ffff00; } .csharpcode .html { color: #800000; } .csharpcode .attr { color: #ff0000; } .csharpcode .alt { background-color: #f4f4f4; width: 100%; margin: 0em; } .csharpcode .lnum { color: #606060; }

como podemos ver el objeto client es el encargado de realizar todo el trabajo. En la linea 16 se llama a la funcion DownloadFileAsync(), donde se especifica el archivo que deseamos bajar y el nombre del archivo local que queremos crear. Por otra parte en la linea 25, se captura el evento DownloadFileCompleted() y validamos un argumento para ver si el download fue success.

Espero que les sea útil, a mi me ha servido muchisimo. 

 

Saludos

El Bruno

Posted miércoles, 22 de noviembre de 2006 22:23 by elbruno | 4 comment(s)

Filed under: ,

Vista Rtm is here !!!

Buenas,

después de confirmar que nuestros amigos de KFC quieren conquistar al mundo, sin utilizar un Lego estuve comiendo pollo y casi me muero de la indigestión, decidí tomar venganza contra el Office 2007 e instalarlo.

Me vino bien darme cuenta que el esquema de instalación de productos sigue siendo el mismo en Vista, es por eso que cuando desinstalamos por lo general queda basura en la registry SI SI SI la Registry y tenemos que limpiarla a mano.

Esta imagen le traera recuerdos a mas de uno;

Office2007Setup01.gif

pero despues de limpiar los datos erróneos de la misma podemos ver muy felices el siguiente splash screen

Office2007Setup02.gif

Sin embargo lo mejor esta por venir, porque desde ayer a la noche ya TENEMOS VISTA DISPONIBLE EN MSDN

VistaonMsdn.jpg

ya ha quedado en descarga, muy lenta seguramente ya que medio mundo Microsoft debe estar descargandose la misma

 

Saludos

El Bruno

Posted viernes, 17 de noviembre de 2006 9:56 by elbruno | 3 comment(s)

Filed under: ,

To install or not to install Office 2007 Professional RTM

Buenas o no tan buenas,

hace unos minutos mientras veía un poco de House estuve apunto de instalar la RTM de Office 2007. Despues de descargar la ISO, y de pedir mi key; monté un Dvd Virtual y me fui derechito al setup. Sin embargo, me apareció el siguiente cartelute

"Setup is unable to proceed due to the following error(s): The 2007 Microsoft Office system does not support upgrading from a prerelease version of the 2007 Microsoft Office system. You must first uninstall any prerelease versions of the 2007 Microsoft Office system products and associates technologies."

Como soy bastante poco sensible a los mensajes de alerta y tampoco tengo mucha conciencia indivudual; estaba haciendo click en Program and Features el viejo Agregar y Quitar Programas cuando mi lector rss paso por el blog de Computer Zen (Scott Hanselman) y vi el siguiente post Office 2007 won't upgrade from a prerelease version of the 2007 Office System - Office 2007 Setup Spelunking.

Después de leer los problemitas que tuvo Scott con el upgrade, me parece que me quedaré con mi fabulosa e impresionante Beta 2 TR ademas de mi foto de dark vader. Enumero los problemas:

  1. Msg de no upgrade disponible cuando no hacemos upgrade ... upsss
  2. Claves de producto inválidas ... todavía no entiendo muy bien porque, yo por las dudas no usaré mi clave 12345-5432112345-54321

Como decía, me quedó con la B2TR hasta que tenga que formatear todo para el RTM de Vista.

 

Saludos

El Bruno

Posted miércoles, 15 de noviembre de 2006 23:27 by elbruno | 3 comment(s)

Filed under:

HotFixes para Visual Basic .Net disponibles para bajar (o eso parece)

Buenas,

nuestros amigos de Visual Basic en Redmont o vaya uno a saber donde, se han dado cuenta que mucha gente necesita tener acceso a los diferentes hotfix para Visual Basic, sin tener que pasar por soporte de Microsoft.

Es por esto que en http://go.microsoft.com/fwlink/?LinkID=76558&clcid... podemos participar en un programa piloto donde encontraremos los archivos que necesitamos. Están publicados los siguientes:

 

KB920805

Visual Basic

Compiler

FIX: (VB Compiler Hotfixes are cumulative)

  • You may receive Visual Basic compiler error messages when you are developing a Visual Basic 2005 project in Visual Studio 2005 (More Information)
  • You may experience performance issues when you use solutions that contain large Visual Basic projects in Visual Studio 2005 (More Information)
  • You may experience slow performance when you work with a Visual Basic solution that contains many projects in Visual Studio 2005 (More Information)

KB917036

Visual Basic

Deployment

FIX: The Visual Studio 2005 IDE may corrupt the deployment files for a Web Setup Project and for a Setup Project
More Information

la información completa la pueden leer aqui.

 

Saludos

El Bruno

CrossPosted from www.elbruno.com

Posted martes, 14 de noviembre de 2006 22:49 by elbruno | with no comments

Filed under:

Como desactivar UAC en Windows Vista

Buenas,

una de las mejores cosas del TechEd eran los stand Ask The Experts, alli pudimos encontrar a grandes personajes como por ejemplo, Miguel, Pep, Tom Hollander, etc. Uno de los stands del Ask The Experts, estaba dedicado a nuestro muy buen amigo Windows Vista; y aproveché la oportunidad para ver como podía desactivar el molestísimo warning de seguridad que impone Vista cuando queremos ejecutar una aplicacion con permisos de ejecución.

El ATE de turno, aprovechó mi pregunta para derivarme a Chris (averiguaré el apellido) que fué uno de los encargados de crear/idear/delirar con el concepto de UAC. A Chris se le iluminó la cara cuando le hice la question y me preguntó si no me importaba que nos filmara gente de la CNN para esa pequeña entrevista. Asi que, con la sonrisa bien dibujada, comenzó el ping pong de preguntas y respuestas; y después de charlar un rato Chris me dijo que no había solución para desactivar el UAC bad news; pero seguimos dandole la vuelta para ver que podíamos hacer. Yo le propuse crear un perfil para desarrolladores en Windows Vista para que no suframos con el UAC y le gustó la idea (check this out).

Al final, entre una cosa y otra, me quedé con mi warning de seguridad que me sigue molestando. Averigué un poco para desactivarlo y les dejo los pasos aunque recuerden que no es una buena práctica, jejeje.

  1. Run - msconfig
  2. Seleccionar pestaña Tools
  3. Seleccionar Disable UAC
  4. Presionar Launch
  5. Reiniciar Windows Vista

Es mucho mas simple de lo que parece no ???

 

Saludos

El Bruno

BTW: un poco mas de informacion interesante en http://blogs.msdn.com/uac/default.aspx

Posted martes, 14 de noviembre de 2006 8:26 by elbruno | 2 comment(s)

Filed under:

Robotics vs Lego (1-1)

Buenas,

despues de la semana increíble en el TechEd, estoy tratando de volver un poco a la normalidad y esta normalidad supone lo siguiente:

 

  1. Pelearse con la gente del aeropuerto porque cuando viajas en el puente aéreo se te ocurre llevar un desodorante luego no se quejen si tenemos aromas imponentes en un hermoso viaje Madrid-Barcelona.
  2. Tomar otra cerveza con amigos más???.
  3. Probar la CTP de Noviembre de Microsoft Robotics Studio.
  4. Seguir probando Office 2007 en Barcelona.

LegoRobotics01.jpg

Como no puedo hablar mucho de las 2 primeras y menos de la última, les comentaré mis impresiones con respecto a Microsoft Robotics, después de ver la final de la Copa Master Femenina de Madrid.

Efectivamente esta versión es mucho más completa que la anterior, ya poseemos un engine para la programación concurrente más "currado" ademas de otras ventajas interesantes. Sin embargo, después de leer un rato sobre las novedades y como lo podía comenzar a utilizar, quise comenzar a conquistar el mundo con mi Lego MindStorm. Para eso tome mi tribot asesino; conecté el bluetooth y comencé a configurar el servidor de Robotics. Porque asi como lo oyen, una de las características mas interesantes de esta versión es que toda la configuracion y administración se realiza a través de una consola Web (prometo postear un poco con respecto a la misma, no tengo ningun screenshot interesante). Después de tener algunos problemas con la misma, de abrir puertos para el FireWall, de lograr un conectividad Bluetooth casi imposible, por fin pude conectar mi Lego a Robotics

LegoRobotics02.jpg

 

Pero cual fue mi sorpresa al ver que no podía recibir ningun tipo de mensaje desde el Lego al server de Robotics.

Fue en este momento donde decidí abandonar y retomar la actividad Nro 2, que es mucho mas sana para el cuerpo que un ejército de robots asesinos.

 

 

 

 

 

Saludos

El Bruno

 

PD: estoy trabajando en conjunto con una software factory en la india para desarrollar "persiguiendo a .Net 2.0", donde .Net 2.0 es mi gatita. Como la misma se ve atosigada por el Lego mi chica no me deja ponerle las pinzas para perseguirla ha decidido comenzar a informatizarse ella también.

CrossPosted from www.elbruno.com

Posted lunes, 13 de noviembre de 2006 20:54 by elbruno | with no comments

Nueva red social para profesionales

Aggreg8.gifBuenas,

desde hace mucho tiempo están de moda las redes sociales al estilo www.myspace.com. La última novedad es una red, promocionada por Microsoft TechNet llamada Aggreg8 (agregate ;). La puede visitar en http://aggreg8.net/ y obviamente esta basada en Community Server; de momento ya he encontrado a varios compañeros de Avanade y otros conocidos mas :D.

 

Saludos

El Bruno

Posted domingo, 12 de noviembre de 2006 12:01 by elbruno | with no comments

Filed under:

News from el TechEd 2006 (5) Sessiones del jueves

TechEd200603.jpg

Buenas,

este es el informe de las sesiones a las que he asistido durante el día jueves.

  • Team System Adoption Best Practices (Neno Loje); cuando el enfoque de una presentación es repasar los errores y conceptos que todos los que hemos utilizado VSTS conocemos, seguramente surge una buena presentación. Este es el caso de esta sesión, donde en poco mas de una hora, vimos las mejores y peores prácticas y errores que solemos cometer. Por ejemplo, migración de proyectos entre servidores TFS, utilización de TFS sobre HTTP con/sin autenticación, extensión del modelo de objetos del cliente Team Explorer, etc.

 

  • Integrating a Programming Language into Visual Studio (Microsoft Visual Studio Development Team); Aqui me llevé la primera decepción, solo puedo decir que la sesión termino 1 hr antes de lo previsto (duraba 90 min) ya que el presentador no era muy locuaz y la mayoría de los ejemplos no le funcionaban. Realmente una pena, ya que era uno de los temas que mas me interesaba. Me parece que me encargaré de probar y entender como han creado e implementado IronPython dentro de VS para comprender un poco mejor las capacidades del mismo.

 

  • Internet Information Services (IIS) 7 .0: End-To-End Overview of Microsoft's New Web Application Server (Thomas Deml); ¿Todavía no tenes Vista?, si la respuesta es no; lo mejor que te estás perdiendo el el IIS 7. Una demo, 100% orientada para desarrolladores donde pudimos ver las ventajas del mismo, en lo referido a customizacion, extension, configuracion, etc. De lo mejor del TechEd.

 

  • Microsoft Robotics Studio (Martin Calsyn); otra sesión mal enfocada; de los 90 minutos de la sesion mas de 50 se fueron explicando programación concurrente (tema muy aburridddoooo !!! y sino no lo conoces peor) y luego se enrolló con otros conceptos muy teóricos. Que puedo decir, coincido con PepLuis conque Robotics es por ahora para jugar por eso me conseguí el Lego pero creo que Ms debería comenzar a presentarlo con este enfoque sino se torna imposible.

 

  • Building a Business Intelligence (BI) Hub with Microsoft Office Sharepoint Server (MOSS) 2007 (Ciprian Jichici); de las que me gustan. Directo al grano, poca PPT y una buena demo de MOSS2007 y los webparts para mostrar BI. Quedé tan contento que creo que la semana que viene lo mostraré en un posible proyecto como reemplazo (parcial) de BSM 2005, hasta que salga el nuevo PerfomancePoint 2007.

 

Otro balance general impresionante, ademas de unas novedades que no puedo hacer públicas pero que seguro daran mucho que hablar. :D 

 

Saludos

El Bruno

CrossPosted from www.elbruno.com

Posted viernes, 10 de noviembre de 2006 15:03 by elbruno | with no comments

Filed under:

Infragistics NetAdvantage 2006 Vol 3 - is here !!!

 

 

 

 

 

 

 

 

Buenas,

los que me conocen saben que soy un fanático de Infragistics. Supongo que es una de las mejores suites para la creación de interfaces de usuario que permitan una experiencia bastante agradable. Pues bien, ayer me ha llegado la noticia de este nuevo release (2006 Vol 3), que entre otras cosas trae lo siguiente:

New Office 2007 Ribbon

  • Office 2007 Look and Feel for Windows Forms
  • No Touch Ajax for Asp.Net
  • Intelligent Charting
  • Applycation Styling for Windows Forms

Realmente se los aconsejo !!!

 

 

Saludos

El Bruno

CrossPosted from www.elbruno.com

Posted jueves, 09 de noviembre de 2006 14:38 by elbruno | 3 comment(s)

News from el TechEd 2006 (4) Sessiones del miercoles

TechEd200603.jpg

Buenas,

este es el informe de las sesiones a las que he asistido durante el día miércoles.

  • Enterprise Library for .Net Framework 3.0 (Tom Hollander); por fin lo conocí a Tom Hollander !!! y la verdad es que fue como ver su blog. Básicamente nos comentó el resultado de la encuesta que realizaron hace un tiempo relacionada con lo que queriamos para EntLib 3.3; y sobre lo que el equipo de P&P propone para la nueva versión. La session fue un poco pesada, ya que TH se enrollo con detalles bastantes tecnicos y sobre una lista muy larga de items para ver, solo presentó la mitad. Igualmente se nota que nuestros amigos de P&P están en un nivel superior de abstracción en lo que se refiere al desarrollo y arquitectura de soluciones.

 

  • Domain Specific Language Tools (Microsoft Visual Studio Development Team); IMPRESIONANTE, junto cn Jordi por fin pudimos ver una demo end-to-end, donde se especifique un DSL con sus entidades, propiedades y restricciones; se cree y planee el mismo y ademas se llegue hasta la implantación y generación de código. Me ha dejado con varias ideas en la cabeza de las que espero poder crear un artículo o un par de post que espero sean tan interesantes como la sesión.

 

  • Using the Essential Unified Process with Visual Studio Team System (Ivar Jacobson); que decir de Jacobson (por lo que tengo entendido en todas las universidades es casi obligatorio leer su libro); una persona que hace muchísimos años que trabaja pensando y mejorando metodologías de desarrollo y que ahora nos presenta una idea COMPLETAMENTE NOVEDOSA que mucho me costará aprender, pero que está basada en unos pilares muy simples como la programación interactiva y la noción de que todo básicamente es un juego.

 

  • Integrating the Visual Studio (VS) Team Edition for Database Professionals into your Software Development Cycle (Brian Randell); otra presentación que me ha dejado bastante contento. Después de utilizar las primeras CTPs, Visual Studio Team Edition for Database Professionals el nombre mas largo e incómodo de Microsoft hasta ahora por fin se ha convertido en un perfil 100% adaptable a un proceso de desarrollo. Pudimos ver ejemplos simples como la creación y comparación de varios schemas bases de datos entre sí, como trabajar integrados a un TFS para el control de versiones y la comunicacion entre diferentes personas en un equipo, como aprovechar las capacidades de generación automática de datos para bases de datos de ejemplo; como crear pruebas unitarias que nos permitan verificar la validez de nuestros elementos en cada base de datos, como integrar estas pruebas a un proceso de Integración Continua, etc me enrollé un montón. Repito, impresionante.

 

El balance general es muy bueno especialmente DSL y VS for DB; pero lo mas impresionante es lo que está por llegar; por ejemplo lo nuevo de Infragistics (se merece otro post)

 

 

 

Saludos

El Bruno

Posted jueves, 09 de noviembre de 2006 14:32 by elbruno | with no comments

Filed under:

News from el TechEd 2006 (3) - Sql Server Compact Edition

TechEd200603.jpg

Buenas

otra de las novedades interesantes con las que nos hemos encontrado en el TechEd (además de algunas amistades del CodeCamp) es que el día 7 de Noviembre se ha liberado una nuvea versión del anteriormente conocido como SQL Server 2005 Everywhere Edition, ahora SQL Server 2005 Compact Edition.

TechEd200605.jpg

La imagen anterior nos dice bastante del mismo, ¿porque un diskette?, pues porq el instalador podría entrar en el mismo; impresionante ¿no?

TechEd200604.jpg

 

Saludos

El Bruno

CrossPosted from www.elbruno.com

Posted miércoles, 08 de noviembre de 2006 15:00 by elbruno | with no comments

Filed under:

News from TechEd 2006 (2)

Buenas,

después de un primer día espectacular comentaré un poco mis impresiones sobre las sesiones a las que asistí.

  • Upgrade Benefits of SQL Server 2005 for Developers (Don Vilen); una de las mejores presentaciones del día. Básicamente nos pusieron al tanto de nuevas features que posee SQL 2005 y que por desconociemiento o por costumbre no conocemos. Por ejemplo, yo no sabía que ahora podemos utilizar el TOP en los Updates, Deletes e Insert, tampoco sabia que podemos implementar Triggers en DDL, algunas cosillas que ya conocía a nivel concepto de Oracle, etc. Por lo gral, muy buena y muy dinámica.
  • Visual Basic 9 and Beyond (Jay Schemelzer); mmm, VB9 es LINQ, XLink y el IDE es similar a Interdev Visual Studio 2005; pero la parte mas interesante que es el Beyond, nuestro futuro como desarrolladores VB no me quedó muy clara. Parece que el concepto es intentar reforzar la base de VB, que realizar todo el trabajo de la mejor forma posible; pero por otra parte esto lo lograremos copiando inspirandonos en lenguages dinámicos como Ruby o IronPython; no me juego por ninguno.
  • Introduction to Extending Windows Desktop Search: How to add your data to the System (Chris McConnell); esta sesión fue interesante; a mi me interesaba porque estoy trabajando con WDS en uno de los proyectos en los que estoy asignado; pero se ve que soy el unico; porque cuando comenzó la sesión solo eramos 20. Luego de 15 minutos donde vimos un poco el "core" de WDS, comenzamos a ver una implementación real de un IFilter, y empezaron a aparecer un monton de archivos cpp. Obviamente la primer pregunta fue ¿esto se puede hacer desde un entorno manejado? y la respuesta simple fue: NO. En ese momento se fueron 5 asistentes. Luego de ver un poco como se organizaba el proyecto, alguien preguntó por documentación para realizar este trabajo y la respuesta fue: todavía no está disponible para la nueva versión, pero suponemos que saldrá en poco tiempo. Chan, otros 5 que se fueron. y los últimos desertores terminaron por abandonarnos cuando alguien preguntó por algun ejemplo o tutorial online; y escuchamos el agradable: puedes utilizar el código que estamos haciendo ahora y la ppt que mostramos. Ahi quedamos solos :D. En realidad no fue tan drástico, pero si debo reconocer que es un tema en el echamos mucho de menos una buena documentación, aunque el producto es FANTASTICO !!! (pruebenlo en Vista)
  • Visual Studio 2005 Tools for Office Second Edition (VSTO 2005 SE) - Atep ahead to Orcas (Martin Sawicki); aquí me quedé sorprendido, este producto que saló hace un par de días es un avance impresionante en relación con su antecesor VSTO2005. Está 100% orientado a Office2007 y la presentación se quedó corta de tiempo ya que el tema daba para largo

Nota: refuerzo mi opinión en lo referido a que muchas aplicaciones pueden ser realizadas sin la necesidad de grandes desarrollos utilizando Office y SPS.

Pues bien ahora a ver lo nuevo de EntLib 3.0 y después les cuento :D

 

 

Saludos

El Bruno

Posted miércoles, 08 de noviembre de 2006 9:25 by elbruno | with no comments

Filed under:

News from El TechEd 2006

Buenas,

después de un día lunes de preconferencias espectacular entiendase espectacular como 7 horas seguidas de Windows Workflow Foundation, llega el primer día oficial del TechEd.

La primera sesion, el lanzamiento oficial de .Net Framework 3.0, Office 2007, componentes AJAX, etc fue increíble. Tuvimos nuestro lado sensible cuando vimos a esta pequeña niña de Paquistan que con tan solo 10 años se certificó en "Desarrollo de aplicaciones Windows con C#" que es mucho mas de lo que puedo decir de varios compañeros; y que nos mostró en vivo una calculadora hecha en C# de su propia manufactura ya sé ya sé, pero solo tiene 10 años !!!.

TechEd200601.jpg

Volviendo a las novedades, y recordando las intersantes posturas que surgieron en el CodeCamp la semana anterior, pudimos ver un poco de más Orcas y LINQ, y un par de ejemplos visualmente increíbles de Windows Presentation Foundation. Todo acompañado de integraciones con SPS2007, perdón MOSS2007 y lo único que no vimos fue Exchange 2007 invocar un WebService para enviar un mail, mmm no lo ví.

TechEd200602.jpg

Tengo un problema interesante de conexion, ya que no puedo utilizar la red Wireless que han instalado para todos los asistentes ya que (repito palabras textuales)

 

We have a problem with machines running Windows Vista and Intel ¿?

 

parece que el combo 1 (clásico Wintel) no está soportado aun. Pero por suerte si pincho un cable de red, tengo la conexión clásica :D

Luego  comentaré un poco sobre las sesiones interesantísimas de El futuro de Visual Basic y SQL 2005 for Developers.

 

 

 

Saludos

El Bruno

CrossPosted from www.elbruno.com

Posted martes, 07 de noviembre de 2006 17:18 by elbruno | with no comments

Filed under:

El Bruno @ Live Alerts

Buenas,

es una pena que despues de esperar y configurar durante un par de semanas que nuestros amigos de Live.Com, agreguen a mi feed de El Bruno a la lista de Live Alerts, ya lo tenga que cambiar cuando migre mi actual version de El Bruno basada en DotNetNuke a una nueva versión basada en Community Server 2.1 (pueden ver la beta en http://beta.elbruno.com).

Sin embargo sigue siendo bastante llamativo ver lo siguiente:

ElBrunoLiveAlerts.gif

ElBrunoLiveAlerts 02.gif

los animo a suscribirse a este servicio de Live Alerts (ex Msn Alerts) y también los animo a que agreguen sus feeds a Live para tener un control centralizado del mismo.

 

Saludos desde el TechEd 2006 en Barcelona

El Bruno

Posted martes, 07 de noviembre de 2006 17:07 by elbruno | with no comments

Filed under: ,

Microsoft Visual Studio 2005 IDE Enhancements

Buenas

salió hace unos días pero por problemas de desconexión en Barcelona, me quedó como draft.

http://www.microsoft.com/downloads/details.aspx?Fa...

Overview

Visual Studio 2005 IDE Enhancements are a set of Visual Studio extensions that are designed to make you more productive. These enhancements are directly integrated into the Visual Studio IDE. This set of enhancements includes Source Code Outliner, Visual C++ Code Snippets, Indexed Find, Super Diff and Event Toaster tools. All these tools except the IDE Event Toaster can be invoked from Visual Studio’s View.OtherWindows menu group. The Event Toaster tool can be configured from the Tools Options dialog under the PowerToys node. The Visual C++ Code Snippets can be invoked on any C++ source file. Previously, these enhancements were only available via the Visual Studio 2005 SDK. This installation does not require Visual Studio 2005 SDK.
Source Code Outliner : The Source Outliner tool is a Visual Studio extension that provides a tree view of your source code's types and members and lets you quickly navigate to them inside the editor.
Visual C++ Code Snippets:The Visual C++ Code Snippets tool lets you insert snippets in your code by using a pop-up menu that contains programming keywords. VB.NET and C# languages have this functionality in Visual Studio 2005.
Indexed Find : The Indexed Find tool is a Visual Studio extension that uses the Microsoft Indexing Service to provide improved Search capabilities to the integrated development environment (IDE). It sends the results of a search to the Output Window.
Super Diff Utility: The Super Diff Find tool is a Visual Studio extension that compares text files. It uses color coding and graphics to show the difference between the files in deleted text (red), changed text (blue), inserted text (green).
Event Toaster Utility: The Event Toaster tool is a Visual Studio extension that notifies users about specific events within the Visual Studio IDE.

 

Saludos

El Bruno

Posted domingo, 05 de noviembre de 2006 12:43 by elbruno | with no comments

Filed under:

Como setear las propiedades comunes de los assemblies para varios proyectos dentro de una solucion

Buenas (pedazo de título del post),

suele suceder que trabajemos en Visual Studio 2005 con soluciones que tengan muchos proyectos. Si dentro de este escenario, necesitamos mantener la coherencia entre los datos de estos proyectos, por ejemplo, nro de versión, descripción de los assemblies, nombre del producto, etc.; actualizar o mantener estos datos "a mano" suele ser bastante fastidioso.

Una de las posibles soluciones, es crear un archivo de "scope global", que contenga toda la información que queremos mantener entre estos proyectos. Supongamos la siguiente solución DemoSolution, que contiene 3 proyectos Visual Basic .Net

GlobalAssInfo01.gif

Una opción para mantener la informacion de los assemblies para todos los proyectos de la solucion es crear un archivo gral con esta información; en este caso lo llamaremos GlobalAssemblyInfo.vb y puede contener un codigo parecido al siguiente:  

Imports System
Imports System.Reflection
Imports System.Runtime.InteropServices

' General Information about an assembly is controlled through the following 
' set of attributes. Change these attribute values to modify the information
' associated with an assembly.

' Review the values of the assembly attributes

'<Assembly: AssemblyTitle("ProyectDemo01")> 
'<Assembly: AssemblyDescription("")> 
<Assembly: AssemblyCompany("El Bruno")> 
<Assembly: AssemblyProduct("Shared Assembly Information Demo")> 
<Assembly: AssemblyCopyright("Copyright © Bruno Capuano 2006")> 
<Assembly: AssemblyTrademark("")> 

<Assembly: ComVisible(False)>

'The following GUID is for the ID of the typelib if this project is exposed to COM
'<Assembly: Guid("373be1e5-8039-4881-91f9-3bb014b6e972")> 

' Version information for an assembly consists of the following four values:
'
'      Major Version
'      Minor Version 
'      Build Number
'      Revision
'
' You can specify all the values or you can default the Build and Revision Numbers 
' by using the '*' as shown below:
' <Assembly: AssemblyVersion("1.0.*")> 

<Assembly: AssemblyVersion("1.0.0.0")> 
<Assembly: AssemblyFileVersion("1.0.0.0")> 

 

Como pueden ver, dentro del mismo, estan todas las propiedades clasicas del AssemblyInfo, pero hemos dejado comentadas algunas que consideramos específicas para cada proyecto, título y descripcion.

El siguiente paso (opcional) es agregar este archivo a la solución; y posteriormente (no opcional) es agregar este archivo (como un link) a los proyectos. Para esto seleccionamos la opcion Add Existing Item sobre cada uno de los proyectos:

GlobalAssInfo02.gif

 

y (esta es la parte interesante) agregamos el archivo como un link

GlobalAssInfo03.gif

De esta forma, el archivo se incluye dentro de la compilacion de cada proyecto pero sin incluir físicamente al mismo dentro del proyecto. Asi quedarían los archivos referenciados en los proyectos de la solucion (cambia el icono para cada archivo en el proyecto)

GlobalAssInfo04.gif

Sin embargo, cuando compilamos la solución nos encontramos con varios errores de compilación.

C:\Projects\Labs2005\DemoSolution\ProyectDemo03\My Project\AssemblyInfo.vb(11) : error BC30663: Attribute 'AssemblyTitleAttribute' cannot be applied multiple times.
C:\Projects\Labs2005\DemoSolution\ProyectDemo03\My Project\AssemblyInfo.vb(12) : error BC30663: Attribute 'AssemblyDescriptionAttribute' cannot be applied multiple times.
C:\Projects\Labs2005\DemoSolution\ProyectDemo03\My Project\AssemblyInfo.vb(13) : error BC30663: Attribute 'AssemblyCompanyAttribute' cannot be applied multiple times.
C:\Projects\Labs2005\DemoSolution\ProyectDemo03\My Project\AssemblyInfo.vb(14) : error BC30663: Attribute 'AssemblyProductAttribute' cannot be applied multiple times.
C:\Projects\Labs2005\DemoSolution\ProyectDemo03\My Project\AssemblyInfo.vb(15) : error BC30663: Attribute 'AssemblyCopyrightAttribute' cannot be applied multiple times.
C:\Projects\Labs2005\DemoSolution\ProyectDemo03\My Project\AssemblyInfo.vb(16) : error BC30663: Attribute 'AssemblyTrademarkAttribute' cannot be applied multiple times.
C:\Projects\Labs2005\DemoSolution\ProyectDemo03\My Project\AssemblyInfo.vb(18) : error BC30663: Attribute 'ComVisibleAttribute' cannot be applied multiple times.
C:\Projects\Labs2005\DemoSolution\ProyectDemo03\My Project\AssemblyInfo.vb(21) : error BC30663: Attribute 'GuidAttribute' cannot be applied multiple times.

Esto se debe a que al incluir el archivo para la compilación de cada proyecto, se duplican los atributos específicos para el assembly debido a que existen 2 archivos con la misma información. La solución es muy simple, editamos los archivos AssemblyInfo.vb de cada proyecto y comentamos las lineas que se especifican en el GlobalAssemblyInfo.vb. Por ejemplo, el assemblyInfo del ProjectDemo01 quedaría como el siguiente ejemplo:

 

Imports System
Imports System.Reflection
Imports System.Runtime.InteropServices

' General Information about an assembly is controlled through the following 
' set of attributes. Change these attribute values to modify the information
' associated with an assembly.

' Review the values of the assembly attributes

<Assembly: AssemblyTitle("ProyectDemo01")> 
<Assembly: AssemblyDescription("")> 
'<Assembly: AssemblyCompany("")> 
'<Assembly: AssemblyProduct("ProyectDemo01")> 
'<Assembly: AssemblyCopyright("Copyright ©  2006")> 
'<Assembly: AssemblyTrademark("")> 

'<Assembly: ComVisible(False)>

''The following GUID is for the ID of the typelib if this project is exposed to COM
<Assembly: Guid("373be1e5-8039-4881-91f9-3bb014b6e972")> 

'' Version information for an assembly consists of the following four values:
''
''      Major Version
''      Minor Version 
''      Build Number
''      Revision
''
'' You can specify all the values or you can default the Build and Revision Numbers 
'' by using the '*' as shown below:
'' <Assembly: AssemblyVersion("1.0.*")> 

'<Assembly: AssemblyVersion("1.0.0.0")> 
'<Assembly: AssemblyFileVersion("1.0.0.0")> 

Nota: el atributo AssemblyGuid, es necesario que sea específico para cada assembly ya que se utiliza como la "identidad" del mismo. No lo podemos asignar con un scope global.

 

Pues bien, de esta manera podemos configurar todas las propiedades de los assemblies de una solucion a través de un único archivo de configuración y cuando sea necesario cambiar estos valores solo modificaremos un único archivo.

Esta técnica tambien la podemos aplicar, para "compartir" otros tipos de archivos entre varios proyectos, como son Schemas, DataSets, Helpers, etc.

Espero que les sea útil.

 

Saludos

El Bruno

CrossPosted from www.elbruno.com

Posted sábado, 04 de noviembre de 2006 11:28 by elbruno | 3 comment(s)

Filed under:

Programando, &#191;lenguajes din&#225;micos?

Buenas,

hace unos días después de la presentacion de David Carmina, en el CodeCamp, relacionada con LINQ; comencé a darle vueltas nuevamente al tema de los lenguajes dinámicos.

Este miércoles, trabajando en Sabadell (Barcelona) tuvimos una conversación muy interesante con mi amigo y compañero de Avanade, Pedro; relacionada con las ventajas de lenguajes como Ruby o como IronPyton.

Personalmente, y debido a mi poca capacidad de adaptación a las nuevas tecnologías, comencé a pensar en los pros y contras de esta nueva "movida"; reconozco que estoy un poco asustado con conceptos como las clases "anónimas"; ya que en malas manos pueden ser un arma muy peligrosa. Sin embargo, hago un repaso por los cambios anteriores que vivimos cuando llegaban nuevas tecnologías; y me doy cuenta que las mismas no son el problema; sino la mala utilización de la misma. Aqui me vuelve a la mente la frase "un gran poder conlleva una gran responsabilidad", con la que tanto se jugó en el CCamp, pero que encierra una gran verdad.

Y es que, este nuevo concepto de lenguajes dinámicos presenta grandes cambios y un gran desafío. Sin llegar tan lejos, podemos ver una implementación de Ruby para .Net (http://www.rubyclr.com/) con la obvia diferencia que nos ofrece una clase anónima

 Volviendo al mundo .Net, un par de líneas de LINQ también nos abren un poco la mente sobre las nuevas capacidades que tendrán los lenguages de programación.

var productos = from p in products where p.UnitsInStock == 0 select p;

Ahora me surgen un par de dudas, ¿qué pasará cuando ...

  • ... alguien comience a utilizar una clase anónima, y cree "dinámicamente" más de 100 propiedades? (he visto este tipo de clases en nuestro querido .Net 2.0 y me da miedo que pueda pasar in the next future)
  • ... alguien haga un filtro where sobre una consulta en memoria de sobre más de 10000000 registros? (otra cosa que me da miedo, un buen tramo han recorrido hasta ahora nuestras grandes amigas las bases de datos)
  • ... etc.

Me deja pensando en como empezar a controlar/nos :D.

 

Saludos

El Bruno

CrossPosted from www.elbruno.com

Posted viernes, 03 de noviembre de 2006 14:45 by elbruno | 1 comment(s)

More Posts Next page »