[TFS 2008]Team Foundation Server SP1 Beta y SQL Server 2008 RC0

Si al momento de querer instalar TFS 2008 RTM o TFS 2008 SP1 Beta el System Health Check  les presenta el siguiente error:

A compatible version of SQL Server is not installed.

 

Error

Este error es debido a que ni el RTM ni el SP1 Beta del TFS se puede instalar sobre SQL Server 2008 RC 0, hasta el momento TFS 2008 es compatible hasta SQL Server 2005, una vez que sea liberado el SP 1 del Team Foundation Server les permitirá instalarlo utilizando SQL Server 2008.

Instalación de SQL Server 2008 RC0 en Windows Server 2008

Para empezar esta instalación es standard, no detallo una instalación compleja de SQL Server 2008, realmente no existe dificultad para instalarlo sobre W2k8 pero para algunas personas puede servirles como punto de partida para instalar este producto, claro que para las personas que venimos de versiones anteriores de SQL Server encontraremos una diferencia en el instalador pero que en realidad es mucho más funcional. Recuerden que si también desean instalar Reporting Services es necesario que activen el rol de WebServer y Application Server para que se instale el Framework.

Roles

Al iniciar la instalación deberán instalar el SP1 de .Net Framework 3.5 y el Windows Installer 4.5 (los cuales vienen inscluidos en el instalador).

DotNetFramework35SP1Beta

Una vez instalados estos dos componentes aparecerá la pantalla del SQL Server installation Center

SQL2008InstallOverview

Para iniciar la instalación debemos ir a Installation y luego seleccionar New SQL Server stand-alone installation or add features to an existing installation (Aplica para el tipo de instalación que describimos en este post)

NewSQL2008Installation

El instalador ejecutará primeramente una revisión para identificar problemas que podrían ocurrir durante la instalación o limitaciones que podrían ocasionar que no podamos instalar SQL Server 2008.

SetupSupportFiles

Luego debemos seleccionar la edición que deseamos instalar o ingresar el product key del SQL Server 2008. (En este caso voy a instalar la edición Enterprise de prueba)

ProductKey

Aceptamos los téminos de licencia y damos clic en Next.

Licence

A continuación se ejecutarán los archivos para la instalación de SQL Server 2008.

SetupSupportFilesInstall

A continuación el instalador ejecutará las acciones del Setup Support Rules (Estas se deben cumplir para poder continuar con la instalación)

SetupSupporRules

Luego deben seleccionar los componentes que desean instalar (estoy seleccionando todos los componentes):

FeatureSelection

En este caso no tengo ninguna instancia de SQL Server y voy a proceder a instalar en el Default instance (En este paso pueden tambien renombrar el ID de la instancia y cambiar el directorio de la misma).

InstanceConfiguration

Luego el instalador validará el espacio disponible de disco.

DiskFreeSpace

Luego deberán configurar las cuentas con la que se inicará cada servicio de SQL Server 2008 (Yo tengo una cuenta creada con permisos administrativos en el servidor para iniciar sólo servicios de SQL Server).

ServerConfiguration

En este paso deberán seleccionar el modo de autenticación de SQL Server y agregar las cuentas que serán administradores de la instancia.

DBEngineConf

Además podrán cambiar los directorios para la data, datos de usuarios, logs, Temp DB, Temp DB Log y el directorio para los backups.

DataDirectories

Pueden también activar el FileStream (Para mayor información aquí)

FileStream

Luego deberán configurar las cuentas que tendrán permisos administrativos para Analysis Services.

ASConf 

De igual forma pueden configurar los directorios para Analysis Services.

ASDataDirectories

En la configuración de Reporting Services voy a seleccionar el tipo por defecto, si cuentan con MOSS 2007 pueden cambiar a la segunda opción o si desean sólo instalarlo y configurarlo luego deberán seleccionar la tercera opción.

ReportingServices

Luego podran habilitar enviar información a Microsoft tanto de uso como de errores de SQL Server 2008.

ErrorUsage

El instalador validará las configuraciones seleccionadas en los pasos anteriores.

InstallRules

A continuación se presentará un resumen de la instalación que se llevará a cabo.

Summary

Luego iniciará la instalación.

Finalmente presentará el fin de la instalación.

 Finish

Luego de finalizar la instalación deberán realizar configuraciones adicionales con las herramientas de configuración de SQL Server 2008.

Finalmente nos conectamos al Management Studio para empezar a utilizar SQL Server 2008.

SQLMS

[VSTS "Rosario April CTP" ] Cómo elaborar el diagrama de secuencia del inicializador de un WorkfFlow para SharePoint 2007

