Microsoft Visual Studio je vývojové prostředí (IDE) od Microsoftu. Může být použito pro vývoj konzolových aplikací a aplikací s grafickým rozhraním spolu s aplikacemi Windows Forms, webovými stránkami, webovými aplikacemi a webovými službami jak ve strojovém kódu, tak v řízeném kódu na platformách Microsoft Windows, Windows Mobile, Windows CE, .NET, .NET Compact Framework a Microsoft Silverlight. Aktuálně je na trhu Visual Studio 2026.

Visual Studio obsahuje editor kódu podporující IntelliSense a refaktorování. Integrovaný debugger pracuje jak na úrovni kódu, tak na úrovni stroje. Další vestavěné nástroje zahrnují designer formulářů pro tvorbu aplikací s GUI, designer webu, tříd a databázových schémat. Je možné přidávat rozšíření, což vylepšuje funkčnost na téměř každé úrovni – od doplnění podpory pro verzovací systémy (jako Git a Microsoft Team Foundation Server) po nové nástroje jako editory a vizuální designery pro doménově specifické jazyky nebo nástroje pro další aspekty návrhu programu (jako klient Team Foundation Serveru Team Explorer).

Visual Studio podporuje jazyky prostřednictvím jazykových služeb, což umožňuje, aby editor kódu a debugger podporoval jakýkoliv programovací jazyk. Mezi vestavěné jazyky patří C/C++ (použitím Visual C++), VB.NET (použitím Visual Basic .NET) a C# (použitím Visual C#). Podpora dalších jazyků jako Oxygene, F#, Python a Ruby spolu s ostatními může být přidána jazykovými službami, které musí být nainstalovány zvlášť. Také je podporováno XML/XSLT, HTML/XHTML, JavaScript a CSS. Existují i verze Visual Studia pro určitý jazyk, které uživateli poskytují omezenější jazykové služby. Tyto individuální balíčky jsou Microsoft Visual Basic, Visual J#, Visual C# a Visual C++.

Architektura Visual Studio nepodporuje žádný programovací jazyk nebo nástroj samo o sobě. Místo toho je mu možno přidat různá rozšíření funkčnosti. Každá funkčnost je zabalena do balíčku VSPackage. Když je nainstalována, je dostupná jako služba. IDE poskytuje tři služby: SVsSolution, která umožňuje očíslovat projekty a sestavy; SVsUIShell, který poskytuje rozdělování na okna a UI funkce (jako panely, nástrojové lišty a okna nástrojů); a SVsShell, který se stará o registraci balíčků VSPackage. IDE je také odpovědné za koordinaci služeb a umožnění komunikace mezi nimi. Všechny editory, designery, typy projektů a další nástroje jsou implementovány jako balíčky VSPackage. Visual Studio používá COM pro přístup k balíčkům. SDK také obsahuje Managed Package Framework (MPF), což je sada spravovaných obalů okolo rozhraní COM, které umožňují, aby mohly být balíčky psány v jazycích .NET. Nicméně, MPF neposkytuje veškerou funkčnost představenou COM rozhraními Visual Studia. Služby mohou být použity pro tvorbu dalších balíčků, což přidá funkčnost do IDE Visual Studia.

Podpora programovacích jazyků je přidána balíčkem zvaným Language Service (jazyková služba). Jazyková služba definuje různá rozhraní, která může implementace VSPackage implementovat pro přidání podpory různé funkčnosti. Funkčnost, která může být tímto způsobem přidána, zahrnuje zvýraznění syntaxe, doplňování příkazů, zvýrazňování párů závorek, tipy parametrů informací, seznamy členů a chybové značky pro kompilaci na pozadí. Pokud je rozhraní implementováno, funkčnost bude pro jazyk dostupná. Implementace jazykových služeb mohou použít kód z překladače nebo editoru jazyka. Jazykové služby mohou být implementovány jak ve strojovém kódu, tak v řízeném kódu. Pro strojový kód mohou být použity jak rozhraní COM, tak Babel Framework (součást SDK). Pro spravovaný kód obsahuje MPF obaly pro psaní spravovaných jazykových služeb.

