Thursday, November 8, 2012

SharePoint - An Application Integration Platform


SharePoint 2010 - An Application Integration Platform


SharePoint includes a host of features that can be integrated with external applications:

  • Document management features
  • List features
  • Excel Services
  • Search
  • Access Services
  • & more…

Why use SharePoint as an integrated development platform?

  • By leveraging existing capabilities within SharePoint, organizations can:
    • Avoid developing redundant modules for similar functionality, thereby reducing maintenance costs.
    • Increase functionality & reliability of integrated applications
    • Easily extend / enhance SharePoint features, thus allowing for modular upgrades.
    • Potentially reduce costs on infrastructure requirements.

What type of applications are ideal candidates to be integrated with SharePoint?

  • Applications that make extensive use of documents.
    • SharePoint libraries can provide a host of added capabilities such as maintaining versions, managing metadata, security, and search.
  • Applications that require dynamic content updates (such as FAQ’s), require tracking (eg: issues tracking), facilitate discussions, or calendars, etc…
    • SharePoint lists can serve as a repository of information for external applications.
  • Dashboard / Business Intelligence using Excel
    • Excel services within SharePoint provides a highly flexible platform for dashboards. External applications can query excel documents, display charts / graphs from within excel documents and update data.
  • Search
    • External applications use the SharePoint search engine to search content maintained with SharePoint, shared folders or even other databases.

SharePoint provides the following access points / API’s:

  • Web Services
    • Can be used for document management, list item management, and search.
  • Client Object Models (COM)
    • SharePoint provides three COM’s – a) .NET COM, b) Silverlight COM, c) Javascript COM. Although limited in its capability, COM provides a platform for integration from external applications and can be used for advanced query and manage content.
  • REST API
    • Query based API that can retrieve data from SharePoint. Can be used to dynamically retrieve graphs and charts from Excel using Excel Services.

Summary:

 
  • SharePoint capabilities can greatly enhance functionality of external applications via integration.
  • Increases ROI by leveraging the SharePoint infrastructure, while reducing costs on development & maintenance of redundant functionality.
  • Increased time to market.
  • SharePoint SOA based, thus allowing for other applications to integrate. No additional interfaces required to retrieve content from SharePoint.
  • SharePoint is mobile enabled – thus providing an out of the box mobile interface for content.
  • Overall, using SharePoint as a development platform contributes to CBE initiatives across the App Dev organization
 
 

Sunday, March 6, 2011

Workflows in SharePoint 2010

Introduction


SharePoint 2010, amongst its plethora of new features, has greatly enhanced the workflow capabilities. Workflow is one of the key elements of BPM (Business Process Management), and SharePoint 2010, with all its other features, manifests itself as a viable platform for developing BPM solutions. In SharePoint 2010 workflow enhancements are mainly in areas of flexibility, functionality, ease of use, and reliability. More details on these improvements are discussed later in this paper. Overall these improvements are intended at enhancing the workflow lifecycle management within SharePoint.
In this day and age of rapidly changing business process, more and more power is being given to the “Citizen Developer”.  A “Citizen Developer” as defined by Gartner is “… a user operating outside of the scope of enterprise IT and its governance who creates new business applications for consumption by others either from scratch or by composition”. Further, according to Gartner at least 25% of business productivity applications will be developed by these new and growing breed of developers by 2014 (source: http://www.gartner.com/it/page.jsp?id=1212813 ).  This is where SharePoint 2010 adds most value. Using the features of workflow, InfoPath 2010, SharePoint Designer 2010, Visio 2010, and Workspace 2010, “Citizen Developers” can build powerful no-code composite applications within the SharePoint platform.
This paper is aimed at discussing the new workflow capabilities, the new tools for developing workflows and finally the various options for building workflows. A detailed technical discussion of the workflows is out of scope for this paper. The primary objective of this paper is to provide an overview of what is new in workflows in SharePoint 2010, explaining the business benefits and the delving into certain considerations while developing workflow solutions.

What’s new in SharePoint 2010


From a workflow perspective, SharePoint 2010 has improvements and / or new features in the following areas:
a)      Tools – Two main improvements with the tools:
a.       Visio 2010 is now has a brand new template that allows building SharePoint 2010 workflows. At a high level, this process involves creating the workflow in Visio, exporting it into SharePoint 2010 designer for associating specific rules and actions, and then finally publishing the workflow to SharePoint.
b.      The new SharePoint 2010 designer has new features for customization of out of the box workflows, building reusable workflows that are capable of being deployed to multiple lists, and also building complex declarative workflow solutions.

