We have to store lot of images with nested folder structure levels which is shared by many ASP.NET websites.What is the right approach? Should i Store content images in TFS or share folder? We also want to maintain multiple versions of the same image in future.
Share
If you want to maintain multiple version of the same image in the future then storing content images in TFS would be better than using a shared folder.
In order to support multiple versions of files with a shared folder then you will need differentiate the different file versions by changing the image name (e.g. put version number at the end) or change the path to the image (e.g. put version as a folder name). This means you need to update all of the reference URLs to these images in the appropriate ASP.Net websites.
Alternatively, by storing the images in TFS the various ASP.Net websites can reference the single shared path in TFS to the images and use workspace mappings to keep the URL references the same. When the time comes where there are different versions of the file that need to be referenced, you can branch the image (or entire folders) and simply change the workspace mappings for the appropriate ASP.Net websites. No need to update all references to the images.
I recommend the Microsoft Team Foundation Server Branching Guidance (see here) as a source of branching information to find a strategy that works best for you.