Wprowadzenie do Visual Studio Integration SDK

Tworzenie rozszerzeń programu Visual Studio

Decydując się na napisanie rozszerzenia do programu Visual Studio, mamy do wyboru wiele alternatyw. Najbardziej podstawową jest napisanie makra, które zautomatyzuje powtarzające się zadania. Można także napisać dodatek lub kreator, automatyzujący zadania pojawiające się w trakcie programowania, lub też dostosować polecenia i właściwości programu Visual Studio.

Jeśli chcemy zintegrować z programem Visual Studio jakiś duży komponent, jak nowy system projektów, czy język programowania, możliwe jest utworzenie pakietu integracyjnego przy wykorzystaniu zestawu Visual Studio Integration SDK. Jeśli chcemy utworzyć aplikację opartą na technologii Visual Studio, mamy możliwość stworzenia aplikacji powłoki izolowanej. Zarówno zintegrowane rozszerzenia pakietu Visual Studio, jak i aplikacje powłoki izolowanej, oparte są na pakietach VSPackage. W celu uzyskania dodatkowych informacji, należy przeczytać temat Pakiety VSPackage (VSPackages).

Kolejny mechanizm rozszerzeń, oparty na platformie Managed Extensibility Framework (MEF), pozwala na dostosowanie oraz rozszerzenie edytora programu Visual Studio, a wszystko, co w tym celu trzeba zrobić, to utworzenie składników opartych na platformie MEF. Korzystanie z rozszerzeń tego typu możliwe jest bez konieczności tworzenia i rejestrowania pakietu VSPackage. Aby uzyskać więcej informacji, należy przeczytać temat Rozszerzanie edytora (Extending the Editor).

Szablony zestawu Visual Studio SDK


Podczas instalacji zestawu Visual Studio SDK, do instalacji programu Visual Studio dodawane są liczne szablony projektów.

Szablon Lokalizacja Jak używać danego szablonu
Szablon projektu VSIX Rozszerzenia języka Visual Basic oraz Visual C# Tworzenie rozszerzeń za pomocą szablonu projektu VSIX (Creating Extensions By Using the VSIX Project Template)
Szablony edytora Rozszerzenia języka Visual Basic oraz Visual C# Wykorzystanie szablonów edytora do tworzenia rozszerzeń (Using Editor Templates to Create Extensions)
Pakiet Visual Studio

Rozszerzenia języka Visual Basic oraz Visual C#

- lub -

Rozszerzenia projektów innych typów

Przewodnik: Tworzenie polecenia menu przy wykorzystaniu szablonu pakietu Visual Studio (Walkthrough: Creating a Menu Command By Using the Visual Studio Package Template)
Izolowana powłoka programu Visual Studio Rozszerzenia projektów innych typów Przewodnik: Tworzenie podstawowej aplikacji izolowanej powłoki (Walkthrough: Creating a Basic Isolated Shell Application)

Tworzenie polecenia menu przy wykorzystaniu szablonu pakietu Visual Studio

Szablon pakietu integracyjnego programu Visual Studio tworzy podstawowy pakiet VSPackage. Szablon ten może wykorzystać dodatkowy kod, pozwalający na utworzenie polecenia menu lub okna narzędziowego.

Wymagania wstępne


W celu wykonania kroków przedstawionych w niniejszym przewodniku, konieczne jest zainstalowanie zestawu Visual Studio 2010 SDK.

Uwaga
W celu uzyskania dodatkowych informacji na temat zestawu Visual Studio SDK, należy przeczytać temat Zestaw Visual Studio Integration SDK (Visual Studio Integration SDK). Aby dowiedzieć się, jak pobrać zestaw Visual Studio SDK, należy odwiedzić stronę Visual Studio Extensibility Developer Center w witrynie MSDN w sieci Web.

Lokalizacje szablonu projektu pakietu programu Visual Studio


Szablon projektu pakietu programu Visual Studio dostępny jest w następujących lokalizacjach w oknie dialogowym Nowy Projekt (New Project):

  • W polu Rozszerzenia języka Visual Basic (Visual Basic Extensibility). Domyślnie językiem tego projektu jest Visual Basic.
  • W polu Rozszerzenia języka C# (C# Extensibility). Domyślnie językiem tego projektu jest C#.
  • W polu Rozszerzenia projektów innych typów (Other Project Types Extensibility). Domyślnie językiem tego rozszerzenia jest C++.

