Hallo,
das sind ja gleich mehrere Fragen auf einmal.
1. Für C# wird die "Common Language Runtime" (CLR) benötigt, welche die Laufzeitumgebung darstellt sowie das .NET-Framework (welches es in den verschiedenen Versionen gibt, s.a.
.NET).
.NET ist aber auf den Windows-Versionen schon vorinstalliert (bzw. kann einfach über das Windows-Update installiert werden).
2. C# ist die Sprache und "Visual C#" (bzw. Visual Studio) ist die sog. "Integrated Developer Enviroment (IDE)" bzw. auf deutsch
Integrierte Entwicklungsumgebung, mit der dann die Programme erstellt werden.
3. XNA ist eher für Spiele gedacht (aber auch schon wieder veraltet, da es nicht von MS weiterentwickelt wird).
Für einfache GUI fängt man am besten mit
WinForms an - und kann evtl. dann für fortgeschrittenere Projekte zu
Windows Presentation Foundation (WPF) wechseln (wir haben für beide hier Unterforen).
Für Linux gibt es das
Mono-Projekt, welches einen Großteil des Standard-.NET-Frameworks (inkl. WinForms) portiert hat. Und es gibt auch passende IDEs dafür.