Создать библиотеку документов с внешним постоянством

2

Я хотел бы создать пользовательскую библиотеку документов, где я использую стандартный интерфейс, но реализую другой уровень сохранения. В основном извлекать и отображать документы из другой исходной системы. Таким образом, я могу использовать существующую объектную модель, но использовать большую интеграцию с Office в SharePoint.

Я нашел достойную статью здесь, но они обманывают, они закодировали совершенно новый интерфейс для внешнего сохранения.

Я просмотрел объекты SPList и SPDocumentLibrary, но я не могу переопределить необходимые методы.

Я рассмотрел структуру событий, и она ближе, но в ней отсутствуют важные события, такие как "GetFile" или "PopulateList".

Любые мысли?

Теги:
sharepoint
visual-studio-2008
persistence
sharepointdocumentlibrary

4 ответа

4
Лучший ответ

Это не идеальный (или, возможно, даже "хороший" ) подход к тому, что вы пытаетесь сделать, но я упоминаю его прежде всего для осознания и, возможно, даю вам несколько дополнительных идей (и предупреждений).

Архитектура хранилища SharePoint использует два разных внутренних хранилища: один для метаданных (всегда базы данных SharePoint SQL), а другой для хранения BLOB (также SQL по умолчанию). Однако в своей нынешней форме SharePoint позволяет "подключиться" к вашему собственному провайдеру хранения BLOB через тип, реализующий интерфейс ISPExternalBinaryProvider. Проводка в типе, который реализует этот интерфейс, позволяет вам продолжать хранить метаданные в SQL при хранении документов и других типов элементов BLOB в другом магазине по вашему выбору.

Это, вероятно, звучит несколько многообещающе, но есть несколько серьезных соображений:

  • Проводка вашего собственного ISPExternalBinaryProvider оказывает влияние на всю ферму. Это все или ничего, поэтому, как только провайдер подключен, все сайты и библиотеки будут использовать нового поставщика.

  • Вам нужно будет погрузиться в неуправляемый код, так как ISPExternalBinaryProvider делает, чтобы вы работали с каким-то IDL.

Вы можете прочитать больше здесь: http://msdn.microsoft.com/en-us/library/bb802976.aspx

Я полагаю, что внешняя система хранения (BLOB) (EBS) - это что-то вроде "prototype" на данный момент - не готова к прайм-тайму. Однако, если ничего другого, это не дает вам о чем подумать. SharePoint Server 2010, мы надеемся, сделает больше с ним и сделает его более привлекательным и простым в реализации.

За что это стоит!

  • 0
    Отличная мысль! К сожалению, я не могу реализовать это на всей ферме, я должен иметь возможность включить его для каждой библиотеки документов.
  • 0
    Как AvePoint (например) делает это со своим продуктом архиватора? Они рекламируют, что могут выборочно (по-видимому, на основе списка) разгрузить хранилище документов на другое устройство. Я неправильно понимаю их продукт?
Показать ещё 2 комментария
1

Если вы действительно хотите бросить свое собственное внешнее сопротивление, попробуйте взглянуть на эту новую, обширную статью с июня на TechNet:

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

Теперь передай мне щедрость.;)

  • 0
    ISPExternalBinaryProvider уже добавлен, но отличные навыки вырезания и вставки !!!
1

Я реализовал постоянство SQL в библиотеке форм, используя постоянный рабочий процесс, который выполняется при создании и обновлении документов библиотеки.

Я создал проект Workflow Office SharePoint 2007 в Visual Studio 2008, восстановил содержимое моего документа SPItem и извлек соответствующие данные из XML, сгенерированного InfoPath WebForm, и сохранил его в базе данных.

0

Извините, но ISPExternalBinaryProvider - единственный способ сделать это, я боюсь, если вы хотите использовать стандартный интерфейс.

P.S. Еще одна серьезная неудача - это кошмар резервного копирования/версии. Даже не уверен, поддерживается ли поддержка версий.

Возможно, у SharePoint 2010 будет лучший способ сделать это...

Ещё вопросы

Сообщество Overcoder
Наверх
Меню