Aby utworzyć pakiet VSPackage wykorzystując szablon projektu pakietu programu Visual Studio

  1. Należy wybrać szablon projektu pakietu programu Visual Studio. W polu Nazwa należy wpisać nazwę rozwiązania, po czym kliknąć przycisk OK.
  2. Na stronie Wybierz język programowania (Select a Programming Language) należy wybrać jeden z języków C# lub Visual Basic. Następnie należy pozwolić na wygenerowanie przez szablon pliku key.snk potrzebnego do podpisania zestawu, lub też kliknąć przycisk Przeglądaj (Browse) w celu wybrania własnego pliku z kluczem. Szablon utworzy kopię wybranego pliku z kluczem i nada jej nazwę key.snk.
  3. Na stronie Podstawowe informacje na temat pakietu VSPackage (Basic VSPackage Information) należy określić szczegóły dotyczące tworzonego pakietu.
  4. Należy kliknąć przycisk Dalej (Next) w celu określenia opcji tworzonego pakietu VSPackage.
  5. Należy wybrać opcję Polecenie menu (Menu Command) w celu utworzenia polecenia dla tworzonego pakietu VSPackage. Nowe polecenie zostanie umiejscowione na początku menu Narzędzia (Tools). W przypadku zaznaczenia opcji Polecenie menu (Menu Command), po kliknięciu przycisku Dalej (Next) wyświetlona zostanie strona Opcje polecenia (Command Options).
    1. W polu Nazwa polecenia (Command Name) należy wpisać nazwę nowego polecenia.

      Jeśli zechcemy później umieścić dane polecenie jako przycisk w pasku narzędzi, nazwa ta zostanie użyta także, jako etykietka narzędzia dla danego przycisku.

    2. W polu Identyfikator polecenia (Command ID), należy wprowadzić identyfikator dla tworzonego polecenia.

      Identyfikator polecenia jest nazwą stałej, która reprezentuje to polecenie w wygenerowanym kodzie.

    3. Należy kliknąć przycisk Dalej (Next) w celu wybrania opcji projektu testowego.

  6. Opcjonalnie utworzyć można projekty testowe dla tworzonego rozwiązania, zaznaczając opcję Projekt testów integracji oraz projekt testów jednostkowych (Integration Test Project and Unit Test Project).
  7. Należy kliknąć przycisk Zakończ (Finish), w celu utworzenia pakietu VSPackage.

Aby przetestować utworzone polecenie menu

  1. Należy skompilować rozwiązanie, po czym uruchomić utworzoną eksperymentalną kompilację programu Visual Studio naciskając przycisk F5.
  2. W menu Narzędzia (Tools), należy kliknąć nowe polecenie. Pojawi się komunikat zawierający następujący tekst:

<Nazwa pakietu VSPackage>,

Inside vsip.<Project name>.<VSPackage name>.Exec().

Kompilacja kodu


Projekty generowane przez kreatora pakietu odnoszą się do określonych ścieżek związanych z kompilacją i wdrożeniem. Po skopiowaniu projektu na inny komputer należy upewnić się, że ścieżki te są poprawne.

Tworzenie rozszerzeń za pomocą szablonu projektu VSIX

Szablon projektu VSIX może zostać użyty do utworzenia rozszerzenia lub do spakowania istniejącego rozszerzenia w celu wdrożenia. Szablon projektu VSIX występuje w wersjach dla języków Visual Basic oraz C#, zaś instalowany jest, jako część pakietu Visual Studio SDK.

Szablon projektu VSIX składa się z następujących elementów:

  • Pliku source.extension.vsixmanifest, zawierającego informacje na temat danego rozszerzenia.
Uwaga
Aby uzyskać więcej informacji na temat manifestu pakietu VSIX należy przeczytać temat Wdrażanie rozszerzeń program Visual Studio (Visual Studio Extension Deployment).
  • Zestawu ikon dla rozszerzenia.
  • Pustego pliku klasy.

Aby utworzyć instalowalne rozszerzenie szablonu projektu przy wykorzystaniu szablonu projektu VSIX


Przedstawione poniżej kroki ilustrują użycie projektu VSIX w celu utworzenia pakietu z szablonem projektu, który może zostać udostępniony innym deweloperom lub przekazany do galerii Visual Studio Gallery.

Aby utworzyć instalowalny rozszerzenie szablonu projektu przy wykorzystaniu szablonu VSIX

  1. Należy utworzyć szablon projektu.

    1. Należy otworzyć projekt, na podstawie którego ma zostać stworzony szablon. Może to być projekt dowolnego typu.

    2. W menu Plik (File) należy kliknąć pozycję Eksport szablonu (Export Template), po czym wykonać wszystkie kroki kreatora.

      W katalogu %USERPROFILE%\My Documents\Visual Studio 10\My Exported Templates\ utworzony zostanie plik .zip.

  2. Należy utworzyć pusty projekt VSIX wykorzystując szablon projektu VSIX.

    W menu Plik (File) należy kliknąć pozycję Nowy (New), po czym kliknąć pozycję Projekt (Project). Należy wybrać jeden z języków Visual Basic lub Visual C#, po czym wybrać opcję Rozszerzalność (Extensibility), po czym wybrać projekt VSIX (VSIX Project).

  3. Należy dodać utworzony wcześniej plik .zip do projektu, po czym ustawić jego właściwość Kopiuj do katalogu wyjściowego (Copy to Output Directory) na wartość Kopiuj zawsze (Copy Always).

  4. Należy kliknąć dwa razy plik source.extension.vsixmanifest file w celu otwarcia go w oknie Projektant manifestu VSIX (VSIX Manifest Designer), po czym dokonać następujących zmian:

    • Ustawić pole Identyfikator (ID) na wartość MojSzablonProjektu – 1.
    • Ustawić pole Nazwa produktu (Product Name) na wartość Mój Szablon Projektu.
    • W polu Autor (Author) należy wpisać Fabrikam.
    • W polu Opis (Description) należy wpisać Mój szablon projektu.
    • W sekcji Zawartość (Content) należy dodać typ zawartości Szablon projektu (Project Template) i ustawić jego ścieżkę tak, aby wskazywała na utworzony wcześniej plik .zip.
  5. Należy zapisać i zamknąć plik source.extension.vsixmanifest.

  6. Należy skompilować projekt.

  7. Należy kliknąć dwa razy plik .vsix znajdujący się w katalogu wyjściowym.

  8. Pojawi się okno komunikatu Instalatora rozszerzeń program Visual Studio (Visual Studio Extension Installer) z pytaniem czy chcemy zainstalować dane rozszerzenie. Należy kliknąć przycisk Zainstaluj (Install).

  9. Po zakończeniu instalacji należy kliknąć przycisk Zamknij (Close).

  10. Należy zamknąć program Visual Studio, po czym otworzyć go ponownie.

  11. Za pomocą menu Narzędzia (Tools) należy otworzyć okno Menedżera rozszerzeń (Extension Manager). Jedno z dostępnych rozszerzeń powinno nosić nazwę Mój Szablon Projektu.

  12. Szablon projektu jest instalowany w tej samej lokalizacji, co typ projektu użytego do jego utworzenia. Dla przykładu, jeśli utworzyliśmy dany szablon na podstawie szablonu Aplikacja konsoli w języku Visual Basic (Visual Basic Console Application), nasz szablon o nazwie Mój Szablon Projektu pojawi się razem z szablonem Aplikacja konsoli w języku Visual Basic (Visual Basic Console Application).