En estos días me encuentro probando la aplicabilidad de los nuevos diagramas del Visual Studio «Rosario» Team Architect, y luego de algunas pruebas quise elaborar el diagrama de secuencia de la inicialización de los componentes para un flujo de trabajo que desarrollé para MOSS 2007, para esto realicé los siguientes pasos:

  1. Importe la solución completa a mi máquina virtual de Rosario (April CTP) y lo abrí en VS «Rosario».
  2. En el proyecto IG.DocumentMangement.WorkFlows (Este es el proyecto que contiene los flujos de trabajo), agregué un nuevo diagrama de secuencia de la siguiente forma:
    1. Clic derecho sobre el proyecto, luego seleccionan Add -> New Item                      CreateDiagramSequence
    2. Luego seleccionan la categoría general  y en templates seleccionan sequence diagram, le asignan un nombre al diagrama y dan clic en Add.CreateDiagramSequence2
    3. Luego abren el Architecture Explorer (View -> Architecture Explorer)                      ArchitectureExplorer
    4. En el Architecture Explorer van navegando desde la solución seleccionando Contains para que en la siguiente lista se muestre el contenido del componente(Solución – Proyecto – Clase – Miembros de clase) que seleccionaron en la lista anterior.                                                            ArchitectureExplorer2
    5. Una vez que han seleccionado el proyecto continúan seleccionando la clase, nuevamente contains para que puedan ver los métodos, seleccionamos el método InitializeComponent.                                             ArchitectureExplorer3          
    6. Finalmente seleccionan Insert Into Active Diagram y automáticamente VS generará la secuencia que sigue el método para construir los componentes que forman parte de su flujo de trabajo para MOSS 2007 :D. (Tip: dandole clic derecho sobre el área de trabajo del diseñador puede seleccionar la opción para exportar el diagrama como imagen, la cual estoy pegando a continuación).

         InitializeComponent

