jueves, 17 de diciembre de 2009

Todo en uno: All-In-One Code FrameWork



Buscando unos ejemplos de código para un problemita que tenía, me encontré con CodeFX, también conocido como All-In-One Code FrameWork y me pareció que valía la pena compartir el "hallazgo" con uds.

Como ya habrán deducido por su nombre, All-In-One Code Framework
es una gran biblioteca de ejemplos de código (actualmente tiene 290 y aumentando) en 3 lenguajes de programación distintos (C#,C++ y VB .NET) que agrupa 24 tecnologías de Microsoft (Windows 7,Silverlight 3,WPF, etc) y que está en permanentemente en fase de revisión y ampliación.

Según los creadores se diferencian de MSDN y CodeProject, ya que los ejemplos de CodeFx son
típicos, extensibles, estructurados, completos, bien documentados y faciles de entender, .


Para bajar la última versión:
http://cfx.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=35920

La página del proyecto: http://cfx.codeplex.com/

El catálogo de ejemplos: http://cfx.codeplex.com/wikipage?title=All-In-One%20Code%20Framework%20Sample%20Catalog&referringTitle=Home


Sin duda una gran biblioteca de conocimiento, que vale la pena ver


Saludos y espero les sirva!

viernes, 27 de noviembre de 2009

Microsoft Dallas



Ya hace bastante tiempo que en L&A SISTEMAS venimos “jugando” con los servicios de Windows Azure y SQL Azure. Mirando las novedades del PDC 2009, nos encontramos con varias novedades y nos hemos propuesto probarlas una a una.
La primera de ellas es “Dallas”.

¿Pero, Qué es Dallas?

Es un servicio de datos, como ha dicho Ray Ozzie… "Data as a Service". Permite a los desarrolladores e ‘information workers’ encontrar y consumir los conjuntos de datos que necesiten para alimentar sus aplicaciones.
Por otro lado nos permite que si nosotros como proveedores de datos, demos de alta nuestros servicios en el repositorio, para que cualquier consumidor de Dallas pueda buscarlo y utilizarlo. Los datos que exponemos luego pueden ser consumidos incluso desde Excel

Aquí pueden encontrar algunos escenarios:

http://www.microsoft.com/windowsazure/dallas/
Aquí el QuickStart http://www.microsoft.com/windowsazure/developers/dallas/

En Channel 9 pueden encontrar un Hands On Lab que fue el que utilizamos nosotros para jugar un poco con el servicio. http://channel9.msdn.com/learn/courses/Azure/Dallas/IntroToDallas/Overview/

Cabe aclarar que necesitan un codigo de invitacion que demora unos dias en obtenerse y ademas deben tener instalado el Windows Azure Platform Kit de Noviembre de 2009.

Ejemplo de acceso a la información

class Program
{
static void Main(string[] args)
{
//Especifica la clave de la cuenta y el user id
string accountKey = "0qskpSR1tYaz0pLnyL9....";
string uniqueUserId = "f414bab2-8726-480b-895c-.........";

// Crear el proxy del servicio
NewsCategoriesService service = new NewsCategoriesService(accountKey, new Guid(uniqueUserId));

// Invocar la consulta con los parametros necesarios (Varian de acuerdo al servicio que invoquemos)
List results = service.Invoke();

// Iterar a traves del resultado
foreach (NewsCategoriesItem item in results)
{
Console.WriteLine(item.Title);
}

Console.ReadLine();

}
}

(Para los que me conocen -> Si, esta escrito en C# ... :) )

Hasta la próxima!!!

jueves, 26 de noviembre de 2009

La marca más confiable de notebooks es…

No soy muy amigo del Copy & Paste de articulos pero creo que en este caso amerita... Es un articulo publicado en infonegocios... una buena noticia para los hinchas (como nosotros) de Toshiba...

(Por Eduardo M. Aguirre) Hace pocos días se conoció un estudio llevado a cabo por Square Trade, uno de los grandes proveedores de garantías de EEUU. Comparó el desempeño de las laptops más vendidas en sus primeros tres años y publicó sus conclusiones. Espero tus comentarios.

Bajo el título “cual es la laptop más confiable” Square Trade comparó el comportamiento de las notebooks y netbooks más populares del mercado. Para llegar a tales conclusiones, seleccionó al azar cerca de 30.000 equipos cubiertos con planes de garantía. Entre las marcas analizadas que llegaron al mínimo de 1000 laptops estaban Acer, Apple, Asus, Dell, Gateway, HP, Lenovo, Sony y Toshiba.

Entre las primeras conclusiones encontramos que el 20,4 % de las portátiles habrá fallado al cumplir sus 3 años de uso por defectos propios, mientras que el 10,6% presentará mal funcionamiento por hechos accidentales, es decir, el total de 31% de fallas en ese lapso.

Tomando como parámetro el precio del equipo se destaca que durante el primer año de uso un 5,8% de las netbooks presenta algún tipo de desperfecto, mientras también lo hace un 4,7% de las notebooks estándar y solo un 4,2% de las alta gama. Llegados los primeros 36 meses de uso un 25,1% de las primeras habrá fallado del mismo modo que un 20,6% de las segundas y un 18,1% de las terceras.

Yendo a lo más controversial de esta investigación, el análisis por marca dicta las siguientes conclusiones. Cumplidos los primeros 36 meses de uso las portátiles de HP presentan un 25,6% de fallas. Las Acer lo hacen en porcentaje del 23,5. Las sigue Lenovo con un 21,5%, Dell presenta un 18,3% de funcionamiento defectuoso en ese mismo período mientras que los mejores comportamientos corresponden a Apple, con un 17,4% de fallas, Sony con un 16,8% y para sorpresa de muchos las dos marcas de mejor performance en cuanto a su confiabilidad son Toshiba con un 15,7% de errores y Asus con solo un 15,6%.

Resulta curioso contrastar los resultados de este estudio con el ranking de ventas por marca a nivel mundial. Aquí se observa a HP que continúa al tope de los embarques con el 24,1% del mercado, la sigue Acer con un 18,8%, Dell alcanza un 14,2 % de penetración, luego aparece Toshiba con un 10%; seguida por Lenovo con 7% y Asus, siendo la más confiable según Square Trade, recién aparece en el sexto lugar con un 5,6% de participación en el mercado global.

Confiando en la veracidad de todos los números expuestos, debemos señalar que en cierta medida contradicen (o al menos ponen en duda) las afirmaciones de los analistas de marketing quienes hablan de un público cada vez más informado y por lo tanto más difícil de persuadir mediante los mensajes publicitarios clásicos. Al menos como consumidores de tecnología aún nos falta un buen camino por recorrer para alcanzar una autonomía soberana en la elección de los dispositivos que habrán de acompañarnos durante largas horas de nuestra vida laboral y personal.

Si te interesa, el estudio completo de Square Trade podés bajarlo haciendo click aquí.

Fuente: http://www.infonegocios.biz/nota.asp?nrc=11687&nprt=1

jueves, 19 de noviembre de 2009

Windows Azure Storage Client v1.0

Windows Azure Storage Client v1.0

(Traducción del original escrito por Neil Mackenzie )

El paquete de Noviembre de 2009 del SDK de Windows Azure y herramientas ha introducido para la muchachada una API totalmente renovada StorageClient v 1.0 que ahora es una parte integral de la liberación de Azure, en lugar de ser sólo un ejemplo como sucedia anteriormente (Para más información consulte nuestros post anteriores acerca del tema de almacenamiento en Azure). La API de StorageClient incluye cerca de 70 clases repartidas en 3 espacios de nombres:

Microsoft.WindowsAzure.StorageClient.dll

La funcionalidad de cliente de almacenamiento se encuentra en Microsoft.WindowsAzure.StorageClient.dll.
Esta funcionalidad se expone a través de cerca de 70 clases repartidas en 3 espacios de nombres:


Microsoft.WindowsAzure
Microsoft.WindowsAzure.StorageClient
Microsoft.WindowsAzure.StorageClient.Protocol


El espacio de nombres Microsoft.WindowsAzure proporciona funcionalidad en cuenta de almacenamiento. El espacio de nombres Microsoft.WindowsAzure.StorageClient proporciona la funcionalidad de clave de almacenamiento del cliente.
La clase Microsoft.WindowsAzure.StorageClient.Protocol proporciona la funcionalidad de bajo nivel relacionados con las llamadas REST al servicio de almacenamiento de Azure y no está cubierto en este post.

Espacio de nombres Microsoft.WindowsAzure

El espacio de nombres Microsoft.WindowsAzure comprende clases relacionadas con las cuentas de almacenamiento y credenciales:


CloudStorageAccount
StorageCredentials
StorageCredentialsAccountAndKey
StorageCredentialsSharedAccessSignature


CloudStorageAccount expone información de cuenta y clave, y es capaz de analizar el archivo de configuración para recuperar esta información.
StorageCredentials es una clase base abstracta para StorageCredentialsAccountAndKey, el soporte a las credenciales de clave compartida,
y StorageCredentialsSharedAccessSignature usadas para crear firmas compartidas para el acceso a blobs.

La clase CloudStorageAccount se declara:


public sealed class CloudStorageAccount {
// Constructors
public CloudStorageAccount(StorageCredentialsAccountAndKey storageCredentialsAccountAndKey, Boolean useHttps);
public CloudStorageAccount(StorageCredentials storageCredentials, Uri blobEndpoint, Uri queueEndpoint, Uri tableEndpoint);

// Properties
public Uri BlobEndpoint { get; }
public StorageCredentials Credentials { get; }
public static CloudStorageAccount DevelopmentStorageAccount { get; }
public Uri QueueEndpoint { get; }
public Uri TableEndpoint { get; }

// Methods
public static CloudStorageAccount FromConfigurationSetting(String settingName);
public static CloudStorageAccount Parse(String value);
public static void SetConfigurationSettingPublisher(Action> configurationSettingPublisher);
public String ToString(Boolean exportSecrets);
public static Boolean TryParse(String value, out CloudStorageAccount account);

// Implemented Interfaces and Overridden Members
public override String ToString();
}


La clase CloudStorageAccount es esencial para el cliente de almacenamiento, ya que cualquier intento de utilizar el servicio de almacenamiento de Azure comienza por la creación de una instancia del mismo.
Los servicios de Windows Azure services utilizan el archivo de configuración para almacenar información de su cuenta tales como nombre y clave.
Una simple llamada al método estático FromConfigurationSetting() será suficiente para crear un CloudStorageAccount objeto correctamente inicializado a partir del archivo de configuración.
Sin embargo, un intento de hacer esto producirá un error en tiempo de ejecución porque no se ha especificado un valor de configuración de Publisher.
La solución a esto es invocar la SetConfigurationSettingPublisher() en el nuevo método OnStart() para el rol.
El código necesario para hacer esto es bastante retorcido, y la técnica más simple para hacerlo funcionar es la de copiarlo directamente del ejemplo de los thumbnails que viene con el SDK de Azure v1.0.


Es posible ignorar al archivo de configuración y crear un objeto de CloudStorageAccount de un objeto StorageCredentialsAccountAndKey como se muestra a continuación:

StorageCredentialsAccountAndKey storageCredentialsAccountAndKey = new StorageCredentialsAccountAndKey("ACCOUNT_NAME",
"ACCOUNT_KEY");
CloudStorageAccount cloudStorageAccount = new CloudStorageAccount(storageCredentialsAccountAndKey, true);


Esto hace que el cliente de almacenamiento vaya directamente contra el almacenamiento en la nube con la cuenta indicada.
Tenga en cuenta que la sustitución del ACCOUNT_NAME y ACCOUNT_KEY con las de almacenamiento de desarrollo no causa que sea usado el almacenamiento de desarrollo y causa un error de ejecución.
Sin embargo, la propiedad DevelopmentStorageAccount es un objeto pre instanciado del tipo CloudStorageAccount que puede ser utilizado para el acceso al almacenamiento de desarrollo:

CloudStorageAccount cloudStorageAccount = CloudStorageAccount.DevelopmentStorageAccount;


Espacio de nombres Microsoft.WindowsAzure.StorageClient

Este espacio de nombres es el núcleo del cliente de almacenamiento y dispone de casi 40 clases de apoyo a la gama completa de funcionalidad para blobs,
las tablas y las colas. Las clases son enumeradas aquí, junto con un breve resumen del uso de las mismas. Casi toda la funcionalidad se ofrece tanto en forma sincrónica y asincrónica. Por ejemplo, la clase CloudQueue soporta adición de mensajes sincrónica y asincrónica a una cola a través de los siguientes métodos:

public void AddMessage(CloudQueueMessage message, TimeSpan timeToLive);
public void AddMessage(CloudQueueMessage message, TimeSpan timeToLive);
public void AddMessage(CloudQueueMessage message);
public IAsyncResult BeginAddMessage(CloudQueueMessage message, TimeSpan timeToLive, AsyncCallback callback, Object state);
public IAsyncResult BeginAddMessage(CloudQueueMessage message, AsyncCallback callback, Object state);
public void EndAddMessage(IAsyncResult asyncResult);

Hasta la proxima!

miércoles, 28 de octubre de 2009

ASP.NET 4.0

Siguiendo los pasos del amigo Fabian Imaz, les voy a recomendar un libro que acabo de terminar. Se llama "Tecnologías ASP.NET 4.0 (saltando desde la versión 2.0)" y fue escrito por José Manuel Alarcón Aguín

Como su propio nombre indica, este libro parte de la base de que ya sabes programar con ASP.NET 2.0 (al menos los fundamentos) y desde esa premisa va desgranando las tecnologías más importantes aparecidas desde entonces con las versiones 3.0, 3.5, 3.5 SP1 y la próxima verisón 4.0.

Un gran parte del texto se centra en tecnologías AJAX, incluyendo las novedades para enlazado y manejo de datos en el cliente que ofrece ASP.NET 4.0, pero hay muchas otras cosas que explorar.

En España, Microsoft lo regalaba asistiendo al CodeCamp 2009 o al evento Remix, pero en Uruguay se van a tener que conformar leyendolo de aca o comprándolo :)

Es un libro altamente recomendable y de facil lectura.

Los ejemplo a los que alude el libro se pueden bajar de aquí




Espero les guste el libro y les sea de utilidad, hasta la próxima!

miércoles, 7 de octubre de 2009

Microsoft Web Platform Installer v2.0


Microsoft tiene un producto que para muchos ha pasado desapercibido y que resulta especialmente interesante a la vez que útil para otros, especialmente para la comunidad de desarrolladores o para aquellos que quieren empezar a trabajar con ASP.NET y que no saben como hacerlo, o incluso para aquellos que quieren montar un sitio Web rápidamente o instalar algunos componentes para el desarrollo Web, ya sean en su versión RTM o versión RC.

Microsoft Web PI v2.0 o Microsoft Web Platform Installer v2.0, es un paquete gratuito elaborado por Microsoft y soportado en 9 idiomas, que contiene las partes o componentes fundamentales de una plataforma Web de Microsoft.

Este paquete incluye IIS (Internet Information Services), SQL Server 2008 Express Edition, .NET Framework, y Visual Web Developer 2008.

Adicionalmente, permite instalar también aplicaciones Web gratuitas para blogs, gestión de contenidos, etc, e incluso PHP

El sitio web de dicha aplicacion es : http://www.microsoft.com/web/Downloads/platform.aspx



Al ingresar al sitio nos van a ofrecer el instalador que es muy liviano (85k) y el mismo nos va a permitir seleccionar los componentes que queremos instalar


Como mencione anteriormente hay varias opciones que podemos seleccionar pero la que me resulto mas interesante fue la que esta marcada en la imagen (Herramienta de implementacion Web 1.0 o Web Deployment Tool)



Especialmente recomendada para aquellos que alguna vez han "sufrido" con la puesta en produccion de un sitio web.

La herramienta de implementación Web simplifica la migración, la administración y la implementación de servidores IIS Web, aplicaciones y sitios Web. Los administradores pueden utilizar secuencias de comandos de la línea de comandos con la herramienta de implementación Web para sincronizar servidores IIS 6.0 y IIS 7.0 o para migrar un servidor IIS 6.0 a IIS 7.0. La herramienta de implementación Web también permite a los administradores y los usuarios delegados utilizar el administrador de IIS para implementar aplicaciones ASP.NET y PHP en un servidor IIS 7.0.

Migrar aplicaciones Web entre IIS 6.0 y IIS 7.0 con facilidad
Simplifica la planificación de su migracion de IIS 6.0 a IIS 7.0 determinando incompatibilidades y previsualizando los cambios propuestos antes de iniciar el proceso. Nos permite Aprender acerca de posibles problemas de antemano y nos da la oportunidad de adoptar medidas correctivas y simplifica la migración.

Sincronizar su granja de servidores de forma eficaz
La herramienta de implementación Web permite sincronizar eficientemente los servidores, aplicaciones o sitios en su granja de servidores IIS 7.0 al detectar las diferencias entre el origen y destino de contenido y transferir sólo los cambios que necesitan la sincronización. La herramienta simplifica el proceso de sincronización determinando automáticamente la configuración, contenido y certificados que se sincronicen de un sitio específico. Además del comportamiento predeterminado, todavía tiene la opción para especificar proveedores adicionales para la sincronización, incluyendo bases de datos, objetos COM, GAC ensamblados y configuración del registro.

Empaquetar, archivar e implementar aplicaciones Web más fácilmente
La herramienta de implementación Web le permite empaquetar la configuración y el contenido de las aplicaciones Web instaladas, incluidas las bases de datos y utilizar los paquetes para el almacenamiento o redistribución. Estos paquetes se pueden implementar mediante el Administrador IIS sin necesidad de privilegios administrativos. La herramienta se integra con Visual Studio de 2010 para ayudar a los desarrolladores a optimizar la implementación de aplicaciones Web al servidor Web. La herramienta también se integra con el instalador de plataforma Web para permitirle instalar fácilmente aplicaciones de web de la Comunidad. Puede enviar su propia aplicación a la Galería de aplicaciones Web.

Características

  • Integración transparente con la interfaz del administrador de IIS 7.0 y Visual Studio 2010 para crear paquetes y desplegarlos en una máquina, de forma local y remota.
  • Integración transparente con el instalador de plataforma Web para instalar aplicaciones de web de la Comunidad, simple y fácil.

Paquetes de aplicaciones Web:

  • Capacidad para empaquetar una aplicación Web o un sitio entero, incluyendo las bases de datos asociados.
  • Capacidad para empaquetar las ACL, COM, GAC y registro de configuración.
    Es compatible con "live servers" y paquetes comprimidos como un origen o destino.

Implementación de aplicaciones Web:

  • No se requieren privilegios administrativos para implementar aplicaciones Web.
    Capacidad para agregar parámetros para cambiar el texto en archivos cuando se han implementado (por ejemplo, reemplazar una cadena de conexión al realizar la implementacion).
  • Integración con el IIS 7.0 Web Management Service (WMSVC) para la implementación remota por no administradores.
  • Los administradores de servidores tienen control detallado de las operaciones que pueden llevar a cabo y puede delegar tareas a no administradores.

Migración de servidor Web y sincronización:

  • Capacidad para sincronizar o migrar todo el servidor Web, un sitio o aplicación Web.
  • Sincroniza sólo los datos que han cambiado.
  • Capacidad para detectar dependencias faltantes durante la sincronización.
  • Recopila automáticamente contenido, configuración de IIS, certificados SSL y configuración de ASP.NET al sincronizar un sitio Web.
  • Además del administrador de IIS y Visual Studio 10, se pueden realizar tareas mediante la línea de comandos, cmdlets PowerShell o la API.

Si les gustó les dejo unos links útiles...

Instalar el Web Deployment Tool : http://learn.iis.net/page.aspx/421/installing-the-web-deployment-tool/

Crear un paquete : http://learn.iis.net/page.aspx/514/export-a-package-through-iis-manager/

Instalar un paquete : http://learn.iis.net/page.aspx/515/import-a-package-through-iis-manager/

Espero les sea de utilidad, hasta la proxima!

sábado, 19 de septiembre de 2009

Se liberó la API de administración de servicios de Windows Azure

Se liberó una versión preliminar de la API de administración de servicios de Windows Azure Service para ayudarnos a manejar nuestras implementaciones (deployments), servicios hosteados y cuentas de almacenamiento. Es una API basada en REST mediante la cual podemos gestionar nuestros servicios.

Un vistazo a los detalles de la API

• Puede encontrar la documentación de la misma junto con el resto de la documentación de Azure aquí
• Esta es una API basada en REST la cual usa certificados cliente X509 para realizar la autenticación. Los usuarios pueden subir cualquier certificado valido X509 en formato .cer al portal de desarrollador de Windows Azure y luego usarlo para realizar los request a la API.
• Las siguientes operaciones son soportadas:
  1. Implementaciones: Ver, Crear, Borrar, Intercambiar, Modificar seteos de configuración, Cambiar el número de instancias, y actualizar la implementación.
  2. Ver las propiedades para un servicio hosteado, cuentas de almacenamiento y grupos de afinidad

• Se implemento una herramienta llamada csmanage.exe para ayudarnos a interactuar con esta API. Puede encontrar dicha herramienta aquí junto con algunos ejemplos.

¿Como comenzar?

La documentación tiene información detallada acerca de como comenzar pero a continuación les damos un inicio rápido.
1. El primer paso es generar un certificado válido X509 con un tamaño de clave de por lo menos de 2048 bits. Una manera de hacerlo es usar IIS 7 para generar un certificado autofirmado. Otra opción es usar la herramienta que viene en el SDK de Windows makecert.exe, usando una línea de comando como la que se detalla a continuación:
makecert -r -pe -a sha1 -n "CN=Windows Azure Authentication Certificate" -ss My -len 2048 -sp "Microsoft Enhanced RSA and AES Cryptographic Provider" -sy 24 testcert.cer
2. El siguiente paso es subir el certificado al portal de Windows Azure. El mismo tiene una nueva sección llamada “API Certificates” en la pestaña “Account” donde podemos hacer esto.






3. Usar el certificado del paso uno para realizar cualquier request a la API. La herramienta csmanage es útil para jugar y explorar la funcionalidad ofrecida por la API.

Proximamente…
Los chicos del Azure Team prometieron publicar un librería cliente en .NET de ejemplo, con código fuente incluido, para mostrar la funcionalidad de la nueva API y hacerla mas “comestible” por el resto de los mortales. Como toda API CTP, pueden haber cambios sobre la misma

martes, 8 de septiembre de 2009

Migrar una base de datos a SQL Azure

Hemos estado probando el proceso de migración de una base de datos local hacia SQL Azure. El resultado de dicho proceso lo hemos plasmado en un documento que nos gustaría compartir con uds. Pueden bajarlo de aquí

Si bien es importante leer el documento ya que describe el proceso completo para hacer una migración de una base, además de como conectarse con Management Studio y algunos datos interesantes, les recomiendo bajarse una herramienta que está recién salida del horno (se encuentra en Alpha pero funciona muy bien): SQL Azure Migration Wizard

Espero les sea de utilidad, hasta la próxima!

martes, 1 de septiembre de 2009

CodeRush Xpress para C# y VB - Refactor en VB.NET

¿Dónde está la opción de menú refactor? ¡Esperen, esto es VB.NET, que no tiene esa característica.! Casi de inmediato me puse a buscar y aparecieron en google las soluciones. La más útil fue la CodeRush XPress de Devexpress.com
Esta herramienta nos hace la vida mas sencilla y además ... es gratis!!!.
Puden bajarlo de aquí

sábado, 29 de agosto de 2009

Microsoft Active Professional 2009!



Hoy recibí una linda sorpresa al recibir la distinción de Microsoft Active Professional 2009.

Esta distinción se entrega al 5% de la población de profesionales, con el objetivo de reconocer su activa participación en la comunidad y su compromiso por estar siempre en contacto con los avances de las tecnologías Microsoft.

"En el equipo, tenemos muy claro que el éxito de cualquier proyecto tecnológico no depende exclusivamente del producto.
Son los buenos profesionales los que hacen la diferencia. " dijo Maria Sol Mangino en su nota.

Sin duda este reconocimiento nos hace sentir muy orgullosos y nos motiva a continuar capacitándonos para realizar mejores trabajos.

Muchas gracias al equipo de Microsoft Argentina & Uruguay por el reconocimiento

viernes, 28 de agosto de 2009

Introducción a Microsoft SQL Azure



Microsoft SQL Azure es una base de datos relacional en la nube basada en tecnologías de SQL Server. Mediante el uso de SQL Azure, puede fácilmente suministrar e implementar soluciones de base de datos relacionales a la nube, y tomar ventaja de un centro de datos distribuido que proporciona disponibilidad de clase empresarial, escalabilidad y seguridad con los beneficios de protección de datos y auto corrección inter construidos... Si desea leer el documento completo presione aquí

martes, 25 de agosto de 2009

Bing para Desarrolladores - Realizar Búsquedas desde una aplicación .NET con Bing

Leyendo acerca del motor de búsqueda Bing, encontré que dicho buscador ofrece una API de búsqueda que nos ofrece la opción de usar interfaz REST (XML o JSON) o una interfaz SOAP.
Hemos preparado un documento en el que se muestra un ejemplo de como realizar consultas desde su aplicacion .NET a la API de Bing utlizando SOAP. Para descargar el documento presione aquí
Espero les sea de utilidad. Hasta la próxima!

jueves, 13 de agosto de 2009

SubVersion: Un buen software de control de código.

Cuando comenzamos a programar varios productos con diferentes versiones y con muchas manos metiendo dedo a la vez, nos vimos en la necesidad de adoptar en nuestra empresa un software de control de código. Al principio, la elección nos parecía mas que obvia, ya que usamos Visual Studio Pro, y el compañero "natural" del mismo es Visual Source Safe. Con el correr de los días nos encontramos con dificultades usándolo que no pudimos superar (Por ejemplo : el repositorio de datos se hace pedazos muy a menudo). No me mal interprete, somos hinchas de los productos del Tio Bill, pero la verdad que el VSS se porta bastante mal. En ese momento, un amigo (Gonzalo Ares) que trabaja de IT en otra compañía de software nos menciona un producto que según el funcionaba muy bien y era confiable. Estaba en lo cierto, el producto en cuestión es SubVersion
Subversion es un software de sistema de control de versiones diseñado específicamente para reemplazar al popular CVS. Es software libre bajo una licencia de tipo Apache/BSD y se le conoce también como svn por ser ese el nombre de la herramienta de línea de comandos.
Clientes Windows

Existen varias interfaces a Subversion, ya sea programas individuales como interfaces que lo integran en entornos de desarrollo.
  • TortoiseSVN. Provee integración con el explorador de Windows. Es la interfaz más popular en este sistema operativo.
  • AnkhSVN "Plugin" para Visual Studio para versiones 2002, 2003, 2005, 2008 y 2010, esta última en modo experimental.

Como poner en producción un servidor SVN

  1. Puede instalar svn como un Windows Service bajando los binarios de subversion y luego ejecutando la siguiente linea: c:\svn\svnserve.exe --service --root C:\Repositories
  2. Otra opcion es bajarse el producto Visual SVN Server el cual es un paquete que contiene todo lo que se necesita para instalar, configurar y manejar un servidor SVN. Incluye Subversion, Apache y una consola de administración

Uso y reconocimiento

Subversion es muy conocido en la comunidad de software libre y se utiliza en muchos proyectos, incluyendo la fundación del software de Apache, KDE, GNOME, Free Pascal, FreeBSD, GCC, Python, Django, Ruby, Mono, SourceForge.net, ExtJS y Tigris.org. El servicio Google Code también proporciona almacenamiento Subversion para sus proyectos de software libre. Los sistemas de BountySource lo utilizan exclusivamente. Codeplex ofrece acceso tanto para Subversión como para otros tipos de clientes. Subversión también está siendo adoptado en el mundo corporativo. En un informe 2007 de Forrester Research, reconocía a Subversion como el único líder en la categoría de sistema de control de versiones.

Referencias y manuales

Página oficial del proyecto
Control de versiones con Subversion - Manual en español
Cliente de Subversion para Windows
Tutorial y material en PDF en español
Manual en español sobre instalación de un servidor Subversion sobre Linux
Instalación, configuración y uso de Subversion en Linux
Como montar un servidor Subversion en 28 segundos
Instalación de repositorio local
Otorgar permisos a usuarios en SVN
StatSVN Subversion stats
Guía Subversion

Espero les haya servido, y hasta la próxima!

jueves, 6 de agosto de 2009

Usando certificados en WCF de manera sencilla

Hace un tiempo tuvimos que implementar una solución en un shared hosting (ej. http://www.ixwebhosting.com, http://www.solowindows.com, etc) en el cual teniamos un WCF service y necesitabamos realizar la autenticación del servidor mediante un certificado. Obviamente, en este tipo de servidores no es posible acceder al store de certificados. Pero encontramos una manera de sortear este inconveniente y deseamos compartir con uds. esta experiencia. Para descargar el documento que explica como hacerlo presione aquí. Esperamos les sea de utilidad. Hasta la próxima!

miércoles, 5 de agosto de 2009

La ética de los artesanos del software - The Software Craftsman's Ethic

Para inaugurar el mes, quiero reproducir el manifiesto de los artesanos del software, que es en gran medida, lo que sentimos con mi socio acerca del significado del desarrollo del software.
Los que hace mucho tiempo que estamos en esto (les estoy hablando de que empezamos programando en las zx80) siempre nos encontramos ante las mismas preguntas : ¿Que es hacer buen software? Es tener una certificación CMMI, ISO? Procesos o talento?
Seguramente, el camino correcto pasa por algún punto medio, lo que en cierta medida también nos lleva a pensar un poco acerca del modelo actual de "Software Factories", hacer software es como hacer chorizos? ... mmm... creemos que no.
Realmente, es un tema muy opinable, por lo que desde ya los invito a dejarme sus refkexiones al respecto. Saludos y hasta la próxima!

We Care
We consider it our responsibility
to gain the trust of the businesses we serve;
therefore, we
take our customer's problems as seriously as they do and
stake our reputation on the quality of the work we produce
.

We Practice
We consider it our responsibility
to write code that is defect-free, proven, readable, understandable and malleable;
therefore, we
follow our chosen practices meticulously even under pressure and
practice our techniques regularly.

We Learn
We consider it our responsibility
to hone our craft in pursuit of mastery;
therefore, we
continuously explore new technologies and
read and study the work of other craftsmen.

We Share
We consider it our responsibility
to perpetuate the craft of Software;
therefore, we
enlist apprentices to learn it and
actively engage other craftsmen in dialogue and practice.

**************************************************************************************************************

jueves, 30 de julio de 2009

Windows Azure : Ejemplo de almacenamiento

Bueno gente, llegó la entrega final de este material, para el mismo, hemos decidimos compartir con ustedes una pequeña solución que creamos para poner en práctica todos los conocimientos de los que hemos estado hablando. Se trata de una pequeña grilla de contactos y un formview que muestra el detalle del registro en el que estamos posicionados. Los datos del contacto se guardan en un tabla y la foto de los contactos son almacenados en un blob container. Algo interesante de este ejemplo, es que incorpora los controles de membership estándar de ASP.NET y como verá en dicho ejemplo, funcionan de manera transparente. Se estará preguntando cómo es esto? Bien, la "magia" la hacen unos proyectos agregados a la solución que son partes de los proyectos de ejemplo que vienen con el sdk. Para que este ejemplo funcione correctamente, debe descomprimir el archivo samples.zip que se encuentra en C:\Program Files\Windows Azure SDK\v1.0 debajo de dicha carpeta (debe tener el SDK instalado).

Los proyectos usados de los sdk samples son:

  • AspProviders - C:\Program Files\Windows Azure SDK\v1.0\samples\AspProviders\Lib\bin\Debug\AspProviders.dll
  • StorageClient - C:\Program Files\Windows Azure SDK\v1.0\samples\StorageClient\Lib\bin\Debug\StorageClient.dll

Por razones obvias, no hemos puesto una AccountSharedKey en los archivos de configuración (ServiceConfiguration.cscfg y web.config), por lo que debe sustituir los datos de la cuenta por los suyos propios. Algo que nos quedo en el debe es el uso de colas y agregar un worker role a la solución que procese esa cola, pero bueno, si nos disculpan quedará para la versión 2.0
Esperamos que les haya gustado y les sea útil. Para bajar el proyecto
haga clic aquí. Un abrazo, y hasta la próxima!

Windows Azure Storage: Colas

Hola a todos, Siguiendo con la serie de documentos acerca de Windows Azure, les dejo una nueva entrega, en la cual hablaremos de Colas en Windows Azure. Pueden descargarlo de aquí. Hasta la próxima!

lunes, 27 de julio de 2009

Windows Azure Storage: BLOBS

Hola a todos, Siguiendo con la serie de documentos acerca de Windows Azure, les dejo una nueva entrega, en la cual hablaremos de BLOBS en Windows Azure. Pueden descargarlo de aquí. Hasta la próxima!

jueves, 23 de julio de 2009

Despliegue de una aplicación en Windows Azure (Deploy)

Seguimos hablando de Azure, en este caso les dejo un documento acerca de como desplegar una aplicacion en Windows Azure. Pueden descargarlo de aquí . Hasta la próxima!

Windows Azure Storage: Tablas

Hola a todos, Siguiendo con la serie de documentos acerca de Windows Azure, les dejo la segunda entrega, en la cual hablaremos de Tablas en Windows Azure. Pueden descargarlo de aquí. Hasta la próxima!

miércoles, 15 de julio de 2009

Herramientas para Windows Azure

Trabajando con el almacenamiento de Windows Azure me he encontrado con la necesidad de algunas herramientas las cuales les paso a detallar:

1. Windows Azure Management Tool (MMC): Las herramientas de manejo de Windows Azure fueron creadas para manejar sus cuentas de almacenamiento. Esta herramienta permite entre otras cosas: crear y realizar operaciones sobre BLOBS y COLAS. Permite tambien manejar los contenedores, blobs y permisos. Agregar y quitar colas, inspeccionar, agregar mensajes y vaciar una cola. Para descargarlas haga clic aquí

2. WPF Windows Azure Log Viewer: Bill Lodin ha construido una aplicacion WPF para leer logs de Windows Azure. Leer los logs no es una tarea trivial en Windows Azure, les sugiero chequearlo ya que tiene una interfase muy linda y caracteristicas básicas de filtrado. Para bajarlo haga clic aquí. Un detalle no menor acerca de esta utilidad es que antes de usarla, debe presionar el botón "Configure" dentro de la solución de Azure (En la misma ventana que hacemos el deploy) . y luego presione Copy Logs - Esto crea un Blob container con el nombre que se especifica en la casilla "Container Name" situada a la izquierda del botón Copy Logs. Finalmente abrimos el Log Viewer y ahora si podremos ver el contenido del Log.

WPF Windows Azure Log Viewer

WPF Windows Azure Log Viewer


Windows Azure Management Tool (MMC)

lunes, 13 de julio de 2009

Windows Azure Storage

Les doy la bienvenida a mi blog, y lo voy a estrenar compartiendo un pdf que estamos armando con mi socio (Leonardo Borzillo), que intenta dar una introducción a la nueva plataforma de servicios en la nube de Microsoft llamada Windows Azure y mas específicamente hablaremos de Windows Azure Storage y como desplegar una aplicación en Azure. Estén atentos, ya que el documento se va actualizar a medida que lo vayamos completando. Saludos y nos "vemos" en la próxima entrada. descargue el documento aquí (Tengan un poco de paciencia porque demora en descargar)