lunes, 22 de diciembre de 2008

Excelente Articulo sobre el manejo de colas en Project Server 2007

Una breve y concisa explicación sobre los estados de la cola y como enfrentar algunos problemas cotidianos con la misma. En mi experiencia personal me ha servidor para entender y resolver algunos problemas con la trabajos en la cola de Project Server 2007, por lo que se los recomiendo. Esta en habla inglesa pero con mucha claridad sus explicaciones. Aquí les dejo el enlace:

http://blogs.msdn.com/brismith/archive/2007/02/28/my-queue-is-stuck-how-to-manage-your-queue-service-in-project-server-2007.aspx

Hasta la próxima!,

Manolo Herrera

martes, 16 de diciembre de 2008

Parser Error en SharePoint luego de crear una nueva aplicación o un nueva colección de sitios

Server Error in '/' Application.

Parser Error

Description: An error occurred during the parsing of a resource required to service this request. Please review the following specific parse error details and modify your source file appropriately.
Parser Error Message: Data at the root level is invalid. Line 1, position 1.
Source Error:

Line 1:  <browsers>
Line 2: <browser id="Safari2" parentID="Safari1Plus">
Line 3: <controlAdapters>


Source File: /App_Browsers/compat.browser Line: 1





No se porque SharePoint crea una archivo que no puede interpretar para la compatibilidad de otros navegadores, pero resolver el problema es muy sencillo deberá a ir al directorio donde se encuentra APP_Browsers de la aplicación nueva que creo si es el puerto 80 debería estar en el siguiente directorio:



C:\inetpub\wwwroot\wss\VirtualDirectories\80\App_Browsers



Si es en otro puerto como el 31305 por ejemplo debería de ser el siguiente:



C:\inetpub\wwwroot\wss\VirtualDirectories\31305\App_Browsers





Elimine todo el contenido de dicho directorio que basicamente es un archivo xml y posiblemente un directorio _vti_cnf. Reinicie el IIS desde la consola o desde linea de comando con IISReset y listo con ello debería de eliminar el problema.



Hasta la próxima,





Manolo Herrera

Ultima Reunión de Este año de la Comunidad

Queridos amigos, llegamos a un año mas de reunirnos como comunidad de desarrolladores en la tecnología .NET de Microsoft. Queremos invitarlos para que estén con nosotros este miércoles 17 de diciembre del 2008 con nosotros en las nuevas oficinas de Executrain en el edificio Sixtino de la zona 10.

Aquí les dejo la información:

http://www.prosisco.com.gt/2008/traslado/traslado2.html

Mapa:

http://www.prosisco.com.gt/2008/traslado/mapa.jpg

Los estaremos esperando habrán premios, y compartiremos una mesa redonda sobre temas diversos que les interesa a la comunidad de desarrolladores.

Atentamente,

Manolo Herrera

viernes, 28 de noviembre de 2008

Los esperamos en el eXperts RoadShow'08

La reunión de la comunidad este día se cancela y los esperamos a todos en el eXperts RoadShow.

Ciudad: Guatemala - Guatemala

Fecha: 03-Dic

Hora: 14:00

Lugar: Universidad Galileo

Dirección: 7a. Avenida, calle Dr. Eduardo Suger Cofiño, Zona 10, Guatemala

Mas información en: http://www.microsoft.com/multicountryamericas/msdn/roadshow/default.aspx

Saludos,

Manolo Herrera

Executrain cambio de dirección y las reuniones de la comunidad también

Executrain, el sponsor oficial de la Comunidad de desarrolladores .NET en Guatemala, se ha cambiado de domicilio ahora están en el nuevo edificio Sixtino de la 6ta Avenida de la zona 10, Oficina 312, así que lo que resta del año, y el próximo año los esperamos por allí.

Aquí les dejo la información:

http://www.prosisco.com.gt/2008/traslado/traslado2.html

Mapa:

http://www.prosisco.com.gt/2008/traslado/mapa.jpg

Parqueo aún costado Q30.00 las 3 horas o Q14.00 la hora, en el parqueo del edificio.

Saludos,

Manolo Herrera

Una Introducción al desarrollo para SharePoint con Microsoft Visual Studio 2008 (WebCast)

¿Usted es un desarrollador de .NET? Ya es hora de que aprenda lo básico del desarrollo de SharePoint, el cual se integró por completo en ASP.NET. Este recorrido el presenta los diversos lugares en SharePoint en los cuales puede desarrollar y ampliar como desarrollador. Observaremos los nuevos conceptos de SharePoint que los desarrolladores .NET deben conocer. Analizaremos lo más destacado como las partes Web, el flujo de trabajo, las definiciones de listas, los administradores de eventos para listas y las bibliotecas de documentos, los tipos de contenido personalizado, y el conector de datos de negocios. Las demostraciones utilizarán las extensiones de Visual Studio para SharePoint para mostrar cómo empezar a desarrollar algunos de estos componentes.

http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032389978&Culture=es-AR

Espero les anime para conocer mas de esta tecnología!,

Manolo Herrera

El nuevo paradigma para desarrollo con Servicios de Datos en la Web (WebCast)

En esta sesión analizaremos los Servicios de datos de ADO.NET y veremos cómo funcionan para el nuevo paradigma para el desarrollo de datos con los servicios de datos basados en el Web. Cubriremos Entity Framework, ADO.NET, los Servicios de datos de ADO.NET y veremos cómo podemos desarrollar rápidamente aplicaciones y consumir servicios de datos.

http://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?culture=es-AR&EventID=1032389869&CountryCode=AR

Espero les sirva y despierte su interés!,

Manolo Herrera

Las fuerzas irresistibles encuentran a los objetos móviles (WebCast)

Existe un enorme grupo de fuerzas económicas desatadas en nuestra industria actual que nos obligan a cambiar la forma en que creamos aplicaciones. Desde diversos procesadores de núcleo, centros de datos de bajo extremo, hasta la altura de ‘Conectividad intermitente dominante' y la redefinición del cliente, esta sesión proporciona una perspectiva única del cambiante panorama y formula la pregunta: ¿Cómo podemos crear aplicaciones a las que se puedan aproximar los implementadores, sean adecuadas en sus implementaciones y puedan responder a estas fuerzas económicas y técnicas que nos presionan? Esta plática es acerca de una visión y no se trata de anuncios de productos. ¡Inspírese en el futuro y únase a nosotros!

http://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?culture=es-AR&EventID=1032386332&CountryCode=AR

Hasta la próxima!,

Manolo Herrera

martes, 4 de noviembre de 2008

Reuniones de la comunidad en Noviembre del 2008

Queridos amigos de la comunidad, los esperamos mañana 5 de noviembre a las 18:30 en Executrain 4to nivel de comerciales en Centro Comercial los proceres (mas información de la ubicacion en el sitio de la comunidad http://guatecommunity.net/)

Introducción a ADO.Net Data Services y Sync Framework, Marlon Ramos,05/11/2008 (Mejor expositor de la region)

Y les adelanto la proxima reunion de noviembre:
Como implementar una metodologia de trabajo en mi empresa, Carlos Lone,19/11/2008
-- Saludos,


Manolo Herrera

jueves, 23 de octubre de 2008

Tip SharePoint: Pasos para incluir un columna en el motor de búsqueda

Para los que no estaban enterados MOSS 2007 es decir SharePoint Server 2007 extiende la funcionalidad del motor de búsqueda, a nivel de un buscador de la red. Pero la pregunta es como lo ponemos a trabajar para nosotros. Primo vamos a ver como hacer que la metada este incluida en el crawling de SharePoint y luego como esto lo podemos utilizar para desarrollar WebParts personalizados de búsqueda.

Iniciemos con la metada; Es la información sobre la data. La información dentro de SharePoint identificadas como columnas de una lista o un documento.

1) Debemos indicarle que dichas columnas se utilizaran como índices de la búsqueda, para ello vaya a la lista o documento , seleccione Settings y en la caso de Libreria de Documentos Document Library Settings, Index Columns, y seleccione aquellas columnas que desea sean incluídas en la busqueda como aparece abajo:

image

Presione Ok. , antes de pasar al segundo paso, debemos de crear un elemento de la librería de documentos o de la lista y luego ejecutar un crawling para que la columna aparezca disponible para ello haga los pasos 8 y9.

2) Vaya al Proveedor de Servicios Compartidos (Esta opcional solo la tiene Moss 2007 y no Services y deberá estar instalada). Para acceder a ella vaya a "Central Administration". Que es el sitio de administrador normalmente esta en http://nombreservidor:puertoasignado. Luego en el menu del proveedor de servicios compartidos como se muestra abajo:

image

Normalmente dice SharedServiceProvider1.

3) Bajo el titulo de Serach, seleccione Search Settings, como muestra a continuación:

image

4) Luego seleccione Metadata property mappings

image

5) Luego seleccione New Managed Property

image

6) Ingrese un nombre que puede utilizar el nombre de la columna entre tanto no sea un nombre que ya se haya utilizado, seleccione de que tiempo, seleccione el botón de add mappings para buscar la columna indexada.

image

Importante seleccione la opción: Allow this property to be used in scopes. Ya que esto nos permitirá utilizarla en el código en el modelo de búsqueda, como por ejemplo, si nuestra propiedad del ejemplo es Ubicacion podrías hacer lo siguiente: "select Id, Title, Ubicacion from scopes() where FREETEXT(Ubicacion,"Oeste") order by Title" (En otro post hablaremos detallaremos mas esto).

7) Si no lo encuentra debe de ejecutar un crawling y para que el crawling incluya esta columna el índice por lo menos un elemento del documento o lista.

image

8) Para finalizar debemos de ejecutar un crawling de Búsqueda. Seleccione nuevamente Search Settings.

9) Luego Content sources and crawl schedules, haga clic derecho sobre la fuente de contenido a la que pertenece la columna, normalmente es local Office SharePoint Server Sites y seleccione Full o Incremental, por ultimo selección Search Settings, y espere unos minutos y haga refresh a la pagina para ver si ya termino.

