Pergunta

Eu gostaria de criar uma biblioteca de documentos personalizada onde eu uso a interface do usuário padrão, mas implementar uma camada de persistência diferente. Basicamente buscar e exibir documentos de um sistema de origem diferente. Dessa forma eu posso usar o meu modelo de objeto existente, mas a grande integração de escritório dentro do SharePoint alavancagem.

Eu encontrei um artigo decente aqui mas eles estão enganando, eles têm codificado um completamente novo UI para a persistência externa.

Eu olhei para o SPList e SPDocumentLibrary objetos, mas não pode substituir os métodos necessários.

Eu olhei para a estrutura de eventos e é mais perto, mas que carece de eventos importantes, como 'GetFile' ou 'PopulateList'.

Qualquer pensamento?

Foi útil?

Solução

Este não é um perfeito (ou provavelmente até mesmo um "bom") adequado para o que você está tentando fazer, mas eu mencioná-lo principalmente para a sensibilização e, eventualmente, dar-lhe algumas ideias adicionais (e avisos).

arquitetura de armazenamento do SharePoint utiliza duas lojas diferentes back-end: um para metadados (sempre bancos de dados SQL do SharePoint), e outro para armazenamento BLOB (também SQL por padrão). Na sua forma atual, no entanto, SharePoint permite que você "wire-in" seu próprio provedor de armazenamento de BLOB através de um tipo que implementa a interface ISPExternalBinaryProvider. Fiação em um tipo que implementa esta interface permite-lhe continuar a armazenar metadados no SQL ao armazenar documentos e outros tipos de item BLOB em uma loja diferente de sua escolha.

Isso provavelmente soa um tanto promissor, mas há um par de considerações sérias:

  1. Fiação-em seu próprio ISPExternalBinaryProvider tem um impacto em todo o farm. É tudo ou nada, então quando o provedor é ligado em, todos os sites e libaries usará o novo provedor.

  2. Você precisa mergulhar em código não gerenciado, como o ISPExternalBinaryProvider está fazendo para exigir que você trabalhe com algum IDL.

Você pode ler mais aqui: http://msdn.microsoft.com /en-us/library/bb802976.aspx

A minha opinião é que o sistema de armazenamento de BLOB externo (EBS) é uma espécie de "protótipo" neste momento - não está pronto para o horário nobre. Se nada mais, no entanto, dá-lhe algo para se pensar. SharePoint Server 2010, esperamos fazer mais com ele e torná-lo mais atraente e fácil de implementar.

Por que vale a pena!

Outras dicas

Eu tenho implementado persistência SQL em uma biblioteca de formulários usando uma persistência de fluxo de trabalho que é executado sobre a criação e atualização de documentos da biblioteca.

Eu criei um projeto de fluxo de trabalho do Office SharePoint 2007 no Visual Studio 2008, recuperado meu conteúdo do documento SPItem e extraíram os dados relevantes do XML gerado pelo InfoPath WebForm e persistiu-lo para um banco de dados.

Se você realmente quer rolar o seu próprio persistência externo, tente dar uma olhada nesta nova marca, extenso artigo a partir de junho TechNet:

http://technet.microsoft.com/en-us /magazine/2009.06.insidesharepoint.aspx

Agora, me dê a graça. ;)

Desculpe dizer, mas ISPExternalBinaryProvider é a única maneira de fazer isso eu tenho medo, se você quiser usar UI padrão.

P.S. Outra grande revés é que é um backup / versionamento pesadelo. Nem tenho certeza se versionamento é suportado.

Talvez SharePoint 2010 terá uma maneira melhor de fazer isso ...

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top