Я хотел бы создать пользовательскую библиотеку документов, где я использую стандартный интерфейс, но реализую другой уровень сохранения. В основном извлекать и отображать документы из другой исходной системы. Таким образом, я могу использовать существующую объектную модель, но использовать большую интеграцию с Office в SharePoint.
Я нашел достойную статью здесь, но они обманывают, они закодировали совершенно новый интерфейс для внешнего сохранения.
Я просмотрел объекты SPList и SPDocumentLibrary, но я не могу переопределить необходимые методы.
Я рассмотрел структуру событий, и она ближе, но в ней отсутствуют важные события, такие как "GetFile" или "PopulateList".
Любые мысли?
Это не идеальный (или, возможно, даже "хороший" ) подход к тому, что вы пытаетесь сделать, но я упоминаю его прежде всего для осознания и, возможно, даю вам несколько дополнительных идей (и предупреждений).
Архитектура хранилища 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, мы надеемся, сделает больше с ним и сделает его более привлекательным и простым в реализации.
За что это стоит!
Если вы действительно хотите бросить свое собственное внешнее сопротивление, попробуйте взглянуть на эту новую, обширную статью с июня на TechNet:
http://technet.microsoft.com/en-us/magazine/2009.06.insidesharepoint.aspx
Теперь передай мне щедрость.;)
Я реализовал постоянство SQL в библиотеке форм, используя постоянный рабочий процесс, который выполняется при создании и обновлении документов библиотеки.
Я создал проект Workflow Office SharePoint 2007 в Visual Studio 2008, восстановил содержимое моего документа SPItem и извлек соответствующие данные из XML, сгенерированного InfoPath WebForm, и сохранил его в базе данных.
Извините, но ISPExternalBinaryProvider - единственный способ сделать это, я боюсь, если вы хотите использовать стандартный интерфейс.
P.S. Еще одна серьезная неудача - это кошмар резервного копирования/версии. Даже не уверен, поддерживается ли поддержка версий.
Возможно, у SharePoint 2010 будет лучший способ сделать это...