I found Documents a bit hard to understand so i tried to make things a little clear here.
Portable Class library is built to let programmers create projects that will run over multiple platforms like Xbox 360, Windows Phone, Silverlight and .NET Framework (4 and above). this is done through omitting some specific API's that is not supported by your chosen target platforms that will cause you to lose some available features of .Net Framework.
So we can say, choosing between Portable class library
and Normal class library
depends on target platforms of your project. if you want your app to work on Xbox and Desktop Computers with windows operating system, you better save your time and use PCL, other than that Normal class library will do fine.
for more information visit documentation page.
Now there is a new and open source technology called .Net Standard which will displace PCL.
.NET Standard solves the code sharing problem for .NET developers across all platforms by bringing all the APIs that you expect and love across the environments that you need: desktop applications, mobile apps & games, and cloud services:
- .NET Standard is a set of APIs that all .NET platforms have to
implement. This unifies the .NET platforms and prevents future
fragmentation.
- .NET Standard 2.0 will be implemented by .NET Framework, .NET Core,
and Xamarin. For .NET Core, this will add many of the existing APIs
that have been requested.
- .NET Standard 2.0 includes a compatibility shim for .NET Framework
binaries, significantly increasing the set of libraries that you can
reference from your .NET Standard libraries.
- .NET Standard will replace Portable Class Libraries (PCLs) as the
tooling story for building multi-platform .NET libraries.
You can see the .NET Standard API definition in the dotnet/standard repo on GitHub.
Reference