image

10) Para finalizar realice una busque con un valor de esta columna y debería mostrarle por lo menos esa información.

Saludos amigos del planeta SharePoint, Hasta la próxima!,

Manolo Herrera

Tip SharePoint: Ud. sabia que el nivel de permisos son Acumulativos

Este artículos para los que ya tienen algún tiempo jugando con SharePoint, y se han preguntado porque son Cajitas de selección en vez de botones de radio excluyentes.

Algo que aprendí recientemente, básicamente no hay denegación de servicios sino solamente activación de permiso, por ello usted encontrará que en SharePoint son Check Boxes, indicando que cada cajita seleccionada, suma o acumula el permiso, por ello no puede haber una contradicción, ni tampoco que toma el mayor o menor permiso, sino que va acumulando los servicios, permiso de lectura se suma al de escritura, al de administración, etc.

image

Ahora le hace mas sentido los check boxes.. eso espero.

Code4Fun! amigous!,

Manolo Herrera

viernes, 10 de octubre de 2008

Con un visión amplia desde Argentina

Los amigos de Conexion IT desde Argentina inician su travesía para construir una Red Social de personas de habla hispana que se ocupan o gustan de la Tecnología. 

En palabras de Alejandro:

"Somos un equipo multidisciplinario en el que
hay un diseñador, una socióloga, una administradora de empresas y quien escribe, ingeniero en informática. Considero que era hora que los informáticos tengamos nuestra propia red social y nos juntemos para colaborar entre nosotros."

Mi invitación para mis amigos lectores, visiten el sitio y hagamos que este mundo cada vez mas sea mas pequeño y estemos entre nosotros mas y mejor conectados.

Hasta la próxima!,

 

Manolo Herrera

viernes, 3 de octubre de 2008

Object reference not set to an instance deploying a Web Part with VSeWSS tool

Síntoma:

Si el error le da a pesar que probo con el ejemplo de "Hello Word" que viene en la plantilla muy probablemente es un error de permisos.

Plataformas Instaladas:

Windows Vista

Visual Studio 2005 y 2008

WSS 3.0 o MOSS 2007

Solución:

Debe ejecutar Visual Studio como Administrador

http://jmhogua.blogspot.com/2008/08/access-denied-en-visual-studio-2008-con.html

Hasta la vista amigos!,

Manolo Herrera

Plusvalía en la Red

Plusvalía en un termino utilizado en bienes raíces, y es algo que ha estado tomando forma en la Red. Hoy en día todos podemos comprar el servicio de alquiler llamado "hosting", o tener el propio. Y es relativamente barato, pero si la información es poder, y las empresas pagan cada día mas por el la cantidad de usuarios que pueden ser alcanzados por un sitio, pongale atención a esto y vea una inversión a 10 o 15 años, de cualquier tipo de sitio, dará sus reditos, como no lo podrá imaginar!.

Pero tiene que haber empezado ya, y no desistir. Porque esto será un termino que se acuñara de tal forma que nuestra riqueza se medirá por el valor que tenemos invertido en la Red, y podrá negociar como cuando esta vendiendo un bien, el valor de su sitio, que comercialmente hablando tendrá un alto valor.

Piense en inversión de largo plazo, e inicie su inversión en la red. Google ha demostrado haber llegado a todo el mundo, una buena idea en la red ha demostrado aceptación mundial, pero para que sea buena idea, necesita empezar con algo y continuar desarrollando la idea.

No todos tenemos el mismo nivel en la Red, siempre habrán algunos que están adelantados, y otros que están atrás de nosotros, aproveche esa oportunidad, no desestime su idea, empiece con algo, publiquelo en la red, e inicie su desarrollo, que a largo plazo, veras réditos que no se imaginaba, pero será un acto de fe al principio, luego de tenacidad y por ultimo comerá de los frutos de sus ideas.

Yo ya empecé, tengo mas ideas, y sigo generando nuevas, cuando va empezar usted amigo, "si no esta en la red no existe", así que enseñele al mundo que usted es alguien. Hoy estamos a viernes 3 de octubre del 2008 en occidente, recuerdelo que en pocos 10 años esto será historia para usted, o un gran éxito que este disfrutando.

Nos vemos en la red! ;)

Manolo Herrera

jueves, 2 de octubre de 2008

A pesar que ejecutamos stsadm.exe para desintalar una "feature" en SharePoint nos indica Visual Studio que aún esta instalada.

Valido para: Visual Studio 2005 y 2008. En especial con la herramienta VSeWSS (Visual Studio Extensions for Windows SharePoint Services).

Luego de haber ejecutado este comando:

stsadm.exe -o uninstallfeature -name "Solicitud de Agencia" -force

Me dio el siguiente error:

The feature name [my feature name] already exists in SharePoint. You need to rename the feature before solution deployment can succeed.

Solución:

Abra el Explorador vaya a C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\FEATURES\ y elemine el directorio con el nombre de la "feature".

Si aún le da el mismo error, cierre VS, espere un momento, e intentelo de nuevo.

Hasta la próxima!,

Manolo Herrera

martes, 30 de septiembre de 2008

Error al intentar abrir un proyecto desde Proyect Server

Síntoma:

Cuando acabas de guardar un nuevo proyecto, y te permite guardarlo, e incluso publicarlo. Pero luego cierras el proyecto y no te permite abrir no indicando donde este el origen del error. Si puedes publicar un proyecto y luego no abrirlo son señales que hay algo que esta impidiendo que puedas comunicarte con el Proyect Server, y tengas instalado algún firewall en tu computador, muy probablemente esta es la causa.

Solución:

La solución es avisar al departamento de IT, para que te ayude, o configurarlo tu o simplemente desintala dicho FireWall a nosotros nos sucedió con el firewall de Norton que muy restrictivo por default, por la premura de tiempo y como no era el estándar de la empresa, procedimos desintalarlo, y esto soluciono el problema con la comunicación de Proyect Server. Si es el Firewall standard que utiliza la compañía deberás indagar el puerto conque se comunica Project Server y habilitarlo en el firewall para poderte comunicar adecuadamente.

Espero te ayude esta rápida solución. Hasta la próxima!.

Manolo Herrera

Reuniones de la comunidad en Octubre 2008

Quiero hacerles formalmente la invitación a las próximas reuniones de Octubre del 2008.

Tendremos con nosotros a nuestro MVP Luis Alfaro con el tema F# (wikipedia: is a multi-paradigm programming language, targeting the .NET Framework, that encompasses functional programming as well as imperative object-oriented programming disciplines.) el miércoles 8 de octubre.

Y continuaremos la tercera parte de la mesa redonda con nuestro amigo Cristian Prieto el cual hablará sobre disciplinas y herramientas de prueba como lo son: TDD, BDD, Mocking, etc. El 22 de Octubre.

Así que no faltes a ninguna de ellas y sumate a los desarrolladores que estamos hambrientos de conocimientos.

Te esperamos,

Manolo Herrera

lunes, 29 de septiembre de 2008

patterns & practices: App Arch Guide project ahora disponible!

La nueva guía de los amigos de P&P sobre las aplicaciones construidas sobre el .NET Framework  ofrece una guía a nivel de diseño sobre la arquitectura de las aplicaciones.  Enfocada en los tipos de aplicaciones mas comunes: Aplicaciones en capas, componentes, servicios y  llevan al lector sobre las características claves del diseño de cada una de ellas.

Para los interesados esta es la dirección: http://www.codeplex.com/AppArch

Una imagen sobre el marco de trabajo conceptual de la guía.

image

 

Saludos,

 

Manolo Herrera

sábado, 20 de septiembre de 2008

Avanzando en el desarrollo de SharePoint a Mejores Practicas y Modelos de desarrollo

Desde que inicie mi carrera de aprendizaje en SharePoint pude notar la ausencia de buenas prácticas de desarrollo con el Modelo de Objectos de SharePoint que para nada es amigable y abierto, sino rígido y algo limitado para aplicar TDD y una forma desconectada y desacoplada para probar nuestro lógica dentro de dicho modelo.

Hay una necesidad imperante de mejorar este modelo actual del cual tenemos de coexistir y desarrollar por la gran demanda que hay hoy en día de esta plataforma muy productiva de Portales y Colaboración.

Motivado por esta imperiosa necesidad, por la iniciativa de los amigos de Patterns & Practices con su SharePoint Guidance para SharePoint, por el articulo de Francis Cheung sobre "Unit Testing para SharePoint Apps", y por ultimo por la influencia de El Diseño Basado en Dominio, me veo en la obligación de publicar este y una serie de artículos que desarrollare para contribuir a el esparcimiento de mejores prácticas de desarrollo para el modelo de objetos de SharePoint, junto con soluciones que ayuden y den como resultado la practica de TDD y patrones dentro de este ambiente deliberadamente hostil hasta esta versión.

Iniciemos con describir a lo que nos enfrentamos:

image

En español, es difícil separarnos del ambiente conectado, y emularlo para nuestras pruebas unitarias o Unit Testing, porque las interfaces (fundamental para Implementar Mocking dentro de Unit Testing) son escasamente utilizadas dentro del modelo de objetos de SharePoint.

Para incrementar la dificultad están selladas, es decir no podemos sobrescribir, ni sus propiedades, ni sus métodos, ni tampoco heredaras (esto se hizo apropósito me imagino y con justificada razón para asegurar el buen comportamiento, pero dejaron a las pruebas unitarias entre otras cosas).

Ajuste de penas!, como por si fuera poco los constructores de las clases son internos por lo que no podemos crear en memoria para emular estos objetos fuera del contexto conectado las clases del modelo de SharePoint, esto si que fue adrede colocar esta complejidad (Algo desconfiados mis amigos del Equipo de SharePoint).

