Because Silverlight is compiled against a separate set of Silverlight runtime, we can not reference or share a common library between a Silverlight project and a normal .NET project.
One very common and simple workaround is then to create a common project for .NET, and a common project for Silverlight, and then add the files as existing links from the .NET project to the Silverlight project. This ensures that the same files are shared by the two sides and we have our matching class definitions.
With RIA, there is a new way.
In the .NET project, name your extra files with xxx.shared.cs
Compile your .NET project. This triggers the RIA toolkit to run and generate some files for us:
So you no longer need to share a file via external link.