SharePoint StrengthsThis post focuses on the strengths of SharePoint. This blog post is an excerpt from an InfoStrat white paper.
SharePoint provides a framework for building websites, whether public websites, intranets or extranets. You can create and populate a website quickly with SharePoint with a minimum of custom development.
Data Models in SharePoint 2013
The Microsoft Office Dev Center provides a thorough explanation of developing applications for SharePoint 2013 (https://msdn.microsoft.com/en-us/library/office/jj162979.aspx). The article on what’s new for developers (https://msdn.microsoft.com/en-us/library/office/jj163091.aspx) highlights the key enhancements of SharePoint 2013 for developers and system architects.
The enhancements are in the following areas:· Cloud App Model
· Familiar programming model using web standards
· Development tools
· Core platform enhancements
· Social and collaboration
· Enterprise Content Management
· Business Connectivity Services
· Application services
· Additional resources
For our analysis, the most important area is Business Connectivity Services (BCS) which enables SharePoint to access data from external data systems such as Dynamics CRM, in addition to other data-driven applications that are exposed through WCF services or OData endpoints. BCS in SharePoint 2013 was improved in many ways, including OData connectivity, external events, external data in apps, filtering and sorting, support for REST, and others.
There are three main approaches to defining data models for SharePoint applications:
1. Using SharePoint data structures such as lists and content types. This approach is best for end users.
2. You can define a data model in an external data source, such as a relational database, and then create a set of external content types to expose the data to SharePoint through the Business Connectivity Services (BCS) component. Alternatively, you could create a Web service to wrap the data source and create your external content types from the Web service.
3. You can create a set of external content types to model and integrate an existing data source, such as a database, a Windows Communication Foundation (WCF) service, or a .NET type, to expose the data to SharePoint through the BCS.
SharePoint 2013 introduces a new way to support external data in autonomous units called apps. Apps contain all the resources they need to run and are isolated from other apps. The app architecture allows you to access external data from SAP, Netflix, and proprietary and other types of data without involving the tenant administrator. Access to external applications is provided through Business Connectivity Services (BCS), which are a consistent and uniform interface that can be used by other SharePoint applications.
You can access external data with REST (representational state transfer) URLs for BCS. Like the app framework, this enhancement makes it easier for developers to extend SharePoint.
In summary, it is not that SharePoint cannot support relational databases, but rather that significant custom development is required to create a relational application that runs in the context of a SharePoint portal. Using SharePoint as a shell for a custom application may be the best approach when integrating with an existing application.
If unstructured data is the core of your application, SharePoint may be sufficient on its own. For instance, SharePoint provides:
· Shared website
· Access without VPN client
· Document management
· Version control
· Email Alerts
· Full text search
· Document metadata
· Meeting and project workspaces
While Dynamics CRM allows you to attach files to records, it is not a document management system. If you want version control, check-in, check-out and other document features, you can turn to SharePoint.
SharePoint is a content management system and Dynamics CRM is not. Dynamics CRM provides no functionality to build websites, intranets or extranets. While Dynamics CRM can provide data for web services which you publish on a website, for content management, SharePoint is the hands-down winner.
SharePoint offers a search engine which crawls multiple sources, searches on full text, and returns a combination of hits from web pages, documents, personal profiles and other sources. Dynamics CRM allows searching in its structured data but has nothing to compare with the SharePoint search engine.
Once again, if you need this type of functionality, SharePoint and not Dynamics CRM would be your choice.
The SharePoint paradigm provides a great deal of flexibility and independence to site owners. In a decentralized organization, SharePoint allows departments and other groups to set their own standards without affecting others.
SharePoint lists may be easily customized by adding new columns without affecting other lists in other sites. You could have ten lists each called “proposals” with different fields and different configurations. Nor is there a requirement that these lists share the same name, so similar lists could proliferate with different names in the same or different sites.