Difference between Web Application and Web Site in .net

Web Application Web Site
All the list of the files included in the project is stored in the .csproj/.vbproj No such project file exists. The files are automatically included in the website.
It is required that you compile the project by building it in Visual Studio. All the classes and standalone classes are then compiled into a single assembly that is then stored in the Bin folder. You do not have to compile the website manually. It is dynamically compiled by ASP.NET and thus produces multiple assemblies.
All the namespaces are added to the pages, controls and the classes by default. Namespaces are needed to be added since they are not added manually.
The assemblies that are created have to be copied to the IIS server to complete the deployment process of the web application. To do the deployment you have to copy the whole project source to the IIS server.
Pre-Compilation of site is needed before deployment and modification in any page needs re-compilation of entire sites. Pre-compilation of site is not needed before deployment and modification in any page does not need re-compilation of entire site, only modified files are needed to be re-compiled.
While Deployment, only .aspx pages are needed to be deployed and code behind files are not needed as dll already gathered that details during pre-compilation. While Deployment, you need both .aspx as well as code behind files.
While creating a web application, either C# or VB can be selected i.e. creation is possible in either of one. While in case of web site, creation is possible using  C# and/or VB.