When providing solutions based on the multiple products, the success of the solution depends on what level of OOB features of those products helps in addressing the business / functional needs and what level of flexibility those products offers in terms of customization.
Also, how those products help in addressing business needs is very important in terms of time-to-market through:
- Capabilities for seamless integration with federated business partners through adapters (like what Microsoft BizTalk, & StreamInsight have rich set of adapters minimizing the development time),
- Partner ecosystem with solutions (like what partners have solutions based on SharePoint in addressing various business requirements such as document storage, DRM / IRM, BI etc)
In addition to above mentioned factors, success depends on how the products allow developer community in extending its capabilities to address complex techno-business requirements.
While allowing the developer community for customization, it is also very important how a product provides capabilities for the secured execution of those custom code blocks – at the same time, without affecting the performance of the application and without allowing the code blocks to block resources – CPU, RAM, Threads etc. – especially in the scenarios of “careless “/ malicious code blocks, bringing down the entire application execution environment.
SharePoint is one such product that allows developer community to address complex techno-business requirements and other needs of an Enterprise through extensive customization and also ensures reliability of the application through “Sandbox” – secured code execution environment.
In addition to secured code execution capability, for the developer community, it is a must for the availability of the sophisticated tools for carrying out post code engineering activities such as performance tuning, code profiling etc. Microsoft development platform provides tools for carrying such activities on SharePoint customization code blocks that are marked for Sandbox environment