We have many custom built web applications (both external & internal) written in Classic ASP and ASP.NET 2.0 technologies. Internal users can upload files to these websites, which can then be viewed by External Users. In some cases, external users can upload documents as well. Screenshot #1 gives a brief idea about the existing architecture.
Internal users upload documents to
custom web applications
. These documents are stored in a folder structure defined under the web application.Meta data and user permissions like who can access the documents are stored in
SQL Server
database.The same set of documents that are being uploaded to
custom web applications
also exist inSharePoint
. However, the custom web applications are unaware of SharePoint. So, users have to download them from SharePoint and then Upload it to the custom web applications. We are currently usingSharePoint 2010
.External users can also upload documents to the custom web applications. The meta data and user permissions of the document are saved into database based on the user who is uploading the document.
Screenshot #1:
Screenshot #2 shows the architecture that I am trying to achieve. I have done very little SharePoint development. Mostly, I have used the SharePoint web services to retrieve some list content but nothing more than that. Our future Custom Web Applications might be written using ASP.NET MVC. Please find the questions after the screenshot.
Screenshot #2:
Here are my questions:
I would like to have
internal users
continue to upload and maintain their documents in SharePoint. User security model is already defined in theSQL Server
database. This security permissions should be available in the SharePoint document properties so users can choose who can view the document from the custom web applications. How can I achieve this? Should I have to copy the SQL Server user permissions info to SharePoint?I believe that
SharePoint Web Services
orBusiness Connectivity Services (BCS)
can help in retrieving the document and its related info from SharePoint. Which one of these would better suit this scenario?Custom web app should display only the committed versions of the documents. If a user has checked out a document in SharePoint to make any changes, that checked out version of the document should not be visible to External users. Is that possible?
Has anyone tried this approach? Are there any pitfalls with this model? Are there any performance concerns with this design?
Will this design be of any hindrance if I rewrite our existing applications using ASP.NET MVC?
Is it possible to make use of SharePoint search feature within the custom web application (
ASP.NET Web Forms
/ASP.NET MVC
)? In other words, can I send search criteria from custom web app and have SharePoint do the search and return the results back to custom web app?
I really appreciate your inputs.
Thanks in advance.