after you create a new .net application in visual studio, where is good practice to save newly created class files. By default VS saves them in the root of the app, but couldn't this get a bit cluttered. What are the pros and cons?
Depends on what the class do. If it's a page specific class I just keep it with the page and use directories based on their url. For base classes App_Code is suitable enough. If it is enterprise wide or project wide I utilize a separate library class project. Not sure of the cons except that you might have to recompile the solution or project if you use a separate project if you make changes. Other than reusability is primary advantage.