Zestaw Visual Studio SDK

Istnieje wiele sposobów na rozszerzenie program Visual Studio. Trzy często stosowane to: automatyzacja, rozszerzenia VSPackage oraz rozszerzenia platformy Managed Extensibility Framework (MEF).

Automatyzacja jest używana głównie do zautomatyzowania powtarzalnych zadań, w przypadku makr i dodatków, lub też udostępnienia obiektów pozwalających na wprowadzenie danych przez użytkownika, w przypadku kreatorów.

Pakiety VSPackage to potężne narzędzie rozszerzania programu Visual Studio, którego wiele składników jest właśnie takimi pakietami.  Przykładem może być debuger czy wstępnie zdefiniowane paski narzędzi. Rozszerzenie VSPackage jest w stanie uzyskać dostęp do wielu składników programu Visual Studio i rozszerzyć [ich funkcjonalność], jak w przypadku powłoki czy systemu projektów.

Platforma Managed Extensibility Framework (MEF) to mechanizm rozszerzeń zastosowany po raz pierwszy w edytorze programu Visual Studio 2010. Platforma ta pozwala na dostosowanie i rozszerzenie możliwości edytora bez konieczności tworzenia rozszerzenia VSPackage.

Model rozszerzalności programu Visual Studio


Model rozszerzalności programu Visual Studio składa się z rozmaitych bibliotek, pozwalającym twórcom rozszerzeń na dostęp i rozszerzanie składników programu Visual Studio.

Pierwszą warstwą tego modelu jest zestaw interfejsów API programu Visual Studio, tych samych, które są wykorzystywane przez deweloperów firmy Microsoft przy rozwijaniu programu Visual Studio. Aby tworzyć rozszerzenia przy wykorzystaniu kodu niezarządzanego, można użyć biblioteki opartej na szablonach nazwanej Visual Studio Library (VSL).

 W przypadku tworzenia rozszerzenia z wykorzystaniem kodu zarządzanego, możliwe jest bezpośrednie użycie zestawów międzyoperacyjnych programu Visual Studio, lub też wykorzystanie platformy Managed Package Framework (MPF). Platforma ta dostarcza zestaw klas opakowujących wiele interfejsów API programu Visual Studio.

W przypadku rozszerzania edytora program Visual Studio 2010, możliwe jest wykorzystanie zestawów edytora lub też zestawów platformy MEF, określających kontrakty, za pomocą których tworzone rozszerzenie jest anonsowane edytorowi Visual Studio.

Aby uzyskać więcej informacji, należy przeczytać następujące tematy:

Usługi programu Visual Studio


Usługa dostarcza określony zestaw interfejsów, które mogą zostać wykorzystane przez składniki. Program Visual Studio dostarcza zestaw usług, które mogą zostać wykorzystane przez dowolne składniki, włączając w to rozszerzenia. Dla przykładu, usługi programu Visual Studio pozwalają okienkom narzędziowym na dynamiczne pokazywanie się i chowanie oraz na dostęp do Pomocy, paska stanu lub zdarzeń interfejsu użytkownika. Edytor programu Visual Studio 2010 także dostarcza usług, które mogą zostać zaimportowane przez jego rozszerzenia.

Aby uzyskać więcej informacji, należy przeczytać następujące tematy:

Rozszerzalne składniki program Visual Studio


Składniki najczęściej wykorzystywane przez rozszerzenia program Visual Studio obejmują:

  • Polecenia powłoki
  • Paski narzędzi oraz menu
  • Okna narzędziowe
  • Okna dokumentów
  • Edytory
  • Usługi języków
  • Projekty
  • Szablony

Polecenia

Polecenia to funkcje wykonujące określone zadania, jak drukowanie dokumentu, odświeżenie widoku, czy tworzenie nowego pliku.

Rozszerzając program Visual Studio można tworzyć polecenia i rejestrować je w powłoce program Visual Studio. Możliwe jest określenie sposobu, w jaki polecenia te widoczne będą w środowisku IDE, na przykład poprzez menu lub pasek narzędzi. Niestandardowe polecenia pojawiają się zazwyczaj w menu Narzędzia (Tools), zaś polecenia powodujące wyświetlenie okna narzędziowego – w podmenu Inne okna (Other Windows), znajdującym się w menu Widok (View).

