My confusion was when I've compiled stuff using codeblocks I never needed a makefile, but now I see why. I just got my hands on VS12 so eventually I'll have to learn how to use that.
VC++ uses "project" files as well, but they have support for msbuild makefiles. keep in mind that the makefiles included with bitcoin are not msbuild compatible.