Я ничего не знаю о разработке Microsoft Office, но я хотел бы создать прототип плагина, который позволит пользователю сохранять и открывать документы из удаленного хранилища. Возможно, позже создайте систему управления версиями на сервере - но серверная часть - самая легкая ее часть (в моем случае). Возможно, я должен сосредоточиться на том, чтобы заставить это работать для одного офисного приложения за раз - скажем MS WOrd (если люди не думают, что с Excel легче работать) И давайте нацелимся на Office 2007 (поскольку это то, что я установил).
Сохранение
В хранилище будет храниться документ с тегами (многими тегами, разных типов). Для сохранения документа надстройка должна сначала показать диалог и разрешить пометку. Надстройка должна отправить массив тегов вместе с документом (в кодировке Base 64?) Через API SOAP или REST на наши серверы. Несколько вопросов
- Возможно ли это? если так предложения относительно того, как это может быть достигнуто? Существует ли механизм получения доступа к двоичным данным (потоку) просматриваемого документа?
- Возможно ли добавить это обратно в диалог File-SaveAs? ИЛИ мне нужно будет создать свой собственный пункт меню? Первый Obviuos, вероятно, больше знаком с пользователями ...
- Существует ли уже механизм удаленного сохранения документов, от которого я могу отказаться?
Открытие
После сохранения нескольких документов нам потребуется метод извлечения документов / их открытия. Поэтому я подумал бы, что мне нужен диалог, позволяющий просматривать документы. Тип тега -> Значения тега (в дереве может быть больше уровней, но я хочу начать с него). Раз документ открыт, я думаю, что API нужно будет
- Выполните вызов RPC (SOAP / REST) для извлечения документа - декодируйте содержимое (фактический документ) и откройте этот поток внутри Word (например)
- Я также хотел бы сохранить свои теги в памяти
XML Design
Чтобы лучше представить данные, которыми обмениваются Word и сервер, давайте представим XML-структуру наподобие
<document name="recapOfTheGame.doc">
<tags>
<tag type="team">New York Yankees</tag>
<tag type="team">Boston Redsox</tag>
<tag type="city">New York</tag>
<tag type="city">Boston</tag>
<tag type="type">recap</tag>
</tags>
<content encoding="base64">AKJSGHKASHGFKSJDHGFKSJDHGFSKDJFHGSKJDGSKDJGSKDJFHGSDKJFH</content>
</document>
Исследователь хранилища должен показывать этот документ в нескольких местах дерева; Вот пример репозитория, показывающего этот документ в пяти местах (на основе тегов):
repository
+ untagged <not shown in XML>
- team
+ Tampa Bay Rays <not shown in XML>
- Boston Resox
recapOfTheGame.doc
- New York Yankeeys
recapOfTheGame.doc
- city
+ Tampa Bay <not shown in XML>
- new york
recapOfTheGame.doc
- boston
recapOfTheGame.doc
- type
+ box scores <not shown in XML>
- recaps
recapOfTheGame.doc
Другие мысли
Я только предоставил дизайн XML, чтобы сделать концепцию более осязаемой, и я открыт для других методов хранения тега (в документе, если это возможно). В целом, любое направление, которое я могу дать в этом начинании, будет с благодарностью.
Я задал этот вопрос по-другому, чтобы проверить, будут ли отличаться ответы, Открыть документ WORD из базы данных ИЛИ веб-сервис
Я принимаю ответ webDav - ниже, так как он является общим для обоих и именно так делает alfresco.
Спасибо