有人使用 Silverlight/WCF 成功实现了 Sharepoint 外部库的 MSDN 解决方案吗?
有人成功地为 Sharepoint 外部库实现了这个 MSDN 解决方案吗?
http://msdn.microsoft.com/en-us/library/dd440954。 aspx
一些背景:我们将为 Intranet 和 Extranet 用户提供文件上传/下载功能。在某些情况下,用户上传的数据会非常大:有时是 WSS3/MOSS2007 2GB 限制的两倍。这个 MSDN 解决方案看起来很引人注目,因为我们可以利用 Sharepoint 提供的大部分功能(版本控制、元数据、身份验证、授权和工作流程),但仍然可以管理非常大的文件。
以下是我对 MSDN 解决方案的一些具体问题: 1. 该架构显示通过 Sharepoint 中的 asmx Web 服务传递文件上传/下载。这些 asmx 服务不会将整个上传加载到内存中吗? 2.安全。它的粒度有多细?可以为外部库中的各个文件分配显式权限,还是仅在列表级别设置权限?
Has anyone successfully implemented this MSDN solution for Sharepoint external libraries?
http://msdn.microsoft.com/en-us/library/dd440954.aspx
Some background: We will be providing file upload/download capabilities to both Intranet and Extranet users. In some cases, user uploads will be very large : sometimes twice the WSS3/MOSS2007 2GB limit. This MSDN solution looked compelling because we can leverage much of what Sharepoint has to offer - versioning, metadata, authentication, authorization, and workflow - but still manage very large files.
Here are some specific questions I have about the MSDN solution:
1. The architecture shows file uploads/downloads passing through asmx web services in Sharepoint. Wouldn't these asmx services load entire uploads into memory?
2. Security. How granular is it? Can individual files in the external library be assigned explicit permissions, or are permissions only set at the list level?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我已经深入研究了实施。以下是一些初步观察结果:
尽管文件上传是从 Silverlight 发起的,但客户端 Silverlight 代码在发送到服务器之前不会将文件分成块。这意味着整个文件会立即通过网络发送。要使用此架构支持大型上传,您需要实现与此 CodePlex Silverlight File 中使用的分块概念类似的东西上传控制项目。为了获得更好的大型上传性能,Silverlight 组件可能需要直接指向负责将流式文件写入磁盘的 WCF 服务。
存储在外部存储库中的文件本身并不与 Sharepoint 安全相关。相反,安全模型是按照存储库构建的。为了简单起见,示例代码将存储库安全模型存储在 xml 文件中。理论上,您可以将对 xml 文件的调用替换为对 Sharepoint Web 服务的调用。这将(同样,理论上)为您提供外部文件存储和用于授权、版本控制等的 Sharepoint 上下文。
I've delved into the implementation. Here are some initial observations:
Although file uploads are initiated from Silverlight, the client-side Silverlight code does not break files into chunks before sending to the server. This means the entire file is sent across the wire at once. To support large uploads with this architecture, you'd need to implement something similar to the chunking concepts used in this CodePlex Silverlight File Upload control project. For better performance with large uploads, it may be necessary for the Silverlight component to point directly to the WCF service responsible for writing the streamed file to disk.
Files stored in the external repository are not natively tied to Sharepoint security. Rather, the security model is patterned after the repository. For the sake of simplicity, the sample code stores the repository security model in xml files. Theoretically, you may be able to replace the calls to xml files with calls to Sharepoint web services. This would (again, theoretically) give you both external file storage and Sharepoint context for authorization, versioning, etc.