b)      Flexibility – New capabilities in the flexibility area include new type of workflows called Site workflows, new events that allow close monitoring / tracking of the workflow actions and more powerful out of the box actions in SharePoint 2010 designer (For a quick reference of the new actions in SharePoint 2010 check out - http://office.microsoft.com/en-us/sharepoint-designer-help/workflow-actions-in-sharepoint-designer-2010-a-quick-reference-guide-HA010376961.aspx ). SharePoint 2010 introduces new “hooks” (events) which can allow better tracking of a workflow. These new events include “A workflow is starting”, “A workflow was started”, and “A workflow was completed”. Each event can be associated with specific action, such as notifying users these events, thus allowing for better monitoring of the progress.

Workflow Classification


Within SharePoint 2010, there are many different ways to classify workflows, such as a) the type function the workflow performs (human centric or system), the type of tools used to create the work (out of the box, custom developed or using third party tools), declarative vs code based workflows, and finally the level at which the workflow operates (site workflows, content type workflows, or list workflows). Let’s explore these classifications of workflows a bit more in detail:
a)      Human centric or system workflow – This classification is based on the type of function performed by the activities in the workflow. Human centric workflows are focused on performing activities that involve human interaction such as collecting approvals or feedback. On the other hand system workflows focus on performing automation type activities such as automatically archiving copies or automatically expiring content.
b)      Based on workflow tools – With SharePoint 2010, besides the out of the box workflows, there are 3 different tools that can be used to create workflows: a) SharePoint Designer 2010, b) Visio 2010, and c) Visual Studio 2010. SharePoint Designer and Visio are tools meant for business users; where as Visual Studio is meant for complex workflow development using code. Besides these tools, there are third part products such as Nintex and K2, targeted at IT pros and power users.
c)       Declarative Vs code based workflows – This particular classification is rather technical and is based upon the tool used to develop, workflows can be declarative or code based. Workflows designed using SharePoint designer or Visio would fall in the “declarative workflows” category as the output of these tools is XML. Workflows developed using Visual Studio are code based and hence fall into the “code based workflow” category.
d)      Sequential Vs State Machine workflows – SharePoint 2010 supports two basic types of workflows a) Sequential and b) State machine workflows. A sequential workflow is more like a flow chart and follows a linear set of tasks. State machine workflows are based on specific events and do not necessarily follow a linear path. A good example of a sequential workflow would be a simple approval workflow, and a good example for state machine workflow could be complex processes such as order processing or proposal management systems.
e)      Site Level Vs List Level workflows – SharePoint 2010 introduces site level workflows, which function similar to list and content type workflow. An advantage with the site level workflow is that the action can be performed across all lists within the site, whereas the list and content type workflows are limited to the specific items they are associated with.
Any given workflow would have a combination of these classifications. For example an approval workflow developed using SharePoint designer and deployed to a list / library, would be a human centric , declarative, and list level workflow, whereas a complex information management policy workflow that automatically expires content could be a system, code based, site level workflow. Overall, these classifications help in understanding the various forms of workflows within SharePoint 2010.

SharePoint 2010 Workflow Solution Spectrum


Many different sorts of workflows, ranging from simple ready to use out of the box workflows to complex code based solution, can be developed using the new tools. Most of the workflow solutions are aimed at business users, varying from site administrators to “Citizen Developers”.
a)      Out of the box workflows – This is the least complex workflow solution.  Allows users to configure workflows without any coding / customization. These workflows offer limited functionality and can be configured by trained site administrators or power users.
b)      Out of the box customization – A new capability of the SharePoint 2010 designer is the ability to customize out of the box workflows. This solution offers the flexibility of extending the functionality of out of the box workflows by modifying the logic and / or using InfoPath forms for enhanced data collection interface. Power users and “Citizen Developers” would be the primary users of this category of workflow solutions.
c)       Custom Declarative – These solutions are designed from the scratch using the SharePoint designer. Provides the flexibility of creating new types of workflows, not available in out of the box workflows. IT professionals would be the primary users of SharePoint designer tool to develop workflows.
d)      Custom Activities – Under certain circumstances the out of the box activities may not provide the required functionality. To fulfill these requirements SharePoint 2010 provides the flexibility of developing custom activities. Custom activities are developed from the scratch using .NET code with the help of the visual studio tool. Developers will build custom activities within Visual Studio and then make it available in the SharePoint Designer to be used by the IT Pros.
e)      Custom Non-Declarative – Under extreme circumstances, workflow solutions can be developed completely within Visual Studio. These solutions would need to be deployed to the SharePoint servers as code, rather than being published to the SharePoint site from the designer. Developers are the only users of this category of workflow solutions.
The following diagram is a self explanatory picture

