# IT:AD:NET:Portable Class Library (PCL) #
* [[../|(UP)]]
{{indexmenu>.#2|nsort tsort}}
* See also:
* [[IT/AD/NET/HowTo/]]
* [[IT/AD/NET/Core/]]
* [[IT/AD/NET/STANDARD/]]
* [[IT/AD/NET/BCL/]]
* [[IT/AD/NET/FCL/]]
After [[IT/AD/NET/HowTo/Standard/|NET Standard 2.0]] comes out (with [[IT/AD/Visual Studio/|Visual Studio 2017]] on 3/7/2017), stop using PCL and focus on [[IT/AD/NET/HowTo/Standard/]]
The Portable Class Library project supports a *subset* of assemblies from:
* the .NET Framework,
* Silverlight,
* .NET for Windows Store apps,
* Windows Phone, and
*Xbox 360
It provides a Visual Studio template that you can use to build assemblies that run without modification on these platforms.
If you don't use a Portable Class Library project, you must target a single app type, and then manually rework the class library for other app types.
With the Portable Class Library project, you can reduce the time and costs of developing and testing code by building portable assemblies that are shared across apps for different devices.
Sounds like an appropriate choice for a library such as [[Projects/XActLib/]]
### Notes ###
* Advantages:
* Helped move away from monolithic huge .NET to targeting other platforms.
* Considerations:
* Use [[IT/AD/NET/HowTo/STANDARD/]] instead((http://andrewlock.net/understanding-net-core-netstandard-and-asp-net-core/)).
* As per here((https://github.com/dotnet/standard)) PCL is to be officially replaced by [[IT/AD/NET/HowTo/Standard/]].
* Disadvantages:
* A design flaw is
* Every time a new platform comes out, the dll has to be recompiled((http://andrewlock.net/understanding-net-core-netstandard-and-asp-net-core/)).
What to share in a PCL library:
* http://msdn.microsoft.com/en-us/library/windowsphone/develop/jj714086(v=vs.105).aspx#BKMK_WhattoshareinaPortableClasslibrary
## Resources ##
* Spreadsheet of available functions across platforms:
* https://skydrive.live.com/view.aspx?resid=8A7FB4A4B32FB2C9!180&app=Excel&wdo=2&authkey=!AHaBmLAhQ49YCI0
* https://pclstorage.codeplex.com/