Y para las colecciones no tiene métodos Add y no implementan el IEnumerable para agregar picante el problema, Es decir no puedo utilizar LinQ en la colecciones de SharePoint porque no implementan la interfase mas básica de las colecciones. Esto si es el colmo!, pero no se asuste amigo, hay formas de usar LinQ dentro de SharePoint, aunque no sean las nativas (Vea este enlace LintQ to SharePoint).

image

Que opciones para realizar pruebas unitarias tenemos entonces!:

Bueno primero pues nos que damos con lo establecido (Status Quo), es decir contra una instancia en vivo de SharePoint, Ugh!. Aunque ya podemos instalar SharePoint en Windows Vista, para realizar un prueba sencilla necesitamos hacer un deployment o por lo menos una copia de dll nuevo, No way!, para esto esto todo este discurso para encontrar otra solución.

Una solución elegante, pero tediosa y difícil es crear clases Wrapper y Facade para separar el modelo conectado con las pruebas unitarias a esto le llamamos "Separation of Concers", hablaremos mas adelante de este tema. Pero que si podemos generarlo con la ayuda de una aplicación, ya no suena tan mal y esta solución pueda que se las presente en siguientes post en mi blog. Pero por le momento diremos que es una solución no tan viable si la desarrollamos a manita.

Hay por allí unos magos que inventario una herramienta para eliminar las barreras de constructores internos y clases selladas para podemos emular estos objetos y desarrollaron esta herramienta denominada Typemock Isolator la cual cubre el 80% de código dentro del modelo de objetos de SharePoint, el cual es un porcentaje aceptable para asegurar la tranquilidad de los desarrolladores en la plataforma SharePoint, especialmente los que hoy en día no validan nada y esta corrigiendo constantemente sus errores por no tener cobertura de pruebas de su código.

image

Así que la motivación para el cambio es esta frase: "La separación de las áreas de preocupación, de los aspectos", para concentrarnos por separado en cada una de ellas. Esto implica la independencia y separación de responsabilidad de cada objeto dentro de mi área de preocupación, aspecto o concern. Y esto es lo que pretendemos hacer en el modelo de objetos de SharePoint, es separarnos de el para probar nuestra lógica de este modelo y al mismo tiempo estemos integrados para que luego encajando los concerns (mi lógica y el modelo de objetos de SharePoint) obtengamos una aplicación que funcione, y que este asegurada en un buen margen para nuestra tranquilidad y la mantenibilidad de nuestra solución.

image

Así que unidos todos estos argumentos desarrollamos el siguiente modelo(gracias a nuestro amigo Cheung):

Utilizar el patrón MVP o Model View Presenter que lo que hará para el caso de los WebParts dentro de SharePoint es separar la Vista o Control de Usuario del Presentador y este a su vez del Modelo (mi lógica de negocio el dominio). Este patrón esta muy bien documentado en la red y básicamente podemos hacer lo siguiente de una manera muy práctica y ligera:

Definimos dos interfases, que nos servirán de base para aplicar el patrón y luego para utilizar de plantilla para la interfase particular de cada WebPart:

public interface IViewBase
{
string MensajeError { set;}
}

Esta propiedad será la base para recordarnos que la forma para acceder la vista o user control será a través de una interfase que herede de esta y que por lo menos maneje los mensajes de error para la interfase de usuario (disculpe si le hablo en chino pero es de madrugada y no quiero hacer un libro, sino solo un articulo de este tema).

La segunda interfase será para el presentador el que va a contener la lógica del control no así del dominio que es una capa mas abajo. Este es el código:

public interface IPresenterBase
{
void SetView(IViewBase view);
}

Esta interfase me recordará que debo implementar en mi clase Presentador este método donde debo de pasarle la instancia de mi vista al presentador, de esta forma:

public class TareaPendientePresentador : IPresenterBase
{
private IViewBase _view;
public void SetView(IViewBase view)
{
_view = view;
}

}

Y en mi control de usuario o WebPart (depende como hagamos la implementación del WebPart) implementamos la interfase IViewBase o la que hereda de esta, de la siguiente forma:

public partial class Demo : System.Web.UI.UserControl, IViewBase
{
private readonly TareaPendientePresentador presentador = new TareaPendientePresentador();


protected void Page_Load(object sender, EventArgs e)
{
presentador.SetView(this);
}

public string MensajeError
{
set
{
ContenedorMensaje.InnerText = value;
}
}
protected override void CreateChildControls()
{
presentador.MostrarTareas();

}

}

image

De esta forma ya separamos la vista del presentador, luego a través de servicios o un controlador podemos acceder a nuestro modelo (en otro post profundizare en este tema y mostrare el código), que es donde esta la lógica que deseamos probar, lejos del aspecto de la capa de presentación, de la lógica de esta para concentrarnos en nuestro modelo. cada aspecto deberá ser probado gracias a que logramos separarlos.

image

Regresemos a donde íbamos, El Patrón que sigue es el Repositorio, este con el fin de encapsular las listad dentro de SharePoint, he aquí la separación del modelo de objetos de SharePoint y mi lógica si lo vemos en capas el Patrón MVP esta adelante iniciando del de la capa 7 de presentación y el patrón de Repositorio esta luego de la separación de mi modelo en la capa de Acceso a Datos que en este caso es a las listas de SharePoint donde se persiste la información de este modelo de programación. Quiero aclarar Mi modelo es mi lógica es lo que deseo enfocarme, el modelo de SharePoint son la definición de las clases que utiliza para representar la persistencia de la información almacenada en la bases de datos de SharePoint.

image

Y por último utilice TypeMock para emular el API de SharePoint, y este es el que le da el jaque mate a levantar una instancia de SharePoint para probar nuestro código este creará de una forma emulada la API de SharePoint para que yo pueda probar mi código sin necesidad de tener que estar haciendo el deployment por cada cambio y prueba que deseo realizar.

Así que amigos, esta es la primera parte de una serie de post donde implementaremos esta solución, e incluiré referencias a la Guidance de P&P, para que vayamos juntos por el camino para desarrollar soluciones dentro de SharePoint de una forma mas asegurada y profesional, minimizando los errores y disfrutando de lo que nos gusta hacer Code4Fun!.

Nos vemos luego!,

Manolo Herrera

martes, 16 de septiembre de 2008

La saga continua... segunda parte de la mesa redonda

Debido al interés mostrado por los asistentes de la primera mesa redonda de la comunidad que compartimos sobre los orígenes de El  Diseño basado en Dominio, nuestro amigo Cristian Prieto continuará el tema este miércoles 24 de Septiembre del 2008.

En palabras de nuestro amigo:

"Los esperamos para la continuación dentro de 15 días, partiremos un
poco de los conceptos de DDD que brindamos en la charla anterior y
ahondaremos en el "proceso" de la construcción, como alcanzar mejor
calidad mediante sencillas prácticas como CI, DBC, TDD, BDD y
desarrollo iterativo."

Así que los esperamos, para compartir y aprender de estas téncias, disciplinas y tendencias de la industria hoy en día.

Nos reunimos en Executrain, Centro Comercial los Proceres, a las 18:30 hrs. Entrada por el parqueo 4to nivel de comerciales. El costo del parqueo antes de las 9:00 son Q 5.00 y después de las 9:00 p.m. es Q 30.00.

Hasta el próximo miércoles amigos!,

 

Manolo Herrera

Lo que no debemos de olvidar cuando hacemos el primera instalación (o deployment) de un Web Part en SharePoint

  1. Construya el proyecto para que se cree el ensamblado (DLL).

El Procedimiento de instalación por primera vez es este:

  1. Copie el dll del proyecto en Visual Studio en el directorio bin del servidor donde esta instalado MOSS 2007 (normalmente es C:\Inetpub\wwwroot\wss\VirtualDirectories\80\bin; donde 80 es el puerto de la aplicación web de nuestro portal, encontrará varios números porque por lo menos encontrara otras aplicaciones web como Central Administration, y la aplicación del proveedor de servicios compartidos o SSP en el caso de MOSS 2007).
  2. Copie los archivos con extensión .ascx al directorio donde indico que estaban ubicados en el proyecto o simplemente en el directorio base de la aplicación web es decir en C:\Inetpub\wwwroot\wss\VirtualDirectories\80.
  3. Registre el Web Part como un Safe control en el web.config.

<SafeControl Assembly="Nombre del dll sin extensión" Namespace="Espacio de Nombre" TypeName="*" Safe="True" />

Un ejemplo:

<SafeControl Assembly="MiWebPart" Namespace="MiCompania.WebParts" TypeName="*" Safe="True" />

3. Eleve el nivel de confianza de la aplicación para que acepte los Web Parts personalizados. Vaya al Web.config y modifique la sección trust level:

< trust level ="Full" originUrl="" />

4. Publique el Web Part en la galería de Web Part de la colección de sitios.

5. Finalmente Agregue el Web Part en una página de Web Parts.

Code4Fun!,

Manolo Herrera

Desarrollo Basado en el Comportamiento o BDD

Creo que los principios orientados a Objetos o mas conocido como OOP han encontrado eco a lo largo de los años, y disciplinas recientes han enfatizado la importancia de los mismos, en otras palabras la madurez de esta teoría hoy en día se ve mas cercana a la práctica y el uso generalizado de estas herramientas permitirán que llegemos a dicha madurez.

El Desarrollo Basado en el Comportamiento o Behaivor Driven Design, desafía a los desarrolladores a cuestionar cuales son las responsabilidades que ellos asigna a sus clases son apropiadas o pueden delegarse o moverse a otra clase. Cuestionarse de esta forma y utilizar Mocks para llenar los roles requeridos de colaboración de las clases, promueve el uso de interfaces basadas en roles, y esto también ayuda a mantener las clases pequeñas y desacopladas.

Al igual que el Diseño Basado en Dominio este describe el propósito y beneficio de su código.

Permite a los desarrolladores concentrarse en por qué el código debería de ser creado, en vez de los detalles técnicos, y minimiza la traducción entre el lenguaje en el cual se escribe y el lenguaje hablado por los usuarios.

(Extracto de WikiPedia)