Figure 1 – SharePoint 2010 Workflow Solution Spectrum

High Level Workflow Considerations


Here are some high level considerations for building workflow solutions within SharePoint 2010:
a)      Reusability – Avoid tying the workflow to a specific list or hard-coding parameter values such as connection strings or approver names within the workflow tasks.
b)       Simplicity – Avoid overly complex workflows; break it down into multiple simple workflows. Overly complex workflows become cumbersome to manage and error prone.
c)       Workflow Life Cycle – Avoid extremely long running workflows. Establish specific check points to monitor workflow progress. Watch for cyclic events; for example an item update workflow updates the item – this is a cyclic process!
d)      Monitoring – SharePoint 2010 has new workflow monitoring reports that provide details about the workflow’s activity duration, cancellation and errors that occurred within the specific instance of the workflow. Further, you can also set a specific server for the timer jobs within a specific content database, which allows more fine grained monitoring of workflow jobs. These features are a great improvement over monitoring capabilities in SharePoint 2007.
e)      Security – It is very important to understand that workflows themselves run as system account, which means they have administrative privileges within SharePoint. On the server the workflow runs under the identity of the application pool settings. Administrators need to thoroughly understand the security requirements and actions being performed within the workflow prior to deployment.

Summary


SharePoint 2010 presents a robust platform for developing efficient business process solutions. New tools, such as InfoPath 2010, SharePoint Designer 2010, Visio 2010 and Office workspace 2010, make no-code solutions a viable option for developing complex business solutions. These new tools, in combination with enhanced monitoring and tracking mechanisms for workflows in the SharePoint platform enable SharePoint to play a key role in driving business efficiencies and productivity.

Recommended Reading


Introduction to Enterprise Content Management in SharePoint 2010

Introduction
I am going start out this paper with an assertion that you may have come across by now; SharePoint 2010 includes features enabling ECM for the masses. The obvious next question becomes “So what is in it for me for me?” It is quite possible one might have come across this term when reading through the plethora of new features that Microsoft added to the 2010 version of SharePoint. Some other questions that come to mind are: a) how is Enterprise Content Management different than Document management or web content management or records management?, b) Are all these content management concepts somehow related?, and c) What are the new features in SharePoint 2010 that support these content management concepts? These questions and more related subjects are the main topic of this paper. Besides providing a high level overview of how these concepts are related, the paper will provide an overview of the different features in SharePoint 2010 and also provide some strategic considerations for successfully implementing ECM solutions within the enterprise.
A detailed analysis of each new feature in SharePoint 2010 is beyond the scope of this paper – there are entire books written to that topic. To better understand some of the different content management concepts, please review the articles referred to in the “Suggested Reading” section.
Enterprise Content Management and its Subsets
To explain the relationship between ECM, document management, records management, and web content management, let’s “borrow” a diagram (Fig 1.0) from the SharePoint datasheet the Microsoft publishes. If you are curious to read the datasheet , here it is http://go.microsoft.com/?linkid=9690856 . As the diagram below depicts, web content management, records management, and document management are all subsets of features of the bigger umbrella - Enterprise Content Management.

