Silverlight 2と3に組み込まれていたアセンブリは、.NET Frameworkとのバイナリ互換がなかった。もし、同じコードを使用したい場合、2回のコンパイルが必要だった。Silverlight 4と.NET 4では、.NET 4に含まれているアセンブリは、Silverlightでも使用することができるようになった。
Silverlightアセンブリを.NETで読み込むためには、以下のアセンブリだけを参照するようにするとよいだろう。
- Mscorlib
- System
- System.Core
- System.ComponentModel.Composition
- Microsoft.VisualBasic
System.XmlやSystem.Netなどのその他のアセンブリ、またいかなるUIライブラリも、現在サポートされていない。これは、共有データオブジェクトを受けることは可能だが、サービスの呼び出しや自身のXMLシリアライゼーションをハンドルするアクティブレコードは、議論の余地がないことを意味する。
Silverlightが.NETアセンブリのロードをサポートしないことを明示していることに注意するべきである。SilverlightのUI以外のパーツは、.NETのサブセットである。彼らは、こうした方が、存在しないクラスやメソッドに対処するよりも、エラーが少ないと考えたようだ。
もし、Silverlightと.NET間の非互換性に関するレポートやアセンブリのポータビリティについて詳しく学びたいのであれば、CLR Team blogを参照してほしい。