Al final el Desarrollo Basado en Comportamiento no es mas que la evolución del Desarrollo Orientado a Pruebas o TDD. Veamos esta evolución en pasos, de como el aprendizaje y la adopción de TDD a llevado a su evolución y a convertirse en BDD:

  1. El desarrollador inicia escribiendo Pruebas Unitarias de su código con frameworks de prueba como NUnit.
  2. Cuando el conjunto de pruebas se incremente el desarrolladores disfruta y aumenta su sentido de confianza en el trabajo que realiza.
  3. Como consecuencia el escribir pruebas antes de escribir el código ayuda al desarrollador a concentrarse en escribir solamente el código que necesita.
  4. Así mismo, el desarrollador utiliza las pruebas como una forma de documentación para el código que no ha visto por algún tiempo.
  5. Llega el momento que el desarrollador se da cuenta que escribir pruebas en esta forma ayuda a descubrir la interfase de la aplicación de su código y TDD llega a ser parte del proceso de Diseño.
  6. Los expertos en TDD señalan que los desarrolladores se dan cuenta que TDD es acerca de definir el comportamiento en vez de las pruebas.
  7. El Comportamiento es acerca de las iteraciones entre los componentes del sistema y el uso de Mocking es fundamental para el avance de TDD.

(Extracto del sitio BDD.org )

La motivación es que iniciemos el camino al desarrollo basado en pruebas y evolucionemos al basado a comportamiento y mejor aún podamos desarrollar el modelo basado en dominio.

Hasta una próxima amigos!,

Manolo Herrera

Diferencias entre WSS 3.0 y MOSS 2007

Si no te has preguntado esto, yo sí, así que luego de una investigación concienzuda hace algún tiempo detallo lo siguiente:

Es importante mencionar que MOSS 2007 (Microsoft Office Sharepoint Server) corre sobre WSS 3.0 (Windows Sharepoint Services) pero esto no quiere decir que se instala a parte ya que esta integrado dentro de MOSS 2007. De hecho si tienes instalado Windows SharePoint Services 3.0 debes desinstalarlo para instalar MOSS 2007. Básicamente, MOSS 2007 ofrece lo que denomina como Features out of the Box, donde Box se refiere a la plataforma WSS 3.0 y todo lo que se desarrolla sobre esta plataforma que no viene incluida es denominada Out of the Box.

Adicional a lo anterior, por regla general en Microsoft lo que nombra como "Services o Express" es gratuito y lo que denomina "Server" es cobrado, ya que incluye mas características orientadas al desarrollo empresarial, y las tecnologías SharePoint no son una excepción a la regla.

image

En esta imagen la línea roja delimita los servicios que incluye WSS 3.0. Lo demás que aparece en el primer cuadro son aplicaciones y servicios de MOSS 2007. Solo allí nos podemos dar cuenta que las aplicaciones y servicios de WSS 3.0 son limitados y que MOSS 2007 ofrece mas características fuera de la caja para una solución empresarial.

Quiero iniciar con los Servicios Compartidos (Shared Services) de MOSS 2007. Estos servicios que se hacen evidentes cuando instalamos MOSS 2007 de forma avanzada y completa extienden los servicios de WSS 3.0 de indexación y Búsqueda de una manera muy profesional. Ya que nos incluye el mismo motor de búsqueda que utiliza Microsoft en su sitio en línea Live Search (Abajo es mencionado con mayor detalle). Adicionalmente incluye el Business Data Catalog, para obtener información de aplicaciones de negocios, Perfil de usuarios personalizables que pueden importarse desde el Active Directory, entre otros, y el Servicio de Single Sign On para proveer una solución efectiva de una sola puerta de entrada (Portal) a nuestras aplicaciones.

NOTA: Para los curiosos SSP Instala Business Data Catalog, Office SharePoint Service Search, Excel Services, User Profile Application, Session State.

Excel Services o Servicios de Excel: Es un servicio del lado del servidor para calcular y renderizar para compartir hojas de calculo. Especialmente si se quiere esconder la lógica del negocio de dichas hojas y solo proveer de los datos procesados al usuario. Esto nos permite también utilizar en nuestros navegadores con ciertas limitaciones la aplicación de Excel para los usuario que carecen de la herramienta cliente.

Arriba de los servicios extendidos de MOSS 2007, encontramos las aplicaciones fuera de la caja como lo es el Content Managment, que se subdivide en Web y Enterprise Content Management, el primero se refiere a la administración del contenido en las páginas Web y el segundo se refiere a la administración del contenido de cualquier tipo de Registro. Este ultimo tiene la capacidad de controlar el vencimiento de los documentos y la capacidad de lectura, modificación, y eliminación.

La parte de Portal, se refiere al manejo de los perfiles e información de metadata importante de la organización para utilizarla para la búsqueda y clasificación. Incluye el manejo de la audiencia objetivo (Audience Targeting) y Single Sign-On.

El Search o Búsqueda es una característica mejorada y extendida de la versión limitada de WSS 3.0, que esta a nivel del motor de búsqueda de Live, donde se puede personalizar muchas características de búsqueda y rastreo, permite la inclusión de fuentes de información externas al motor de búsqueda, de personas dentro de la herramienta de SharePoint, y dentro de la base de datos.

Bussiness Process Management o la Administración de los procesos de Negocio, se refiere a la nueva generación de documentos de formato abierto InfoPath. Y a los flujos de trabajo o Workflows que incluye fuera de la caja MOSS 2007. Estos formularios están basados en el navegador y a los servicios de InfoPath incluidos en MOSS 2007. Estos extienden el alcance de las organizaciones que no utilizan Microsoft Office InfoPath 2007 permitiéndole llenar formularios en un navegador común o en un dispositivo móvil con HTML habilitado.

Bussiness Inteligence, o Inteligencia de Negocios es la característica que permitirá administrar los cubos de información que esta referenciada dentro de MOSS 2007 para su análisis.

Luego de escribir brevemente de los componentes incluidos en MOSS 2007, les ofrezco una visión de los ambientes posibles que se requiere MOSS 2007 en vez de la versión gratuita WSS 3.0.

Cuando el número de usuarios, servicios y documentos es un tema crítico dentro de la compañía:

La versión de WSS 3.0 y la habilidad para configurar una granja de servidores en esta plataforma es muy limitada. Apenas podemos separar del servidor de Base de datos del front-end del portal y tener varios front-end del mismo portal. No así la versión MOSS 2007 que nos permite separar temas como el web crawler (es una feature que ni siquiera se menciona en WSS 3.0) , los servicios compartidos de SharePoint que utiliza para proveer los servicios de Excel dentro de SharePoint y el sitio de MySites para fomentar la red social dentro de los portales. Esto si lo vemos en una instalación pequeña en uno o dos servidores no hace la diferencia, pero si hablamos de una corporación donde cada sitio de usuario representan miles de sitios y que la indexación de búsqueda de los documentos es entre miles de ellos y acceso a los mismos, es un tema que impacta y que limita el crecimiento y adaptabilidad de la herramienta es mejor se vaya pensando en serio en la versión Server, es decir en la versión Enterprise de MOSS 2007.

Cuando el tema de colaboración efectiva es un tema de suma importancia

Pensemos en cientos o miles de usuarios con cientos y miles de documentos, el error humano de archivar algo dentro de una herramienta tecnológica es una probabilidad muy alta y no tener la capacidad de realizar una búsqueda inquisitiva con la ayuda de un web crawler nativo (el cual incluye SSP) que busque dentro de los documentos, la metada de los mismos es un tema que puede inclinar la balanza hacia la versión de Servidor, en vez de la versión Services que no dispone de esta característica. La version WSS 3.0 de Search esta limitada a la búsqueda a través del contenido y documentos dentro de la colección de sitios Actual. No así para MOSS 2007 Search, que através de Business Data Catalog, podemo acceder la información de aplicaciones en base de datos e incluir contenidos externos en la web que se indexan dentro de MOSS 2007. También MOSS 2007 Search puede ser configurado para ejecutar el servicio de indexado y el servicio de búsqueda en diferentes servidores dentro de una granja de servidores para incrementar la escalabilidad y el rendimiento. WSS 3.0 esta limitado para ejecutarse el servicio de indexado y de búsqueda en el mismo servidor físico.

Dentro del proveedor de servicios compartidos o SSP se encuentra el módulo de Search y dentro de este el Content Sources, donde no solo se puede configurar sitios SharePoint, sino que también permite la configuración de otros sitios Web, Carpetas compartidas, carpetas públicas de Exchange y enlaces a Aplicaciones de Negocios ubicadas en algún repositorio de datos como lo es SQL-Server.

Adicionalmente se puede configurar los tipos de documentos que serán indexados y excluir aquellos que no nos interesa sean incluidos en la búsqueda del portal. Por ejemplo, las extensiones de las paginas Aspx del sitio, muy probablemente la información contenida en ellas es puramente de mantenimiento del sitio.

Espero les ayude esta información para decidir que es lo que mejor se adapta a sus necesidades empresariales.

Hasta la próxima,

Manolo Herrera

miércoles, 3 de septiembre de 2008

Mesa redonda este miercoles 10 de septiembre, en la reunión de la Comunidad de Desarrolladores

Amigos los esperamos el miercoles 10 de septiembre, como parte de la iniciativa que nos hicieron llegar, en reuniones anteriores. Hoy tendremos una mesa redonda para discutir temas de arquitectura, diseño y modelado. La agenda es la siguiente:

    1. Modelos orientados a los datos y al dominio, ventajas y desventajas.
    2. Domain Driven Design.
    3. Patrones de diseño utilizados en DDD.
    4. TDD.

Te esperamos para que participes no faltes, nos reunimos en Executrain, Centro Comercial los Proceres, a las 18:30 hrs. Entrada por el parqueo 4to nivel de comerciales. El costo del parqueo antes de las 9:00 son Q 5.00 y después de las 9:00 p.m. es Q 30.00. Estará con nosotros nuestro amigo Cristian y tu servidor moderando la mesa redonda.

Nos vemos ese día,

