Could anyone explain me the advantages of using Visual Studio for SharePoint customization than using SharePoint Designer? And also which version of Visual Studio supports both SharePoint 2013 foundation and SharePoint 2013 Standard?
SharePoint Stack Exchange is a question and answer site for SharePoint enthusiasts. It only takes a minute to sign up.Sign up to join this community
You can use Visual Studio 2012, 2013 or 2015 (including Community Edition) to develop against any SKU of SharePoint 2013.
The discussion that follows is a bit of an over-simplification but I think it answers the question.
For the most part, customizations with SharePoint Designer effect one place or thing. For example, if I add a content type to a site, it only effects that site. If I want that same content type in another site, I have to repeat the steps I used for the first.
Visual Studio enables you to create Solutions or Apps that can be used in multiple places. For example, I could create a Solution project that contains a Feature that creates a content type. Once that solution project is deployed to SharePoint, I just need to activate that Feature in any site where I want to provision that content type.
So, if I only want that content type in one site, it will be much easier and faster to create it using SharePoint Designer (or using SharePoint itself). However, if I want that content type to be used in several places then I'm probably better off using Visual Studio.
SharePoint Designer workflows have a limited amount of actions you can take. Visual studio allows you to define your own logic, and to create state workflows in addition to sequential workflows. You can also write event receivers which detect when an action has been taken and runs code at that time. For example, when you delete an item, there's no way to do something at that time. The item no longer exists, so it can't be acted upon. In Visual Studio, you could add an event receiver to detect when an item is deleted and run code at that time. You can use Visual Studio to retrieve SharePoint data from a desktop application. You can copy a list across site collections or web applications. You can create custom web parts. There are just a lot more options and flexibility.
I believe you can use Visual Studio 2010 or 2012.