Trwałość projektu

Trwałość to kluczowa kwestia projektowania projektu. Większość projektów używa elementów projektu reprezentujących pliki; Program Visual Studio obsługuje również projekty, których dane nie są oparte na plikach. Zarówno pliki należące do projektu, jak i plik projektu muszą być utrwalane. Środowisko IDE instruuje projekt, aby zapisać się lub element projektu.

Szablony projektów są przekazywane do fabryki projektów. Szablony powinny obsługiwać inicjowanie wszystkich elementów projektu zgodnie z wymaganiami określonego typu projektu. Te szablony można później zapisywać jako pliki projektu i zarządzać przez środowisko IDE za pośrednictwem rozwiązania. Aby uzyskać więcej informacji, zobacz Tworzenie wystąpień projektu przy użyciu fabryk projektów i rozwiązań.

Elementy projektu mogą być oparte na plikach lub nienależących do plików:

  • Elementy oparte na plikach mogą być lokalne lub zdalne. Na przykład w projektach sieci Web w języku C#połączenia z plikami w systemie zdalnym są utrwalane lokalnie, podczas gdy same pliki są utrwalane w systemie zdalnym.

  • Elementy inne niż pliki mogą zapisywać elementy w bazie danych lub repozytorium.

Zatwierdzanie modeli

Po podjęciu decyzji, gdzie znajdują się elementy projektu, należy wybrać odpowiedni model zatwierdzania. Na przykład w modelu opartym na plikach z plikami lokalnymi każdy projekt można zapisywać autonomicznie. W modelu repozytorium można zapisać kilka elementów w jednej transakcji. Aby uzyskać więcej informacji, zobacz Decyzje projektowe dotyczące typu projektu.

Aby określić rozszerzenia nazw plików, projekty implementują IPersistFileFormat interfejs, który udostępnia informacje umożliwiające klientowi obiektu zaimplementowanie okna dialogowego Zapisz jako — czyli wypełnianie listy rozwijanej Zapisz jako i zarządzanie początkowym rozszerzeniem nazwy pliku.

Środowisko IDE wywołuje IPersistFileFormat interfejs w projekcie, aby wskazać, że projekt powinien utrwały odpowiednie elementy projektu. W związku z tym obiekt jest właścicielem wszystkich aspektów jego pliku i formatu. Obejmuje to nazwę formatu obiektu.

W przypadku, gdy elementy nie są plikami, IPersistFileFormat nadal jest sposób utrwalania elementów nienależących do plików. Pliki projektów, takie jak pliki vbp dla projektów Visual Basic lub pliki vcproj dla projektów Visual C++, również muszą być utrwalane.

W przypadku akcji zapisywania środowisko IDE sprawdza uruchomioną tabelę dokumentów (RDT), a hierarchia przekazuje polecenia do IVsPersistHierarchyItem interfejsów i IVsPersistHierarchyItem2 . Metoda IsItemDirty jest implementowana w celu określenia, czy element został zmodyfikowany. Jeśli element ma, SaveItem metoda jest implementowana w celu zapisania zmodyfikowanego elementu.

Metody w interfejsie IVsPersistHierarchyItem2 służą do określania, czy element może zostać ponownie załadowany, i, czy element może być, aby go ponownie załadować. Ponadto można zaimplementować metodę IgnoreItemFileChanges , aby spowodować odrzucenie zmienionych elementów bez zapisywania.

Zobacz też