Podczas tworzenia polecenia konieczne jest także utworzenie dla niego procedury obsługi zdarzeń. Określa ona, kiedy polecenie jest widoczne lub włączone, pozwala na modyfikację jego tekstu i gwarantuje, że polecenie prawidłowo odpowiada na wywołanie. W większości przypadków środowisko IDE obsługuje polecenia za pomocą interfejsu IOleCommandTarget. Polecenia programu Visual Studio są obsługiwane zaczynając od najbardziej wewnętrznego kontekstu, określonego przez zaznaczenie lokalne, i dążąc do kontekstu najbardziej zewnętrznego, określonego przez zaznaczenie globalne. Polecenia dodawane do menu głównego są natychmiast dostępne dla skryptów.

Aby uzyskać więcej informacji, należy przeczytać temat Jak pakiety VSPackage dodają elementy interfejsu użytkownika do środowiska IDE (How VSPackages Add User Interface Elements to the IDE).

Menu oraz paski narzędzi umożliwiają użytkownikom wywoływanie poleceń. Menu składają się z list poleceń pogrupowanych w wiersze lub kolumny, wyświetlane zazwyczaj, jako indywidualne elementy tekstowe na górze okna narzędziowego. Podmenu to menu drugiego poziomu, pojawiające się po kliknięciu przez użytkownika polecenia zawierającego symbol małej strzałki. Menu kontekstowe pojawia się po kliknięciu prawym przyciskiem na określonych elementach interfejsu użytkownika. Do często występujących nazw menu można zaliczyć Plik (File), Edycja (Edit), Widok (View) oraz Okno (Window). Aby uzyskać więcej informacji, należy przeczytać temat Standardowe zadania menu (Common Menu Tasks).

Paski narzędzi to wiersze lub kolumny przycisków lub innych formantów, takich jak pola kombi, pola listy i pola tekstowe. Przyciski paska narzędzi posiadają zazwyczaj ikony, jak ikona folderu w przypadku polecenia Otwórz plik (Open file) czy ikona drukarki w przypadku polecenia Drukuj (Print). Wszystkie elementy paska narzędzi skojarzone są z poleceniami. Po kliknięciu przycisku znajdującego się na pasku narzędzi uruchomione zostanie skojarzone z nim polecenie. W przypadku formantu rozwijanego każdy element listy rozwijanej jest skojarzony z innym poleceniem. Niektóre formanty paska narzędzi, takie jak rozdzielacz, są hybrydowe. Jedna strona formantu to przycisk paska narzędzi, zaś druga strona to symbol strzałki w dół, który po kliknięciu powoduje wyświetlenie kilku dodatkowych poleceń.

Aby uzyskać więcej informacji, należy przeczytać następujące tematy:

Okna narzędziowe

Okna narzędziowe są wykorzystywane przez środowisko IDE do wyświetlania informacji. Przykładami takich okien są okna Przybornika (Toolbox), Eksploratora rozwiązania (Solution Explorer), okno Właściwości (Properties) oraz Przeglądarki sieci Web (Web browser).

Okna narzędziowe udostępniają zazwyczaj różnego rodzaju formanty, za pomocą których użytkownik może prowadzić interakcję. Dla przykładu, okno Właściwości (Properties), pozwala użytkownikowi na określenie właściwości obiektu, służących określonemu celowi. Okno to jest w tym sensie wyspecjalizowane, ale jest ono także ogólne, ponieważ może zostać wykorzystane w wielu różnych sytuacjach. Podobnie jest w przypadku okna Wyniki (Output), jest ono wyspecjalizowane, ponieważ umożliwia wyprowadzanie na ekran danych tekstowych, ale jest także ogólne, ponieważ wiele podsystemów programu Visual Studio może wykorzystać go w celu udostępnienia użytkownikowi wyników działania.

Spójrzmy na poniższą ilustrację przedstawiającą program Visual Studio wraz z kilkoma oknami narzędziowymi.

Niektóre z okien narzędziowych są zadokowane razem w jednym okienku wyświetlającym okno narzędziowe Eksplorator projektu (Project Explorer) i ukrywającym pozostałe okna, do których dostęp można uzyskać poprzez kliknięcie odpowiedniej karty. Ilustracja pokazuje dwa inne okna narzędziowe, Wyjście (Output) oraz Lista błędów (Error List), zadokowane razem w jednym okienku.

