I find this article which describe how i need to create site columns programmatically using visual studio https://msdn.microsoft.com/en-us/library/ee231593.aspx.
they mentioned that I should use the "default value Deploy as a sandboxed solution". so my question is that what will be the differences if i use sandboxed solution or a farm solution to add custom site columns ?
second question. in general if i add new site columns using visual studio , this will generates a site feature . but what will happen if i "deactivate" the generated feature ? will this cause the site columns to be deleted ? if the answer is yes,, so if i have a list or content type that reference these columns will i be able to deactivate the feature ?