Delen via


Binnen de Visual Studio SDK

Deze sectie bevat uitgebreide informatie over Visual Studio-extensies, waaronder Visual Studio-architectuur, onderdelen, services, schema's, hulpprogramma's en dergelijke.

Architectuur voor uitbreidbaarheid

In de volgende afbeelding ziet u de visual Studio-uitbreidingsarchitectuur. VSPackages bieden toepassingsfunctionaliteit die wordt gedeeld via de IDE als services. De standaard-IDE biedt ook een breed scala aan services, zoals SVsUIShell, die toegang bieden tot de IDE-vensterfunctionaliteit.

Grafische weergave van omgevingsarchitectuur

Gegeneraliseerde weergave van de Visual Studio-architectuur

VSPackages

VSPackages zijn softwaremodules die Visual Studio vormen en uitbreiden met UI-elementen, services, projecten, editors en ontwerpers. VSPackages zijn de centrale architectuur-eenheid van Visual Studio. Zie VSPackages voor meer informatie.

Visual Studio Shell

De Visual Studio-shell biedt basisfunctionaliteit en biedt ondersteuning voor crosscommunicatie tussen de VSPackages- en MEF-extensies. Zie Visual Studio Shell voor meer informatie.

Richtlijnen voor gebruikerservaring

Als u van plan bent om nieuwe functies voor Visual Studio te ontwerpen, bekijkt u deze richtlijnen voor ontwerp- en bruikbaarheidstips: Visual Studio-richtlijnen voor gebruikerservaring.

Opdrachten

Opdrachten zijn functies waarmee taken worden uitgevoerd, zoals het afdrukken van een document, het vernieuwen van een weergave of het maken van een nieuw bestand.

Wanneer u Visual Studio uitbreidt, kunt u opdrachten maken en registreren bij de Visual Studio-shell. U kunt opgeven hoe deze opdrachten worden weergegeven in de IDE, bijvoorbeeld in een menu of werkbalk. Normaal gesproken wordt een aangepaste opdracht weergegeven in het menu Extra en wordt een opdracht voor het weergeven van een taakvenster weergegeven in het submenu Overige Windows van het menu Beeld .

Wanneer u een opdracht maakt, moet u er ook een gebeurtenis-handler voor maken. De gebeurtenis-handler bepaalt wanneer de opdracht zichtbaar of ingeschakeld is, kunt u de tekst wijzigen en garandeert dat de opdracht op de juiste wijze reageert wanneer deze wordt geactiveerd. In de meeste gevallen verwerkt de IDE opdrachten met behulp van de IOleCommandTarget interface. Opdrachten in Visual Studio worden verwerkt vanaf de binnenste opdrachtcontext, op basis van de lokale selectie en doorgaan naar de buitenste context, op basis van de globale selectie. Opdrachten die aan het hoofdmenu zijn toegevoegd, zijn direct beschikbaar voor scripting.

Zie Opdrachten, menu's en werkbalken voor meer informatie.

Menu's en werkbalken bieden gebruikers een manier om opdrachten aan te roepen. Menu's zijn rijen of kolommen met opdrachten die doorgaans worden weergegeven als afzonderlijke tekstitems bovenaan een taakvenster. Submenu's zijn secundaire menu's die worden weergegeven wanneer een gebruiker op opdrachten klikt die een kleine pijl bevatten. Contextmenu's worden weergegeven wanneer een gebruiker met de rechtermuisknop op bepaalde ui-elementen klikt. Enkele algemene menunamen zijn Bestand, Bewerken, Weergeven en Venster. Zie Uitbreidingsmenu's en opdrachten voor meer informatie.

Werkbalken zijn rijen of kolommen met knoppen en andere besturingselementen, zoals vervolgkeuzelijsten, keuzelijsten en tekstvakken. Werkbalkknoppen bevatten meestal pictogramafbeeldingen, zoals een mappictogram voor een opdracht Bestand openen of een printer voor een opdracht Afdrukken . Alle werkbalkelementen zijn gekoppeld aan opdrachten. Wanneer u op een werkbalkknop klikt, wordt de bijbehorende opdracht uitgevoerd. In het geval van een vervolgkeuzelijst wordt elk item in de vervolgkeuzelijst gekoppeld aan een andere opdracht. Sommige besturingselementen op de werkbalk, zoals een splitsbesturingselement, zijn hybride functies. De ene kant van het besturingselement is een werkbalkknop en de andere kant is een pijl-omlaag die verschillende opdrachten weergeeft wanneer erop wordt geklikt.

Windows-hulpprogramma

Hulpprogrammavensters worden gebruikt in de IDE om informatie weer te geven. Werkset, Solution Explorer, venster Eigenschappen en Webbrowser zijn voorbeelden van hulpprogrammavensters.

Hulpprogrammavensters bieden doorgaans verschillende besturingselementen waarmee de gebruiker kan communiceren. Met het venster Eigenschappen kunnen de gebruikers bijvoorbeeld eigenschappen instellen van objecten die een bepaald doel dienen. Het venster Eigenschappen is in deze zin gespecialiseerd, maar ook algemeen omdat het in veel verschillende situaties kan worden gebruikt. Op dezelfde manier is het uitvoervenster gespecialiseerd omdat het tekstuitvoer biedt, maar algemeen omdat veel subsystemen in Visual Studio dit kunnen gebruiken om uitvoer te leveren aan de Visual Studio-gebruiker.

