Versión imprimible       Enviar     
Evaluar y enviar comentarios
Related Articles

En este artículo, describiremos algunos de los procedimientos recomendados para enlace y carga de ensamblados usando CLR.

Aarthi Ramamurthy y Mark Miller

MSDN Magazine Mayo 2009

...

Read more!

Vea los cambios que el equipo de CLR realizó en CLR para NET Framework 3.5 SP1 y las mejoras que obtendrá al ejecutar sus aplicaciones existentes basadas en CLR 2.0 contra este service pack.

Surupa Biswas

MSDN Magazine Abril 2009

...

Read more!

Cobra, descendiente de Python, ofrece un modelo de programación dinámico, combinado y escrito en forma de estadística, funciones integradas de prueba unitaria, capacidades de scripting y mucho más. Sienta el poder aquí.

Ted Neward

MSDN Magazine Junio 2009

...

Read more!

Posiblemente .NET Services Bus sea la pieza más útil, eficaz y accesible de la nueva iniciativa de computación nube de Windows Azure. Vea cómo administra las comunicaciones de la nube.

Juval Loy

MSDN Magazine Abril 2009

...

Read more!

Aquí examinamos patrones de persistencia de datos para determinar los que se adecuan mejor a sus necesidades. Revisamos diversos patrones, los que incluyen el registro activo, el asignador de datos, el repositorio, el mapa de identidad, la carga bajo demanda y el proxy virtual.

Jeremy Miller

MSDN Magazine Abril 2009

...

Read more!

Also by this Author

Descubra cómo modificar el comportamiento predeterminado de Team Build, amplíe sus compilaciones con tareas personalizadas y aproveche las mejoras introducidas en Team Build 2008 SP1.

Brian A. Randell

MSDN Magazine Marzo 2009

...

Read more!

Brian Randell le presenta la versión Visual Studio 2008 Team Foundation Server (Team Build). Y después crea y ejecuta un team build.

Brian A. Randell

MSDN Magazine Noviembre 2008

...

Read more!

En esta columna, Brian Randell explica cómo crear un sencillo explorador de elemento de trabajo y muestra las principales operaciones necesarias para agregar compatibilidad con el elemento de trabajo cuando se crea un complemento propio.

Brian A. Randell

MSDN Magazine April 2007

...

Read more!

Microsoft is introducing a new suite of tools (code-named "Whitehorse") that will make it easier for you to design and implement systems that conform to a service-oriented architecture. Two of these tools -- the SOA Design Suite and the Class Designer -- support the graphical design of systems and components with support for code generation and support for bi-directional synchronization which lets you ensure that your diagram always represents your system design. This article introduces these tools and shows you how they'll improve your design ...

Read more!

Microsoft Visual Studio Tools for the Microsoft Office System is a new technology that brings the advanced features of Visual Studio .NET and the .NET Framework to apps built on Microsoft Word 2003 and Excel 2003. Now you can use Visual Basic .NET and C# to write document-centric, managed code solutions that run in-process with Word 2003 or Excel 2003, taking advantage of the rich object models they expose. Along the way you get the benefits of the managed environment in which a fully compiled .NET-based application executes, including code access ...

Read more!

Popular Articles

The MVP pattern helps you separate your logic and keep your UI layer free of clutter. This month learn how.

Jean-Paul Boodhoo

MSDN Magazine August 2006

...

Read more!

A continuación describiremos algunos de los conceptos del nuevo lenguaje F#, que combina elementos de lenguajes .NET funcionales y orientados a objetos. Tras ello, le ayudaremos a empezar a escribir algunos programas sencillos.

Ted Neward

MSDN Magazine Launch 2008

...

Read more!

Writing a Web application with ASP.NET is unbelievably easy. So many developers don't take the time to structure their applications for great performance. In this article, the author presents 10 tips for writing high-performance Web apps. The discussion is not limited to ASP.NET applications because they are just one subset of Web applications.

Rob Howard

MSDN Magazine January 2005

...

Read more!

