You are probably asking not about common platform, which is the CLI used via CLR, but about the common API subset. The answer will be: all .NET Framework Class Library (FCL) except UI. Practically, most of the library shared between the tiers you need would be in Base Class Library (BCL) plus such important part as ADO.NET.
Please see:
http://en.wikipedia.org/wiki/Common_Language_Infrastructure[
^],
http://en.wikipedia.org/wiki/CLR[
^],
http://en.wikipedia.org/wiki/Framework_Class_Library[
^],
http://en.wikipedia.org/wiki/Base_Class_Library[
^],
http://en.wikipedia.org/wiki/ADO.NET[
^],
http://msdn.microsoft.com/en-us/library/aa286484.aspx[
^].
Note that you does not have to have .NET on either side. It could be some other CLI implementation, notably multiplatform Mono:
http://en.wikipedia.org/wiki/Mono_%28software%29[
^],
http://www.mono-project.com/Main_Page[
^].
Mono is implemented on a number of OS including Windows, Linux, Mac OS X, iOS and more, fully implement all the BCL and a number of non-standardized libraries, including ADO.NET,
System.Windows.Forms
and more. You can freely combine tiers working on .NET and Mono. Also, assemblies developed on .NET accurately enough avoiding incompatibilities (such as OS dependent features), will work on Mono on the same or any different platform without recompilation. And visa versa.
—SA