[C# – MOSS 2007]Cómo crear atributos personalizados para Enumerados

Los enumerados son listas constantes agrupables que por defecto empiezan en 0 y que una utilidad es que facilitan a nivel de desarrollo evitar que se pasen valores fuera de rango a objetos, o dato basura, evitar escribir código de validación del parámetro que estamos recibiendo, para encontrar más información básica sobre enumerados aquí, pero cuando trabajamos con enumerados puede darse el caso de que necesitemos extraer su valor equivalente en string y no entero, por ejemplo que para si queremos representar en nuestro sistema un objeto WorkFlowType cuyo valor lo debe extraer de MOSS 2007 en español, pues para este caso como entrada y salida de nuestro sistema necesitamos que el enumerado represente a un string, pues para este caso podemos utilizar un atributo personalizable (ValorString) para poder representar el enumerado de la siguiente manera:


[Serializable]


public enum WorkFlowType


{


[ValorString(«Ninguno»)]


Empty,


[ValorString(«En Serie»)]


Serial,


[ValorString(«En Paralelo»)]


Parallel


};


Para que este código funcione y el compilador no les retorne un error lo que se debe hacer es escribir una clase que represente a un atributo, para esto la clase debe:



  • Heredar de la clase Attribute del espacio de nombres System.

  • Debe contener un campo de tipo string, el constructor debe recibir un string para inicializar el campo, y una propiedad de sólo lectura que retorne el valor que contiene el campo.

La clase completa es:


[Serializable]


public class AtributoValorString : System.Attribute


{


#region Fields


private string _valor;


#endregion


#region Constructor


public AtributoValorString(string parametro)


{


_valor = parametro;


}


#endregion


#region Properties


public string ValorString


{


get { return _valor; }


}


#endregion


}


Para finalizar debemos crear un nuevo método extendido (Extension Method – Nueva característica de lenguaje C# en VS 2008), no olviden agregar el namespace reflection:


using System.Reflection;


[Serializable]


public static class Utilitarios


{


public static string ObtenerValorString(this Enum value)


{


// Obtiene el tipo


Type type = value.GetType();


// Obtiene el fieldinfo para este tipo


FieldInfo fieldInfo = type.GetField(value.ToString());


// Obtiene el atributo ValorString


AtributoValorString [] attribs = fieldInfo.GetCustomAttributes(


typeof(AtributoValorString), false) as AtributoValorString[];


// Retorna el primer elemento.


return attribs.Length > 0 ? attribs[0].StringValue : null;


}


}


Cuando utilicemos el enumerado ahora veremos que podemos utilizar el método extendido que acabamos de crear:


WorkFlowType.Serial.ObtenerValorString()

Tip Workflows para MOSS 2007 con VS 2008

Me he tenido que alejar un poco de mi blog debido a un proyecto en el que estado trabajando un Framework de Gestión Documental ISO para MOSS 2007 el cual ya lo pasé a producción y ahora tendré un poco más de tiempo hasta que me asignen a otro proyecto ;-), aunque ya llevo 1 año desarrollando aplicaciones para MOSS 2007 este proyecto en particular fue un reto debido a que ciertos requerimientos requerían implementar código complejo, por ejemplo el Framework es totalmente parametrizable ya que el sistema es capaz de soportar cualquier documento ya sea para ISO 9001, 14000, 22000 e incluso documentos no controlados (denominación para documentos que no forman parte del ningún sistema de gestión documental pero que se debe llevar un historial y debe estar habilitado para ejecutar acciones ISO), pero bueno cuando llegó el momento de la implementación del flujo de trabajo ningún flujo de MOSS 2007 ni con SharePoint Designer 2007 se podía implementar , se implementó un flujo utilizando la plantilla Sequential WorkFlow for SharePoint 2007 utilizando Visual Srudio 2008, ah y lo más importante es que la administración del ciclo de vida de desarrollo de este sistema se realizó con VISUAL STUDIO TEAM SYSTEM 2008 ;-), algunas consideraciones importantes que se debieron enfrentar en la implementación fueron:


  • El flujo en base a propiedades el documento debía ejecutar un flujo en serie o en paralelo.

  • Si los emisores eran los mismos que los aprobadores se debía aprobar automáticamente.

  • Los emisores, aprobadores y distribución del documento no eran usuarios de MOSS eran grupos de AD que reflejaban un rol, por ejemplo: el emisor podría ser: Asistente de RRHH, quien aprobaba era el Gerente de RRHH y un segundo aprobador Administrador de Documentación, y por último la distribución dependiendo de un campo del documento podría tomar de un campo llamado distribución del documento o leer los usuarios que tenían permisos sobre la carpeta que contenía el documento, de igual forma eran grupos del directorio activo.

  • Al final del flujo debía enviar notificación con el resultado de la aprobación a todos los involucrados: emisores, aprobadores y distribución.

  • La aprobación en serie era una aprobación en serie a nivel de grupos y en paralelo a nivel de usuarios, es decir, pensemos en un documento cuyos aprobadores son: GrupoA; Grupo B, al inicia el flujo en serie empezaría por el grupo a, y debería crear tareas de aprobación en paralelo para todos los usuarios que pertenecen al Grupo A, una vez que algún miembro de dicho grupo apruebe el flujo debería continuar al siguiente Grupo de aprobadores y hacer lo mismo que hizo para el Grupo anterior. Recordemos que los grupos son del AD.

  • La aprobación en paralelo consistía en ejecutar una aprobación en paralelo a nivel de usuarios, pero recordemos que los aprobadores son grupos de AD, por lo que el flujo debería crear tareas en paralelo los usuarios miembros de ambos grupos al mismo tiempo.

¿Interesantes requerimientos no?, pues a continuación algunos tips para trabajar con flujos de trabajo:


  • Las actividades básicas de aprobación de documentos se implementó en un proyecto de Activity Library de Windows WorkFlow Foundation. Recuerden en strong name para este tipo de proyectos ya que lo deben registrar en el GAC del servidor.

  • El proceso de aprobación como tal no estaba en el sequential workflow estaba en una librería del Framework el cual al invocar al constructor construía los objetos necesarios que se encontraban en la capa de entidades, objetos como por ejemplo: Grupo, Usuario, Documento.

  • Recuerden que cuando trabajen con workflows los objetos que declaren como globales ya sea para actividades personalizadas o para el propio flujo deben ser serializables, incluidos objetos de lógica del proceso. Esto no se encuentra documentado y pese a que las entidades eran serializables los objetos de proceso no lo eran esto ocasionó que el flujo no espere acción de los usuarios sobre las tareas debido a que los objetos de la capa de proceso no lo eran.

  • Para resolver el manejo de grupos, se utilizó utilitarios de la capa Core para conectarse al AD pasarle el grupo y que nos retorne sus miembros (usuarios que es con lo que trabaja MOSS 2007) con sus propiedades.

  • Para implementar tareas en paralelo utilicen el replicator configurado para que se ejecute en paralelo.

  • Para implementar tareas en serie pueden utilizar un replicator configurado en serie, o pueden utilizar una actividad while.

Espero que estos tips les sean de utilidad si algún momento deben implementar alguno de estos requerimientos.