Eventing Service Architecture
A Team Foundation-enabled application can raise an event in the Team Foundation Eventing Service two different ways. It can call directly into the Eventing Web service. Otherwise, it can use the EventService service that is part of the Team Foundation Core Services. After the Eventing Service returns, the application sends the event to its subscribers. The calling application does not wait once the subscriptions are matched and notifications are delivered.
Only privileged accounts can raise an event. The application should be running as a member of the Service Accounts group.
Team Foundation Eventing Service delivers notification of events by e-mail or through Web services.
The e-mail delivery method is designed primarily for end-user subscriber scenarios. Team Foundation includes a set of e-mail templates to support the relevant event types offered by Visual Studio Team System tools. Partner tools can add new templates as part of their registration into Team Foundation. As soon as there is some content, the application sends e-mail text to the e-mail address registered in the subscription. It uses the SMTP server specified by the smtpServer setting in the Services\webconfig file.
Visual Studio Team System service component subscriber scenarios use the Web service delivery method principally. If a Visual Studio Team System application wants to receive notifications, it implements a Listener Web Service interface. Team Foundation calls the interface to pass on the notification object as an XML document.
Summary of Integration Points
To generate events:
At installation time, provide an event schema for each event type to Team Foundation.
At run time, to raise an event, call the FireAsyncEvent method of the Team Foundation Eventing Web Services.
For events targeted at end-users, provide e-mail templates.
To receive notifications:
Subscribe to specific event types using Team Foundation Event Web Services. Event types may be work item tracking changes, version control check-ins, and so forth.
Implement the Eventing Listener interface as a Web service API and monitor calls from Team Foundation Eventing.
To exercise fine-grained control of event subscriptions, clients can implement custom subscription management tools that call the Team Foundation Eventing Web Service API directly.
Individual users subscribe to these events. Each user specifies the event subscription by identifying the event type and by setting up a filtering condition that selects events matching the preferred event conditions.