Manolo Herrera

lunes, 1 de septiembre de 2008

Como dejar los comentarios registrados de los usuarios en una tarea en SharePoint

Es un requerimiento de los usuarios de SharePoint, poder visualizar y distinguir los comentarios que dejo cada usuario, en la tarea.

Como todo tiene sus requerimientos, pros y contras. Los requerimientos son:

Se debe de habilitar en la lista la propiedad de versionamiento, de la siguiente forma:

Sobre la lista en este caso es Tareas o Tasks, Settings, Versioning Settings. En la página hay una serie de opción que deben de tomarse en cuenta, como se muestra abajo en la imagen:

image

Para habilitar el versionamiento solo debe de seleccionar el botón de Radio en Yes de la pregunta: Create a version each time you edit an item in this list?.

Que para este ejemplo coloque también un limite de 3, lo que hace esto es que a la cuarto comentario, borra el primero que se ingreso, esto puede no funcionar para algunos usuarios, así que mejor valide bien si afecta o no a esta opción, sino se le coloca limite, esto puede crecer tantos comentarios se le ingresen. A decir verdad no es tan critico si no son tantos usuarios o la naturaleza de los comentarios no son tan frecuentes o diversos, será el análisis que se le de que dictamine el número óptimo.

Pero eso no es todo ahora debemos de seleccionar la columna de la lista de Tareas e indicarle la forma en que deseamos se comporte, para ello vaya a: En Tasks, Settings, seleccione la columna para nuestro ejemplo es Description, haga clic sobre dicha columna, debe de ser de tipo "Multiple line of text".

image

En la opción de hasta abajo en la imagen de arriba dice: Append Changes to Existing Test, seleccione Yes, presione el botón de OK.

Ahora puede editar una tarea y agregar un nuevo comentario en la columna Description de nuestro ejemplo y luego de varios cambios le mostrará la información de la siguiente manera:

image

Note las flechas, la primera de arriba hacia abajo muestra los distintos comentarios, con su respectivo usuario y fecha de registro. La segunda flecha le muestra la versión de la tarea, ya que el manejo del versionamiento no es solo a nivel de esta columna sino de toda la tarea en sí. Esto quiere decir que podemos restaurar una versión anterior de la tarea y reemplazarla por la actual. Adicionalmente a esto, ser recuerda que colocamos un limite de tres versiones, si puede notar el primer registro indica que es el número 2, ya que el número uno fue eliminado por el límite de versión que le indicamos a la tarea.

Espero les sirva, SharePoint4Fun!,

Manolo Herrera

jueves, 28 de agosto de 2008

Business Contact Management deja de funcionar sin des-habilitamos el cache del Outlook 2007

Esto me sucedió al des-habilitar el Cache del Outlook en (Tools, Account Settings, , Change, Used Cached Exchange Mode). Y esto lo hice porque si SharePoint me envia un correo de una tarea, no la puedo visualizar si el Cache esta habilitado. Así que a escoger entre una y la otra.

Para volverlo habilitar haga lo siguiente:

  1. Seleccione File
  2. Data File Management
  3. Add
  4. Seleccione Business Contact Management Database
  5. Presione Ok
  6. Seleccione la base de datos y listo.

También hay una excelente herramienta de Microsoft para BCM para crear, compartir y hacer una copia de respaldo como para restaurarla en esta dirección:

http://www.microsoft.com/downloads/thankyou.aspx?familyId=b8e7aa0f-f593-4fb4-b822-dd662af1a6cb&displayLang=en

image

Si al contrario no desean utilizar esta herramienta, puede eliminar el acceso a la base de datos en Outlook en File, Data File Management, Seleccione BCM database y seleccione el botón Remove.

Hasta una próxima nos vemos,

Manolo Herrera

martes, 26 de agosto de 2008

Excelentes Vídeos de Erick Evans acerca de Domain Driven Design Parte 2

En esta segunda parte resumiré a mi forma particular de ver las cosas, el vídeo de Erick Evans sobre el diseño estratégico, espero que sea de mucha utilidad y vean el vídeo en esta dirección:

http://www.infoq.com/presentations/strategic-design-evans

Hace una analogía entre un competencia de remo de un bote de 8 personas, y como esto no sucede en los equipos grandes sino en equipos pequeños que están bien coordinados , y conectados entre ellos. Este tipo de conexión es la que se necesita para que el proceso de modelado funcione. Esto simplemente no sucede en los equipos grandes. Por lo que plantea la siguiente pregunta:

Como hacer para que los equipos grandes produzcan el modelado que esperamos en proyectos largos y trabajen en armonía?

Esto nos lleva a la siguiente realista premisa:

No a lo largo de todo el sistema será bien diseñado.

Solamente una parte del sistema será bien diseñado, si comprendemos esto realmente avanzaremos, Erick ha visto como el deseo por tener todo el sistema bien diseñado, nos lleva al desorden de todo el sistema y quitándonos la oportunidad del verdadero valor de tener partes seleccionadas bien diseñadas.

Debemos de comprender que:

Los diseños de precisión son frágiles.

Los buenos diseños en grandes sistemas no duran mucho, no sobreviven en ese ambiente, hay tanto caso que cada quién toma algo del código y empieza ha cambiarlo.

Lo que necesitamos hacer es definir:

Boundaries

Es necesario establecer Limites entre nuestro buen diseño y el resto del sistema.

Para ello podemos tomar dos estrategias:

Context Mapping o Mapeo de Contexto

y Distilling the Core Domain o Destilando la parte medular del dominio.

En el caso de ejemplo de un dominio de Embarque hay dos modelos distintos hechos para resolver distintos problemas uno el registro de las rutas de los barcos y el otro el la Red de transporte para ver la eficiencia de cada viaje. No se desea tener dos diferentes modelos para el mismo dominio, pero esto es justificado porque son tan complejos los problemas que resuelven que se requiere de dos modelos pare resolver diferentes problemas. Hace mucho sentido esto y nos da una nueva perspectiva que resolver los problemas del domino.

Lo primero al tomar un proyecto lo que hace Erick es hacer un Mapa del contexto; que significa que modelos están involucrados en este proyecto. Cuales son los limites que utilizan y las relaciones que tienen entre ellos, y el lenguaje que ellos utilizan.

Un análisis upstream/downstream, nos permite ver los efectos que tienen los modelos que rodean del proyecto que vamos a realizar tanto los de arriba como los de abajo y analizar el efecto, influencia que tendrán los cambios que realicemos. Este análisis nos permite profundizar mas en las relaciones entre los modelos.

Entonces nos lleva a saber con que contamos y con que tenemos que vivir, por lo que decido construir una pared para que no se corrompa mi modelo, que Erick le llama Anti-Corruption Layer o Capa de Anti-Corrupción. Ya que no se desea mucho de la influencia que provenga del otro lado. Por lo que se pueden hacer puertas y definir la forma de como las cosas deben funcionar.

Debemos de cuidar de las fugas en el proceso de traducción entre modelos y por ello es preciso definir una frontera y explícitamente definir allí todas las traducciones para mantener el modelo bien definido.

Luego nos lleva a la siguiente pregunta:

Que es un Mapa

Y lo que quiso decir es dibuja el mapa tal cual es.

Luego Fix true Flaws, o corrija los defectos verdaderos.

Cambie la realidad, solo entonces haga un remapeo para que refleje la realidad.

Si somos realistas en el plan del proyecto podemos plasmar eso y mitigar los riesgos, y no estressar el proyecto, desde el inicio.

Los beneficios del Mapeo de Contexto es:

Validar la comunicación

Alinear la expectación entre equipos.

crear un ambiente con el cuales los modelos pueden ser efectivos.

La segunda estrategia es sobre:

Destilando el medula del dominio

Esto es algo que debemos reconocer, todo el sistema tiene la misma importancia.

Esto nos lleva a desconponer en tres categorías:

Generic subdomains, como la facturación es un subdominio que puede se encontrado en muchos dominios y es casi lo mismo para todos. No es particularmente tiene que ver con el dominio.

Supporting Subdomains, apoya alguna parte de lo que realmente necesitamos hacer. Como podría ser en el modelo de Embarque la búsqueda de la calendarización de embarques provistas por terceros en formato data-feed.

Core Domain, este a propósito lo escribió en letra pequeña y fue para indicar que la razón por la cual estamos haciendo el proyecto, la parte mas importante, una vez que es destilado y separado de los demás componentes podría ser pequeño, específico. En el ejemplo del Domino Embarque, si el modelo que desea diseñarse es para encontrar la ruta mas eficiente, la parte del ruteo de los barcos será la parte medular del domino, pero muchas veces esto no es tan obvió.

Dio un ejemplo sobre como dos de sus mejores programadores realizaron un excelente trabajo para manejar las zonas de tiempo, pero no pusieron atención a cual era la parte medular del dominio, y el proyecto fracaso. Para eso nos sirve este tipo de análisis para destilar el dominio en partes y encontrar la parte medular y enfocarnos en ella.

Que es lo que su sistema vale la pena escribir?

Por que no comprarlo?

No lo puedo comprar porque esto me hace diferencia a los demás.

Por que no contratarlo para que lo hagan?

No, porque quiero tenerlo cerca de mi gente de negocios.

Por que no construir al que lo genera?

No, porque es complicado y muy especifico.

Por lo que que vamos a esforzarnos y enfocarnos en desarrollar la parte medular del dominio y no necesariamente las demás partes.

Otra pregunta que se le hace a los expertos del dominio es?

Que nos hace a nosotros especiales?

Esto no lleva a descubrir la parte medular del dominio, con la información de los expertos del dominio nos puedan dar.

Así que los desafíos en los grandes y multi-equipos proyectos son:

Mantener la integridad del modelo

Enfocar el esfuerzo (en lo que si va a dar resultado)

Ver el bosque para los árboles (Necesario conectar lo todo)

Unir la estrategia con la implementación

Debemos separar el diseño en diferentes formas a través de la destilación de la parte medular y no medular del dominio.