Un gadget para la barra lateral es una pequeña y eficaz herramienta sorprendentemente fácil de crear. Entre a formar parte de la diversión con Donavon West.

Donavon West

MSDN Magazine August 2007

...

Read more!

Se presentan técnicas para el enlace de datos declarativos y de programación y su visualización con Windows Presentation Foundation.

Josh Smith

MSDN Magazine Julio 2008

...

Read more!

Team System
Servicio de evento de Team Foundation Server
Brian A. Randell

Descarga de código disponible en: TeamSystem2008_05.exe (177 KB)
Browse the Code Online
Microsoft creó Team Foundation Server (TFS) como un conjunto de servicios principales y secundarios entre los que destacan el control de versiones, el seguimiento del elemento de trabajo y el servicio de EventService. En mi opinión, EventService es un servicio secundario o, mejor dicho, un servicio auxiliar. EventService expone un conjunto de eventos que, al activarse, pueden realizar una serie de acciones tales como el envío de correo electrónico o hacer una llamada a un servicio web basado en SOAP.
En esta columna, examinaré qué está disponible a través de la interfaz de usuario de Visual Studio®, qué eventos expone EventService, el modo en que se pueden crear y administrar las suscripciones y cómo se puede crear un servicio web para recibir y procesar eventos. Aunque esté usando Visual Studio 2008 y TFS 2008, la mayor parte de esta columna se aplica del mismo modo a TFS 2005.

Alertas del proyecto
Si ejecuta Visual Studio 2008 con Team Foundation Client (TFC) instalado y se conecta a un proyecto existente del equipo, podrá tener acceso al menú Equipo en la barra de menús principal. Una vez que lo haya hecho, aparecerá un elemento del menú llamado Alertas del proyecto. Si elige este elemento del menú, Visual Studio abrirá el diálogo Alertas del proyecto, que permite crear suscripciones de correo electrónico para un máximo de cuatro eventos (consulte la Figura 1). TFS formateará el cuerpo del mensaje como texto sin formato o HTML según sus preferencias.
Figura 1 Alertas del proyecto para TFC (Hacer clic en la imagen para ampliarla)
Visual Studio expone cuatro eventos: se protege un artefacto, se completa una compilación, se cambia el estado de la compilación y alguien cambia los elementos de trabajo asignados. Para cada evento, puede escribir una dirección de correo electrónico o más, delimitadas por punto y coma. Usted elige el formato del mensaje de correo electrónico (HTML o texto sin formato) cada vez que se realiza un evento. Tenga en cuenta que hay más eventos de TFS aparte de los que se enumeran en el cuadro de diálogo de Alertas de Proyecto. Volveremos más adelante a este tema.

Control del formato de los mensajes de correo electrónico
TFS controla el formato de las alertas de correo electrónico a través de un conjunto de transformaciones XSL. Encontrará 28 archivos almacenados en la carpeta C:\Archivos de programa\Microsoft Visual Studio 2008 Team Foundation Server\Web Services\Services\v1.0\Transforms. Hay cuatro categorías de archivos: eMailTemplate, plantextXsl, XSD, y XSL. Microsoft determina la disposición de los datos de los eventos expuestos a través de los archivos XSD. El servicio del evento usa XSL y los archivos plaintextXsl para transformar los datos XML en el cuerpo del mensaje de correo electrónico. Microsoft creó archivos XSL para los cuatro eventos que aparecen en el cuadro de diálogo de Alertas de proyecto. Tenga en cuenta que, en TFS 2008, Microsoft mejoró el evento de Finalización de la compilación y, por lo tanto, creó nuevos archivos XSL que tienen como sufijo el numeral 2.
Por último, los archivos de eMailTemplate hacen referencia a un conjunto de cinco eventos adicionales que están disponibles a través de EventService. Sin embargo, Microsoft ya no usa estos archivos ni es compatible con ellos. En su lugar, usará el archivo de DataChangedEvent.xsl. El cuadro de diálogo de Alertas de proyecto no expone estos eventos, así que tendrá que usar una herramienta de línea de comandos de Microsoft (BisSubscribe.exe) para suscribirse a ellos y recibir notificaciones por correo electrónico. También puede escribir los códigos usted mismo.
Para controlar el formato de las notificaciones de correo electrónico, es necesario editar los archivos de transformación adecuados. Para los eventos expuestos a través del cuadro de diálogo de Alertas de proyecto, deberá modificar uno o más de los archivos XSL correspondientes. En cuanto a los mensajes de correo electrónico con formato HTML, encontrará en TeamFoundation.xsl la disposición principal de todos los eventos almacenados. Antes de modificar cualquier archivo es conveniente realizar una copia de seguridad y, a continuación, probar los cambios. Una vez que haya hecho los cambios, TFS usará la transformación modificada la próxima vez que active el evento.