Bekijk de volgende afbeelding van Visual Studio, die verschillende vensters bevat:

Schermafbeelding

Sommige vensters van het hulpprogramma worden in één deelvenster gekoppeld, waarin het venster van het hulpprogramma Solution Explorer wordt weergegeven en de andere vensters van het hulpprogramma worden verborgen, maar beschikbaar worden gesteld door op tabbladen te klikken. In de afbeelding ziet u twee andere vensters, het venster Foutenlijst en Uitvoer , gekoppeld aan één deelvenster.

Ook weergegeven is het hoofdvenster van het document, waarin verschillende editorvensters worden weergegeven. Hoewel hulpprogrammavensters doorgaans slechts één exemplaar hebben (u kunt bijvoorbeeld slechts één Solution Explorer openen), kunnen editorvensters meerdere exemplaren hebben, die elk worden gebruikt om een afzonderlijk document te bewerken, maar die allemaal in hetzelfde deelvenster zijn gedokt. De afbeelding toont een documentvenster met twee editorvensters, één venster van de formulierontwerper. Alle vensters in het documentvenster zijn beschikbaar door op tabbladen te klikken, maar het editorvenster met EditorPane.cs bestand is zichtbaar en actief.

Wanneer u Visual Studio uitbreidt, kunt u hulpprogrammavensters maken waarmee Visual Studio-gebruikers kunnen communiceren met uw extensie. U kunt ook uw eigen editors maken waarmee Visual Studio-gebruikers documenten kunnen bewerken. Omdat de vensters en editors van uw hulpprogramma's worden geïntegreerd in Visual Studio, hoeft u ze niet te programmeren om ze te docken of op een tabblad correct weer te geven. Wanneer ze correct zijn geregistreerd in Visual Studio, hebben ze automatisch de typische functies van hulpprogrammavensters en documentvensters in Visual Studio. Zie voor meer informatie Uitbreiden en Aanpassen van Hulpprogramma-vensters.

Documentvensters

Een documentvenster is een omlijst onderliggend venster van een MDI-venster (Multiple Document Interface). Documentvensters worden doorgaans gebruikt voor het hosten van teksteditors, formuliereditors (ook wel ontwerpers genoemd) of besturingselementen voor bewerken, maar ze kunnen ook andere functionele typen hosten. Het dialoogvenster Nieuw bestand bevat voorbeelden van documentvensters die Visual Studio biedt.

De meeste editors zijn specifiek voor een programmeertaal of voor een bestandstype, zoals HTML-pagina's, framesets, C++-bestanden of headerbestanden. Als u een sjabloon selecteert in het dialoogvenster Nieuw bestand , maakt een gebruiker dynamisch een documentvenster voor de editor voor het bestandstype dat is gekoppeld aan de sjabloon. Er wordt ook een documentvenster gemaakt wanneer een gebruiker een bestaand bestand opent.

Documentvensters zijn beperkt tot het MDI-clientgebied. Elk documentvenster heeft een tabblad bovenaan en de tabvolgorde is gekoppeld aan andere vensters die mogelijk geopend zijn in het MDI-gebied. Als u met de rechtermuisknop op het tabblad van een documentvenster klikt, wordt een snelmenu weergegeven met opties voor het splitsen van het MDI-gebied in meerdere horizontale of verticale tabbladgroepen. Door het MDI-gebied te splitsen, kunnen meerdere bestanden tegelijkertijd worden bekeken. Zie DocumentVensters voor meer informatie.

Redacteuren

Met de Visual Studio-editor kunt u deze aanpassen en gebruiken voor uw eigen type inhoud met behulp van het Managed Extensibility Framework (MEF). In veel gevallen hoeft u geen VSPackage te maken om de editor uit te breiden, maar als u functies uit de shell wilt opnemen (bijvoorbeeld een menuopdracht of een sneltoets), kunt u een MEF-extensie combineren met een VSPackage.

U kunt ook een aangepaste editor maken, bijvoorbeeld als u een database wilt lezen en schrijven, of als u een ontwerper wilt gebruiken. U kunt ook een externe editor gebruiken, zoals Kladblok of Microsoft WordPad. Zie Editor- en Language Service Extensions voor meer informatie.

Taaldiensten

Als u wilt dat de Visual Studio-editor nieuwe programmeertrefwoorden of zelfs een nieuwe programmeertaal ondersteunt, maakt u een taalservice. Elke taalservice kan bepaalde editorfuncties volledig, gedeeltelijk of helemaal niet implementeren. Afhankelijk van hoe deze is geconfigureerd, kan de taalservice syntaxismarkering, accoladekoppeling, IntelliSense-ondersteuning en andere functies in de editor bieden.