Salvese de la dicotomía arriba-abajo/abajo-arriba. Hay que ver el problema del dominio en todos los ángulos.

Espero les sirva, y abra un nuevo nivel de entendimiento del modelado de los dominios.

Design4Fun!,

Manolo Herrera

lunes, 25 de agosto de 2008

Excelentes Vídeos de Erick Evans acerca de Domain Driven Design Parte 1

Quiero recomendar a toda la comunidad de desarrolladores de habla hispana que vean estos excelentes vídeos de Erick Evans que habla sobre DDD.  Aunque están en inglés se los recomiendo, y para los que no entienden mucho el inglés les ofrezco el resumen que detallaré abajo.

Detalle a continuación la información desarrollada en la primera parte del vídeo, titulado "poniendo el modelo a trabajar".

http://www.infoq.com/presentations/model-to-work-evans

 

Inicia con una pregunta:

Porque nos debe de importar el modelo?

Y responde de la siguiente manera:

La complejidad crítica de la mayoría de proyectos de software esta en comprender el dominio del negocio en si mismo.

Aunque no es cierto para todos los dominios, si es cierto para la mayoría de aplicaciones para negocios. En vez de enfocarnos en la tecnología, nos enfocamos en resolver la complejidad del negocio.  Es importante mencionar que no es aplicable para todos los dominios porque de esa forma podemos saber que la aplicación de un modelo orientada a dominios no va a funcionar en esos particulares dominios, no así para los dominios que si se aplica este estilo de ver las cosas, donde se puede aplicar un modelo.

Y esto nos lleva a definir sobre el dominio, y lo define así:

 

El dominio es una esfera de conocimiento, influencia o actividad.

El área del asunto en el cual el usuario aplica un programa es el dominio del software.

Dio ejemplos sobre un dominio, puede ser Banca, La gente vuelva en aviones y como las ponemos en el avión, las llevamos y las entregamos en otro lugar, Embarque.

En la mayoría de casos nos topamos que ya existen aplicaciones, y por tanto tenemos que trabajar con ellas. Y en la mayoría de casos podemos encontrar defectos en el diseño.  Y antes de decidir cambiar algo debemos de profundizar en el modelo, preguntándole a los expertos del dominio, a la gente de negocios, para comprender mejor el modelo, la cual es nuestra orientación.

 

Debemos de preguntarnos que conceptos del modelo estamos olvidando o no conocemos, ya que estamos centrados en el modelo, para ello debemos de generar una tormenta de ideas con los expertos del dominio, y empezar a dibujar o modelar el dominio, con un lenguaje que manejan los expertos del domino, nada técnico, nada que tenga que ver con tecnología.  Esto no solo es "barato" sino que efectivo.

Luego hizo la siguiente pregunta:

Que es un modelo?

Y para ello dio, un par de ejemplos, uno fue un  mapa de china, según los chinos, y otro un mapa del mundo. Pero este ultimo el mapa fue diseñado para un propósito especifico y fue para la navegación.  Y para ello fue hecho, no le importa, la población, ni que país es mas grande sino para lo que fue diseñado.

Entonces el modelo lo define así:

Un sistema de abstracciones (Mostrando todo acerca de algo, abstracción es excluye todo, excepto algunas particularidades en las cuales esta interesado) que describe aspectos seleccionados de un dominio, y puede ser utilizado para resolver problemas relacionados a ese dominio.

Concluye entonces que:

Un modelo sirve para un particular uso.

No es como sea realistico como sea posible, no es por el particular uso que el dominio dicta.

Cualquier modelo que permita al software entrar al dominio es un modelo que podemos utilizar.

Si podemos reflejar el modelo en el código encontraremos un nuevo nivel de utilización.

Cuando modelamos debemos escoger un escenario lo mas concreto posible.

Explica que no se puede reducir la complejidad del dominio, pero si la complejidad técnica, algunas veces.  Y puede que se comprometa el dominio para bajar la complejidad, y eso no es problema porque no solo hay un modelo, sino "n" modelos para resolver el problema del dominio.

Define lo que denomina Lenguaje Ubicuo:

Un lenguaje estructurado al rededor de un modelo de dominio y utilizado para todos los miembros del equipo para conectar todas las actividades de un equipo con el software.

Tenemos en este lenguaje en el modelo porque nombramos a los objetos no nombres que representan el modelo.

 

Tenemos que interactuar con otros modelos y cada modelo es valido por lo que fue hecho pero como los conectamos, como hacemos que se comuniquen.   Mapeo de Contexto es una estrategia para ello.  Y se trata de tener un mapeo que traduzca de un contexto del modelo a otro contexto.

 

Nos vemos en la segunda parte del tema

donde Erick Evans habla sobre el diseño estratégico.

 

Code4Fun!,

 

Manolo Herrera

viernes, 22 de agosto de 2008

Access Denied en Visual Studio 2008 con Vista

Cuando estamos haciendo un deploy en el IIS la primera vez, es un error común tanto para una aplicación Web como un sitio en SharePoint (si lo tenemos instalado en Vista)que dicho sea de paso para el IIS que hospeda los sitios que creamos en SharePoint es excatamente lo mismo.

La solución es muy sencilla solo necesitan ejecutar Visual Studio 2008 como Administrador, también es valido para Visual Studio 2005.

La forma sencilla es:

  1. Haga clic derecho sobre el acceso directo de Visual Studio 2008
  2. y seleccionar la opción Run as Administrator.

Sin embargo necesitaremos hacerlo cada vez que ejecutemos Visual Studio y vayamos hacer algún "deployment". Una solución permanente es:

  1. Haga clic derecho sobre el acceso directo, seleccionar properties.
  2. En la pestaña Shortcut seleccionar el botón Advanced.
  3. Haga clic sobre el cuadrito Run As Administrator, presione el botón ok
  4. y nuevamente ok, puede que le indique un mensaje de advertencia solo presione el botón continue.

Listo, con ello podrá hacer el deploy sin tener problemas de autenticación.

Code4Fun!,

Manolo Herrera

Extensiones de Visual Studio 2008 para SharePoint o VSeWSS v 1.2

En junio el equipo de Microsoft SharePoint anunció sobre la liberación de las tan esperadas extensiones para SharePoint dentro del producto Visual Studio 2008 abreviado VSeWSS 1.2. Estas herramientas nos permiten hacer un deploy automático (un gran alivio para los desarrolladores en SharePoint) de los Web Parts (soluciones y muchos mas) a un sitio local de nuestro portal. Además nos provee de una serie de Plantillas dentro de Visual Studio para crear proyectos y nuevos items bajo la categoría SharePoint. Si quiere ver saber mas a detalle sobre las plantillas que ofrece estas extensiones aquí el enlace: http://blogs.msdn.com/sharepoint/archive/2008/06/04/announcing-the-vsewss-version-1-2.aspx

Esta versión es la V1.2 exclusiva para VS 2008, la versión anterior la 1.1 es la versión para Visual Studio 2005. Abajo el enlace para bajar la herramienta que tiene su útil instalador:

http://www.microsoft.com/downloads/details.aspx?familyid=7BF65B28-06E2-4E87-9BAD-086E32185E68&displaylang=en

Recursos para las extensiones para VS 2005, pero que son válidas para la VS 2008:

Hand's on lab para conocer las facilidades que ofrece la herramienta, están disponibles para C# y los VBdores.

http://www.microsoft.com/downloads/details.aspx?FamilyID=b885dce8-c93f-48aa-b798-4422febcc200&DisplayLang=en

y la guía del usuario de las extensiones:

http://www.microsoft.com/downloads/details.aspx?FamilyId=A8A4E775-074D-4451-BE39-459921F79787&displaylang=en

Es importante mencionar que cuando ser refiere a WSS 3.0 también es válido para MOSS 2007 ya que MOSS corre sobre la plataforma de WSS 3.0.

Para cerrar con broche de oro si quisiera una introducción en el desarrollo sobre SharePoint este instalador podrá a su disposición 10 presentaciones y comentarios sobre este tema en el siguiente enlace:

http://www.microsoft.com/downloads/details.aspx?FamilyID=25f9cc59-4ea3-4381-8b37-9430f664eac6&DisplayLang=en

Hasta la próxima amigos, Code4Fun!,

Manolo Herrera

miércoles, 20 de agosto de 2008

Los esperamos hoy 20 de Agosto del 2008 Reunión de la Comunidad

Nuestro amigo del buró de expositores de la Comunidad, Carlos Lone (MBA & Software Architect), estará con nosotros compartiendo el importantísimo tema ASP.Net MVC Framework, no te lo pierdas. Conocerás un nuevo modelo para los desarrolladores de ASP.NET. Atreverte a cambiar de paradigma de como desarrollar aplicaciones Web dentro de la plataforma .NET.

Los esperamos, hoy premiaremos a la persona mas constante dentro de la comunidad.

Recuerden de revisar el mapa para el acceso al lugar: Haz clic aquí

Saludos, Code4Fun!

Manolo Herrera

miércoles, 13 de agosto de 2008

Correr MOSS 2007 en Vista es un alivio para los desarrolladores

Sinceramente es un gran alivio no levantar una máquina virtual que por mas memoria que se le ponga a la máquina el espacio en disco que ocupa y el mismo procesador que utiliza no es el desempeño que uno espera además con la estabilidad de Vista con su SP1, ya es agradable mantenerse allí comparado con ejecutar una máquina virtual que si bien es un excelente avance tecnológico que nos sirve para emular ambientes de servidor, siempre hay un alto costo que pagar.

Les cuento mi experiencia:

Luego de bajar el producto del Equipo Bamboo (que dicho sea de paso hicieron un excelente trabajo). Este producto es un setup launcher (ubicado en C:\Program Files\WssOnVista\Setup) que al ejecutar solicita que le indiques done esta ubicado el archivo SharePoint.exe, que de hecho para instalar MOSS 2007 debes de renombrar el archivo OfficeServerXXX.exe a SharePoint.exe. y luego el proceso de instalación estándar de SharePoint. Pre-requisito es haber instalado el IIS 6.0 y no el 7.0 como algunos piensan.