Visual Studio neobsahuje žádnou vestavěnou podporu verzování, ale definuje MSSCCI (Microsoft Source Code Control Interface) implementováním toho, které verzovací systémy mohou být integrovány s IDE. MSSCCI definuje sadu funkcí, které jsou použity pro implementaci různé funkčnosti verzování. MSSCCI bylo poprvé použito pro integraci Visual SourceSafe s Visual Studiem 6.0, ale později bylo zpřístupněno přes Visual Studio SDK. Visual Studio .NET 2002 používalo MSSCCI 1.1 a Visual Studio .NET 2003 používalo MSSCCI 1.2. Visual Studio 2005 i 2008 používají MSSCCI verze 1.3, která přidává podporu přejmenovávání a mazání propagace, stejně jako asynchronní otevírání.

Visual Studio podporuje spuštění více instancí prostředí (každé s vlastní sadou balíčků). Instance používají jiné větve registrů (viz definici MSDN pojmu „registry hive“ použité v tomto smyslu) k uložení stavu konfigurace a jsou rozlišeny AppId (Application ID). Instance jsou spuštěny specifickými .exe, které vyberou AppId, nastaví kořenovou větev a spustí IDE. Balíčky registrované pro jedno AppId jsou integrovány s ostatními balíčky pro toto AppId. Různé edice Visual Studia používají jiná AppId. Produkty edice Visual Studio Express jsou nainstalovány se svými vlastními AppId, ale produkty Standard, Professional a Team Suite sdílí stejné AppId. Proto mohou být edice Express nainstalovány souběžně s ostatními edicemi, na rozdíl od ostatních edic, které aktualizují stejnou instalaci. Profesionální edice obsahuje supersadu balíčků ve standardní edici a Team Suite obsahuje supersadu balíčků v obou ostatních edicích. Systém AppId je ovlivněn systémem Visual Studio Shell ve Visual Studiu 2008.

Prvky

Editor kódu Visual Studio, jako každé jiné IDE, obsahuje editor kódu, který podporuje zvýraznění syntaxe a automatické dokončování za použití IntelliSense nejen pro proměnné, funkce a metody, ale také konstrukce jako cykly a dotazy. IntelliSense podporují zahrnuté jazyky, stejně jako XML, CSS a JavaScript při vývoji webových stránek a webových aplikací. Návrhy automatického dokončování se zobrazí ve vyskakovacím seznamu. Ve Visual Studiu 2008 může být dočasně poloprůhledné, abyste viděli kód za ním. Editor kódu je používán pro všechny podporované jazyky.

Editor kódu Visual Studia také podporuje nastavování záložek v kódu pro rychlou navigaci. Další navigační pomůcky zahrnují sbalování bloků kódu a přírůstkové i normální hledání s podporou regulárních výrazů. Editor kódu také obsahuje vícepoložkovou schránku a seznam úkolů. Editor kódu podporuje snippety, což jsou uložené šablony opakujícího se kódu a mohou být do kódu vloženy a přizpůsobeny aktuálnímu projektu. Nástroj pro správu snippetů je také k dispozici. Tyto nástroje jsou plovoucí okna, která mohou být ukotvena nebo schována při nepoužívání. Editor kódu Visual Studia také podporuje refaktorování včetně změny pořadí parametrů, přejmenování proměnných a metod, extrakci rozhraní a zabalení členů třídy uvnitř vlastností mezi ostatní.

Visual Studio umožňuje kompilaci na pozadí (někdy zvaná přírůstková kompilace). Během psaní kódu jej Visual Studio na pozadí kompiluje, aby poskytlo informace o syntaktických a kompilačních chybách, které jsou podtrženy červenou vlnovkou. Varování jsou podtržena zelenou vlnovkou. Kompilace na pozadí negeneruje spustitelný kód, protože používá jiný kompilátor než ten, který generuje spustitelný kód. Kompilace na pozadí byla nejdříve dostupná jen pro Visual Basic, ale nyní podporuje všechny zahrnuté jazyky.

Debugger Visual Studio obsahuje debugger, který pracuje jak se spravovaným kódem, tak se strojovým kódem a může být použit pro debugování aplikací psaných v jakémkoliv jazyce podporovaném Visual Studiem. Navíc může být přiřazen běžícím procesům a debugovat je. Pokud je dostupný kód běžícího procesu, zobrazí se. Pokud není, zobrazí se kód v Assembleru. Debugger Visual Studia může také vytvořit obsahy paměti a později je nahrát pro debugging. Jsou také podporovány vícejádrové programy. Debugger může být nakonfigurován, aby byl spuštěn, když spadne aplikace běžící mimo Visual Studio.

