Problem: We need to create a generic document repository that will store all documents within an enterprise. The repository will be used by external systems, that is other SharePoint Web Applications (in the same farm, and other farms) and by other none-sharepoint systems. The repository will provide only basic functionality to the external systems, create library, add and update document, and view list of documents in a library.

Reason: Strategic decition. All documents should be located system. Allows for easier replacement of a system (since documents and metadata are stored in one place and in the same format)

Scenario: A external system (say CRM) needs to store documents in the generic document repository. The developers of the other system (CRM) are given the interface of the generic document repository. This interface provides basic CRUD for library and document. The interface is not tied to a specific contenttype, so any contenttype could be specified by the external system. The contenttype must be created in the generic repository, but apart from that, the generic repository is ready to be used by the external system.

Question: How should this generic interface be created?

Alternative 1: Don't develop anything, let the external systems use the client object model and provide some development guidelines.

Alternative 2: Create a set of web services, wrap the metadata in an xml argument and refer also the contenttype id. You may also optionally host them inside a custom service application.

Any feedback are very welcome. If you have comments on the design, or if you would recommend any of the alternativs we would be very happy!

Thanks for any help




I like your Alternative 2. It puts a little more of the work on you, but it gives you tighter control over what happens on your server. Plus it is more open and can perhaps support a wider variety of external systems.

|improve this answer|||||

I definitively think alternative 2 is a better solution than alternative 1. And agrees with Rob Wilson that it gives you a tighter control over what happens on your server, which I consider important.

|improve this answer|||||

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.