We have developed a digital asset management (DAM) application. The base architecture is as follows:
- The user interface is written with Silverlight 4
- Assets are stored in SQL Server using the FileStream data type.
- Communication between Silverlight and the mid tier is over WCF
Users want to be able to select a document inside our Silverlight application, choose edit, have the document fire up in the native application, and have any changes made reflected inside DAM. Documents are not limited to any specific types and are predominantly adobe PSD and AI files and Office documents. Users love the user interface and other system features, but they miss the feel of native editing that sharepoint provides.
We are considering the following approach and seek opinions from the community on its feasibility.
- A WebDAV enabled folder would set up in IIS.
- The user selects a document in dam and chooses Edit. This would invoke a wcf call.
- The wcf service would:
- Create a subfolder in the WebDAV Main folder and secure it.
- Extract the document from the dam database and stores it in the newly created WebDav folder
- Send a response back to the client with the location of the extracted document
The Silverlight client would then pop up a new browser window pointing at the document in WebDAV.
When the user saves the document it will be saved in the WebDAV folder. A windows service will listen for file change notification events on the WebDAV folder tree. When an event is raised, the service will cause the updated documents contents to replace the prior contents in the dam database. The windows service will also clean any documents in the WebDAV tree that are older than x days.
Benefits:
1. We don't have to link to SharePoint.
2. All types of files are supported.
3. Security can be handled by dynamically creating user folders with appropriate permissions.
Potential Issues:
1. Microsoft Office 2003 and 2007, and potentially other versions of Office open documents from WebDAV sites as Read-Only by default. This can be overridden with a registry setting, which could be pushed out by Group Policy.
2. WebDAV gives some people the "heeby jeebies". I have not had enough experience with it to know why.
Alternatives:
Instead of using WebDAV, host an instance of SharePoint Foundation or SharePoint server and use the appropriate API's to store and secure the document. Our initial inclination toward WebDAV is to keep the footprint small.