Fig 1.0 (“Borrowed” from http://go.microsoft.com/?linkid=9690856)
 As the diagram suggests, Microsoft went beyond just records management, document management or records management, to providing rich media management and enhanced workflows as part of the new feature set in SharePoint 2010. Rich media management refers to digital asset lifecycle management which includes tracking, archiving, searching, storing and retrieving digital assets such as photographs, corporate brand images, videos etc. In the workflow category, SharePoint 2010 introduces new ways of developing workflows, such as through Visio, while also creating new workflows types such as the site workflow. These new capabilities greatly enhance the overall workflow functionality within SharePoint 2010 framework.
Metadata
Now that we have sorted through different types of content management concepts, let’s get to the bottom of what is critical to efficiently managing content: a) content and the more important one b) content about content or should we say data about data or in one word metadata. With respect to management of content, be it office documents, digital assets, or corporate records, the least common denominator for efficient management is metadata. SharePoint 2010 provides many new features of capturing metadata and connecting it to the underlying content.  Metadata forms the basis of enhanced search, content organization, filtering, navigation, archival / retrieval and many other content management features. SharePoint 2010 has new features for capturing and organizing metadata while also new features that use the captured metadata to perform actions depending upon the values of the metadata columns.
It is important to understand the benefits of proper use metadata within SharePoint. Well-organized and efficient use of metadata will result in productivity boost, which is one of the core ROI factors for SharePoint. Inefficient and inaccurate metadata may make things worse. This follows a simple rule “Garbage in Garbage out”. While defining metadata fields and creating the metadata hierarchy a few strategic key elements need to be kept in mind:
a)      People – Do the users of the system understand the importance of accurate metadata? Understand the audience level -  their technical savvy’ness, their understanding of the business process, their willingness to adopt new systems; these are important elements to identify how people view the importance of metadata, and thus will help in designing the adoption program for the system.
b)      Business Process –  Before defining the metadata, it is essential to define the complete business process and then translated to SharePoint specific components. The process of defining appropriate metadata is made easier by identifying different types / formats of metadata, the stage of the business process when the metadata is populated and used and also who and how users will use the metadata.  Any additional complexity such as workflows, or regulatory / compliance requirements, auditing may require the information management policy features of SharePoint .
c)       Technology – Users of the system should understand the high level technological concepts behind the scene to better appreciate and utilize the metadata features to its full potential. It is essential to enlighten users on the “here is how it benefits” factor, besides the “here is how you do it” part. Technological solutions always have limitations and thus, besides understanding how to make effective use of the technology, it is equally important to recognize the boundaries. In simple term technology solutions are not mind readers, they need to be used per the rules to harness its benefits.
Here are some considerations while designing metadata:
a)      Automation – SharePoint 2010 has a feature using which, based on the location / library of the content, default values can be specified for certain metadata fields.
b)      Reuse - Many business processes across the organization may use the same content metadata, but for different purposes and in different ways. For example metadata defining an RFP would have some base attributes such as the project name, budget, duration etc. Different departments may add on to these metadata fields. Thus it may be beneficial for teams to identify these common elements and combine them into reusable content types.
c)       Minimal / Less frequent Changes – Constantly changing or revising metadata structures can cause confusions – user level as well as the content that has been previously stored using that metadata. The point here is to take the time to understand the complete process and its elements instead of taking the approach of “evolve as things change”. SharePoint 2010 definitely has capabilities that make changing metadata easier, but these features should be used with considerations to the user, to the process and to the existing content.

Key SharePoint 2010 Content Management Features
Here are some key SharePoint 2010’s content management features that support the collection of metadata and also features that use the metadata to provide various types of functionality:
-          Managed Metadata Service: This feature allows definition of content types that can be reused across site collections and sites, which is a major enhancement over its predecessor, SharePoint 2007’s functionality. Using the flexibility of the service application architecture organizations can create multiple managed metadata services allowing for isolation and management. Managed metadata service also serves as the container for term store, a collection of hierarchical terms, that could be used as metadata fields within libraries. The following diagram, again borrowed, this time from http://technet.microsoft.com/en-us/library/ee424403.aspx , provides a high level overview of the managed metadata service


Fig 2. Managed Metadata Service Architecture (adapted from http://technet.microsoft.com/en-us/library/ee424403.aspx)

-          Document Sets: This feature allows managing multiple documents within a site collection, irrespective of its location within the site collection, as a single entity. So for example if a project has multiple documents as part of its deliverable, all these different documents could be considered as part of a “document set” which can be managed as a single entity within SharePoint.
-          Document ID Service: A site collection level feature within SharePoint 2010, this feature assigns an ID to a document and uses the ID to keep track of the location of the document. If the document is moved within libraries in the site collection, the ID ensures that SharePoint can locate the document irrespective of its location. Further this feature can be applied to the document sets, wherein, each document within the document set is tagged with an ID to keep track of the entire set of document as a single entity.
-          Content Organizer : A new feature in SharePoint 2010, the content organizer automatically routes documents to appropriate libraries based on the metadata values.  The feature works on the basis of a drop off library, from where the content organizer would automatically relocate the document based on the metadata provided.
-          Location based metadata: This feature applies default values to metadata fields to content based on the location. The values are set at the library level and when content is uploaded to the library, SharePoint automatically applies these values to the specified metadata fields.
-          Metadata driven Navigation: This is a feature that allows users to navigate a library based on managed metadata. This feature is enabled within a library and uses the structure of the managed metadata structure to navigate documents.
-          InPlace records management: A feature that allows for treating content as a record, without moving it into an explicit records center. Declaring content as a record allows applying different types of policies, such as retention and restrictions. In the previous version, a Records Center was an explicit template where records management features were available. SharePoint 2010 makes this feature available to any template through a feature.
Summary
This paper provided a high level overview of how SharePoint 2010 is making “ECM for the masses” a reality. SharePoint achieves this mission through various new features oriented towards two main capabilities: a) to define and capture metadata, and b) to use the metadata to provide navigation, content organization, content filtering, search and data archival / retrieval. While designing a metadata based solution it is important to take into consideration the people, the process as well as the technological elements. Combinations of the different features in SharePoint 2010 provide many content management features out of the box. Further readings into these subjects are provided in the suggested reading section of this paper.
Suggested Reading:
What is Enterprise Content Management (ECM)?: http://www.aiim.org/What-is-ECM-Enterprise-Content-Management.aspx
Introducing Enterprise Metadata Management (SharePoint 2010): http://blogs.msdn.com/b/ecm/archive/2010/06/22/introducing-enterprise-metadata-management.aspx 


