We are currently building a new public (extranet) client document portal. This should be system very similar to box.com where we can exchange documents with our clients. We will also allow the client to share documents with other users. Since we are relatively new to the SharePoint technology, we hired a vendor who persuaded us to use SharePoint technology for this product, and we’ve invested significant amount of money so far.
System will have a SharePoint site for each client, around 12000 sites. Each site will have 3 document libraries. We will also create site for shared document users and a library in each of these shared user’s sites. In order to avoid item level security, we will have to either add all these users to each of the libraries in their respective client sites, or create site custom groups (we can’t use custom groups since Microsoft recommends only 10000 per site collection). Moreover, we will definitely have to use item level security for one of the libraries in which client users can upload documents and they are allowed to see only their uploaded documents.
Considering that our system will be used only to exchange documents in the first phase, and possible collaboration features for the next phase (we haven’t defined collaboration yet), do we really need:
•complicated security model (more secure though),
•extra reading/writing document to database (we are using BLOBs technology) but there is a lot of database reading/writing when you upload/download document
•limitation of 250K sites per site collections
•increased difficulty of creating web parts, event receivers, workflows, timer jobs, web templates, features and other custom code
•more difficult way of updating UI (page layouts, web part zones, publishing templates)
If we were going to do this in SP.NET we could have done it using few web forms, single database and file system for document storage.
Is SharePoint right technology for this system? Can you please give me some Pros and Cons?