Es importante mencionar que debes de instalar las versiones que incluyen el Service Pack 1 de SharePoint.

Al principio intente instalar WSS 3.0 con SP1 pero se quedaba congelado cuando hacia la conexión con SQL Express. Entonces decidí instalar MOSS 2007 con SP1, y funciona de maravilla, e hice una instalación de una granja levantado todos sus servicios incluyendo el proveedor de servicios compartidos de SharePoint y funciona muy bien. Además rápido comparado con la máquina virtual. Es bueno mencionar que tengo Vista Business instalado en una HP portátil con 4GB de RAM. Aunque con 2 Gb, es suficiente. Por el uso habitual de las máquinas virtuales decidí crecerla a los 4Gb.

Aquí el link para los que no lo han buscado:

http://community.bamboosolutions.com/blogs/bambooteamblog/archive/2008/05/21/how-to-install-windows-sharepoint-services-3-0-sp1-on-vista-x64-x86.aspx?CommentPosted=true

En resumen, ahora desarrollar en SharePoint es mucho mas agradable en especial que tenemos la herramienta de Visual Studio a la par en nuestro sistema operativo Vista.

Code4Fun!,

Manolo Herrera

martes, 12 de agosto de 2008

Invalid number of parameters en Post-Builb Event en Visual Studio 2005 sobre Vista

Aparentemente vista requiere que los parámetros se pasen entre comías, a diferencia de XP que no lo requiere entonces si desea ejecutar un comando como el xcopy deberá hacerlo de la siguiente manera:

xcopy "$(TargetPath)" "C:\inetpub\wwwroot\wss\VirtualDirectories\80\bin" /y

No se preocupe con las comías del macro $(TargetPath), VS reemplaza de todos modos este valor por el path donde se encuentra el dll del proyecto.

Hasta la próxima,

Manolo Herrera

Unknown Error dentro de SharePoint

Este error es muy frecuente dentro de SharePoint cuando hay algún problema con un Web Part o la dirección URL de un enlace. El detalle es que SharePoint por seguridad elimina cualquier detalle del error que no es manejado por SharePoint o por el administrador de la herramienta que no ha personalizado los Errores dentro de SharePoint. Pero para resolverlo este mensaje no nos ayuda para nada, así que para detallar mejor el error necesitamos modificar el Web.Config de tal forma que nos muestra mas información. Para ello debemos modificar las siguiente secciones con los valores que aparecen en cada línea:

<customErrors mode="Off" />

<SafeMode MaxControls="200" CallStack="true" DirectFileDependencies="10" TotalFileDependencies="50" AllowPageLevelTrace="false">

<compilation batch="false" debug="true">

Es recomendable luego de conocer el error y corregirlo regresar a sus valores original o mejor aún manejar el error a nivel de bitácora, pero eso querido amigo son otros 10 centavos extras que tendrá que averiguar como hacerlo.

Para su referencia le incluyo los valores por omisión de estas secciones dentro del Web.config.

<customErrors mode="On" />

<SafeMode MaxControls="200" CallStack="false" DirectFileDependencies="10" TotalFileDependencies="50" AllowPageLevelTrace="false">

<compilation batch="false" debug="false">

Recuerda amigo, Code4Fun!,

Manolo Herrera

lunes, 11 de agosto de 2008

Ya es oficial el SP1 de Visual Studio 2008 ha sido lanzado

Puedo decir que a diferencia de otros Service Pack de la herramienta Visual Studio este ha sido el mas estable de todos.  En su versión rtm, realicé las pruebas de instalación en mi portátil, primero en una máquina virtual y luego en mi instalación de Windows Vista Business y puedo decir que no me dio ningún problema que haya detectado luego de la instalación.  El archivo leame contiene una lista considerable de errores reportados por usuarios que probaron el SP1 en versiones beta y demás, en diferentes equipos y versiones de Windows, para que si usted esta en alguno de estos casos vea como manejar estos errores y solucionarlos.

Otra mejora fue la velocidad de instalación, comparado con el SP1 de Visual Studio 2005, no se tarda tanto aproximadamente 20 minutos, comparado con los 40 minutos de VS 2005 SP1.

Adicionalmente a las correcciones de errores reportadas por lo usuarios, en especial a la del Diseñador Web cuando se pasa a modo de diseño o split.  Esto aunque no es mas rápido, por lo menos ya no falla cuando son paginas son muy cargadas y cuando utilizamos la herramienta de split para partir la ventana en código html y el diseño gráfico propiamente de nuestra página, esto ya funciona, lo podemos utilizar luego de instalado el SP1. 

Pero les decía adicionalmente a las correcciones, en este SP1 han incluido nuevas características muy interesantes como se las detallo abajo:

• The ADO.NET Entity Designer is added to ease data access.

• You can now add “Local Database Cache” to device projects.

• ASP.NET Dynamic Data templates and toolbox controls are added.

• IIS 7.0 Managed Module and Handler templates are added.

 

Y otras mejoras al Visual Web Developer:

•SQL Server 2008 support for Web projects is added.
• JavaScript formatting support is added.

• the WCF Service renaming process is improved.

Así que si no es tan confiado instale su máquina virtual y pruebelo.

Aquí le va el link: http://www.microsoft.com/downloads/details.aspx?FamilyId=FBEE1648-7106-44A7-9649-6D9F6D58056E&displaylang=en

Recuerda amigo, Code4Fun!,

Manolo Herrera

Lugar de las reuniones de la Comunidad

Queridos amigos, hemos tenido algunos problemas con ubicar la entrada a las instalaciones de Executrain, nuestro amable patrocinador donde nos están prestando las instalaciones para realizar nuestras reuniones. Por lo que les adjunto la imagen de la forma de ingresar a las instalaciones. Básicamente el acceso después de las 5:00 p.m. es por el parqueo del Centro Comercial Los Proceres en la zona 10 , del nivel 4to de Comerciales. Saliendo al parqueo del lado izquierdo al fondo.

Mapa_Accesos

Los esperamos este miércoles a las 18:30 hrs. Estará con nosotros Luis Alfaro MVP de C# comentándonos los nuevas características de ASP.NET 3.5 & Visual Studio 2008 – DetailsView in-depth. El parqueo tiene un costo de Q 5.00 nada mas por las dos horas que dura la reunión.

Saludos,

Manolo Herrera

Coodinador de la Comunidad de desarrolladores .NET en Guatemala

http://guatecommunity.net

jueves, 31 de julio de 2008

7 artículos sobre la arquitectura de WCSF

Preguntas como por que se colocan las propiedades en la interfase de la vista, que debe de ir en el Application controller y para que nos sirve, y como agrupar los módulos y que poner en ellos, son algunas de las respuestas que encontraras en estas publicaciones de Simon Ince un Consultor de desarrollo de Reino Unido.

Definitivamente el tema de WCSF a regresado a este blog e iniciare una serie de "Post" al respecto, muy probablemente incluyendo Unity y la Entlib 4.0.

