Which files do I have to deliver when I do an ASP.NET (MVC or not) deploy? I want to know only the absolutely neccesary files. Also, how can I obfuscate some of them to prevent decompiling? I don't want to use the publishing wizard since it requires having FrontPage extensions installed on the server.
Why don't you just use the publishing wizard?
Build->Publish
As for obfuscation, it doesn't really stop many people, but a free version of dotFuscator is included with Visual Studio Pro and greater versions. If you don't have the pro versions, then you can use something like {smartassembly} or .NET Reactor, but honestly it's hardly worth the bother since obfuscation is not going to stop any determined party.
If you compile your ASP.NET application then you can omit CS files (those are already compiled into DLL). Why do you want to obfuscate the files? They will only be on the web server. To obfuscate DLLs you can use the Dotfuscator that is part of Visual Studio. If you google you will find many other (even free) obfuscators (but if you really want a serious obfuscation then you will need to purchase a commercial product).
The Publish option is the way to go. If not, you are likely to make a mistake and publish the wrong files. It does not require Front Page extensions, and allows you to publish using Ftp or any folder location you have access to.
If you really need to deploy manually, copy the entire website, and delete the code behind files after the fact if you need to (.cs or .vb files).