Создать библиотеку документов с внешним постоянством - PullRequest
2 голосов
/ 25 июня 2009

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

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

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

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

Есть мысли?

Ответы [ 4 ]

4 голосов
/ 25 июня 2009

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

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

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

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

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

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

Я полагаю, что система внешнего хранилища больших двоичных объектов (EBS) на данный момент является чем-то вроде «прототипа» и не готова к прайм-тайм. Если ничего другого, тем не менее, это дает вам возможность подумать. Будем надеяться, что SharePoint Server 2010 сделает больше с этим, сделает его более привлекательным и простым в реализации.

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

1 голос
/ 03 июля 2009

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

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

А теперь отдай мне награду. ;)

1 голос
/ 26 июня 2009

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

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

0 голосов
/ 26 июня 2009

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...