Het hart van een taalservice is een parser en een scanner. Een scanner (of lexer) verdeelt een bronbestand in elementen die tokens worden genoemd en een parser brengt de relaties tussen deze tokens tot stand. Wanneer u een taalservice maakt, moet u de parser en de scanner implementeren, zodat Visual Studio de tokens en grammatica van de taal kan begrijpen. U kunt beheerde of onbeheerde taalservices maken. Zie Legacy Language Service Extensibility voor meer informatie.

Projecten

In Visual Studio zijn projecten de containers die ontwikkelaars gebruiken om de broncode en andere resources te organiseren en te bouwen. Met projecten kunt u broncode, verwijzingen naar webservices en databases en andere resources organiseren, bouwen, fouten opsporen en implementeren. VSPackages kan het Visual Studio-projectsysteem uitbreiden door projecttypen, projectsubtypen en aangepaste hulpprogramma's op te geven.

Projecten kunnen ook worden verzameld in een oplossing, een groepering van een of meer projecten die samenwerken om een toepassing te maken. Project- en statusgegevens die betrekking hebben op de oplossing worden opgeslagen in twee oplossingsbestanden, het bestand met de tekstoplossing (.sln) en het binaire oplossingsgebruikersbestand (.suo). Deze bestanden zijn vergelijkbaar met de groepsbestanden (.vbg) die zijn gebruikt in eerdere versies van Visual Basic, en de werkruimtebestanden (.dsw) en gebruikersopties (.opt) die zijn gebruikt in eerdere versies van C++.

Zie Projecten en oplossingen voor meer informatie.

Project- en item-sjablonen

Visual Studio bevat vooraf gedefinieerde projectsjablonen en projectitemsjablonen. U kunt ook uw eigen sjablonen maken of sjablonen verkrijgen uit de community en deze vervolgens integreren in Visual Studio. De MSDN-codegalerie is de plek waar u naar sjablonen en extensies kunt gaan.

Sjablonen bevatten de projectstructuur en basisbestanden die vereist zijn voor het bouwen van een bepaald soort toepassing, beheer, bibliotheek of klasse. Wanneer u software wilt ontwikkelen die lijkt op een van de sjablonen, maakt u een project dat is gebaseerd op de sjabloon en wijzigt u de bestanden in dat project.

Opmerking

Deze sjabloonarchitectuur wordt niet ondersteund voor Visual C++-projecten.

Zie Project- en Projectitemsjablonen toevoegen voor meer informatie.

Eigenschappen en opties

In het venster Eigenschappen worden de eigenschappen van één of meerdere geselecteerde items weergegeven: Pagina's met opties voor het uitbreiden van eigenschappen bevatten sets opties die betrekking hebben op een bepaald onderdeel, zoals een programmeertaal of een VSPackage: Opties en optiespagina's. Instellingen zijn over het algemeen ui-gerelateerde functies die kunnen worden geïmporteerd en geëxporteerd: ondersteuning voor gebruikersinstellingen.

Visual Studio Services

Een service biedt een specifieke set interfaces voor onderdelen om te gebruiken. Visual Studio biedt een set services die kunnen worden gebruikt door alle onderdelen, inclusief extensies. Met Visual Studio-services kunnen hulpprogrammavensters bijvoorbeeld dynamisch worden weergegeven of verborgen, toegang tot Help-, statusbalk- of UI-gebeurtenissen inschakelen. De Visual Studio-editor biedt ook services die kunnen worden geïmporteerd door editorextensies. Zie Services gebruiken en leveren voor meer informatie.

foutopsporer

Het foutopsporingsprogramma is de gebruikersinterface voor de taalspecifieke foutopsporingsonderdelen. Als u een nieuwe taalservice hebt gemaakt, moet u een specifieke engine voor foutopsporing maken om in te haken op het foutopsporingsprogramma. Zie Uitbreidbaarheid van Visual Studio Debugger voor meer informatie.

Broncodebeheer

Zie Broncodebeheer voor informatie over het implementeren van een invoegtoepassing voor broncodebeheer of VSPackage.

Tovenaars

U kunt een wizard maken in combinatie met een nieuw projecttype, zodat de wizard uw gebruikers kan helpen de juiste beslissingen te nemen wanneer ze een nieuw project van dat type maken. Zie Wizards voor meer informatie.

Aangepaste hulpprogramma's

Met aangepaste hulpprogramma's kunt u een hulpprogramma koppelen aan een item in een project en dat hulpprogramma uitvoeren wanneer het bestand wordt opgeslagen. Zie Aangepaste hulpprogramma's voor meer informatie.

VSSDK-hulpprogramma's

De VSSDK bevat een set hulpprogramma's die u mogelijk nodig hebt om te werken met verschillende aspecten van VSPackages. Zie VSSDK Utilities voor meer informatie.

Windows Installer gebruiken

In sommige gevallen moet u mogelijk Windows Installer gebruiken in plaats van het VSIX-installatieprogramma: u moet bijvoorbeeld schrijven naar het register. Zie VSPackages installeren met Windows Installer voor meer informatie over het gebruik van Windows Installer met uw extensies.

Helpvenster

U kunt uw eigen Help- en F1-pagina's integreren in de Help-viewer. Zie Microsoft Help Viewer SDK voor meer informatie.