创建具有外部持久性的文档库 - c#

我想创建一个自定义文档库,在其中使用标准UI,但实现一个不同的持久层。基本上是从其他源系统获取和显示文档。这样,我可以使用现有的对象模型,但可以利用SharePoint中强大的Office集成。

我发现了一篇不错的文章here,但是他们在作弊,他们为外部持久性编写了一个全新的UI。

我已经查看了SPList和SPDocumentLibrary对象,但是无法覆盖必要的方法。

我查看了事件框架,它的位置更近,但缺少诸如“ GetFile”或“ PopulateList”之类的重要事件。

有什么想法吗?

参考方案

这并不是您要尝试做的完美选择(或什至是“好”选择),但我之所以提到它主要是为了提高认识,并可能给您一些其他的想法(和警告)。

SharePoint的存储体系结构利用两种不同的后端存储:一种用于元数据(始终为SharePoint的SQL数据库),另一种用于BLOB存储(默认情况下也为SQL)。但是,以当前形式,SharePoint允许您通过实现ISPExternalBinaryProvider接口的类型来“连接”自己的BLOB存储提供程序。以实现该接口的类型进行接线,可以使您继续在SQL中存储元数据,同时将文档和其他BLOB项目类型存储在您选择的其他存储中。

这听起来似乎很有希望,但是有一些严肃的考虑因素:

连接您自己的ISPExternalBinaryProvider会对整个服务器场产生影响。它是全部还是什么都没有,因此一旦连接了提供程序,所有站点和库都将使用新的提供程序。
您需要深入研究非托管代码,因为ISPExternalBinaryProvider正在要求您使用某些IDL。

您可以在此处阅读更多信息:http://msdn.microsoft.com/en-us/library/bb802976.aspx

我的观点是,此时外部BLOB存储(EBS)系统是一种“原型”-尚未准备就绪。不过,如果没有别的,它会让您有所思考。希望SharePoint Server 2010可以做更多的事情,并使其更具吸引力和易于实现。

物有所值!

Visual Studio Cant查找文件-调试 - c#

在Visual Studio 2015中进行调试期间,无法找到文件:xxxx.cs not found You need to find xxx.cs to view the source for the current call stack frame Try one of the following options: - Browse and find …

在Visual Studio Proff中调试本机代码 - c#

我们在这里使用的解决方案包括C#中的一个项目和C中的另一个项目。是否可以在Visual Studio中调试c代码? c#参考方案 当然,如果您有源代码,请从中创建一个项目,作为调试进行编译(添加断点,监视...)并进行调试。

将文本框传递给方法。使用textchanged事件时。 C#Visual Studio - c#

我的表单上有一个文本框,试图向其中添加一些验证。我已将以下方法附加到textchanged事件。但是我得到一个'没有重载的方法匹配system.EventHandler'错误。我真的不明白为什么要得到它。调用该方法时,是否没有将参数传递给该方法? private void rangeValidate(TextBox textbox) { int mark =…

Visual Studio Code可以增量编译Java Web App项目吗? - java

我是Visual Studio Code的新手。我正在尝试将其与使用Maven的现有Java Web应用程序项目一起使用。我已经下载了推荐的Java扩展,例如Java Extension Pack,Java Maven和Java Tomcat。在IntelliJ(我通常的IDE)中,我可以很快地从Java的少量编辑转到Tomcat中刷新的WAR。如果我编辑文…

如何在Visual Studio 2008速成版中生成Make File - c#

有人知道如何在Visual Studio C#2008 Express Edition中生成Make File吗? 参考方案 使文件在.NET世界中几乎没有用处。而是考虑使用MSBuild。