Omówienie 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żytkownika 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ń w stosunku do właściwości dynamicznych, które są tylko do odczytu, mają późne wiązanie i wymagają większego nakładu indywidualnego 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 delikatnie otaczają 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ą zapisywane i odczytywane z powrotem do pamięci podczas działania programu. 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 danych 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 w zakresie aplikacji są tylko do odczytu; ponieważ są to informacje o programie, zazwyczaj nie trzeba ich modyfikować. Z kolei ustawienia o zakresie użytkownika można bezpiecznie odczytywać i zapisywać w czasie działania, nawet jeśli aplikacja działa w ramach częściowego zaufania. Aby uzyskać więcej informacji na temat częściowego zaufania, proszę zapoznać się z Security in Windows Forms Overview.
Ustawienia są przechowywane jako fragmenty XML w plikach konfiguracji. Ustawienia o zakresie aplikacji są reprezentowane przez element <applicationSettings>
i zazwyczaj są umieszczane w aplikacji.exe.config, gdzie aplikacji jest nazwą głównego pliku wykonywalnego. Ustawienia o zakresie użytkownika są reprezentowane przez element <userSettings>
i są umieszczane w user.config. Musisz wdrożyć plik aplikacji .exe.config razem ze swoją aplikacją; architektura ustawień utworzy plik user.config na żądanie przy pierwszym zapisaniu ustawień dla tego użytkownika. Możesz również zdefiniować blok <userSettings>
w aplikacji .exe.config, aby ustawić domyślne wartości dla ustawień przeznaczonych dla użytkownika.
Kontrolki niestandardowe mogą również zapisywać własne ustawienia, implementując interfejs IPersistComponentSettings, który uwidacznia metodę SaveSettings. Kontrolka Windows Forms ToolStrip implementuje ten interfejs, aby zapisać położenie 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 Ustawienia aplikacji dla kontrolek niestandardowych.
Gdzie są przechowywane ustawienia w zakresie użytkownika
Domyślny dostawca, LocalFileSettingsProvider, przechowuje ustawienia użytkownika w folderze LocalApplicationData. Jeśli ten folder jest niedostępny, zostanie użyty folder ApplicationData. Tworzony jest podkatalog specyficzny dla aplikacji do przechowywania pliku ustawień 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 częściach danych:
- Zespół FriendlyName. Jeśli
FriendlyName
nie jest dostępna, zostanie użyta ProductName. - Zestaw StrongName, jeśli jest dostępny, w przeciwnym razie jest używana bezwzględna ścieżka folderu do zestawu.
- Zespół FriendlyName. Jeśli
- Ciąg AssemblyName.Version.
Jeśli którykolwiek z wcześniej wymienionych szczegółów zestawu ulegnie zmianie, wcześniejsze ustawienia z zakresem użytkownika zostaną utracone, ponieważ zostanie wygenerowana nowa nazwa podfolderu. Jeśli na przykład zostanie wydana nowa wersja aplikacji, a wartość AssemblyName.Version
różni się od poprzedniej wersji, zmienia się nazwa podfolderu używanego do przechowywania ustawień o zakresie użytkownika. Jeśli ustawienia użytkownika muszą być utrwalane między wersjami aplikacji, utwórz dostawcę ustawień niestandardowych. Aby uzyskać więcej informacji, zobacz Dostawcy Ustawień Niestandardowych.
Ograniczenia ustawień aplikacji
Nie można używać ustawień aplikacji w niezarządzanej aplikacji, która hostuje program .NET Framework. Ustawienia nie będą działać w takich środowiskach, jak dodatki programu Visual Studio, język 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 właściwość ClientSize, 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, ty jako deweloper aplikacji jesteś odpowiedzialny za zapewnienie ich bezpieczeństwa. 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 Code Access Security and ADO.NET.
Wprowadzenie do ustawień aplikacji
Jeśli używasz programu Visual Studio, możesz zdefiniować ustawienia w programie Windows Forms Designer przy użyciu właściwości (ApplicationSettings) w oknie Właściwości. Podczas definiowania ustawień w ten sposób, program Visual Studio automatycznie tworzy niestandardową zarządzaną klasę obudowy, która kojarzy każde ustawienie z atrybutem 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 opakowujących, zobacz Architektura ustawień aplikacji.
Możesz również użyć klasy Binding, aby powiązać ustawienia programowo z właściwościami formularzy i kontrolek.
Zobacz też
- ApplicationSettingsBase
- SettingsProvider
- LocalFileSettingsProvider
- IPersistComponentSettings
- Instrukcje: weryfikowanie ustawień aplikacji
- zarządzanie ustawieniami aplikacji (.NET)
- Jak: Odczytywanie ustawień w czasie wykonywania za pomocą języka C#
- przy użyciu ustawień aplikacji i ustawień użytkownika
- architektura ustawień aplikacji
- Ustawienia aplikacji dla niestandardowych kontrolek
.NET Desktop feedback