An assembly is the unit of packaging and deployment in .NET. An assembly can be either application or library.
An application is an assembly which has .exe extension and has an entry point to start execution.
A library is an assembly which has .dll extension but without an entry point. As a library is not executable, its sole purpose is to use it in other applications and libraries. The .NET Framework itself is a set of libraries.
The .NET Framework is a software development framework that supports building various types of applications. It provides consistent developer experience to build windows, web, mobile phone and cloud applications.
The .NET Framework consists of Common Language Runtime and the .NET Framework Class Library.
Common Language Runtime is the foundation of the .NET Framework, it manages the code at execution time by providing core services such as memory and thread management. It also enforces the strict type safety at runtime. Code that runs under the supervision of Common Language Runtime is called managed code.
The .NET Framework Class Library is a comprehensive collection of reusable classes that can be used to develop command line, windows, web, mobile phone and cloud applications.