Вопрос

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

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

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

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

Есть какие-нибудь мысли?

Это было полезно?

Решение

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

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

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

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

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

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

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

Чего бы это ни стоило!

Другие советы

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

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

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

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

А теперь вручи мне награду.;)

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top