hi petercli, and welcome to the forum!
generally speaking, you can write a plug-in in any language.
however, the AE API is in c/c++ only, so if you want to write in other languages, you will need to use some code in c++ to interface with AE, and from there on you can wrap calls from the c++ part to any other function you have in c#.
you'll just need to add some non .cpp files to your project.
in any case, start off from one of the samples from the SDK, and add your non c# code files to that project.
as for working with visual studio 2010, it's possible.
just make sure that if your resulting plug-in is dependent on external DLLs, that you're binding to dll versions available to your user. i don't know for sure, but i think vs2010 ships with newer dlls than windows7 does. (but don't take my word for it)
yes, you can run a script fully embedded in the plug-in. (meaning, no
external script file)
however, the same constraints of scripting for AE apply:
1. AE is the host running the script, so a script written for extedscript
in general and not AE specifically may not work.
2. AE scripting allows you manipulate the project, but it does not give you
access to image buffers or effects (besides the ability to apply an effect
to a layer (and not to process though it behind the scenes))