The Advanced Components

The left hand side of the v11 diagram contains the category of Advanced Components.  The reason that we call them advanced is because they require a more advanced skill.  Most of the Advanced Components still have a similar “Edit CorasWorks Settings” but instead of the GUI based Wizard, you are taken to an XML editor (image below) that allows for much more flexibility in what can be done with them but is not as easy as the Basic Components to configure.
 

. Title: Advanced - Description: Advanced

The language of the Advanced Components is open XML that looks like this:
 

Title: XML Output - Description: XML Output
 

 The knowledge required to use them varies based on the component but a typical person building with these is a Web Developer with HTML, XML, XSLT, JavaScript, and potentially database query skills.  Everything can be done in a Browser but it helps if they have access to SharePoint Designer.  Visual Studio is never required for any of the CorasWorks components!
 

Data Connections/Providers
The Data Providers are a set of components that allow a web developer to connect to SharePoint and/or external systems like SQL, Oracle, etc. through a simple XML configuration.  For example if you wanted to connect to a SQL DB, you would use either a Select statement or a Stored Procedure call.  If you were connecting to a Web Service, you would need to include an envelope and the action from the WSDL.
 
Data providers are used extensively in many of the larger systems that either our professional services team or very advanced customers build.   It allows the specific business solution being built to connect to these external systems, bring the data into a common interface in a seamless way where the business user has no idea that they are using data from an external system.  Data providers also have a rich feature set that not only allows for read/writing of the data but also allows the web developer to use pass through parameters to select the best connection string to use for a given purpose and also to pass information that will result in much smaller filtered data returns.
 

Mash-ups & Analysis
Once the data is available in the open XML format, you then have a great deal of flexibility for how the application will use this data.  The typically business solutions that use the advanced components have a need to connect to more than one data source, an example would be a SharePoint list and a SQL database.  Instead of having to have two displays, forms, etc. for those distinctly different data sources, you can use the Mash-up Adapter to combine them into a single XML output that can be used by other components just like the original Data Provider XML outputs.
 
In addition to mashing the data up there are many times a need to analyze the data.  For instance if you were going to chart the information and wanted a count of all sales opportunities that the team was working for the current quarter, you would use the Business Analysis Adapter to do this calculation and the resulting XML would be in the proper format.  Of course sometimes that is quite a bit of data so we also have a Caching component that will save off a snapshot of the data so there isn’t a need to go back to the originating system every time the screen is refreshed.  This is an area of great flexibility but definitely requires the correct skill set to leverage it.
 

Advanced Displays
While the Basic Components have the ability to connect to the open XML outputs of the Advanced Components, in a business solution that is using Data Providers, Mash-ups, etc., many times there is a need for much more precise control of the resulting User Experience (UX).  In these cases you might choose to use the more flexible Advanced Displays.  They have similar capabilities to the Basic ones but they are exclusively working with XML data.  This means that they give the ability for more sophisticated solutions to have things like a parent, child, grandchild relationship, drill down maps, cones, funnels, custom forms ,etc. This is one area where if you can dream it, you can most likely do it.  In fact there a Custom Display Adapter that allows you to combine the data with HTML to create whatever UX you want.