SharePoint 2010: Business Connectivity Services

Introduction
Anyone familiar with the SharePoint world is sure to have heard about the term BDC or Business Data Catalog. The concept was introduced in SharePoint 2007 and was touted as one of most powerful new additions. Marketing personnel would use the keyword BDC as one of their main selling points of SharePoint 2007. Some other terms used along with BDC included keywords like “No code solutions”, “out of the box solutions…” etc. Sometimes it made me wonder, what “out of the box” really meant; was it included in the “box” or was it NOT included in the “box”, both ways the statement “out of the box” made sense!
Once the mud settled on what BDC meant, how it worked, its limitations, the cost etc, there was some amount of skepticism about its potentials. Although the “No code solutions…” marketing pitch was true, it came with its own limitations. Technically the functionality provided by BDC was always possible through custom solutions and hence there was always a debate between .NET architects and SharePoint architects on the pros and cons of using the BDC.
While BDC in SharePoint 2007 itself provided good benefits, there were some major limitations, technical as well as cost perspective. The toolset that was available from MS to define and configure BDC was not comprehensive. Third party tools were required to utilize the full capabilities of the feature. Another main drawback for BDC was its cost; it was only available with SharePoint enterprise edition and it required some investment in terms of resources to get it working. A pure technical limitation of the BDC was that it did not provide any CRUD (read / write) operations; it only provided a read only view of the data.
What is BCS and why should we consider it?
BCS or Business Connectivity Services is the next generation evolution of Business Data Catalog. You may still here the term BDC in SharePoint 2010, but in the new world BDC stands for Business Data Connectivity, which is essentially the connection portion of the BCS suite of components. BDC in SharePoint 2010 is actually the BDC from SharePoint 2007
The main purpose of this feature is still very much the same as its predecessor; which is to connect with external data sources from within SharePoint, but BCS extends that capability beyond just SharePoint and makes it available to other clients such Microsoft Office. In other words, BCS is a set of components that includes connectors to different data sources and a runtime engine that uses connectors to can connect to the data sources.
BCS attempts to overcome its predecessor’s limitations with a new set of integrated tools (the new SharePoint 2010 designer and Visual Study 2010) and a powerful and extensible platform that provides full CRUD operations. Another major advantage of BCS is that it is built into SharePoint 2010 Foundation, which is the next generation of Windows SharePoint Services. I am expecting the next round of new keywords from solution marketers – “it’s free!!”, which is actually true and the free no code solution can accomplish quite a lot in the new SharePoint world. I will explore this in a more detail in the upcoming sections.
BCS Building Blocks
Now that I have provided my own marketing spiel on BCS lets discuss more about why the new BCS is worth consider. To start let’s take a high level view of the main building blocks.
Figure 1 shows a high level block diagram of BCS and is components

The above diagram presents three different layers of the BCS architecture:
a)      Presentation Layer: This layer includes tools that allow users to work with the data presented by the BCS components. Within SharePoint, presentation components include a new type of list called “External lists”, out of the box web parts (yes, it is included with SharePoint, but enterprise edition only) and from within search (Standard and enterprise editions only).

b)      Runtime Layer: This layer is the meat of the entire BCS architecture. This layer comprises of three main components:

a.      External Content Types (ECT): Contains the metadata definitions of the external content, connection details and details about the actions such as read / write operations, performed on the external content. For example, if we consider a custom database with say sales and customer information, an ECT for the customer information will include the data column definition such as Customer Name, address, ID, etc, along with the connection details to the database and details of how perform the read / write / update / delete operations.

b.      Runtime: This is the main engine that performs operations between the client tools and the content source. The BDC runtime is built into office clients such as Word, SharePoint workspace, Access and InfoPath, and within SharePoint 2010 itself. Since the runtime is built into the office clients, these tools can work with the data sources directly and do not need SharePoint as the intermediary layer.

c.       Connectors: The connectors provide, well, the connectivity, to the specific content source. SharePoint 2010 has three connectors out of the box, a SQL connector, a WCF connector and a .NET assembly connector. Besides the default set of connectors, the framework is extensible, which means custom connectors could be built for specific content sources.

c)      Content Sources: This layer is kind of self explanatory! Contains the data sources.


High level walkthrough

Now that we have a high level understanding of the main building blocks of BCS, let’s walk through the main steps involved in building a no code BCS solution within SharePoint. This is NOT a step by step how to, but an overview of the main steps involved.

In this walkthrough we will use the SharePoint Designer 2010 to connect to the a hypothetical customer table within a custom SQL database

a)      Create the external content type (ECT)

a.      From within SharePoint Designer, create a connection to the SQL database.
b.      Once the connection is made, we choose the Customers table within the database and choose the different operations (read, create, update, delete) we would require on the customer ECT. SharePoint Designer then creates the operations for the customer table.

c.        Next step is to choose the columns to be presented within the ECT. Other configuration items such as filters (such as row limits) can also be defined within ECT. When the external content type is saved, it is published back

Here is a screenshot of an ECT within SharePoint Designer (Figure 2)




b)      Create the External list in SharePoint

a)      Navigate to a SharePoint Site and in the options to create a new content, a new type of list called External list should appear.

b)      In the external list creation settings, there is an option to chose an external content type, where in we choose the content type created in step 1. And that’s it! SharePoint automatically uses the settings of the ECT, connects to the external source and surfaces the content within the list in SharePoint. The content supports full read and write operations, if selected during the content type creation process.
Here is a screenshot of an external list within SharePoint 2010

Further this content type can be taken offline in SharePoint workspace. The SharePoint designer has a “sync to SharePoint workspace” feature, that packages the external content type, deploys it into the SharePoint workspace client. This allows the user to work with the external data offline and SharePoint workspace synchronizes the data back with the source when connected.
So that’s all it takes to create a read write interface with an external content source. One of the important concepts to remember here is that the data is NOT stored within the list in SharePoint. The data always resides in the original content source. Knowing this, let’s discuss the pros and cons of this no code solution and other options, with respect to SharePoint solutions.
In comparison with regular external lists, external lists do not support:
a.      Event notifications (such as Items added, changed etc…)
b.      Custom event handlers
c.       Item level permissions
d.      Export to Excel, editing in datasheet view etc
e.      REST interface
f.        And finally RSS feeds
All of the above is related to fact that the data is actually NOT stored in SharePoint but is maintained within the external sources. This raises many questions, of which first and foremost on my mind is what about data integrity and what happens if we want to enforce rules for data validations.
Certain limitations of a no code solution include:
a)      No security on search results: All though SharePoint can search the external data, it does not apply security on the search results as the search results are maintained in the external source.
b)      No support for attachments: By default there is no built in support to display attachments in list rows.
This is where we start considering our other options of developing solutions with BCS.
BCS Solution Types
At a high level BCS solutions can categorized into three:
a)      Simple, no code solutions: This is what we discussed in our walk through.

b)      Medium: If we wanted to build a more UI rich or build additional functionality such as workflows, we would have to use other tools such as InfoPath forms or Visual Studio. InfoPath provides a powerful, yet easy to build, means to develop a rich UI for external lists. Visual Studio provides a built in template for developing BCS models. The visual studio approach provides a very flexible way to control data logic; eg: if we wanted to create custom data validations, or perform security checks and so on.

c)      Complex solutions: The BCS platform is quite extensible and complex solutions, such as custom connectors can be built using Visual Studio.
Summary
In this paper we explored the new BCS in SharePoint 2010. In comparison to its predecessor, the BDC in SharePoint 2007, this framework is highly flexible, and Microsoft has provided the right set of tools to make BCS work right out of the box!