Eventos disponibles
Microsoft diseñó el servicio de EventService para que fuera flexible y extensible. Hay un par de técnicas que puede usar para determinar la lista de eventos expuestos. Ya he hablado anteriormente del primer mecanismo: tan sólo examine los archivos XSD almacenados en la carpeta Transformaciones.
Mediante programación, puede tener acceso a otro servicio auxiliar, el servicio de registro, para obtener una lista de los servicios y los eventos que exponen. La Figura 2 muestra el código necesario para hacerlo y, además, ofrece un ejemplo del resultado.

Código
If mtfs IsNot Nothing Then
  Dim rs As IRegistration = _
  DirectCast(mtfs.GetService(GetType(IRegistration)), IRegistration)

  Dim res() As RegistrationEntry = _
    rs.GetRegistrationEntries(String.Empty)

  Debug.WriteLine("Registration Entries and their Event Types.")
  For Each re As RegistrationEntry In res
    Debug.WriteLine(re.Type)
    If re.EventTypes.Length > 0 Then
      For Each et As EventType In re.EventTypes
        Debug.WriteLine("-->" & et.Name)
      Next
    Else
      Debug.WriteLine("-->No Events Found")
    End If
  Next
End If
Resultado
Registration Entries and their Event Types.
Build
-->Build Completion Event
-->Build Completion Event 2
-->Build Status Changed Event
vstfs
-->BranchMovedEvent
-->NodeCreatedEvent
-->NodePropertiesChangedEvent
-->NodeRenamedEvent
-->NodesDeletedEvent
-->ProjectCreatedEvent
-->ProjectDeletedEvent
Reports
-->No Events Found
Wss
-->No Events Found
WorkItemTracking
-->No Events Found
VersionControl
-->CheckinEvent
TestTools
-->No Events Found
Tenga en cuenta que el sistema de WorkItemTracking no expone eventos. No obstante, si echa un vistazo a la carpeta Transformaciones, descubrirá que, efectivamente, hay un archivo WorkItemChangedEvent.xsd. Además, entre Visual Studio 2005 y Visual Studio 2008, Microsoft modificó la manera de activar ciertos eventos relacionados con el servicio de seguridad de grupo (GSS), la autorización y el servicio de la estructura común (CSS). La Figura 3 ofrece la lista actual de eventos que expone EventService. Aquellos eventos que no aparezcan en la lista de la Figura 3 deben considerarse como obsoletos.

Servicio Evento ¿Aparece en la lista del servicio de registro?
Seguimiento de elementos de trabajo WorkItemChangedEvent No
Control de versiones CheckInEvent
Team Build BuildCompletionEvent2
Team Build BuildStatusChangeEvent
Team Build BuildCompletionEvent
Servicio de la estructura común ProjectCreatedEvent
Servicio de la estructura común ProjectDeletedEvent
GSS/Autorización/CSS DataChangedEvent No
El nuevo DataChangedEvent, definido en DataChangedEvent.xsd, reemplaza los eventos expuestos a través del servicio vstfs que aparece en la Figura 2. Cuando TFS activa un DataChangedEvent, observará que es uno de estos tres tipos: Estructura, Seguridad o Identidad. Entonces, deberá llamar al servicio web adecuado para obtener los detalles relacionados con tales eventos. TFS 2008 activa el evento BuildCompletionEvent2 para todas las nuevas suscripciones que se crean para finalizar una compilación. Si se ha actualizado el servidor, TFS seguirá activando BuildCompleteEvent para cualquier suscripción que se produjo en el momento de la actualización.

