HTTP Project
The HTTP project is most like the model built into earlier versions of Visual Studio. Under the HTTP project model, Visual Studio creates a virtual directory under IIS and uses IIS to intercept requests during development time. Under this model, the solution file (the .sln file) resides in a directory specified under Visual Studio's project settings directory. The source code for the project is stored in the IIS virtual directory (that is, \Inetpub\wwwroot).
You may either have Visual Studio create a virtual directory for you, or you may create a virtual directory ahead of time. You may store the code for your Web site in any folder. The virtual directory just needs to point to that location.
Use this option if you want to work as closely as possible in the same mode as earlier versions of Visual Studio. In addition, using an IIS Web site during development lets you test the entire request path (not just the path through ASP.NET). This is important if you want to test an application that leverages IIS security, requires ISAPI filters, application pooling, or some other specific IIS features to run effectively. One reason to create a local Web site is to test your application against a local version of IIS. Using IIS as part of the development environment makes it easier to test these things. Of course, the downside to this approach is that you require IIS to be installed on your machine (it's not installed automatically-you have to take a deliberate step to install it). Having IIS on your machine may also compromise security.
FTP Project
The FTP project is meant for those projects you want to manage remotely through an FTP server. For example, this is a good option if you use a remote hosting service to host your Web site. The FTP site option represents a reasonable means of getting files from your development environment to the hosting site.
When creating this type of site, Visual Studio will connect to any FTP server for which you have reading and writing privileges. You then use Visual Studio to manage the content on the remote FTP server.
You might use this option to test the Web site on the live-deployed server where it will actually be deployed.
File System Project
The file project is probably the most developer-oriented project. File System projects rely upon the Web server inside Visual Studio instead of IIS. When you specify a file system Web site, you may tell Visual Studio to put it anywhere on your file system or in a shared folder on another computer.
If you don't have access to IIS, or you don't have administration rights to the system on which you're developing, then you'll want to create a file system-based Web site project. The site runs locally, but independently of IIS. The most common scenario in this case is to develop and test a Web site on the file system. Then when it comes time to expose your site, simply create an IIS virtual directory and point it to the pages in the file system Web site.
By default, Visual Studio does not precompile your Web application. Once you've developed a site using Visual Studio, you may decide to precompile it.