保存并打开远程文档

我对微软Office开发一无所知,但我想构建一个插件原型,允许用户从远程存储库中保存和打开文档。 也许以后可能会在服务器上构建一个版本控制系统 – 但是服务器端部分是关于它的最简单部分(在我的例子中)。 也许我应该专注于让它一次用于一个办公应用程序 – 比如MS WOrd(除非人们认为excel更容易使用)。 并让我们以Office 2007为目标(就像我安装的那样)。

保存

存储库将存储Tagged文档(许多类型的许多标签)。 保存文档AddIn需要先显示对话框并允许标记。 AddIn需要通过SOAP或REST api向我们的服务器提交一个标签数组和文档(Base 64编码?)。 几个问题

  1. 这可能吗? 如果有关于如何实现的建议? 是否有一种机制可以访问您正在查看的文档的二进制数据(流?)?
  2. 是否有可能从File-SaveAs对话中捎回来? 或者我需要创建自己的菜单项吗? Obviuos前者可能更熟悉用户……
  3. 是否已经存在远程文档持久性的机制我可以背负?

开盘

一旦保存了许多文件,我们将需要一种检索文件/打开文件的方法。 所以我认为我需要一个对话框,允许浏览文件标签类型 – >标签值(树可能有更多级别,但想从那里开始)。 ONce文件打开我认为API需要

  1. 进行RPC调用(SOAP / REST)以检索文档 – 解码内容(实际文档)并在Word中打开该流(例如)
  2. 我还想将我的标签保存在内存中

XML设计

为了最好地可视化Word和服务器之间交换的数据,可以设想一个XML结构,如:

  New York Yankees Boston Redsox New York Boston recap  AKJSGHKASHGFKSJDHGFKSJDHGFSKDJFHGSKJDGSKDJGSKDJFHGSDKJFH  

存储库资源管理器应该在树中的多个位置显示此文档; 以下是一个存储库的示例,该存储库在五个位置显示此文档(基于标记):

 repository + untagged  - team + Tampa Bay Rays  - Boston Resox recapOfTheGame.doc - New York Yankeeys recapOfTheGame.doc - city + Tampa Bay  - new york recapOfTheGame.doc - boston recapOfTheGame.doc - type + box scores  - recaps recapOfTheGame.doc 

其他想法

我只提供了XML设计以使概念更加切实,我对其他存储标记的方法持开放态度(如果可能的话,在文档中)。 基本上我可以在这方面给予任何指导,我将不胜感激。

我以不同的方式询问这个问题,以检查响应是否会有所不同, 从数据库或WebService打开WORD文档

我接受webDav回答 – 下面是两者之间的共同点,这是露天的做法。

谢谢

看看使用WebDAV打开/保存文件; 虽然ymmv,办公室也支持这一点。 如果您无法使用内置的Office支持,请使用WebDrive ,NetDrive等,或构建您自己的。

另一种方法是SharePoint协议,如果您的存储库支持它。 例如,Alfresco克隆了部分内容。 这也具有Word中内置客户端的优点。

CMIS比WebDAV更现代,你必须建立自己的客户端(看看Apache Chemistry)。 如果您的存储库支持它,那么这可能就是这样;

您也可以通过VSTO使用SOAP或REST,但这些也属于构建您自己的客户端类别。

关于标签:您可以将这些作为WebDAV属性传递。 也可能值得将它们作为CustomXML部分放在docx中(或者只是文档属性 – 它的优点是它们在Word UI中可见),因此即使移动了文档,也可以使用它们。