As Gary said the .NET Framework is a massive collection of libraries (assemblies) providing a big deal of functionality that dramatically eases the process of coding Windows and Rich-Client Web applications. All of these classes (and any other .net code) runs on top of the CLR (Common Language Runtime): The CLR is a runtime engine (a smart one) that provides some very neat features like Just In-Time compiling, Garbage Collection, and others. You make use of the .net framework for every application you develop using this technology. Visual Studio is really nothing more than an Integrated Development Environment (IDE) that enables you to edit, debug, build, and run your code smoothly and easily. The process of executing your .NET applications is different than other languages (C/C++ for example). Like Java, .NET code doesn't get transformed directly into native code, instead it gets transformed into some kind of a middle layer language named IL (Intermediate Language), then when you run your application, the CLR (specifically the JIT part of the CLR), compiles this IL into a native code in order to be executed. This middle layer is providing a whole deal of flexibility and portability; because of its existence, you can run your .NET code on some Linux boxes now.
Sorry if I made it too long or rather too boring for ya, I actually liked to have someone give me some details when I was right there in your place few years ago.