Debugger povoluje nastavování breakpointů (které umožňují zastavit běh programu na určité pozici) a watche (které sledují hodnoty proměnných během procesu). Breakpointy mohou být podmíněné, tedy že se aktivují, pouze pokud je splněna určitá podmínka. Kód lze krokovat, tedy nechat provádět kód po jednom řádku. Může také vstoupit do funkcí, aby je debugoval uvnitř, nebo je přejít. Debugger podporuje funkci Edit and Continue, takže je možné kód upravovat během debuggingu. Pokud během debuggingu přejedete přes proměnnou, její aktuální hodnota je zobrazena v tipu, kde může být modifikována. Během kódování umožňuje debugger manuálně zavolat funkci pomocí okna Immediate. V tomto okně jsou také k dispozici parametry funkce.

Designer Visual Studio obsahuje vizuální designery, které pomáhají s vývojem aplikací. Tyto nástroje obsahují:

WinForms Designer WinForms designer je používán pro GUI aplikace za použití WinForms. Obsahuje paletu ovládacích prvků (včetně tlačítek, progress barů, popisek a jiných prvků), které mohou být uchopeny a umístěny na povrch formuláře. Rozložení je možné ovládat ukládáním prvků do kontejnerů nebo uzamykáním na stranu formuláře. Prvky, které zobrazují data (textové pole, rozbalovací pole, tabulka atd.) mohou být propojeny s datovými zdroji jako databáze nebo dotazy. UI je spojeno s kódem event-driven programovacím modelem. Designer vygeneruje kód C# nebo VB.NET pro aplikaci.

WPF Designer WPF designer, zvaný Cider, byl představen ve Visual Studiu 2008. Stejně jako WinForms designer podporuje drag-and-drop. Vytváří se s ním uživatelské rozhraní pro Windows Presentation Foundation. Podporuje všechny funkce WPF včetně propojení dat a automatickou správu rozložení. Generuje XAML kód pro UI. Vygenerovaný XAML kód je kompatibilní s Microsoft Expression Designem. XAML kód je s kódem spojen code-behind modelem.

Web designer Visual Studio také obsahuje editor webových stránek a designer, který je umožňuje vytvářet uchopováním a pokládáním prvků. Je používán pro vývoj aplikací ASP.NET a podporuje HTML, CSS a JavaScript. Používá code-behind model pro spojení s kódem ASP.NET. Zobrazovací engine je sdílen s Microsoft Expression Webem.

Designer tříd Designer tříd se používá pro vytváření a úpravu tříd (včetně jejich členů a přístupu) použitím modelu UML. Designer tříd může vygenerovat kódy C# a VB.NET pro třídy a metody. Také může vygenerovat diagramy z ručně psaných tříd.

Designer dat Designer dat může být použit pro grafickou úpravu databázových schémat, včetně psaných tabulek, primárních a cizích klíčů a omezení. Také může být použit pro design dotazů v grafickém zobrazení.

Designer mapování Od Visual Studia 2008 je designer mapování používán funkcí LINQ to SQL k zobrazení mapování mezi databázovými schématy a třídami, které zabalují data.

Další nástroje Průzkumník otevřených panelů Používá se pro vypsání všech otevřených panelů a přepínání mezi nimi. Vyvolá se zkratkou CTRL+TAB.

Editor vlastností Nástroj Properties Editor je použit pro editaci vlastností v GUI panelu uvnitř Visual Studia. Vypíše všechny dostupné vlastnosti (jak nastavitelné, tak jen pro čtení) ve všech objektech, včetně tříd, formulářů, webových stránek a dalších položek.

Průzkumník objektů Object Browser je průzkumník jmenných prostorů a knihoven tříd pro Microsoft .NET. Může být použit pro prozkoumávání jmenných prostorů (které jsou uspořádány hierarchicky) ve spravovaných sestavách. Hierarchie může i nemusí odpovídat organizaci v souborovém systému.

Průzkumník řešení Ve Visual Studiu je řešení sada souborů kódu a dalších zdrojů, které jsou použity pro tvorbu aplikace. Soubory v řešení jsou uspořádány hierarchicky, což může i nemusí odpovídat organizaci v souborovém systému. Solution Explorer je použit pro správu a průzkum souborů v řešení.