The PE file you are talking about is the "Portable Executable" format. Almost every EXE and DLL on the Windows platform is formatted in PE format. To answer your question, it‘s a general format and every assembly generated after compilation of your project will be a PE file. You will have a PE file for every .NET project you compile. You can read more about it here: http://en.wikipedia.org/wiki/Portable_Executable
And no, not every class in a project results in a new DLL. Every project in a solution will result in a new DLL or Executable.