Se provate a creare un nuovo progetto con la versione 4 del .NET Framework come Target Platform e inserite la libreria Microsoft.SharePoint.dll tra le referenze del vostro progetto, vi accorgerete che tale libreria non può essere utilizzata con altre versioni del Framework se non con la versione 3.5 !
Infatti, usando una delle classi del modello ad oggetti lato server di SharePoint 2010, troverete questo errore:

System.PlatformNotSupportedException
Microsoft SharePoint is not supported with version 4.0.30319.1 of the Microsoft .Net Runtime.


Microsoft SharePoint is not supported with version 4.0.30319.1 of the Microsoft .Net Runtime

In altri casi, vi può succedere che subito dopo aver inserito la referenza alla dll di SharePoint tutto funzioni correttamente, intellisense e tutto il resto. Ma, alla prima compilazione, troverete tra le eccezioni scatenate la seguente:

The type or namespace name 'SharePoint' does not exist in the namespace 'Microsoft' (are you missing an assembly reference?)


Questo purtroppo è così e basta ! Microsoft direbbe "è così by desgin". Quindi non possiamo farci niente.
Se vogliamo leggere o modificare dati presenti in SharePoint da un'applicazione scritta utilizzando il .NET Framework 4.0 dobbiamo usare i webservices esposti.