Pokazane jest także główne okienko dokumentu, zawierające klika okien edytora. Mimo tego, że okna narzędziowe mają zazwyczaj tylko jedną instancję (można na przykład otworzyć tylko jedno okno Eksploratora rozwiązania (Solution Explorer), okna edytora mogą mieć klika instancji, z których każda używana jest do edycji oddzielnego dokumentu, a wszystkie zadokowane są w tym samym okienku. Ilustracja pokazuje okienko dokumentu posiadające dwa okna edytora, jedno okno projektanta formularzy oraz okno przeglądarki pokazujące stronę początkową. Każde z okien w okienku dokumentu jest dostępne po kliknięciu karty, zaś okno edytora zawierające plik EditorPane.cs jest widoczne i aktywne.

Rozszerzając program Visual Studio mamy możliwość utworzenia okien narzędziowych pozwalających użytkownikom na interakcję z danym rozszerzeniem. Możliwe jest także tworzenie własnych edytorów, pozwalających użytkownikom na edycję dokumentów. Ponieważ tworzone okna narzędziowe oraz edytory będą zintegrowane z programem Visual Studio, nie ma konieczności oprogramowywania funkcji związanych dokowaniem czy pojawianiem się w kartach. Po poprawnej rejestracji w programie Visual Studio będą one mieć typowe funkcje okien narzędziowych i okien dokumentów programu Visual Studio.

Aby uzyskać więcej informacji, należy przeczytać następujące tematy:

Okna dokumentów

Okno dokumentu to posiadające ramkę okno podrzędne okna interfejsu dokumentu wielokrotnego (MDI). Okna dokumentu zawierają zazwyczaj edytory tekstu, edytory formularzy (znane także, jako projektanci formularzy) lub formanty edycji, jednak możliwe jest umieszczenie w nich także innych typów funkcji. Okno dialogowe Nowy Plik (New File) zawiera przykłady okien dokumentów udostępnianych przez program Visual Studio.

Większość edytorów określona jest dla konkretnego języka programowania lub typu pliku, jak strony HTML, zestawy ramek, pliki C++ czy też pliki nagłówkowe. Wybierając szablon w oknie dialogowym Nowy Plik (New File), użytkownik tworzy dynamicznie okno dokumentu dla edytora danego typu pliku skojarzonego z danym szablonem. Okno dokumentu jest tworzone także, gdy użytkownik otwiera istniejący plik.

Okna dokumentu są ograniczone do obszaru klienta okna MDI. Każde okno dokumentu ma na górze kartę, zaś kolejność klawisza Tab jest powiązania z innymi oknami, które mogą być otwarte w obszarze klienta okna MDI. Kliknięcie prawym przyciskiem myszy na kartę okna dokumentu powoduje wyświetlenie menu skrótów zawierającego opcję podzielenia obszaru okna MDI na kilka poziomych lub pionowych grup kart. Podział obszaru okna MDI pozwala na oglądanie wielu plików jednocześnie.

Aby uzyskać więcej informacji, należy przeczytać następujące tematy:

Edytory

Edytor programu Visual Studio 2010 to nowy rodzaj składnika programu Visual Studio. Mimo, że edytor ten jest pakietem VSPackage, pozwala on na dostosowanie i użycie go do własnego typu zawartości za pomocą platformy Managed Extensibility Framework (MEF). W wielu przypadkach nie ma konieczności tworzenia nowego pakietu VSPackage w celu rozszerzenia edytora, chociaż jeśli chcemy użyć funkcji powłoki (jak polecenia menu czy klawisza skrótu), można wykorzystać połączenie rozszerzenia MEF z pakietem VSPackage.

Możliwe jest także stworzenie niestandardowego edytora, jeśli chcemy na przykład umożliwić odczyt i zapis do bazy danych, czy użyć projektanta.

  • Zewnętrzny edytor, taki jak Notatnik czy Microsoft WordPad.

Aby uzyskać więcej informacji, należy przeczytać następujący temat:

Usługi języków

Jeśli chcemy, aby edytor programu Visual Studio obsługiwał nowe słowa kluczowe istniejącego języka programowania lub nawet zupełnie nowy język, możliwe jest utworzenie usługi języka. Każda usługa języka może implementować określone funkcje edytora w pełni, częściowo lub też w ogóle ich nie implementować. W zależności od konfiguracji, usługa języka może umożliwiać podświetlanie składni, dopasowywanie nawiasów klamrowych, wsparcie dla funkcji IntelliSense oraz inne funkcje edytora.

Sercem usługi języka są parser oraz skaner. Skaner (lekser) dzieli plik źródłowy na elementy znane, jako tokeny, zaś parser ustanawia zależności pomiędzy nimi. Tworząc usługę języka musimy zaimplementować zarówno parser jak i skaner, aby program Visual Studio mógł zrozumieć tokeny oraz gramatykę danego języka.

Możliwe jest tworzenie zarządzanych oraz niezarządzanych usług języka.

Aby uzyskać więcej informacji, należy przeczytać następujące tematy:

Projekty

W programie Visual Studio projekty są kontereami używanymi przez deweloperów w celu organizacji i kompilacji kodu źródłowego oraz innych zasobów. Projekty pozwalają na organizowanie, kompilowanie, debugowanie oraz wdrażanie kodu źródłowego, odwołań do usług sieci Web, baz danych oraz innych zasobów. Pakiety VSPackage umożliwiają rozszerzenie systemu projektów programu Visual Studio o nowe typy i podtypy projektów oraz narzędzia niestandardowe.

Projekty mogą zostać także zgromadzone w rozwiązaniu, które jest grupą jednego lub kilku projektów współdziałających w celu stworzenia aplikacji. Informacje na temat projektów i statusów dotyczących danego rozwiązania przechowywane są dwóch plikach, tekstowym pliku rozwiązania (.sln) oraz binarnym pliku opcji użytkownika (.suo). Pliki te są podobne do plików grupy (.vbg), używanych we wcześniejszych wersjach programu Visual Basic, oraz plików obszaru roboczego (.dsw) oraz opcji użytkownika (.opt), używanych we wcześniejszych wersjach programu Visual C++.

Aby uzyskać więcej informacji, należy przeczytać następujące tematy:

Szablony projektów oraz elementów

Program Visual Studio zawiera wstępnie zdefiniowane szablony projektów oraz elementów projektów. Możliwe jest także tworzenie własnych szablonów lub pozyskanie szablonów od społeczności i zintegrowanie ich z programem Visual Studio. Aby pobrać szablony i rozszerzenia, należy odwiedzić witrynę MSDN Code Galleryw sieci Web.

Szablony zawierają strukturę projektów oraz podstawowe pliki wymagane do skompilowania określonego rodzaju aplikacji, formantu, biblioteki lub klasy. Jeśli chcemy opracować oprogramowanie podobne do jednego z istniejących szablonów, należy utworzyć projekt oparty na danym szablonie, po czym zmodyfikować pliki w utworzonym projekcie.

Uwaga
Opisana architektura szablonów nie jest obsługiwana dla projektów programu Visual C++. Aby uzyskać informacje na temat tworzenia szablonów programu Visual C++, należy przeczytać temat Tworzenie kreatora (Designing a Wizard).

Aby uzyskać więcej informacji, należy przeczytać temat Dodawanie szablonów projektów oraz elementów projektów (Adding Project and Project Item Templates).

Aplikacje powłoki zintegrowanej oraz powłoki izolowanej


Możliwe jest zintegrowanie rozszerzenia z programem Visual Studio na dwa sposoby: używając trybu zintegrowanego lub izolowanego.

  • Powłoka programu Visual Studio (trybu zintegrowanego) pozwala na dostarczenie narzędzi, których klienci będą mogli użyć z językami oraz innymi składnikami programu Visual Studio. Powłoka zintegrowana jest zoptymalizowana do obsługi języków oraz narzędzi programowych.
  • Powłoka programu Visual Studio (trybu izolowanego) pozwala na tworzenie niestandardowych narzędzi uruchamianych w powłoce programu Visual Studio jedynie dla tych programów oraz innych składników programu Visual Studio, które zdecydujemy się uwzględnić. Powłoka izolowana jest zoptymalizowana dla specjalistycznych narzędzi, które mają pełen dostęp do usług programu Visual Studio, lecz jednocześnie posiadają niestandardowy wygląd oraz znakowanie.

Aby uzyskać więcej informacji, należy przeczytać poniższe tematy:

Migracja pakietów VSPackage do programu Visual Studio 2010

Aby istniejące pakiety VSPackage działały w programie Visual Studio 2010 konieczne może być dokonanie w nich pewnych zmian. Procedury przedstawione w niniejszym temacie pokazują jak dokonać migracji pakietów VSPackage do programu Visual Studio 2010.

Migracja do programu Visual Studio 2010


Niniejsza procedura pokazuje jak dokonać migracji podstawowego projektu pakietu VSPackage do programu Visual Studio 2010.

Aby dokonać migracji podstawowego rozwiązania VSPackage do programu Visual Studio 2010

  1. Należy zainstalować program Visual Studio 2010 oraz zestaw Visual Studio 2010 SDK.

  2. Należy otworzyć plik projektu, jako plik w programie Visual Studio. (W menu Plik (File) należy kliknąć opcję Otwórz (Open), po czym kliknąć opcję Otwórz plik (Open File), po czym otworzyć żądany plik).

  3. Należy dokonać następującej zmiany w pliku .csproj:

    • W gałęzi Import odnoszącej się do pliku Microsoft.VsSDK.targets należy zastąpić istniejącą wartość następującym ciągiem:
$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v10.0\VSSDK\Microsoft.VsSDK.targets
  1. Należy zapisać zmiany wykonane w pliku .csproj, po czym zamknąć go.
  2. Należy otworzyć rozwiązanie w programie Visual Studio. (W menu Plik (File) należy kliknąć opcję Otwórz (Open), po czym wybrać opcję Projekt/Rozwiązanie (Project/Solution), po czym otworzyć żądane rozwiązanie)
  3. Pojawi się okno Kreatora konwersji programu Visual Studio (Visual Studio Conversion Wizard). Należy kliknąć przycisk Zakończ (Finish). Jeśli na komputerze zainstalowana jest platforma .NET Framework 3.5, po zakończeniu konwersji pojawi się okno dialogowe z pytaniem czy chcemy zmienić cel projektu na platformę .NET Framework 4. Należy kliknąć przycisk Tak (Yes), po czym kliknąć przycisk Zamknij (Close). Rozwiązanie powinno wczytać się normalnie.
  4. Należy uaktualnić wymienione niżej właściwości projektu. (W oknie Eksplorator rozwiązania (Solution Explorer), w gałęzi projektu, należy kliknąć opcję Właściwości (Properties))
    • Na karcie Aplikacja (Application), należy zmienić właściwość TargetFramework na wartość .NET Framework 4

    • Na karcie Debugowanie (Debug), w polu tekstowym Uruchom program zewnętrzny (Start external program), należy zmienić ścieżkę na:

      <KatalogInstalacjiVS>\Common7\IDE\devenv.exe

      Gdzie <KatalogInstalacjiVS> to lokalizacja instalacji programu Visual Studio 2010.

  5. Należy uaktualnić następujące odwołania:
    • Usunąć odwołanie do Microsoft.VisualStudio.Shell.9.0, po czym dodać odwołanie do Microsoft.VisualStudio.Shell.10.0.dll
    • Jeśli widoczne jest odniesienie do Microsoft.VisualStudio.Package.LanguageService.9.0, należy je usunąć, po czym dodać odniesienie do Microsoft.VisualStudio.Package.LanguageService.10.0.dll
    • Należy dodać odniesienie do Microsoft.VisualStudio.Shell.Immutable.10.0.dll
    • Należy dodać odniesienie do Microsoft.VisualStudio.Shell.Interop.10.0.dll
  6. Należy otworzyć plik VsPkg.cs i usunąć atrybut DefaultRegistryRoot.
  7. Należy dodać do projektu plik tekstowy o nazwie source.extension.vsixmanifest.
  8. Należy otworzyć dodany właśnie plik za pomocą Edytora XML, nie za pomocą okna projektanta.
  9. Do pliku otwartego w poprzednim kroku należy dodać następujący tekst:
<?xml version="1.0" encoding="utf-8"?>
<Vsix Version="1.0.0" xmlns="http://schemas.microsoft.com/developer/vsx-schema/2010">
  <Identifier Id="Identyfikator Projektu">
    <Name>Nazwa Projektu</Name>
    <Author>Autor</Author>
    <Version>1.0</Version>
    <Description xml:space="preserve">Informacja na temat pakietu</Description>
    <Locale>1033</Locale>
    <InstalledByMsi>false</InstalledByMsi>
    <SupportedProducts>
      <VisualStudio Version="10.0">
        <Edition>Pro</Edition>
      </VisualStudio>
    </SupportedProducts>
    <SupportedFrameworkRuntimeEdition MinVersion="4.0" MaxVersion="4.0" />
  </Identifier>
  <References>
    <Reference Id="Microsoft.VisualStudio.MPF" MinVersion="10.0">
      <Name>Visual Studio MPF</Name>
    </Reference>
  </References>
  <Content>
    <VsPackage>|%CurrentProject%;PkgdefProjectOutputGroup|</VsPackage>
  </Content>
</Vsix>

Gdzie <Nazwa Projektu> to nazwa naszego projektu, <Identyfikator Projektu> może być dowolnym unikalnym ciągiem identyfikującym dany projekt (jak identyfikator GUID), zaś <Autor> to nazwa wydawcy projektu.

Uruchamianie rozszerzeń w systemie Windows Vista

Zarówno program Visual Studio jak i zestaw Visual Studio SDK mogą zostać zainstalowane w systemie Windows Vista jedynie przez użytkownika posiadającego podniesione poświadczenia administracyjne. Aby uzyskać więcej informacji, należy przeczytać temat System Windows Vista i program Visual Studio (Windows Vista and Visual Studio).

Instalacja programu Visual Studio


Jeśli podczas instalacji programu Visual Studio nie posiadamy podniesionych poświadczeń administracyjnych, konieczne może być zapisanie pliku Setup.exe w lokalizacji tymczasowej i uruchomienie go, jako administrator.

Instalacja zestawu Visual Studio SDK


Jeśli nie posiadamy podniesionych poświadczeń administracyjnych przed instalacją zestawu Visual Studio SDK, program instalacyjny przed rozpoczęciem instalacji wyświetli monit o uruchomienie go, jako administrator.

Informacje dotyczące wiersza polecenia


Przełączniki wiersza polecenia programu devenv.exe o nazwach /installvstemplates oraz /associatefiles do prawidłowego działania wymagają uprawnień administracyjnych. Wywołanie tych poleceń bez odpowiednich uprawnień może spowodować utratę danych.

Należy otworzyć okno poleceń, jako administrator i uruchomić program devenv.exe z odpowiednim przełącznikiem wiersza polecenia.

Informacje dotyczące programowania


Do tworzenia i uruchamiania rozszerzeń w systemie Windows Vista nie są wymagane poświadczenia administracyjne. Możliwe jest także wdrażanie pakietów .vsix bez poświadczeń administracyjnych.

Oprogramowanie wyświetlania monitu o poświadczenia w systemie Windows Vista


Możliwe jest takie oprogramowanie pliku wykonywalnego skompilowanego z użyciem programu Visual Studio 2010, aby wyświetlał on monit o poświadczenia administracyjne. W tym celu należy ustawić manifest UAC w przenośnym nagłówku wykonawczym. Aby uzyskać więcej informacji, należy przeczytać temat Wymagania odnośnie kompatybilności aplikacji tworzonych w systemie Windows Vista z mechanizmem kontroli konta użytkownika (Windows Vista Application Development Requirements for User Account Control Compatibility) w witrynie sieci Web Microsoft Download Center lub Najważniejsze wskazówki odnośnie tworzenia aplikacji w środowisku z najmniejszymi uprawnieniami (Developer Best Practices and Guidelines for Applications in a Least Privileged Environment) w witrynie sieci Web Windows Vista Developer Center.

Rozszerzanie standardowego okna dialogowego błędu mechanizmu UAC

Tworzone rozszerzenie może wymagać podniesionych uprawnień do wykonania niektórych poleceń w systemie Windows Vista. Program Visual Studio zawiera standardowe okno dialogowe błędu mechanizmu UAC używane do poinformowania użytkownika, że do bieżącej operacji potrzebne są podniesione uprawnienia i wyświetlenia monitu w celu wykonania dodatkowej akcji. Polecenia mogą być oprogramowane w taki sposób, aby wykrywać, kiedy potrzebne są podniesione uprawnienia i wyświetlać niestandardową implementację okna dialogowego błędu mechanizmu UAC, lub też pominąć wyświetlenie tego okna.

Jak wyświetlane jest standardowe okno dialogowe błędu mechanizmu UAC


Kiedy polecenie próbuje uzyskać dostęp do zasobów wymagających podniesionych uprawnień w systemie Windows Vista, system operacyjny zwróci wartość HRESULT równą ElevationRequired. Jeśli polecenie zwróci tę wartość do powłoki programu Visual Studio, spowoduje to wyświetlenie standardowego okna dialogowego mechanizmu UAC. Okno to zawiera komunikat o błędzie oraz daje użytkownikowi możliwość ponownego uruchomienia programu Visual Studio z podwyższonymi uprawnieniami. Jeśli użytkownik wybierze tę opcję, program Visual Studio uruchomi się ponownie z uprawnieniami administracyjnymi i wyświetli monit o poświadczenia administracyjne. Jeśli użytkownik zapewni odpowiednie poświadczenia, program Visual Studio uruchomi się ponownie i otworzy ostatnio otwarte rozwiązanie, zachowując wszystkie przełączniki wiersza polecenia, jakie były podane przy jego uruchamianiu. Wszystkie istniejące polecenia zwracające kod powrotu do powłoki wykorzystają standardowe okno dialogowe błędu mechanizmu UAC automatycznie.

Pomijanie standardowego okna dialogowego błędu mechanizmu UAC


Możliwe jest takie ustawienie polecenia, aby wywoływało ono metodę SuppressRestart przed zakończeniem działania. Spowoduje to, że program Visual Studio wyświetli standardowy komunikat o błędzie zamiast okna dialogowego błędu mechanizmu UAC, zawierającego przycisk powodujący ponowne uruchomienie programu Visual Studio. W ten sposób można sprawić, że dla poleceń, które nie zakończyłyby się sukcesem nawet przy podniesionym poziomie uprawnień, standardowe okno dialogowe błędu mechanizmu UAC zostanie zastąpione wyświetleniem zwykłego, spójnego interfejsu użytkownika. Ustawienie parametru SuppressRestart na wartość TRUE spowoduje pominięcie wyświetlenia standardowego okna dialogowego błędu mechanizmu UAC; ustawienie go na wartość FALSE spowoduje jawne zastąpienie wszystkich poprzednich poleceń ustawiających tę wartość na TRUE i wyświetlenie standardowego okna dialogowego błędu.

Należy zwrócić uwagę na fakt, że ostatni pakiet wywołujący metodę SetErrorInfo spowoduje zastąpienie wszystkich wcześniejszych wywołań tej metody przez inne pakiety.

Implementacja niestandardowego okna dialogowego błędu mechanizmu UAC


Twórcy pakietów udostępniających użytkownikowi polecenia, mogą sprawić, że polecenia te będą "obsługiwać" mechanizm UAC, po czym dostarczyć swoje własne niestandardowe okno dialogowe błędu lub inną odpowiedź na kod błędu ElevationRequired zwrócony przez system operacyjny.

Włączenie pakietu Windows Azure Tools

Pakiet Windows Azure Tools dla programu Microsoft Visual Studio rozszerza możliwości programów Visual Studio 2008 oraz Visual Studio 2010 tak, aby pomóc w tworzeniu, konfiguracji, kompilowaniu, debugowaniu i uruchamianiu skalowalnych aplikacji oraz usług sieci Web na platformie Windows Azure. (Cel aplikacji musi być określony na platformę ASP.NET 3.5)

Pobranie pakietu Windows Azure Tools jest możliwe za pomocą okna dialogowego Nowy projekt (New Project).

Uwaga
Nazwy i lokalizacje niektórych elementów interfejsu programu Visual Studio mogą różnić się od zaprezentowanych w poniższej instrukcji. Elementy te są określone przez posiadaną wersję programu Visual Studio oraz używane ustawienia. Aby uzyskać więcej informacji, należy przeczytać temat Praca z ustawieniami (Working with Settings).

Aby włączyć pakiet Windows Azure Tools

  1. W menu Plik (File) należy kliknąć opcję Nowy (New), po czym kliknąć opcję Projekt (Project).

  2. W polu Zainstalowane szablony (Installed Templates) należy rozwinąć gałąź dla języka Visual Basic lub C#, po czym kliknąć opcję Chmura (Cloud).

  3. W środkowym okienku należy wybrać opcję Włącz pakiet Windows Azure Tools (Enable Windows Azure Tools), po czym kliknąć przycisk OK.

    Program Visual Studio utworzy projekt usług chmury i otworzy stronę informacyjną w obszarze dokumentu.

    Uwaga
    Aby zainstalować pakiet Windows Azure Tools, konieczne jest posiadanie zainstalowanych składników Internet Information Services 7.0 oraz ASP.NET Application Development. Jeśli składniki te nie są zainstalowane, Instalator pakietu Windows Azure Tools wyświetli monit o zainstalowanie ich.
  4. Należy kliknąć opcję Pobierz pakiet Windows Azure Tools (Download Windows Azure Tools).

  5. Należy pobrać pakiet Windows Azure Tools zgodnie z instrukcjami na stronie pobierania.