Here is the highlight from the book Designing Solutions for Microsoft SharePoint 2010: Making the right architecture and implementation decisions (Patterns & Practices) about using the rich client in SharePoint 2010:
[What you have]:
You have a project that requires to build a rich client on SharePoint 2010.
[What you want]:
You want to understand which new RIA (rich internet application) capabilities of SharePoint 2010 suite you the best: Ajax or Silverlight or others? Are there others?
[What you want to know]:
Typically, there are three main reasons for developing client-side logic that interacts with a SharePoint enviroment:
- You want to provide a richer user experience on a SharePoint Web page;
- You want to perform actions that are unavailable to server-side code running in the sandbox environment, such as accessing information from multiple site collections or retrieving data from an external service.
- You want to access and manipulate SharePoint data from another application, such as an Office client application or a custom solution.
Decision-making "How to build a rich client" includes 2 main area:
- client-side object model (CSOM);
- REST interface, ASP.Net Web services;
- BCS ( as a specific example - using BDC object model). Please refer to SharePoint 2010: BCS and BDC to understand the relationship between BDC and BCS
- Office client applications;
- Stand-alone clients built on WPF, Windows Form applications, a console application or PowerShell extension (PowerShell and SharePoint: What, Why and How )
Here are some considerations regarding what type of rich client is more appropriate:
Please keep in mind that Ajax in Internet world much wider accepted than Silverlight. If you have decided to build a Silverlight solution, the best practice is to provide alternative HTML content within the object tag.
Generally speaking, there is a trade-off between reach and capabilities. Pure HTML has universal reach but limited capabilities. Ajax brings richer functionality but may not be supported by every browser. Finally, Silverlight and Flash provide the broadest set of capabilities but only work if the user installs the plug-in.
Pages that contain Ajax and Silverlight functionality will typically have a higher initial load time than traditional thin client approaches. However, as asynchronous communication model ensures that the page remains more responsive.
improve the load time.To get more sustain knowledge regarding this techniques refer to RIA Technologies: Benefits, Tradeoffs, and Considerations
Cross-domain access is possible!
In order for a Silverlight application to access services on a different domain, the external domain must include a client access policy file at the root of the web site (What's New: Silverlight Integration and Cross-Domain Data Access)
[What you want to consider]:
Refer to msdn - Client Application Models in SharePoint 2010
Buy a book to get deeper knowledge of pros and cons of rich client application development on SharePoint 2010: Designing Solutions for Microsoft SharePoint 2010: Making the right architecture and implementation decisions (Patterns & Practices) Part III
Read a free extra from the book - refer to Part 3 Chapter 8.
Take a look at The Client Reference Implementation.