1. Multi-company support: SF must have a feature that lets you add the user profile fields like company, department, currency, etc. How easy is it to implement, do we need to create the db tables or does this feature come out-of-the-box? Is there any other way to implement this feature?
Sitefinity follows standard ASP.NET Profile Provider implementation. You only have to declared your custom profile properties in the web.config file and add several TextBox controls and labels for the newly added properties. Database changes are not required.
2. Super-admin vs. Company-admin: Let's say we have 10 companies registered on our portal. Now each company has 'n' number of users. We want that there should be a company-admin user for each company who further manages/creates the users of his company. This feature is inherent in the DotNetNuke. Is there an easy way to implement in SF? The super-admin is the one who will be the overall in-charge of the web portal.
Sitefinity follows standard ASP.NET Membership and Role providers implementation. You can create multiple roles and users with different permissions. Note that there are granular permissions only for pages - each page could have different permissions for a given role. For content data - permissions are per module and provider.
3. Maintenance: We might need to use something like example.com/companyA or companyA/example.com (sub-domain) i.e. assign sub-domain to each company. In this case, how difficult or easy will it be to maintain different sub-domains/companies, for instance, the upgrades made by the super-admin and the backups done by the company-admin.
Pl. note that different companies will not only have different users but different roles too. The content in terms of the modules may also differ, fi, the companyA might not be using the Quotes module whereas the companyB might be using both Quotes and Invoices.
The upgrades are manual. For this scenario you can use a simple website with multiple providers for each one. In this case you will have one database and one website. Another option is using "domain page mapping.
". The third option is using separate databases for a single website, which means that you have to perform two upgrades.
Since Sitefinity uses provider model you could have to or more website that share content between them.
4. Performance: The portal may grow to cater hundreds of such companies. Will the performance be affected in such a scenario if the companies are accessed using this way: example.com/companyA. This is witnessed in the case of DotNetNuke as each portal/sub-domain is represented as an object in memory.
The performance depends on many factors. For such scenarios you should have load balancing environment. All Generic Content based modules use web service for content binding. Pages section could handle over 50 000 pages.
5. Users, Roles, and Modules: The company A might be enrolled to the Invoice module and the companyB to both Invoice and Quote. We want that when a user of companyA logins he should be able to view/work-on the Invoice module only whereas the companyB's user should be able to see both.
This could be achieved if there is a user that belongs to a role - CompanyA any you have assigned view/edit permissions to this role only for Invoice module. There should be another role - CompanyB which users should have permissions over module Invoice and Quote.
Further, there could be 2 different types of users (roles) in companyB: QuoteCreator and QuoteApprover. When the QuoteCreator accesses the Quote module functionality, he should not have access to the Approver portions of the Quotes module.
You could achieve this when you use workflow.
Is this possible in SF 4?
All of the above will be possible in Sitefinity 4.0.
6. Different companies will need to exchange pages (like Quotes) and some pieces of data (like Quote approved or rejected). Which SF feature(s) can we use to implement this?
You can use workflow, but you can reject the whole page, you cannot reject only a certain control from it.
All the best,
the Telerik team
Do you want to have your say when we set our development plans?
Do you want to know when a feature you care about is added or when a bug fixed?
Telerik Public Issue Tracking
system and vote to affect the priority of the items