Creación de suscripciones
Si desea crear una suscripción para un evento que no está disponible en el cuadro de diálogo de Alertas de proyecto en Visual Studio, tiene dos opciones. La primera es usar la herramienta de línea de comando BisSubscribe.exe que se adjunta con TFS en C:\Archivos de programa\Microsoft Visual Studio 2008 Team Foundation Server\TF Setup. Tenga en cuenta que esta herramienta también forma parte de Visual Studio Team Server (VSTS) SDK, que es, a su vez, una parte de Visual Studio SDK. Sin embargo, la versión del SDK está anticuada, por lo que debe comprobar que la versión que usted usa es la misma que la de la instalación de TFS.
BisSubscribe.exe admite dos comandos: subscribe y unsubscribe. Subscribe es un comando implícito. Admite hasta seis parámetros para la opción subscribe y dos para unsubscribe. La Figura 4 enumera los parámetros que ofrece el comando de ayuda de la herramienta.

Parámetro Comando Notas
eventType Subscribe El nombre del evento. Distingue entre mayúsculas y minúsculas.
filter Subscribe Una expresión de filtro. El valor predeterminado es None.
address Subscribe La dirección de correo electrónico o la dirección URL del método Web para el suscriptor.
server Subscribe/Unsubscribe El nombre del servidor de Team Foundation.
tag Subscribe Un campo para identificar más tarde esta suscripción. El valor predeterminado es None.
deliveryType Subscribe Indica el tipo de entrega de mensaje preferido: EmailHtml, EmailPlaintext o SOAP. El valor predeterminado es SOAP.
id Unsubscribe El identificador del número entero para la suscripción que se borrará al cancelar la suscripción.
Por ejemplo, si desea suscribirse al evento de validación del servidor entero, puede publicar este comando (todo en una línea):
bissubscribe /eventType CheckinEvent 
/address brianr@tfs.local /deliveryType EmailHtml 
/server tfsrtm08
Al ejecutar este comando, BisSubscribe devuelve un mensaje semejante al siguiente:
TF50001:  Created or found an existing subscription. 
The subscription ID is 7.
Puede cancelar la suscripción con este identificador de suscripción.
bissubscribe unsubscribe /id 7 /server tfsrtm08
Tenga en cuenta que, si no tiene pensado escribir código, deberá seguir manualmente el identificador que le ha devuelto el comando de suscripción. No existe un modo de obtener una lista de suscripciones de la línea de comandos. Aunque puede echar un vistazo a las bases de datos de SQL Server® 2005, no es algo recomendable o compatible.
Por supuesto, puede que no desee recibir un correo electrónico por cada evento. De este modo, puede agregar algunos filtros:
bissubscribe /eventType CheckinEvent /address brianr@tfs.local 
  /deliveryType EmailHtml /server tfsrtm08 
  /filter "'Artifacts/Artifact[@TeamProject = MSFAgile]' <> null"
Lo que hace este filtro es informarle a TFS que sólo está interesado en recibir una notificación electrónica cuando se valide algo del proyecto del equipo MSFAgile.
Aunque BisSubscribe funciona, no es una herramienta muy intuitiva. Tampoco ofrece una manera de obtener una lista de las suscripciones existentes. Por lo tanto, la segunda opción (escribir el propio código) es bastante más prometedora.
He creado una aplicación sencilla que puede descargar. Se genera a partir del código de columnas anteriores con elementos de trabajo que proporciona la IU, así como un marco para conectarse a la instalación de TFS 2008. Para obtener la lista de suscripciones de su cuenta de usuario, necesita conectarse a EventService con el método GetService del objeto TeamFoundationServer y recuperar una referencia IEventService. IEventService expone un método de EventSubscriptions que acepta el identificador de un usuario en forma de Nombre de usuario del dominio e identificador del usuario y, a continuación, devuelve una matriz de cero o más instancias de suscripción.
Dim es As IEventService = _ 
  DirectCast(mtfs.GetService( _ 
    GetType(IEventService)), IEventService)

