Prepare to implement a delivery extension

Before you implement your Reporting Services delivery extension, you should define the interfaces to implement. You first need to decide how to use your delivery extension, what settings your delivery extension requires, and the specific functionality you need to implement in order to deliver report notifications.

Each Reporting Services delivery extension must provide the following functionality:

  • An IExtension interface implementation that represents the extension and a localized extension name.

  • An IDeliveryExtension implementation that creates a delivery extension that can be used to deliver report notifications to end users.

  • The ability to process specific user data for a subscription.

Each delivery extension can be enhanced to include the following functionality:

  • An ASP.NET user control implementation that enables end users to use Report Manager to create report subscriptions that use the delivery extension.

The following table describes the available interfaces and classes for delivery extensions.

Interface or class Description
IExtension Interface Represents an extension in Reporting Services.
IDeliveryExtension Interface Represents a delivery extension in Reporting Services.
IDeliveryReportServerInformation Interface Contains information about the report server that delivery extensions require (for example, a list of the available rendering extensions).
Setting Class Represents a setting for an extension.
Notification Class Contains subscription information that delivery extensions use to deliver reports.
Report Class Represents report-specific information and methods that enable delivery extensions to deliver reports to users.
RenderedOutputFile Class Represents the output from a rendering extension. A RenderedOutputFile object contains the associated file name and type information the delivery extension requires in order to process the stream returned by the rendering extension.
ISubscriptionBaseUIUserControl Interface A user control that represents the means to retrieve delivery extension-specific subscription information from the user in Report Manager (for example, an e-mail address or the path to a file share).