Saturday, February 26, 2011

Solution to Access denied By Business Data Connectivity

Once all the setup is completed like creating External Content types and by using it we have created external list we may see this error. You may feel surprise that you may have used administrator account to create external content type and logged into the site as site collection administrator and still you are seeing the error message. Right?


Here, we have to remember one thing that the access denied error is coming because the data source we are trying to connect is external one not belongs to SharePoint. :) So it don't care what is your role or permission in SharePoint. The external data source only cares about whether to perform a specific action user has access to do that or not. So, the user who is doing these operations [select, insert, delete, update] should have access to external data source.


  • Open Central Administration site
  • Go to Manage service applications –> Select Business Connectivity Application
  • On this page you see all your external content types you added.  [Don't forget to select the External Content Type option from top dropdown]
  • Hover the external content type and from the context menu select Set Permissions
  • It will open a dialog and there we have to give specific permission to the user. In my case I logged in as me and added that account and given all access.
  • Click OK.
  • Now, go back to your site and refresh the page. You start seeing all the data is pulled from Sql Server to the SharePoint 2010 external list.

Creating External Content Types in BCS

We have good idea on how the Business Connectivity Services connect to external data sources from SharePoint 2010 and how they help us to do the job very easy. To get the data from external data sources to SharePoint and maintain the syncing we have to create the external content types in SharePoint 2010. This post is a walkthrough of the complete process.


  • We need a test database [in my case I am using Sql Server].
  • The user logged into the server should have access to the Sql Server.
  • The user should have full access to the SharePoint site and he should be the SharePoint Farm Administrator.
  • Install SharePoint Designer 2010

Creating External Content Type:

  • Open SharePoint Designer 2010 and connect to your SharePoint 2010 site.
  • From the left panel select "External Content Types" option. It retrieves all external content types from the site if it has any. By default it shows empty.
  • Now, from the Ribbon select External Content Type option.
  • This will get us some UI on the designer. Enter the Name, Display Name, Namespace and then select the item type [By default Generic List selected].
  • Now from the Ribbon, select Operations Design View. This is for creating operations on the database like select, insert, update, delete etc.
  • Here, we have to create the connection to connect to the database.
  • Click on the button "Add Connection".
  • Enter the database server name, database name. By default it will use current logged in windows user credentials to connect to Sql Server.
  • Click OK.
  • Now the database will be shown up in the Data Source Explorer.
  • Expand the Database, expand Tables.
  • Now, select your table and then right click to select the operations.
  • From the Context menu, select "Create All Operations" for testing all operations as this is the first time we are creating.
  • From the wizard, click Next, Next… and then Finish.
  • OK, We are all done, created External Content Type and it is now connected to the database.

Creating an External List which holds all table data:

  • For this, we have to open the SharePoint site from the Browser.
  • From the Site Actions, select "More Options".
  • From the list of available options choose "External List".
  • Click on the "Create" button. It redirects to a page where we have to enter the list name, description and then External Content Type we have to use.
  • From the External Content Type browser [the second icon in the row] type the name and then select it.
  • Click OK to create the external list.
  • Now, the page redirects to the external list page.

That's it. We are done with creating an external list which contains all data from database table. Depends on operations we have selected from the designer, we can perform all of them and both SharePoint List and Database table will be in sync. This way the end user do not know what type of data he is working with. This is the main advantage of BCS.

Possible errors:

While we are doing this process, you may encounter some problems.

  • Not able to connect to database – Please make sure the user logged in to windows has access to the database server and access to that database.
  • Not able to create External Content Types – User should have full access to the SharePoint site.
  • Access Denied By Business Data Connectivity – See solution here.

I hope you are feeling it. What a simple way to connect to external data sources and show the content in SharePoint environment. This is really smart work from Microsoft SharePoint 2010 team. Do you Like it?


Replication access was denied - error code 8453

This is the error you will get when you are trying to import / Crawl / running user profile synchronization service in SharePoint 2010.

Application Event Log:

Log Name:         Application
Source:               FIMSynchronizationService
Date:                   2/25/2011 7:54:03 AM
Event ID:           6050
Task Category: Management Agent Run Profile
Level:                  Error
Keywords:          Classic
User:                    N/A
The management agent "MOSSAD-DLR-AD" failed on run profile "DS_DELTAIMPORT" because of connectivity issues.
Additional Information
Discovery Errors       :        "0"
Synchronization Errors : "0"
Metaverse Retry Errors : "0"
Export Errors          :           "0"
Warnings               :             "0"


The error message coming only because of the issue "The Service account with which we are trying to connect to the Active Directory and try to pull information do not have security right Replication Directory Changes at domain level".  This action is not needed on the accounts who are network/domain administrators as they have full access already.

To configure that please follow steps below:

  • Login to the Active Directory Server or the User and Computers snap-in on your server if you have access to AD.
  • From the View menu, select "Advanced Features".
  • Now, from the list of folders you are seeing from the left side, select your domain and then right click and select Properties.
  • Switch to Security tab, add the account which we are using to connect to AD to the list and from security rights select "Replication Directory Changes".
  • Save changes.

That's it. Now, try to start the synchronization service and see the users imported to SharePoint environment. Let me know if you have any issues.


Forefront Identity Manager 2010–Find the synchronization issues in SharePoint 2010

We all knew that the user profile synchronization is now handled through Forefront Identity Manger. So, whatever problems you are facing while configuring the synchronization service or while running it then the best way to identify them is by using Forefront Identity Manager 2010.

  • Go to the location where the Forefront Identity Manager 2010 is located in the system. Default location is "C:\Program Files\Microsoft Office Servers\14.0\Synchronization Service\UIShell\MIISClient.EXE".
  • Open Command prompt and go to that location and hit enter as shown below.
  • Now, it will open Forefront Identity Manager 2010 where you can see all logs recorded as shown.
  • When you click on each row, you will get the details of it in the bottom panel where you see the detail description of it. If the step failed then it will show the complete description of why it is failed like Connection Status, possible failure reason etc. in the below panel.

So, by using this we can easily identify the issues and fix them accordingly.


Cannot navigate to the requested page while User Profile Synchronization is running. Please wait for the current Synchronization run to finish

This is the error most of the times we see while configuring the User Profile Synchronization. The only possible reason why this message will come is while running the synchronization service we are trying to either start the synchronization again or try to create a new connection.

There are some cases where the synchronization will take long time. Could be because of many users in your active directory or there is some problem in pulling information. To find the issue please refer this post.


The only thing I like to mention here is, the error comes only when the synchronization service is already running and you try to run or create a new connection. Try to find out the possible failure and configure accordingly.


Configure User Profile Sync in SharePoint 2010

I know there are lot of posts or blogging on this. But, we will cover some good points which are very important to import or pull user profiles from a data source [AD etc.]

Prerequisites to configure User Profile Synchronization:

  • Before we start we should check the user account access to configure the User Profile Service. The user should be a farm administrator and should be in server administrator group where user profile service is deployed.
  • In SharePoint 2010, we have Forefront Identity Manager is integrated. With this we can easily connect and pull information from active directory or other data sources where all user or organization information is available. So, the Forefront Identity Manager services should be running on the server where the Forefront Identity Manager is configured. To check this, login to server –> Start –> Administrative tools –> Services. From the Services window, scroll down till you find Forefront Identity Manager services and start both Forefront services.
  • Now go to Central Administration of the SharePoint 2010 server. Go to Services page by clicking "Manage Services on Server" link. Select your server from the top right corner section. Check that the services "User Profile Service and User Profile Synchronization services" are running.
  • If the services are not running, click on "Start" link. The service "User Profile Service" will run without any issues and takes less time. But the service "User Profile Synchronization Service" will take long time and if it fails then the first thing you should have check is whether the Forefront Identity services are running on the server or not. So, check them and start again.

Configure the User Profile Synchronization Service:

  • So, we all set up to configure the services. Go to Central Administration and click the link "Manage service applications" to go the Services page.
  • From the list of applications select "User profile service application". Now you will be opened with the user profile service application page where you see plenty of options.
  • From Synchronization section, select the link "Configure Synchronization Connections".
  • Here, you do not see any connections available. So, we have to create a new connection to start synchronization.
  • Click on "Create New Connection" link to create a new connection.
  • Give all inputs needed and add the connection.
  • If all went well then you are ready to start the synchronization service by clicking the link "Start Profile Synchronization" under Synchronization.
  • Then you start seeing the status of the service [Synchronizing] at the right side as shown below.
  • To test the process, click on the "Synchronizing" link it will opens a new window with the logs. You should see everything is running successful. Otherwise there is some problem with configuration.
  • To see all imported users, click on the link "Manage User Profiles" under People link and you start seeing the users.

Errors may come in Configuring Synchronization process:

  • If the connections are available and running and you try to add a new connection or start synchronization then you see the error message "Cannot navigate to the requested page while User Profile Synchronization is running. Please wait for the current Synchronization run to finish." If you get this, then refer to this solution.
  • If there is a failure recorded in logs [click "Synchronizing" link from status above image]  then we have to start research of the cause of the failure. For this, we have to follow this solution.
  • If you are getting any error related "Detection of product '{90140000-104C-0000-1000-0000000FF1CE}', feature 'PeopleILM' failed during request for component '{1681AE41-ADA8-4B70-BC11-98A5A4EDD046}'"  then take a look at here.

I hope this post helps you to configure and troubleshoot the configuration of Synchronization of User Profile. Feel free to let me know the problems or issues if you are facing any.


Tuesday, February 22, 2011

UI improvement and rich user experience in SharePoint Foundation 2010

We have many posts related to this out there in internet. There are lot of improvement to the SharePoint Foundation 2010. Plenty of features added and main thing among all is the user experience and user interface. I really love the UI and it is now very easy to edit the content. Any user can now be able to do content editing and achieve what they needed.
  1. Ribbon: The ribbon on the top of every page is really an awesome feature. It has all the options needed for a page. See more details here.
  2. Dialog: Now, all the options will be opened within the same page. So, user no need to go away from the page for doing some operation. In earlier versions of SharePoint, if you need to upload a document to document library, modify the view or need to add a column etc., we have to leave the current page and continue. But, here everything will be opened with the help of Dialog. So, user feel very comfortable.
  3. Autocomplete: In the new rich editor we have a very good and nice option added called Autocomplete. In the content if you want to add the file link which is from SharePoint List then there is no need to look for it by going to that list and get item url. By using the autocomplete option you get it very easily. For this, you have to type "[[". It will show the options. From it, chose Lists: and then hit tab button. Then it shows the list of SharePoint lists, select List and then hit tab. Then it will show all items and form it select the list item and hit tab. That's it. It automatically adds the link on the page. [Remember, we have to use only tab key.]
  4. Rich controls integration – Silverlight Web part: There is a web part available which is built in from SharePoint Foundation. Just we need to give Silverlight application url to it. The rest it will take care. For more details check it here.
  5. Media Web part: When you select Media or Audio to add to a page then it will add a Media web part to the page. [SharePoint server 2010 only, not available in SharePoint Foundation]
  6. Themes: This is now very easy to apply. A simple editor UI provided by Microsoft SharePoint Foundation to pick colors, background image, font etc. Everything can be doable from browser. For this we have to go to Site Settings –> Site Theme from Look and Feel section.
And many more options which we cannot discuss everything here. But, these are I feel important to know.

Wednesday, February 16, 2011

Silverlight integration and cross-domain data access

From Microsoft if you want to create something with rich UI with good graphics and such we go for Silverlight. But, there are some problems if we try to access it cross-domain. With SharePoint 2010 it has built in support for Silverlight integration and you can access cross-domain data as well. It has Silverlight host web part where we can call XSP file and the web part will take care of the rest. And another web part is Silverlight CDA[Silverlight Cross-Domain Data Access web part] that enables secure, cross-domain, integration between Silverlight and SharePoint. The another advantage with this Silverlight CDA web part is we can use this for non-Silverlight external applications as well.

Silverlight Web Part

As we discussed earlier now it is very easy to integrate the Silverlight application in SharePoint Foundation 2010 or SharePoint 2010. If your Silverlight application on same domain as the SharePoint Foundation application and add a Silverlight web part to page and give the XAP file url to it through UI [No coding anywhere so far].  If Silverlight application access the SharePoint Foundation data which is hosted on a server outside of the web application domain then you have create External Application XML.

Silverlight Cross-Domain Data Access

So, it could be a problem to pull or access data from another domain and show it up in Silverlight. So, it is a great advantage to use this web part for these kind of requirements. Because if your farm contains 2-3 web applications and all of them are using Silverlight application then the cross-domain access will come into picture. So, Silverlight CDA will solve this problem in secure way. Silverlight CDA enables administrators to control the permissions of the external applications without unduly restricting the ability of users to add Web Parts hosting these applications to Web Part pages. The application logs on to the SharePoint Foundation Web application as a distinct type of user known as an application principal. The application’s permissions are the intersection of the permissions that the administrator has granted this special user and the permissions of the real user who opened the Web page containing the Web Part that hosts the application.


Mobile device development enhancements in SharePoint 2010

Everyone knows how important is this. Today almost everyone is having mobile phones and browsing everything from it. So, the importance of mobile applications are also increased. So, SharePoint 2010 added more features for mobile application development. With these features you can easily develop and view the SharePoint sites in mobile and easily access any data.

  • Mobile Web Part Adapters: Now, we can create a mobile page which corresponds to serve data, functionality to a non-mobile web parts page. You can adapt any Web Part on a non-mobile page by adding a control to the mobile page that duplicates the Web Part’s functionality. These controls are known as mobile adapters. Some of the major Web Parts that are built into SharePoint Foundation already have adapters. You can create your own adapters and add them to the mobile page. But, to use them on the mobile pages you have to register them as safe control in the compat.browser file. How it works is, when a mobile device accesses a Web Parts page, SharePoint Foundation redirects the device to the corresponding mobile page. For each Web Part on the Web Part page that has an adapter control, the adapter control will be rendered on the mobile page.
  • Mobile Messaging: This is we discussed in Alerts Enhancements
  • New Mobile pages and controls: This version added many new mobile pages and controls which makes the development easy.
  • Mobile document viewers: You can create custom pages that host document viewers that enable mobile users to open, on their mobile device, documents from SharePoint Foundation document libraries even if they have been formatted for a particular desktop application, such as a spreadsheet or word processor application.

Tuesday, February 15, 2011

Powershell in SharePoint 2010

This is new command line tool and supports scripting language. This is almost equals to the STSADM.exe command but it has more features than STSADM. You can write big and long lines of script and execute them. This is really helps to administrators to do complex tasks. For more information please read Introduction to Cmdlets for the SharePoint Management Shell.


Performance monitoring and Request throttling in SharePoint 2010

Microsoft SharePoint Foundation 2010 introduces a programmable system of throttling HTTP requests when the front-end Web server that is handling the requests becomes too busy to handle them all. Using the system, your server code can do the following:

  • Determine which Windows Server 2008 performance counters are used to determine whether a front-end Web server is busy.
  • Define what values of a counter are poor enough to cause the worker thread to begin throttling.
  • Define which kinds of HTTP requests are throttled and whether they are throttled as soon as the server is busy or only when it has been busy continuously for at least 60 seconds.
  • Exempt certain kinds of HTTP requests from throttling.

Microsoft Sync Framework in SharePoint 2010

Microsoft Sync Framework is a synchronous platform which enables collaboration and offline for services, devices and applications. Sync Framework is extensible. You can create your own custom providers which enables to connect any data sources to participate in sync framework synchronization process.

When comes to SharePoint, Sync framework allows to sync the data between the different data sources like BCS [Connecting the third database and showing them as SharePoint list data]. It has bidirectional synchronization architecture. It is designed to support cross-application synchronization.

Sync framework provides three core building blocks:

  • Sync Runtime: It drives the synchronization by starting, hosting and canceling the synchronization sessions. It uses a synchronization session object to make sync requests to the sync provider.
  • Sync Metadata Services: Metadata services manages synchronization metadata. Metadata services provides a Metadata Storage Service, an optional metadata storage component for applications that do not have a logical location to store synchronization metadata.
  • Sync Provider: It is the main integration point to the Sync framework. Which actually acts as the interface that gets the interactions with runtime engine as well as data store.

To know more about the sync framework and concepts please read here.


Health analyzer in SharePoint 2010

It is introduced in this version of SharePoint which analyze sand monitors the health of SharePoint throughout the farm. It worked based on health rules. It identifies any security issues, space issues, performance issues etc. and shows them to farm administrators.

A health rule is a DLL which contains all the rule definitions and deployed in farm level by farm administrators. You can create your own health rule and deploy them to SharePoint.


Custom field rendering in SharePoint 2010

This is completely related to XSLT. Because till earlier version of SharePoint fields rendered with RenderPattern element in fldtypes xml. Now, list view completely rendered with XSLT style sheets.[XSLTListViewWebpart] If you want to render new custom field types then you have to create custom XSLT style sheet instead of renderpattern. So, you should know XSLT well to understand it better.


ULS Logging in SharePoint 2010

This feature is mainly advantageous to developers. It has new classes added which helps to log and trace the errors and exceptions very easily.

  • Developer Dashboard: This records the time, resources used for a particular web page request and shows on the UI.
  • Request usage database: This database contains all the information about requests and resource usage.
  • SPMonitoredScope: This is the attribute and if you apply this to a class then you can save the complete details to the SharePoint usage database.
  • With new API features it is very easy to implement or communicate with ULS logs by using SPDiagnosticsServiceBase class.

UI enhancements in SharePoint 2010

I believe we already covered this feature. We already looked into Ribbon in SharePoint 2010. New master pages [renders in DIV tags instead of Tables] and new style sheets. The main change in applying master page is now the application pages and site pages are having the same content place holders.


Workflow enhancements in SharePoint 2010

In Windows SharePoint Services 3.0, there are plenty of options and activities added in Workflows. And it is easy to create our own custom activities or workflows and deploy to SharePoint 2007. Now, they have extended the workflow functionality and added new activities, events and services. Along with them there are two wonderful concepts they came up with. They are Site Workflows and Reusable Declarative Workflows.

  • Please read this article for knowing all New activities.
  • Workflow Events: This will be very helpful feature and solves many problems in SharePoint 2010. Through this feature you can call another workflow and know the other workflow status and proceed accordingly and there are pre-event handlers available as well, and they help to check to start a workflow whether we have valid data or not etc.. Adding workflow events is same as writing other event receivers. We have to use SPWorkflowEventReceiver class for it. What are the available events:
    • WorkflowStarting
    • WorkflowStarted
    • WorkflowCompleted
    • WorkflowLoading
    • WorkflowUnloading
    • WorkflowPostponed
  • Workflow Service: A new class added to SharePoint 2010 is SPWorkflowService. Which is abstract class and provides basic functionality to get some information of a workflow. By using this service you can communicate with the workflows running in a site. For example, if there is a need that workflow has to wait depends on some external process status and depends on the external process status it has to wait or continue then we have to use this workflow service. With this new architecture it is very easy to solve some complex business processes.
  • Site Workflows: We already know and worked on workflows on a list. The same way now you can add workflows on a site as well. Through SharePoint Designer 2010 it is very easy to create site workflows from UI. Whereas if you want to create site workflow through Visual Studio 2010 then you don’t have direct option to create site workflows. Once you built the workflow then you have to manually edit workflow.xml file as shown below.


  • Reusable Declarative Workflows: In earlier versions of SharePoint, we can associate a workflow with a specified list or library. We cannot use same workflow and apply it to all lists or libraries. But, in this version declarative workflows are reusable and you can apply same workflow for one list to multiple places.

Sandboxed solutions in SharePoint 2010

It is a new concept introduced in SharePoint Foundation 2010 and a very good feature. It allows Site Collection Users to add their own custom code solutions to a site. For each site there is solution gallery [like solution management in central administration].

For developers, Please read the article: Types in sandbox

So, the main advantage of the Sandboxed solution is, if you want to write custom code to a particular site then you have go to that site and upload solution to that site. If any error occurs or some other failure in sandboxed solution then the site which we uploaded this solution only effects. All other environment do not effect because of this failure.


Monday, February 14, 2011

Ribbon in SharePoint 2010

This improved the user interface of SharePoint 2010. Ribbon contained all of the options[commands] required for a specific page at one place. So, in other words all the options[commands] needed or required for a specific page  grouped at one place and we are calling it as Ribbon. The Ribbon is completely dynamic as we see in the Microsoft Office products. In MS Office when we selected the text, ribbon shows the text related options and when we are on image it shows image related options etc. The same way Ribbon in SharePoint 2010 is completely dynamic and which is in browser. For example If I selected the text, it shows text related options, If I select image then it shows image related options and if I am on list item then loads list item related options etc.. So, it is very intelligent enough to load commands depends on the context we are in.


The main advantages with this ribbon are

  • As all are at one place, very easy to find whatever option[command] we need.
  • It has tabs to group them under specific category.
  • Every operation[command] to server is smooth without any post back.
  • Dynamic loading of options depends on the context.
  • Load options depends on the user role and permissions.
  • You can extend the ribbon by writing your custom code. You can use Server Ribbon XML, ECMAScript to write custom code.

Server Ribbon contains tabs. If you see the above image the main tabs are: Browse, Page and Publish. So, each tab has groups. And each group as controls. To know more about what are Ribbon controls: Controls in the Ribbon

How it works?

Ribbon communicates everything through objects. Because wherever you are in the page the Ribbon dynamically changes depends on context. So, it is communicating with page and loading or behaving accordingly. The main objects which Server Ribbon communicates are

  • CommandDispatcher: It handles all PageComponent objects on page. The main role this CommandDispatcher is when a command I received then it passes that command to the specific PageComponent.
  • PageManager: Initializes all controls and register PageComponents. For each page maximum PageManager instances allowed are one.
  • PageComponent: Which collects commands from CommandDispatcher and respond to commands according to XML written in ribbon.

So, with this Ribbon we have lot of advantages in UI perspective and user perspective.


Friday, February 11, 2011

Query enhancements in SharePoint 2010

This feature is for developers I could say. I am really impressed with some concepts in SharePoint 2010. Thanks to Microsoft.

  • Querying in Server side code
  • Querying in client side code

Querying in server side code

1. Linq to SharePoint: I believe you know already about Linq to SQL [Writing queries using object model in server code language against SQL Server]. This is same concept but we write queries which run against SharePoint data sources in Linq to SharePoint.

In earlier version, if you want to get the list or library data in SharePoint Server Object Model either you used CAML queries or object model. But, with this Linq to SharePoint model there is no need to write CAML queries explicitly. So, by using Linq to SharePoint provider you write code in server object model using Linq syntax. At run time Linq to SharePoint provider translates the Linq query to CAML query [Linq to Sql provider translates the queries to SQL format whereas Linq to SharePoint provider translates the queries to CAML format] and submits to database.  Now, we have to think how the classes available to write Linq to SharePoint query. For example, to write a query against a list you should have the list class in the project. To get the classes we have to use a tool provided by SharePoint Foundation called SPMetal.

Note: Linq syntax can be applied on any class that is inheriting from IEnumerable<T>.

2. Joins in CAML queries: Now join is supported in CAML queries. For this you have to use Join Element. And to specify what are the output fields in the result set we have to use ProjectedFields Element. Please read them before use them.

Querying in client side code

  1. Query using Client Object Model
    • Using queries in Client OM: This is as usual by using SPQuery class.
    • Using Linq to  Objects,:SharePoint objects which inherits from IEnumberable<T>. For example, after you get the collection of list items then you can query that list for some sub result set etc..
  2. ADO.NET Data Services Framework: You can directly connect to the content database of the SharePoint site and create objects and do your own stuff.
  3. Using Web Services and calling OWSSVR.DLL: This is still supported in SharePoint Foundation 2010. But, not recommended from Microsoft and team as they don’t yield best performance and usability when compared to above two methods.

List enhancements in SharePoint 2010

In lists or libraries SharePoint 2010 has lot of features added in terms of UI and functionality.

  • Request throttling
  • Referential Integrity
  • Unique columns
  • External lists

Request throttling

In big organizations this is highly possible that the list items in the list grow in huge amount. In that case, when user tries to access the site or list the site will be very slow as it is having huge data. To solve this problem list view threshold feature is added in SharePoint Foundation 2010. What it means is, how many maximum items in the list we have to retrieve from the database. Point to remember here is, if any query result [number of list items] on the list crosses this threshold count then the query will be blocked or cancelled as it effects the complete site. If you want to know more about how to handle huge folders and files please check it here.

To set request throttling for a site, go to Central Administration –> Application Management –> Manage Web Applications –> select site –> General settings menu –> select Resource Throttling.


Development side,

  • SPWebApplication has a property to set the request throttling value. MaxItemsPerThrottledOperation – which tells what is the maximum number of items that can be effect by query or bulk updates.
  • SPList has a property EnableThrottling to enable/disable the throttling on a list.
  • SPQuery and SPSiteDataQuery have a property called RequestThrottleOverride.
  • SPFieldIndex class represents the compound index on one or two fields in a list for easy filter or maintain data.

Referential Integrity for list items with lookup fields:

In earlier versions of SharePoint, there is a possibility that the loosely coupled or loosely defined relationship between two lists through look up fields. So, what if I have a requirement where if I delete the Parent list items then it should delete all child list items as well? We have to write custom code for this clean up. But, with this new feature it is a built-in option. While we are creating a new field in the child list and that is look up field you can set the referential integrity on child items by specifying the delete behavior [from UI]. Along with that you can specify what are the additional column I pull from parent list and show it on the child list as shown below.


Set Referential Integrity


Development side,

  • SPRelatedField class which represents the relationship between  fields in two lists.
  • For SPList class there is a new method added called GetRelatedFields() which gives you the list of related field objects.
  • For telling the delete behavior there is enum SPRelationshipDeleteBehavior.
    • Cascade Delete: deleting a parent list item also deletes all related child list items in a single transaction.
    • Restrict Delete: Gives an error message before delete a parent list item.
    • None: Safer and default option.
  • SPFieldLookup has a new property RelationshipDeleteBehavior to represent the delete behavior of the lookup field.

Unique columns:

Wow, what a feature. In earlier versions to achieve this we had written custom code. Now, all is integrated. Cool. We can enable primary key functionality in SharePoint list or library from UI. To enable this we have a feature available called “Unique column constraint”.  They key point to remember here is we cannot apply the constraint on all columns.  To know what columns are allowed and not read this Enforcing Uniqueness in Column Values.


Development side,

  • SPField has a new property called EnforceUniqueValues. It is of type Boolean, so you can get or set depends on requirement. Default value is allow duplicates.

External Lists:

This is what we covered in earlier post [Business Catalog Services]. This is no way different from other SharePoint lists. But, the only different in the background is, it will connect to external data source and loads or populate data from it, whereas SharePoint lists gets data from the SharePoint database.


Events enhancements to SharePoint 2010

There are many new events added in this version of SharePoint. Added events for lists, webs and there is support for synchronous after events. With these new approaches in this events infrastructure it is more easy to code than the earlier versions.

At high level events added are:

  1. On List: added events for adding and deleting
  2. On Web: added event for adding
  3. After events can be either synchronous or asynchronous.

Other than above three there are new capabilities added to the existing event functionality. They are:

  • Register events in site collection level
  • Improved semantics for retrieving event data
  • Improved UI for form-level events
  • XML event registration at the site receiver: This is completely a new thing in event registration. You can register an event to the site level or web level. In the feature xml file we have to use the “Scope” attribute to either “Web”[Web site] or “Site” [Site collection]. The default value will be site level.

On List:

  • ListAdding(SPListEventProperties): This will be fired when a new list is getting created.
  • ListAdded(SPListEventProperties): This will be fired after a list is created in database.
  • ListDeleting(SPListEventProperties): This will be fired when a list is deleting.
  • ListDeleted(SPListEventProperties): This will be fired after a list is deleted from database.

On Web:

  • WebAdding(SPWebEventProperties): This will be fired before a new site is getting created.
  • WebProvisioned(SPWebEventProperties): This will be fired after web site is successfully created and provision processed successfully. This will work either in synchronous mode or asynchronous mode.

Synchronous after events:

These are a bit difficult to understand. Microsoft explained them as “When a list item is submitted to created in database and before user actually see them. When synchronous after events occur, the event is processed before the event handler relinquishes control.” So usually the default synchronization behavior is  synchronous for before events and asynchronous for after events.


Client Object Model in SharePoint 2010

This is newly introduced in SharePoint Foundation / SharePoint Server 2010. Everyone knows the Object Model[OOPS] and the Server Object Model[SPSite, SPWeb, SPList, SPListItem etc.].

The only big problem with earlier version of SharePoint for developers is, if they want to extend SharePoint functionality by writing some custom code then they have to create SharePoint development environment and install Visual Studio and write code there. So, indirectly it means they should have SharePoint installed on their system. Otherwise they can not write or run the code.

With this new approach or model there is no need to install SharePoint to write the code for SharePoint 2010 custom functionality. So, you only need to install Visual Studio on your system and by using Client OM you can develop code and deploy that to SharePoint environment. This model is very powerful and good than SharePoint web services. The Client Object Model provides a way to communicate with SharePoint data from a remote computer and perform operation [We can contact a site, web, list and pull or modify the data etc.]

How this works?

First we have to retrieve the client context object [ClientContext class] and from it you will connect to SharePoint and do whatever from it. You can get site, web, list etc. data and do something with those objects.

More details about Client Object Model, we will cover in later posts.


Business Connectivity Services in SharePoint 2010

BCS is formerly known as Business Data Catalog [BDC]. BCS provides option to read write access to external data in SharePoint environment from web services, data bases etc. The main advantage with this feature is once you pulled external data into SharePoint list or libraries, from user point of view they may think that they are editing a list item in SharePoint list but not external data in some third databases. But, they are indirectly changing the data in the external database. This is what BCS does for us. With this we can solve many problems as there are many chances that we have to integrate external databases in SharePoint and show the data in the SharePoint sites. So, with this new feature there is no need to create our own pages to grab and show data from external data sources and write edit page, delete page etc.  

You may already had some problems in your previous SharePoint 2007 applications like show the external data from third database in SharePoint pages and do some thing with it. In that case either you write your own logic using web parts or BDC. Again BDC is not really very comfortable to me[So, I believe for you as well]. But, BCS features it is improved when compared to BDC and it is having very good integration behind. Now, easily you can pull any information from a database to the SharePoint list and provide that information to the user.

One more advantage with BCS is creating external content types. For a table in database, it will create a content type and we will use that in a list. So that a table in database is equal to the list in SharePoint. This way you may not need to go to database to do some operation. Instead if you have access to the site then go the list and do the operations. By default, it supports following types of external systems:

  1. Database
  2. WCF services
  3. .NET connectivity assemblies
  4. Custom data sources [Any data source like excel, access etc]

By default above 4 it supports. But along with them, BCS framework is extensible. You can write some extra code and plug that in to SharePoint. Unlike BDC, BCS supports bulk operations. The main advantage with this is that it reduces the round trips to the database and in a single connection you are performing many options. And you can read BLOB data directly with this BCS. And many more.

So, with this BCS you can show the external data in SharePoint and perform the create, read, update, delete, and query (CRUDQ) operations. It supports BULK operations as well.


Alerts Enhancements in SharePoint 2010

Alerts, so far we know only subscribing to alerts and it sends alerts via email. But, with this new version they have added special feature to send alerts via Short Message Service [SMS] to mobile devices. Oh!!! super cool feature. Isn’t it?

In development, we use SPAlert class to work with alerts. For this new option, they have added a new property to the SPAlert class to know whether the alert is delivered via email or SMS.

The Mobile Messaging Framework is extensible. We can create our own custom solution and integrate that into SharePoint. But, while implementing below are the cases you have to consider while writing custom solution to your own messaging framework.

  • If you are using Office Mobile Service[OMS] protocol then Microsoft already written all of the functionality needed for us. Just use them and customize them.
  • If you are using your own protocol then still the base classes from Message framework of SharePoint Foundation 2010 will help us to do that job easily.

This is very cool and good feature in this new release and it is really very useful and we know what is happening as everything is coming directly to mobile. Do you like it?


What’s new in SharePoint Foundation 2010

Everyone knows that SharePoint Foundation 2010 is extension to the Windows SharePoint Services 3.0[WSS 3.0]. So, they have improved it in many ways and makes our life easy. Smile

Below are the main features they have improved in this version of SharePoint Foundation 2010 and SharePoint Server 2010.

Note: All features supported in SharePoint Foundation 2010 also supported in SharePoint Server 2010.

  1. Alerts Enhancements
  2. Business Connectivity Services
  3. Client Object Model
  4. Custom Field Rendering Enhancements
  5. Events Enhancements
  6. Health Analyzer
  7. List Enhancements
  8. Microsoft Sync Framework
  9. Mobile Device Development Enhancements
  10. Performance Monitoring and Request Throttling
  11. Query Enhancements
  12. Ribbon
  13. Sandboxed Solutions
  14. Security Enhancements
  15. Service Application Framework
  16. Silverlight Integration and Cross-Domain Data Access
  17. UI Enhancements
  18. ULS Logging
  19. Windows PowerShell for SharePoint
  20. Workflow Enhancements

WOW. So many features and all of them are for free of cost if we have Windows Server 2008. Start using SharePoint 2010 guys.


Thursday, February 10, 2011

How to learn SharePoint 2010

This is continuation to series of my previous post on “What to know before learning SharePoint 2010”. Once you know the basic concepts required you have to know what could be the easiest way to learn SharePoint.

First, check the Hardware/Software requirements of SharePoint 2010. From the list of available editions in SharePoint 2010, download the SharePoint Foundation 2010. Make sure, you should have valid Windows Server 2008 license to use SharePoint Foundation 2010. Once you downloaded and installed then you are ready to rock to play with SharePoint features. [I am assuming you have installed SharePoint Foundation 2010.]

Step 1: From the Central Administration create a site and play with the site[look all options available and features we discussed in earlier posts]. This way, you will cover content, search, sites, communities. You can change the themes, master pages, page layouts etc. Create how many lists and libraries you want etc. Note here, we are doing everything through browser, no code change or nothing. This is the main advantage. You do not need to know any technology or other code languages for solving many business problems.

The basic point here is, you will get a broader picture of What SharePoint and how it works. This will be a very good starting point to everyone to know about it.

After couple of days, after you feel good with these features then jump to step2.

Step2: Download SharePoint Designer 2010. And open the SharePoint site you created in SPD 2010. You will see all the folder structure of the site in designer. You can see all the content you have created like sites, list, libraries, pages etc in SPD 2010. [We have to use SharePoint Designer because all the data in SharePoint stores in the database. So, using general developer tools like Visual Studio etc. we cannot open the site and see content. Because, visual Studio useful if files are in the file system. But, SharePoint files stores in the database, we need some extra tool and that is nothing but SharePoint Designer.] View all the content how it is saving in database and see master pages, page layouts, style sheets, pages etc. You will get complete idea on how SharePoint save data in background.

Step 3: After you feel good with the SPD 2010 and did experiments then it’s time to go to coding. You know what is SharePoint and how it saves data. How to customize the data etc. now time to move to custom coding and deploy something to SharePoint. For this, we need developer tools. Before proceed download SharePoint 2010 SDK. Read the complete CHM file for the complete list of new features added in both SharePoint Foundation 2010 and SharePoint Server 2010. This gives you the details of what the new features and how they solve your problems or fulfill your requirements.

When comes to custom coding, you need to have Visual Studio 2010. VS 2010 has lot of SharePoint templates which helps to create projects easy and deploy easy. This is as easy as 2-3 clicks.

Will discuss more details on how we can develop or create a project in Visual Studio and deploy to SharePoint in later posts. Hope this helps to understand where to start to learn SharePoint 2010 without wasting so much of time and money. Good luck!!!


Download SharePoint 2010 SDK

SharePoint 2010 SDK contains all the documentation required for developers about technologies and the step by step procedure to use them. It also contains the code samples, best practices, setup guidelines etc. So, before learning SharePoint 2010 you should download and read this.

Download SharePoint 2010 SDK

To know what code samples it includes, here is the one line description for each.


Download Microsoft Search Server 2010 Express

Along with Microsoft SharePoint Foundation 2010 if you want to add the search capabilities to your collaboration environment then the best option is Search server 2010 Express. Search server 2010 express is standalone search server which is free and easy to deploy. It delivers powerful, web-style search across your corporate intranet sites quickly, easily, and for free. It can search all your content sources, including SharePoint sites, file shares, websites, Exchange Public Folders, and third party repositories.

Download Microsoft Search Server 2010 Express


Install SharePoint Foundation 2010 on Windows 7

We can setup the development environment we can do that on Windows Vista, Windows 7 or Windows Server 2008.

Microsoft SharePoint Foundation 2010 is the next version of the Windows SharePoint Services. To install SharePoint Foundation 2010 we have to check the environment like whether we are installing for development or for production. First thing we have to check is hardware/software requirements.

If you want to install for development use then please follow this post. Otherwise continue.


  • ADO.NET Data Service Update for .NET Framework 3.5 SP1
  • Microsoft Filterpack 2.0 (a part of the SharePoint 2010 Foundation distribution)
  • Microsoft Sync Framework
  • SQL Server Native Client
  • Windows Identity Foundation (KB974405)
  • Enable or install all IIS components required. For this Microsoft given a script which install all required and which will be run through command prompt. Open command prompt and paste this code and hit enter.
  • start /w pkgmgr /iu:IIS-WebServerRole;IIS-WebServer;IIS-CommonHttpFeatures;IIS-StaticContent;IIS-DefaultDocument;IIS-DirectoryBrowsing;IIS-HttpErrors;IIS-ApplicationDevelopment;IIS-ASPNET;IIS-NetFxExtensibility;IIS-ISAPIExtensions;IIS-ISAPIFilter;IIS-HealthAndDiagnostics;IIS-HttpLogging;IIS-LoggingLibraries;IIS-RequestMonitor;IIS-HttpTracing;IIS-CustomLogging;IIS-Security;IIS-BasicAuthentication;IIS-WindowsAuthentication;IIS-DigestAuthentication;IIS-RequestFiltering;IIS-Performance;IIS-HttpCompressionStatic;IIS-HttpCompressionDynamic;IIS-WebServerManagementTools;IIS-ManagementConsole;IIS-IIS6ManagementCompatibility;IIS-Metabase;IIS-WMICompatibility;WAS-WindowsActivationService;WAS-ProcessModel;WAS-NetFxEnvironment;WAS-ConfigurationAPI;WCF-HTTP-Activation;WCF-NonHTTP-Activation

  • WCF hotfix for Windows 7 or Windows Server 2008 R2
  • WCF hotfix for Windows Server 2008 Service Pack 2, Windows Vista Service Pack 1, and Windows Vista Service Pack 2
  • If Windows Vista then install below software

Installation Process:

  • Make sure all of the prerequisites installed in the server as described above. It is not a big problem that even they weren't installed SharePoint Foundation tries to install them by downloading from internet. But, it is good if we have all ready.
  • Download SharePoint Foundation 2010 from Microsoft download center.
  • Extract the package to a safe location using /extract from command prompt.
  • From the extracted path, you will fund config.xml which is the installation configuration file.
  • Open it in the text editor like notepad and add the below line in <Configuration> tag.
    <Setting Id="AllowWindowsClientInstall" Value="True"/>
  • Run the setup of the SharePoint Foundation.
  • Follow wizard and all options as required. [Select Standalone if you are installing for first time]
  • At last step uncheck the option "Run SharePoint Products and Configuration Wizard" and click Finish.
  • Before run the configuration wizard, it is good always to check for any cumulative updates are available. For that, please check it here.
  • Now, run the "SharePoint Products and Technologies Configuration Wizard" from Start –> All Programs –> Microsoft SharePoint 2010 Products.
  • It will take time to install all steps and will be completed successfully without any issues if we configure everything correct.
  • Once done with all and if your web sites needs to support different languages then download and install all language packs needed.
  • Open Central Administration site and configure all as needed.

Note: Once you have installed language packs for Microsoft SharePoint Foundation 2010 then we should run the SharePoint Products and Configuration Wizard. Otherwise the language packs do not work correct.

Some more information:

After you have installed all, you will see everything running fine. When you go to sql server and check for databases, it creates a total of 6 databases.

  • WSS_Content: Content database of the main web application created
  • SharePoint_Config_<GUID>: SharePoint Configuration database
  • SharePoint_AdminContent_<GUID>: SharePoint Central Administration content database.
  • BDC_Service_DB_<GUID>: Business Connectivity Services database. SharePoint Foundation 2010 includes BCS but it doesn't have complete features. It contains all main features like BCS service, Pluggable framework, external list, external columns etc..
  • WSS_Logging: This is SharePoint logging database, which is new in this version of SharePoint. This database has all events logged, which will help us to trace for errors, exceptions or any further information.
  • WSS_Search_<MachineName>: This is for the SharePoint Foundation search database.

Enjoy using SharePoint 2010.


Install SharePoint Foundation 2010

Microsoft SharePoint Foundation 2010 is the next version of the Windows SharePoint Services. To install SharePoint Foundation 2010 we have to check the environment like whether we are installing for development or for production. First thing we have to check is hardware/software requirements.

If you want to install for development use then please follow this post. Otherwise continue.


Installation Process:

  • Make sure all of the prerequisites installed in the server as described above. It is not a big problem that even they weren't installed SharePoint Foundation tries to install them by downloading from internet. But, it is good if we have all ready.
  • Download SharePoint Foundation 2010 from Microsoft download center.
  • Run the setup of the SharePoint Foundation.
  • Follow wizard and all options as required. [Select Standalone if you are installing for first time]
  • At last step uncheck the option "Run SharePoint Products and Configuration Wizard" and click Finish.
  • Before run the configuration wizard, it is good always to check for any cumulative updates are available. For that, please check it here.
  • Now, run the "SharePoint Products and Technologies Configuration Wizard" from Start –> All Programs –> Microsoft SharePoint 2010 Products.
  • It will take time to install all steps and will be completed successfully without any issues if we configure everything correct.
  • Once done with all and if your web sites needs to support different languages then download and install all language packs needed.
  • Open Central Administration site and configure all as needed.

Note: Once you have installed language packs for Microsoft SharePoint Foundation 2010 then we should run the SharePoint Products and Configuration Wizard. Otherwise the language packs do not work correct.

Some more information:

After you have installed all, you will see everything running fine. When you go to sql server and check for databases, it creates a total of 6 databases.

  • WSS_Content: Content database of the main web application created
  • SharePoint_Config_<GUID>: SharePoint Configuration database
  • SharePoint_AdminContent_<GUID>: SharePoint Central Administration content database.
  • BDC_Service_DB_<GUID>: Business Connectivity Services database. SharePoint Foundation 2010 includes BCS but it doesn't have complete features. It contains all main features like BCS service, Pluggable framework, external list, external columns etc..
  • WSS_Logging: This is SharePoint logging database, which is new in this version of SharePoint. This database has all events logged, which will help us to trace for  errors, exceptions or any further information.
  • WSS_Search_<MachineName>: This is for the SharePoint Foundation search database.

Enjoy using SharePoint 2010.


Download language packs for SharePoint Foundation 2010

Language packs enable sites and site collections in multiple languages without requiring separate installations for Microsoft SharePoint Foundation 2010. But, a very important is after you have installed the language pack on the server we should run the SharePoint Products and Configuration Wizard again because if we don't do that the language packs will not configure correct.

Download Language packs for SharePoint Foundation 2010


Download SharePoint Foundation 2010

SharePoint Foundation 2010 is the next version of Windows SharePoint Services. This is free of cost and if you have valid operating system then you can download and install in your machine. This is the foundation software required for SharePoint Server 2010.

Download SharePoint Foundation 2010


Download SharePoint Designer 2010

SharePoint Designer 2010 is also free and available for public download. SharePoint designer 2010 available in both 32-bit and 64-bit. You can install SPD 2010 side by side along with SPD 2007. But, the limitation with this SPD 2010 is you cannot open the SharePoint 2007 sites in it. So, you have to use the specific SPD version for the specific SharePoint versions.

Download 32-bit SPD 2010

Download 64-bit SPD 2010


SharePoint 2010 Licensing

As we discussed in previous post we knew the different editions available and about licensing we should read

License Overview

License Details


SharePoint 2010 editions

SharePoint 2010 product comes with different editions. Depends on the requirements and usage they have categorized into 3 types.

  1. SharePoint Foundation 2010
  2. SharePoint Server 2010 Standard
  3. SharePoint Server 2010 Enterprise


SharePoint Foundation 2010: It is the platform for collaboration and foundation for building web based applications in SharePoint. This is mainly useful for small organizations who want low-cost secured web based applications. SharePoint Foundation is free of cost. If you have Windows Server 2008 licensed version, then you can download Foundation 2010 and install it.

SharePoint Server 2010 Standard: Contains core capabilities of SharePoint 2010 except insights. Includes Sites, Communities, Content, Search[No FAST search], Composites [except the Access services and Infopath  services].

SharePoint Server 2010 Enterprise: Contains all or full capabilities of SharePoint 2010.

For complete product or edition comparison please take a look at here. Hope you got idea on editions available in SharePoint 2010.


Hardware/Software requirements for SharePoint 2010

Hardware requirements [For all servers database and SharePoint]:

  • 64-bit processor
  • For front-end servers, RAM – 4GB for development, 8GB for production.
  • For Database servers, RAM – 8GB for small deployment, 16GB for medium deployments.
  • 80GB of hard disk

Software requirements:


  • 64-bit Windows Server 2008 R2 or 64-bit Windows Server 2008 SP2.
  • For development environments, we can use either Windows 7 or Windows Vista. But, it is highly recommended that we should not use these OS for production environments.


  • 64-bit SQL Server 2008 R2 or 64-bit SQL Server 2008 with SP1 and CU2 only or 64-bit SQL Server 2005 SP3.

Remember, to install SharePoint 2010, it checks for all prerequisites required and if it didn’t find any then it starts downloading them from Microsoft site and install them in your server. Below are the listed modules which installs by the preparation tool.

  • Web Server (IIS) role
  • Application Server role
  • Microsoft .NET Framework version 3.5 SP1
  • SQL Server 2008 Express with SP1
  • Microsoft Sync Framework Runtime v1.0 (x64)
  • Microsoft Filter Pack 2.0
  • Microsoft Chart Controls for the Microsoft .NET Framework 3.5
  • Windows PowerShell 2.0
  • SQL Server 2008 Native Client
  • Microsoft SQL Server 2008 Analysis Services ADOMD.NET
  • ADO.NET Data Services Update for .NET Framework 3.5 SP1
  • A hotfix for the .NET Framework 3.5 SP1 that provides a method to support token authentication without transport security or message encryption in WCF.
  • Windows Identity Foundation (WIF)

For information please refer this MSDN article.


What to know before learning SharePoint 2010

This is the question I have received from many people. Even they are not working in Microsoft related technologies they like to work on SharePoint 2010 [only because the demand and features it has]. So, to learn SharePoint 2010 what are the technologies you have to know or what are the main concepts you should be strong at, this is what we will discuss in this post.

The technologies/concepts you have to know as a Developer:

  1. ASP.NET/C#: SharePoint 2010 is completely built on ASP.NET 3.5 whereas SharePoint 2007 is built upon ASP.NET 2.0. So, if you know basic ASP.NET 3.5 features then you get better ideas in implementing SharePoint 2010 coding and better understand concepts.
  2. SQL Server: This is very important to know as SharePoint A-Z stores in database only.
  3. Windows Workflow Foundation: There are workflows in SharePoint which is useful to solve business process problems. To create the workflows either in SharePoint designer or custom workflows you should have idea of WWF.
  4. XML/XSLT: I can say everything in SharePoint is XML. So, if you are strong in XML then you rock. XSLT is applying styles for XML.
  5. AJAX/Java script: AJAX is a generic concept and in ASP.NET the implementation is a bit different and you may need to know the general concept on how it works. Along with that you have to know java script.
  6. Windows Communication Foundation: WCF is very popular these days as it has very good features. SharePoint 2010 is using WCF Services instead of Web Services. So, to work with them you have to know it. [For SharePoint 2007 it is not needed]
  7. Silverlight: There are modules in SharePoint 2010 developed in Silverlight. And the integration of Silverlight code to SharePoint is also very easy now. [For SharePoint 2007 it may not be needed, but you can create custom Silverlight module and deploy to SharePoint 2007]
  8. Internet Information Services: You have to know what is IIS and how it works.

The technologies/concepts you have to know as an Administrator:

  1. SQL Server
  2. IIS
  3. Windows Server
  4. SharePoint Designer

So, these are preliminary set of things everyone should know before learning SharePoint 2010. No need to know everything very deep, but you have to get complete idea of what it is and how they work. So, it may take around a month to know about these concepts and start learning SharePoint 2010. If you try to learn directly SharePoint 2010 without knowing these concepts you may successful in doing content management, SharePoint designer workflows, customize the look and feel etc. but do not know what is happening inside and how they work. You cannot do any coding etc. So, make sure you are spending good amount of time to learn these before jump directly. Hope this helps you.


Tuesday, February 8, 2011

What is SharePoint 2010?

If someone asked this question then there is no one answer for this. SharePoint is a very big system and has plenty of features. So, if we start talking about them then it will take weeks to cover all features.

But in simple words "Microsoft SharePoint is an enterprise collaboration and content management platform which enables users to connect each other and share the information across an organization. Indirectly which solves the problems in an organization to share the documents, security, business process, maintaining data etc. SharePoint 2010 has rich UI and plenty of features."

SharePoint core features:


1. Sites: You can create a web site in seconds from the UI. You can create how many sites you want according to requirements and set the different permissions for each site. SharePoint 2010 comes with rich UI and many improvements to the HTLM as well. They have replaced all HTML Tables [in SharePoint 2007] with HTML Div tags [in SharePoint 2010]. This makes huge difference in rendering of HTML on browser both in performance and time.

And the main important thing is Ribbon. The Ribbon is big revolution and all the options are one the page itself. The Ribbon properties change dynamically/automatically  depends on what context you are in. There is no need to leave the current page and do something. Everything on the page and do the stuff needed. With this rich UI and ribbon support it is very easy to create and manage content in the site.

SharePoint 2010 sites can be browsable on any browser. Only limitation is it will not support IE6 [I believe no one is using IE6 still]. So, we can call it as Multi-Platform. This will be very good for developers and users that they have their own impression on browser usage. I like IE9 and Mozilla. Earlier version of SharePoint don't like browsers other than IE. So, this problem is resolved in this version.

SharePoint 2010 supports Cloud computing as well. So, you can host it general environment or the cloud computing environment to give access to internet users. This is again a major feature included in SharePoint 2010.

2. Communities:It is more of Social connections. You can connect to employee [colleague] or users through user profiles , my sites and people search. This way you are connected with others and share information very easily. Another thing in communities section is "Informal Knowledge". This includes tagging, rating and feedback features. For example, many users are searching for a common document then what we could do is, tag that document with relative keywords. So that it will come up in top search results. This way users get whatever they want very easily. Another option is rating. You can give rating to particular document or item. 

3. Content: As we discussed in earlier sections now with SharePoint 2010 creating or managing content is very easy with the new rich UI and ribbon. This is very easy for admins to find the content in the site and make changes. You may feel that this is same as editing MS Office files like word, power point in browser. SharePoint 2010 manages huge and complex Metadata across site collections very easily.

4. Search: Huhh!!! It is a very big improvement in SharePoint 2010 compared to previous version. The way the search improved is unbelievable and gives the exact search results what user is looking for. There are many ways how they improved search. Here are the main things:

  • Improved relevancy: When user is typing the search word SharePoint detects what user is trying to search for and gives exact result they are looking for.     
  • Refinement & Related Searches: For each search word given it searches for the related keywords as well and give in the result set. If you search for John then it gives search results which has John on top and then Jon, Don etc after it. Because Jon matches with 3 letters Don matches 2 letters etc.
  • Wildcard search: This is what already known thing and not really need any special explanation.

5. Insights: This mainly covers the business process in an organization. The perfect implementation to this is workflows. SharePoint designer workflows improved and added many activities to the 2007 designer activities. With these we can solve many problems without writing custom code. And by writing custom code you can create your own activities easily. Along with these there are improvements to the excel services and charts. In this version of SharePoint they integrated Visio services. You can create a workflow in Visio and import them to SharePoint directly. It is one of the fantastic feature in this new version. The main advantage is who is good in Visio [I mean a common person] also has option to do some stuff which will be useful in SharePoint.

6. Composites: This concept comes from the Mash-Ups. Pulling information from different data sources and combining it single place. So, we can achieve this in 4 different ways:

  • SharePoint designer 2010
  • Infopath 2010
  • Business Connectivity Services [BCS]
  • Access Services

So, finally in simple words we can say SharePoint is:

  1. Quickly create and manage content in your organization
  2. Collaborate in new and easy ways through social capabilities
  3. Search helps to find easy and relevant content
  4. Streamline the business process in organization
  5. Visualize the information or huge data

For complete idea please take a look at this nice video.

I believe you understood briefly What is SharePoint. Before we end this concept lastly I want to mention, SharePoint 2010 is only supports 64-bit. [There is no 32-bit anymore. ]So, all the infrastructure and the software like [Windows Server 2008, Sql Server etc] should be 64-bit.