Implementar uma classe Connection para uma extensão de processamento de dados
O objeto Connection representa uma conexão de banco de dados ou recurso semelhante e é o ponto de partida para usuários de uma extensão de processamento de dados do SQL Server Reporting Services. Ele representa as conexões com servidores de banco de dados, embora qualquer entidade com comportamento semelhante possa ser exposta como uma Connection.
Para implementar um objeto Connection, crie uma classe que implementa IDbConnection e que, opcionalmente, implementa IDbConnectionExtension.
Em sua implementação, você deve garantir que uma conexão seja criada e aberta antes que comandos possam ser executados. Garanta que a sua implementação exija que os clientes abram e fechem conexões explicitamente, em vez de fazer com que ela abra e feche conexões de forma implícita para o cliente. Execute as suas verificações de segurança quando a conexão for obtida. Exigir uma conexão existente para as outras classes em sua extensão de processamento de dados do SSRS garante que as verificações de segurança sejam sempre executadas ao trabalhar com sua fonte de dados.
As propriedades da conexão desejada são representadas como uma cadeia de conexão. As extensões de processamento de dados do SSRS devem oferecer suporte à ConnectionString propriedade usando o sistema de par nome/valor familiar definido pelo OLE DB.
Observação
Os objetos Connection costumam fazer uso intensivo de recursos para sua obtenção e, portanto, é recomendável considerar o pool de conexões ou outras técnicas para atenuar isso.
IDbConnection herda de IExtension. Você deve implementar a interface IExtension como parte da sua implementação da classe de conexão. A interface IExtension permite que uma classe implemente um nome de extensão localizado e processe informações de configuração específicas da extensão armazenadas no arquivo de configuração do Reporting Services.
O objeto Connection contém a propriedade LocalizedName por meio de sua implementação de IExtension. As extensões de processamento de dados do Reporting Services devem oferecer suporte à LocalizedName propriedade. O suporte permite que os usuários encontrem um nome familiar e localizado para a extensão em uma interface do usuário, como o Gerenciador de Relatórios.
O IExtension também permite que o objeto Connection recupere e processe dados de configuração personalizados armazenados no arquivo RSReportServer.config. Para obter mais informações sobre como processar dados de configuração personalizados, consulte o método SetConfiguration.
A classe que implementa IExtension não é descarregada da memória quando o restante das classes de extensão de processamento de dados são descarregadas. Devido a esse fato, você pode usar sua classe Extension para armazenar informações de estado de conexão cruzada ou para armazenar dados que podem ser armazenados em cache na memória. A classe Extension permanece em memória enquanto o servidor de relatório estiver em execução.
Estenda a classe Connection para incluir suporte para credenciais no Reporting Services implementando IDbConnectionExtension. Quando você implementa as propriedades IntegratedSecurity, UserName e Password da interface IDbConnectionExtension, você habilita a caixa de seleção Segurança Integrada e as caixas de texto Nome de usuário e Senha da caixa de diálogo Fonte de Dados do Designer de Relatórios. Isto permite que o Designer de Relatórios armazene e recupere credenciais para fontes de dados que dão suporte a autenticação. As credenciais são armazenadas de forma protegida e usadas durante a renderização de relatórios em modo de visualização.
Observação
A implementação de IDbConnectionExtension exige, implicitamente, que você implemente os membros das interfaces IDbConnection e IExtension.
Para obter um exemplo de implementação de classe Connection, consulte Exemplos do Reporting Services no CodePlex (SQL Server Reporting Services SSRS).