Portable Class Library vs. library project

13,914

Portable class libraries are platform independent. They do not use conditional compilation and unmanaged code, they have no UI inside (UI is platform dependent). This is because PCL should work on all specified platforms which was chosen as a target. Also, availability of features depends on selected targets.

So a PCL can be referenced by any project which target is specified in the PCL settings. But libraries of other types can be referenced only by projects which have the same target or by upper subsets of .Net (for example, Silverlight libraries can be used in Windows projects but not vice versa).

More about restrictions and features of PCL can be found on two links bellow:

  1. Share functionality using Portable Class Libraries
  2. Cross-Platform Development with the Portable Class Library

On the first link you can read about what is PCL in general. And on second - info about targets and features.

Hope this helps.

EDIT: See also What is a Portable Class Library?

Share:
13,914
testing
Author by

testing

Updated on June 06, 2022

Comments

  • testing
    testing about 2 years

    I want to know the difference between PCL (Portable Class Library) and a normal library.

    PCL uses profiles with which it can be determined which platforms and features are available. Both can generate a DLL which can be used on different platforms. For a normal library project you can also set the target framework (e.g. .NET 3.5). Xamarin says that #if compiler directives are only suitable for Shared Projects, which means they are not used in PCL. I think the PCL and the library project are very similar.

    So what are the differences, when dealing with different mobile platforms?

  • testing
    testing over 9 years
    And what is the difference between PCL and a library project?
  • Yoh Deadfall
    Yoh Deadfall over 9 years
    As @valdetero says a standard library targets to a single platform and a portable class library targets to multiple libraries at the same time.
  • testing
    testing over 9 years
    What if the standard library does run on multiple platforms, wouldn't it be the same?
  • Yoh Deadfall
    Yoh Deadfall over 9 years
    No. It's because a PCL can be referenced by any project which target is specified in the PCL settings. But other libraries can be referenced only by projects which have the same target or by upper subsets of .Net (for example, Silverlight libraries can be used in Windows projects but not vice versa).
  • saber tabatabaee yazdi
    saber tabatabaee yazdi almost 8 years
    im starter ... is there any sample to connect to SharePoint or MS-CRM or Project server or (json parsing or) web api call template projects that we started from this?