Para los que no sepan que es WCSF (de sus siglas en inglés Web Client Software Factory), pueden ver post pasadas he escrito sobre el tema y allí encontrarán los sitios oficiales de la WCSF, que dicho sea de paso se quedo en la version 2.0 para correr en 2008 y muchos de nosotros de los seguidores de las factories estamos esperando la nueva versión liviana con Unity que mpuleio esta realizando desde hace varios meses (puedes checarlo aquí: http://blogs.msdn.com/mpuleio/archive/2008/05/21/converting-the-composite-web-application-block-to-unity-using-the-unitycompositioncontainer.aspx)

Para los interesados en capas (no tan novatos en el tema) Simon toca el tema repetidas veces y haces excelentes observaciones y sugerencias.

En el primer post es una introducción sobre la elección de una arquitectura base, los patrones utilizados en la WCSF el MVP (The Model-View-Presenter) y el Application Controller. http://blogs.msdn.com/simonince/archive/2008/06/05/wcsf-application-architecture-1-introduction.aspx

En el segundo post explica de una forma magistral el uso del Application Controller y abstrae el concepto de una forma sobresaliente o "outstanding", el cual le llamo Page Flow Slave y lo que hizo fue separar la lógica del negocio y permitir al controlador que decida como debe de navegar la página, simple y hermoso.

http://blogs.msdn.com/simonince/archive/2008/06/06/wcsf-application-architecture-2-application-controller.aspx

En el tercer post, (gua!) expone sobre el Modelo MVP, y explica algo que me abrió completamente los ojos, y fue lo siguiente:

El presenter no tiene porque involucrarse con ninguna tecnología de Asp.Net, el solo conoce un contrato de la vista y allí debe de incluirse todo, lo que verán en el código de este tercer post es que cambio la referencia en el presenter de context.current.Identity.name por una propiedad llamada UserName de la interfase que representa la vista y además esto facilita la prueba de la lógica del presenter, además de ser un diseño desacolpado.

Por ultimo en este tercer post, presenta con mucha claridad la separación de responsabilidades del Controlador, lógica de negocio y el presentador de la siguiente forma:

class MyViewPresenter : Presenter<IMyView>

{

void ViewLoaded()

{

View.DisplayText("Welcome");

}

void OnExit()

{

BusinessLogic.ExitUser(View.CurrentUsername);

ApplicationController.CompleteExit();

}

}

El presentador se encarga de mostrar la data proveniente de la capa de negocios y de responder a los eventos del usuario (o la vista) pero deja al controlador la lógica de la navegación y desconoce el ambiente del controlador y de la lógica de negocios. El controlador interactúa con el módulo base de las WCSF donde esta implicado la infraestructura de ASP.NET y la lógica de negocios interactúa con la capa de datos. Es decir nuevamente el principio de la separación de responsabilidades.

http://blogs.msdn.com/simonince/archive/2008/06/11/wcsf-application-architecture-3-model-view-presenter.aspx

El cuarto post, hace una pausa en las WCSF para hacer una reflexión importante sobre las oportunidades que si tienen para mejorar el código abstrayendo y desacolplando el código, de tal forma que le quito la responsabilidad al controlador de manejar la navegación a nivel de comandos de asp.net y lo abstrajo en otro objeto que bien puede ponerse en el modulo base o fundational para diluir responsabilidades. Los dejo con el código resultante y vean lo detalles en el post original:

class ApplicationController

{

private INavigationService _navigationService;

[ServiceDependency]

public INavigationService NavigationService

{

set

{

_navigationService = value;

}

}

public void CompleteWizard()

{

_navigationService.Navigate(Screen.Home);

}

}

El cuarto post:

http://blogs.msdn.com/simonince/archive/2008/06/16/wcsf-application-architecture-4-environment-abstraction.aspx

No menos importantes los siguientes post abarca los temas de modularidad, estructuración de los módulos y servicios. Lamentablemente aunque menciono algunos aspectos muy importantes se le escapo algunos detalles en código, se requiere un nivel mas avanzado de manejo de patrones de diseño para entender con claridad las ideas propuestas. Los dejo con el link que los lleva al resto de links:

http://blogs.msdn.com/simonince/archive/2008/07/18/wcsf-application-architecture-7-remote-logic-with-wcf-services.aspx

Espero haber generado el interés que me provocó a mi al leer estos 7 posts sobresalientes sobre la WCSF.

Code4Fun!,

Manolo Herrera

martes, 29 de julio de 2008

Mas nostalgia por la salida de Bill Gates de Microsoft

Para los amigos que comparten este sentimiento y quieren saber mas de este personaje que ha impactado con sus ideas y su compañía a millones de personas al rededor del mundo, les recomiendo este vídeo, que tiene una excelente calidad y contenido:

Bill Gates, Loocking back, Moving ahead (http://www.microsoft.com/presspass/exec/billg/videos/)

Que lo disfruten y se apasionen mas por generar ideas como este grande de la industria.

Code4Fun!,

Manolo Herrera

jueves, 24 de julio de 2008

La Comunidad continua consolidándose y más patrocinadores se suman a nosotros

Estimados amigos de la comunidad, creo que la visión de llevar a otro nivel que se inicio por una verdadera necesidad de conseguir patrocinio esta llevándose a cabo, gracias al equipo de líderes (Cristian, Jose Rolando, Carlos y Marlon) incluyendo a nuestro amigo Erick Ezquivel de Microsoft que se ha puesto la camiseta de la comunidad y se ha hecho parte de nosotros, se siguen sumando los patrocinadores, tenemos a las dos empresas mas fuertes certificadas por Microsoft de Entrenamiento en Guatemala apoyándonos.

Exacutrain proveyendo sus instalaciones para realizar las reuniones presenciales y New Horizons apoyándonos de entrenamiento gratuito en línea por ser miembros de la comunidad. 

Además ya contamos con el patrocinio de Jeff Brains, que por cierto ayer se rifaron 4 licencias de R# y dot trace (producto de Jeff Brains), de Manning para descuentos en los libros y ofertas especiales para la comunidad, tenemos el apoyo de INETA, Culminis, Community Server, proveyendo la herramienta done tenemos el hosting del sitio de la comunidad y por supuesto de Microsoft (ayer rifamos un windows vista ultimate y un kit de licencias VSTO 2008 standar, Server 2008 y el CTP de SQL 2008).

Así que celebramos a nuestra comunidad que somos todos nosotros y que sigamos creciendo presencialmente y en-línea también.

Les dejo con el mensaje de Erick sobre el patrocinio, el enlace también esta en el sitio de la comunidad http://guatecommunity.net :

"Quiero informarles que New Horizons nos está ofreciendo regalarle un curso del programa de NH@Distance a todos los miembros de la comunidades de IT Pro y Desarrollo. Les estoy enviando el comunicado que me gustaría publicaran en los sitios respectivos de la comunidad para que los miembros estén al tanto. Para tener derecho al curso estamos pidiendo:


1.       Estar inscrito en cualquier de los sitios de la comunidad que corresponde a su ciudad y país si todavía no lo están. Siéntanse en la libertad de promover sus sitios para invitar nuevos miembros. Los sitios de las comunidades están indicados en este sitio: www.nhatdistance.com/comunidad.

2.       Además de estar inscrito debe aprobar el examen correspondiente a la primera estrella en cualquiera de los 2 programas de cinco estrellas, léase Desarrollador Cinco Estrellas y Profesional Cinco Estrellas.


3.       Una vez tenga cubiertos los primeros dos puntos, debe seguir el proceso indicado en este sitio www.nhatdistance.com/comunidad para pedir su curso.
4.       El curso puede ser de:
a.       Windows
b.      Base de datos
c.       Visual Studio
5.       El curso es para todos los miembros, así que les pediría que por favor verifiquen sus sitios para que puedan registrarse los que todavía no lo son sin ningún problema. Recuerden que es un requisito para poder pedir el curso."

Hasta la próxima!,

 

Manolo Herrera

martes, 22 de julio de 2008

Los 7 hábitos de las personas altamente efectivas aplicado al desarrollo de sitios Web 2.0

Muy interesante el vídeo de Darren Guarnaccia (Un experto en la Web)(Ver video) donde aplica los conceptos del Libro de Stephen Covey los 7 hábitos de las personas altamente efectivas, en el desarrollo de sitios Web 2.0 donde no solo hay disponible tecnología para que la experiencia del usuario sea rica y sensible en cuanto a la navegación del sitio, sino que realmente pongamos a trabajar la tecnología disponible y la hagamos efectiva, que escuche al cliente, que cambie en base a las preferencias del cliente, que solicite retroalimentación que se analice y devuelva algún valor al cliente. Estos son algunos de los conceptos de Stephen Covey alineados al desarrollo de Sitios Web 2.0.

Pero mas que una mera aplicación es el entendimiento de una visión de lo que se espera sea una sitios de la generación 2.0 de sitios Web, nos empuja a ver claramente las expectativas que han generado el paradigma Web 2.0. La tecnología esta disponible: Portales y Administración de Contenido pero su aplicación en muchos casos dista de la realidad, por falta comprensión de la aplicabilidad de las herramientas tecnológicas como lo es Microsoft Office SharePoint Server 2007, inevitablemente debo de mencionarla cuando pienso en alta disponibilidad, escalabilidad en el motor de búsqueda que nos provee, en la personalización de estos resultados y en la alta disponibilidad de contenido por parte de usuarios no tecnólogos pero si, publicistas y editores, y expertos en áreas como la ingeniería mecánica o metodológica al servicio de las compañías o clientes a los que se deben. En la inteligencia de negocios que puede obtenerse tanto de la información que provee como de el uso que de le da el Portal, estas son características que hacen a MOSS 2007 una herramienta para la Web 2.0.

Un concepto que me gusto mucho escuchar en el vídeo fue Engage que en español podemos traducir como engranar de eso se trata la Web 2.0 que se logre involucrarse o interesarse con el usuario. Esto se traducirá en clientes leales, en relaciones duraderas y no en ventas de duración única. Amigo es tiempo de cambiar el paradigma a uno has efectivo y aquí es donde entran los desarrolladores e implementadores de soluciones es devolver valor a la inversión hecha es dar resultados de nuestro trabajo realizado, es la satisfacción que hemos estado buscando dar a nuestros usuarios y clientes. Por ello los Portales, la colaboración, las redes sociales, la administración de contenido, no son ya el futuro sino el presente que cambiara como hacemos las cosas y como deben verse.

Un Resumen del vídeo y comparación de los 7 hábitos de Stephen Covey Aplicados al desarrollo Web 2.0 según Darren Guamarccia:

Stephen CoveyDarren Guamarccia
1. Ser Proactivo1. El cliente esta a cargo (Sea proactivo con el feedback del cliente y analice su navegación, sea proactivo con esta información).
2. Comenzar con el fin en la mente2.Implemente sus objetivos del sitio con consistencia. Guíe a los usuarios donde usted quiere que vayan. Enfoquese en lo que quieren los clientes lograr en el sitio.
3. Poner Primero lo Primero3. Balancear las experiencias del usuario con sus metas. (Priorize su sitio en base a las expectativas del usuario, crea valor para sus clientes, haga parte de la experiencia a sus clientes)
4. Pensar Ganar GanarDevuelva valor a sus visitantes (devuelva resultados de las encuestas, colocando el contenido que buscan sus clientes, Ofrezca información de expertos)
5. Buscar primero EntenderSea honesto y evalué lo que no esta funcionando. (Conozca las expectativas de sus clientes, descubran que es lo que realmente buscan, busque lo que lograron realizar y haga que lo puedan hacer).
6.SinergizarCrear un dialogo fluido con sus clientes. (Del feedback del cliente, de los foros escuche, interactue y genere nuevas y mejores soluciones para ellos). Haga que la comunidad de clientes trabaja para usted.
7.Afilar la SierraAfile la sierra de su Sitio Web
(Renueve las técnicas que funcionan, Utilice pruebas y mecanismos de control para analizar la efectividad del mercadeo)

Quienes están interesados en conocer mas sobre los 7 hábitos visite el siguiente sitio: http://www.franklincovey.com/fc/index.jsp?

Si están interesados en el libro de los 7 hábitos : http://shopping.franklincovey.com/shopping/catalog/category.jsp?navAction=push&navCount=0&crc=cat30019&id=cat202.

Si quiere saber sobre la Web 2.0 visite: http://es.wikipedia.org/wiki/Web_2.0 o http://msdn.microsoft.com/en-us/library/bb735306.aspx

Si están interesados en ver como SharePoint da soluciones Web 2.0 aquí una referencia: http://blogs.msdn.com/sharepoint/archive/2008/05/02/colleagues-social-distance-relevance-in-people-search-and-other-social-networking-tools-in-sharepoint.aspx

Hasta lo próxima!

Manolo Herrera