Przegląd ustawień aplikacji

W tym artykule omówiono sposób tworzenia i przechowywania danych ustawień w imieniu aplikacji i użytkowników.

Funkcja Ustawienia aplikacji formularzy systemu Windows ułatwia tworzenie, przechowywanie i obsługę niestandardowych preferencji aplikacji i użytkowników na komputerze klienckim. Za pomocą ustawień aplikacji Windows Forms można przechowywać nie tylko dane aplikacji, takie jak parametry połączenia bazy danych, ale także dane specyficzne dla użytkownika, takie jak preferencje aplikacji użytkownika. Za pomocą programu Visual Studio lub niestandardowego kodu zarządzanego można tworzyć nowe ustawienia, odczytywać je i zapisywać na dysku, powiązać je z właściwościami formularzy oraz weryfikować dane ustawień przed załadowaniem i zapisaniem.

Ustawienia aplikacji umożliwiają deweloperom zapisywanie stanu w aplikacji przy użyciu bardzo małego kodu niestandardowego i jest zamiennikiem właściwości dynamicznych w poprzednich wersjach programu .NET Framework. Ustawienia aplikacji zawierają wiele ulepszeń dotyczących właściwości dynamicznych, które są tylko do odczytu, ograniczone późno i wymagają większej liczby niestandardowych programowania. Klasy właściwości dynamicznych zostały zachowane w programie .NET Framework 2.0, ale są to tylko klasy powłoki, które cienko opakowują klasy ustawień aplikacji.

Co to są Ustawienia aplikacji

Aplikacje Windows Forms często wymagają danych, które mają kluczowe znaczenie dla uruchamiania aplikacji, ale które nie mają być uwzględniane bezpośrednio w kodzie aplikacji. Jeśli aplikacja używa usługi sieci Web lub serwera bazy danych, możesz przechowywać te informacje w osobnym pliku, aby można je było zmienić w przyszłości bez konieczności ponownego komplikowania. Podobnie aplikacje mogą wymagać przechowywania danych specyficznych dla bieżącego użytkownika. Większość aplikacji, na przykład, ma preferencje użytkownika, które dostosują wygląd i zachowanie aplikacji.

Ustawienia aplikacji dotyczą obu potrzeb, zapewniając łatwy sposób przechowywania ustawień o zakresie aplikacji i użytkownika na komputerze klienckim. Za pomocą programu Visual Studio lub edytora kodu można zdefiniować ustawienie dla danej właściwości, określając jego nazwę, typ danych i zakres (aplikacja lub użytkownik). Możesz nawet umieścić powiązane ustawienia w nazwanych grupach, aby ułatwić korzystanie z nich i czytelność. Po zdefiniowaniu te ustawienia są utrwalane i odczytywane z powrotem do pamięci w czasie wykonywania. Architektura podłączana umożliwia zmianę mechanizmu trwałości, ale domyślnie jest używany lokalny system plików.

Ustawienia aplikacji działają przez utrwalanie danych jako xml do różnych plików konfiguracji (.config) odpowiadających temu, czy ustawienie ma zakres aplikacji, czy zakres użytkownika. W większości przypadków ustawienia o zakresie aplikacji są tylko do odczytu; ponieważ są to informacje o programie, zazwyczaj nie trzeba ich zastępować. Z kolei ustawienia o zakresie użytkownika można odczytywać i zapisywać bezpiecznie w czasie wykonywania, nawet jeśli aplikacja działa w ramach częściowego zaufania. Aby uzyskać więcej informacji na temat częściowego zaufania, zobacz Security in Windows Forms Overview (Zabezpieczenia w formularzach systemu Windows — omówienie).

Ustawienia są przechowywane jako fragmenty XML w plikach konfiguracji. Ustawienia o zakresie aplikacji są reprezentowane przez <applicationSettings> element i zazwyczaj są umieszczane w pliku app.exe.config, gdzie aplikacja jest nazwą głównego pliku wykonywalnego. Ustawienia o zakresie użytkownika są reprezentowane przez <userSettings> element i są umieszczane w pliku user.config. Musisz wdrożyć plik app.exe.config z aplikacją. Architektura ustawień utworzy plik user.config na żądanie przy pierwszym zapisaniu ustawień dla tego użytkownika. Możesz również zdefiniować <userSettings> blok w pliku app.exe.config, aby podać wartości domyślne dla ustawień o zakresie użytkownika.

Kontrolki niestandardowe mogą również zapisywać własne ustawienia, implementując IPersistComponentSettings interfejs, który uwidacznia metodę SaveSettings . Kontrolka Formularze ToolStrip systemu Windows implementuje ten interfejs w celu zapisania pozycji pasków narzędzi i elementów paska narzędzi między sesjami aplikacji. Aby uzyskać więcej informacji na temat kontrolek niestandardowych i ustawień aplikacji, zobacz Application Ustawienia for Custom Controls (Ustawienia aplikacji dla kontrolek niestandardowych).

