[Mono-list] Microsoft's PCL is now available on all platforms

Jonathan Pryor jonpryor at vt.edu
Wed Oct 16 14:44:35 UTC 2013

On Oct 15, 2013, at 11:37 PM, William Ivanski <william.ivanski at gmail.com> wrote:
> Anybody know if this PCL release will, in long term, help the Windows-Linux interop?

I guess that depends on how you define "Windows-Linux interop".

All the PCL assemblies provide are "stubs"; type and member _declarations_, with no corresponding implementation.

As such, they allow you to write a library that will only use the _intersection_ of e.g. Silverlight and WinRT APIs, with decent IDE code completion (only showing the members that exist in that API intersection) and compiler support (the compiler uses a PCL "stub" assembly which contains only the API intersection).

However, an important part of interoperability is runtime behavior and semantics. PCL assemblies won't do anything at runtime. There are numerous methods in Mono which exist but throw NotImplementedException, or are not fully implemented. (Grep for MonoTODO, etc.) PCL assemblies will do nothing to change this.

Being able to build PCL-based assemblies on Linux/OS X is very useful, and shouldn't be understated. PCL reference assemblies will allow Linux/OS X developers to build "proper" PCL-based assemblies and distribute them for use, as binaries, to Windows developers. (Build servers, anyone?) This can be very handy.

But we shouldn't understate the importance type implementation and runtime behavior, and PCL reference assemblies will not help there.

 - Jon

More information about the Mono-list mailing list