Dim userSubs As Subscription() = _
  es.EventSubscriptions( _ 
  Environment.UserDomainName & _
  "\" & Environment.UserName)

For Each usersub As Subscription In userSubs
  ' Do something
Next
El objeto de suscripción ofrece varias propiedades, entre las que se incluyen los identificadores importantes que se necesitan para cancelar la suscripción de un usuario a un evento. Con la propiedad ID, sólo tiene que ejecutar el método UnsubscribeEvent en una referencia IEventService válida y habrá terminado.
Crear una suscripción nueva es muy fácil, con una advertencia. IEventService expone un método de SubscribeEvent. Al igual que BisSubscribe.exe, acepta varios parámetros. La parte difícil es que necesita desarrollar una buena experiencia de usuario para definir la expresión del filtro y, del mismo modo, tendrá que escribir código para asegurar la exactitud de la expresión. Existe un proyecto de la comunidad disponible en el sitio web de CodePlex (codeplex.com/tfseventsubscription), donde encontrará código de ejemplo para definir los filtros de evento.

Creación de una escucha de eventos personalizada
Aunque las notificaciones electrónicas son útiles, también se puede ejecutar un código para responder a un evento determinado. El servicio de EventService admite notificaciones basadas en SOAP, lo que permite obtener y procesar eventos a partir del tipo de código que más le convenga. Un método sencillo para empezar es echar un vistazo al código existente.
Para Team Foundation Server 2005, Microsoft publicó una muestra que mostraba el modo de implementar una integración continua a partir de EventService y algo de código. Puede consultar un artículo en msdn2.microsoft.com/ms364045, donde hay disponible código de ejemplo para su descarga. Esta muestra ya no se necesita (y no funcionará correctamente en cuanto se distribuya comercialmente) con TFS 2008. Sin embargo, ofrece un ejemplo del modo en que se puede crear un servicio web propio basado en ASMX y que apenas usa algo de C#. Usando el ejemplo de Microsoft como inspiración, he creado un servicio web sencillo que detecta el evento WorkItemChanged.
El primer paso consiste en crear un proyecto de servicio web. Para probar este código usé la imagen de Virtual PC que ofrece Microsoft. Antes de meterse en un servidor de producción, conviene probar primero esto. Puede descargar la imagen de go.microsoft.com/fwlink/?LinkId=114644.
Deberá usar la plantilla de la aplicación de servicio web de ASP.NET para Visual Basic®. Establezca el nombre en MSDNMagTFSEvents y colóquelo en C:\Archivos de programa\Microsoft Visual Studio 2008 Team Foundation Server\Web Services\. Asimismo, asegúrese de desactivar la opción "Crear directorio para la solución".
Después de que Visual Studio haya creado el proyecto, ajuste las propiedades de proyecto para que la URL del proyecto use el puerto 8080 (hágalo a través de la ficha Web del Diseñador de proyectos). Entonces, con las herramientas de administración de IIS, cree una aplicación IIS para el proyecto en la web de Team Foundation Server. Asegúrese de que coloca la aplicación IIS en el grupo de aplicaciones de Microsoft® Team Foundation Server. Cuando haya terminado, intente depurar el servicio para asegurarse de que la configuración es correcta.
A continuación cambie el nombre de Service1.asmx a ProcessEvents.asmx. Cambie el nombre de clase de respaldo de Service1 a ProcessEvents. Por último, si le apetece, actualice el espacio de nombre del servicio web a algo más apropiado. Reemplace el atributo HelloWorld de WebMethod con el prototipo que se muestra en la Figura 5.
<SoapDocumentMethod( _
  "http://schemas.microsoft.com/TeamFoundation/2005" & _
  "/06/Services/Notification/03/Notify", _
  RequestNamespace:="http://schemas.microsoft.com" & _
  "/TeamFoundation/2005/06/Services/Notification/03")> _
  <WebMethod()> _
Public Sub Notify(ByVal eventXml As String, _ 
                 ByVal tfsIdentityXml As String)

End Sub

El primer parámetro representa el documento XML que contiene la información del evento. Piense en ello como el parámetro equivalente de EventArgs dentro de los eventos regulares de Microsoft .NET Framework. El segundo parámetro determina el servidor TFS que activa el evento.
Ahora tiene todo lo que necesita para seguir adelante. Cuando TFS activa un evento, EventService llama al servicio web. Lo que haga en el método dependerá de usted y su creatividad. La Figura 6 ofrece un ejemplo sencillo que escribe en el registro de eventos de Windows®. El código comprueba en primer lugar que el parámetro de evento Xml contiene datos. Si esto no es así, sale. Suponiendo que haya datos que analizar, el código usa LINQ para XML para consultar si el grupo de campos cambiados incluye el de Título. Si esto es así, el código incluye tanto los valores nuevos como los antiguos, así como el identificador del elemento de trabajo y, a continuación, escribe los datos.
<SoapDocumentMethod( _
  "http://schemas.microsoft.com/TeamFoundation/2005/06" & _
  "/Services/Notification/03/Notify", _
  RequestNamespace:="http://schemas.microsoft.com/TeamFoundation/" & _
  "2005/06/Services/Notification/03")> _
<WebMethod()> _
Public Sub Notify(ByVal eventXml As String, _
  ByVal tfsIdentityXml As String)

  Const logSource As String = "MSDNMagTFSEvents"
  Const logApp As String = "ProcessEvents"
  Dim el As New EventLog(logApp)
  el.Source = logSource

  Try
    el.WriteEntry("Notify event called.")

    If eventXml Is Nothing OrElse eventXml = String.Empty Then
      el.WriteEntry("eventXml data is empty.")
      Return
    Else
      Dim x As XElement = XElement.Load(New StringReader(eventXml))
      Dim referenceName = (From element _
        In x...<ChangedFields>...<ReferenceName> _
        Where element.Value = "System.Title").SingleOrDefault
      If referenceName IsNot Nothing Then
        Dim oldValue = referenceName.Parent.<OldValue>.Value
        Dim newvalue = referenceName.Parent.<NewValue>.Value
        Dim refNameId = (From element _
          In x...<CoreFields>...<ReferenceName> _
          Where element.Value = "System.Id").SingleOrDefault

        ' the Work Item's ID is always included.
        Dim id = refNameId.Parent.<OldValue>.Value
        ' Do something with the data
        Dim sw As New StringWriter()

        sw.WriteLine("Work Item {0} was changed.", id)
        sw.WriteLine("Old Title: " & oldValue)
        sw.WriteLine("New Title: " & newvalue)

        el.WriteEntry(sw.ToString())
      Else
        ' The title wasn't changed. 
        ' Do something else
      End If
    End If

  Catch ex As Exception
    el.WriteEntry(ex.Message, EventLogEntryType.Error)
  End Try
End Sub

Tenga en cuenta que el código que se usa para crear la fuente del evento dentro del registro se define en la aplicación cliente de muestra y necesita ejecutarse en primer lugar. En caso contrario, se producirá un error en la escritura del registro de eventos. En una aplicación real, el instalador es el que define la fuente del evento.
Para que TFS llame al servicio web, necesitará crear la suscripción de evento correspondiente. Para ello deberá usar BisSubscribe con la siguiente línea de comandos:
bissubscribe /eventType WorkItemChangedEvent 
  /address http://localhost:8080/MSDNMagTFSEvents/ProcessEvents.asmx 
  /deliveryType Soap 
  /server tfsrtm08
Para crear una suscripción de evento en el código, deberá escribir algo como el ejemplo de la Figura 7, que también se define en la aplicación cliente de muestra.
If mtfs IsNot Nothing Then
  UpdateStatus(stSubscribeforWebService, True)

  Dim es As IEventService = _
   DirectCast(mtfs.GetService(GetType(IEventService)), IEventService)

  Dim dp As New DeliveryPreference()
  dp.Address = String.Format("http://{0}{1}", mtfs.Uri.Authority, _
    "/MSDNMagTFSEvents/ProcessEvents.asmx")
  dp.Schedule = DeliverySchedule.Immediate
  dp.Type = DeliveryType.Soap

  Dim filter As String = Nothing
  If Me.chkOnlySelectedProject.Checked Then
    filter = String.Format("PortfolioProject = '{0}'", _
      Me.cboTeamProjects.SelectedItem.ToString())
  End If

  Try
    Dim subId As Integer = es.SubscribeEvent( _
      mtfs.AuthenticatedUserName, "WorkItemChangedEvent", filter, dp)

    MsgBox(String.Format(otSubscriptionAdded, subId), _
           MsgBoxStyle.Information, otSuccess)

    Me.btnListMySubs_Click(Me.btnListMySubs, EventArgs.Empty)
  Catch ex As Exception
    MsgBox(ex.Message, MsgBoxStyle.Critical, ex.Source)
  End Try

  UpdateStatus(stStatus, False)
End If


Detalles finales
Al igual que con otros códigos relacionados con eventos, es necesario conectarse al servicio de EventService a través de una referencia válida de TFS. Entonces, se debe crear una instancia de DeliveryPreference y definir sus propiedades. El código de ejemplo para esta columna usa la referencia TFS para adquirir el nombre y el puerto para el nivel de aplicación TFS donde se supone que se instaló el servicio web de muestra. Si este no es el caso, necesitará cambiarlo en la implementación.
El código configura la programación de la entrega para que sea inmediata. Sin embargo, se pueden elegir de manera alternativa intervalos diarios o semanales. Debe asegurarse de que usa la opción DeliveryType.Soap al configurar las suscripciones al servicio web.
A continuación puede definir una cadena del filtro. El código de ejemplo ofrece una opción para restringir las notificaciones a un proyecto determinado del equipo, leyendo los nombres del cuadro combinado del formulario de los nombres de proyecto del equipo. Después de haber definido los parámetros, se llama al método Subscribe. Si se realiza correctamente, EventService devuelve el identificador de la nueva suscripción.
Hay una serie de cuestiones que se deben tener en cuenta al crear un servidor web propio. Si se han seguido las instrucciones de esta columna para configurar el servicio del nivel de aplicación, el servicio se ejecuta con el contexto de seguridad de la cuenta de tfsservice. Esto se lleva a cabo para que, en caso de que sea necesario, el servicio pueda obtener acceso a otros servicios TFS con privilegios. Si esto no es necesario, no dude en usar un modelo de implementación diferente para su propia solución (equipo o cuenta).
El segundo problema que debe tener en cuenta está relacionado con la creación de suscripciones a eventos. TFS sólo permite crear suscripciones que llaman a servicios web a aquellos usuarios que sean miembros del grupo de administradores TFS o del grupo de seguridad de servicios TFS.
El servicio de TFS EventService ofrece multitud de opciones y flexibilidad para que las use en sus propias aplicaciones. Mediante el código que se ofrece aquí, así como con el código adicional al que se puede obtener acceso en sitios de Internet como CodePlex, es posible amoldar TFS para que encaje perfectamente en su organización.
Gracias especiales, como siempre, al equipo de VSTS por contestar a las preguntas. En especial, Bill Essary de Microsoft proporcionó una información impagable.

Envíe sus preguntas y comentarios a mmvsts@microsoft.com.


Brian A. Randell es consultor senior en MCW Technologies LLC. Ofrece charlas, enseña y escribe sobre tecnologías de Microsoft. Brian es autor del curso Applied Team System de Pluralsight y es MVP de Microsoft. Póngase en contacto con Brian por medio de su blog en mcwtech.com/cs/blogs/brianr.

Page view tracker