Gdzie są przechowywane ustawienia o zakresie użytkownika

Domyślny dostawca , LocalFileSettingsProviderprzechowuje ustawienia o zakresie użytkownika w folderze LocalApplicationData . Jeśli ten folder jest niedostępny, ApplicationData zostanie użyty folder. Podfolder specyficzny dla aplikacji jest tworzony w celu przechowywania pliku ustawień o zakresie użytkownika. Nazwa tego folderu jest oparta na trzech atrybutach dotyczących głównego zestawu aplikacji:

  • Zestaw .CompanyName
  • Wartość skrótu oparta na dwóch elementach informacji:
    • Zestaw .FriendlyName Jeśli FriendlyName nie jest dostępna, zostanie użyta ProductName wartość .
    • Jeśli zestaw jest StrongName dostępny, w przeciwnym razie jest używana ścieżka folderu bezwzględnego do zestawu.
  • Ciąg AssemblyName.Version .

Jeśli którykolwiek z powyższych szczegółów zestawu ulegnie zmianie, wcześniejsze ustawienia o zakresie użytkownika zostaną utracone, ponieważ zostanie wygenerowana nowa nazwa podfolderu. Jeśli na przykład zostanie wydana nowa wersja aplikacji, a AssemblyName.Version wartość różni się od poprzedniej wersji, nazwa podfolderu używanego do przechowywania ustawień o zakresie użytkownika ulegnie zmianie. Jeśli ustawienia użytkownika muszą być utrwalane między wersjami aplikacji, utwórz dostawcę ustawień niestandardowych. Aby uzyskać więcej informacji, zobacz Niestandardowe dostawcy Ustawienia.

Ograniczenia Ustawienia aplikacji

Nie można używać ustawień aplikacji w niezarządzanej aplikacji, która hostuje program .NET Framework. Ustawienia nie będzie działać w takich środowiskach jak dodatki programu Visual Studio, C++ dla pakietu Microsoft Office, kontrola hostingu w programie Internet Explorer lub dodatki i projekty programu Microsoft Outlook.

Obecnie nie można powiązać niektórych właściwości w formularzach Windows Forms. Najbardziej godnym uwagi przykładem jest ClientSize właściwość, ponieważ powiązanie z tą właściwością spowodowałoby nieprzewidywalne zachowanie w czasie wykonywania. Zazwyczaj można obejść te problemy, zapisując i ładując te ustawienia programowo.

Ustawienia aplikacji nie mają wbudowanej funkcji automatycznego szyfrowania informacji. Nigdy nie należy przechowywać informacji związanych z zabezpieczeniami, takich jak hasła bazy danych, w postaci zwykłego tekstu. Jeśli chcesz przechowywać takie poufne informacje, jesteś odpowiedzialny za zapewnienie bezpieczeństwa dewelopera aplikacji. Jeśli chcesz przechowywać parametry połączenia, zalecamy używanie zintegrowanych zabezpieczeń systemu Windows i nie uciekanie się do zakodowanych haseł w adresie URL. Aby uzyskać więcej informacji, zobacz Zabezpieczenia dostępu kodu i ADO.NET.

Wprowadzenie do Ustawienia aplikacji

Jeśli używasz programu Visual Studio, możesz zdefiniować ustawienia w Projektant formularzy systemu Windows przy użyciu właściwości (Aplikacja Ustawienia) w oknie Właściwości. Podczas definiowania ustawień w ten sposób program Visual Studio automatycznie tworzy niestandardową klasę otoki zarządzanej, która kojarzy każde ustawienie z właściwością klasy. Program Visual Studio dba również o powiązanie ustawienia z właściwością w formularzu lub kontrolce, tak aby ustawienia kontrolki zostały przywrócone automatycznie po wyświetleniu formularza i automatycznie zapisywane po zamknięciu formularza.

Jeśli chcesz uzyskać bardziej szczegółową kontrolę nad ustawieniami, możesz zdefiniować własną klasę otoki ustawień aplikacji niestandardowych. Jest to realizowane przez wyprowadzenie klasy z ApplicationSettingsBase, dodanie właściwości odpowiadającej każdemu ustawieniu i zastosowanie atrybutów specjalnych do tych właściwości. Aby uzyskać szczegółowe informacje na temat tworzenia klas otoki, zobacz Application Ustawienia Architecture (Architektura aplikacji Ustawienia).

Możesz również użyć Binding klasy do programowego powiązania ustawień z właściwościami formularzy i kontrolek.

Zobacz też