Konfiguration von.net Applikationen



Ähnliche Dokumente
OP-LOG

12. Dokumente Speichern und Drucken

Möglichkeiten des Parallelbetriebs der VR-NetWorld Software Parallelbetrieb VR-NetWorld Software 4.4x und Version 5.0 ab der 2. Beta!

Urlaubsregel in David

mobilepoi 0.91 Demo Version Anleitung Das Software Studio Christian Efinger Erstellt am 21. Oktober 2005

SICHERN DER FAVORITEN

Einrichtung des Cisco VPN Clients (IPSEC) in Windows7

Einrichten eines Postfachs mit Outlook Express / Outlook bis Version 2000

SharePoint Demonstration

Updatehinweise für die Version forma 5.5.5

Internet online Update (Internet Explorer)

SANDBOXIE konfigurieren

Artikel Schnittstelle über CSV

PC Software PPS-FM11 Windows Auswertung und Monitor BDE Betriebsdatenerfassung mit Terminals, RFID und SQL Client

Anleitung zum erstellen einer PDF-Datei aus Microsoft Word

Warum beschäftigt sich ein Linux-Systemhaus mit der Installation von OTRS mit einem Microsoft SQL Server?

Daten-Synchronisation zwischen dem ZDV-Webmailer und Outlook ( ) Zentrum für Datenverarbeitung der Universität Tübingen

Drägerware.ZMS/FLORIX Hessen

Daten Sichern mit dem QNAP NetBak Replicator 4.0

OUTLOOK-DATEN SICHERN

Herzlich Willkommen bei der nfon GmbH

INDEX. Öffentliche Ordner erstellen Seite 2. Offline verfügbar einrichten Seite 3. Berechtigungen setzen Seite 7. Öffentliche Ordner Offline

Win 7 optimieren. Unser Thema heute: Meine erstellten Daten in eine andere Partition verschieben.

Novell Client. Anleitung. zur Verfügung gestellt durch: ZID Dezentrale Systeme. Februar ZID Dezentrale Systeme

Lokale Installation von DotNetNuke 4 ohne IIS

Dokumentation IBIS Monitor

Gezielt über Folien hinweg springen

Über die Internetseite Hier werden unter Download/aktuelle Versionen die verschiedenen Module als zip-dateien bereitgestellt.

Lizenzen auschecken. Was ist zu tun?

Qt-Projekte mit Visual Studio 2005

SJ OFFICE - Update 3.0

MSDE 2000 mit Service Pack 3a

Leitfaden zur ersten Nutzung der R FOM Portable-Version für Windows (Version 1.0)

Um die Installation zu starten, klicken Sie auf den Downloadlink in Ihrer (Zugangsdaten für Ihre Bestellung vom...)

Konfiguration Datenbank-Parameter

Step by Step Webserver unter Windows Server von Christian Bartl

ICS-Addin. Benutzerhandbuch. Version: 1.0

Bearbeitungshinweis zu den Profilblätter. Anlage zum Leitfaden

State Machine Workflow mit InfoPath Formularen für SharePoint 2010 Teil 6

Beispiel Shop-Eintrag Ladenlokal & Online-Shop im Verzeichnis 1

Ordner Berechtigung vergeben Zugriffsrechte unter Windows einrichten

2. Word-Dokumente verwalten

Installation der Konfigurationsdateien für alle Windows-Versionen bis einschließlich Microsoft Windows 7

Erstellen einer in OWA (Outlook Web App)

Fachbericht zum Thema: Anforderungen an ein Datenbanksystem

Installation und Inbetriebnahme von Microsoft Visual C Express

Meldung Lokale Anwendung inkompatibel oder Microsoft Silverlight ist nicht aktuell bei Anmeldung an lokal gespeicherter RWE SmartHome Anwendung

Installation des COM Port Redirectors

Sophos Anti-Virus. ITSC Handbuch. Version Datum Status... ( ) In Arbeit ( ) Bereit zum Review (x) Freigegeben ( ) Abgenommen

Advoware mit VPN Zugriff lokaler Server / PC auf externe Datenbank

Windows 10. Vortrag am Fleckenherbst Bürgertreff Neuhausen.

Datei Erweiterungen Anzeigen!

PCtoK1 Lizenzmanagement

Anton Ochsenkühn. amac BUCH VERLAG. Ecxel für Mac. amac-buch Verlag

DOS-Sympas Scope Dateien in Excel einlesen

Kurzanleitung SEPPmail

Einrichten des IIS für VDF WebApp. Einrichten des IIS (Internet Information Server) zur Verwendung von Visual DataFlex Web Applications

Visual Basic Express Kompilieren mit Skripten

macs Support Ticket System

Universal Dashboard auf ewon Alarmübersicht auf ewon eigener HTML Seite.

1 Einleitung. Lernziele. Symbolleiste für den Schnellzugriff anpassen. Notizenseiten drucken. eine Präsentation abwärtskompatibel speichern

QTTabBar Einrichtung, ein Tutorial

Profi cash 10. Electronic Banking. Installation und erste Schritte. Ihre Spezialisten für den elektronischen Zahlungsverkehr und moderne Bezahlsysteme

FastViewer Remote Edition 2.X

Verwendung des IDS Backup Systems unter Windows 2000

Hex Datei mit Atmel Studio 6 erstellen

1. Einschränkung für Mac-User ohne Office Dokumente hochladen, teilen und bearbeiten

Einfache und effiziente Zusammenarbeit in der Cloud. EASY-PM Office Add-Ins Handbuch

Installationsanweisung Gruppenzertifikat

tentoinfinity Apps 1.0 EINFÜHRUNG

Erste Schritte mit Sharepoint 2013

Umgang mit der Software ebuddy Ändern von IP Adresse, Firmware und erstellen von Backups von ewon Geräten.

Datei Erweiterungen Anzeigen!

Adressen der BA Leipzig

SharePoint Workspace 2010 Installieren & Konfigurieren

Professionelle Seminare im Bereich MS-Office

2 Die Terminaldienste Prüfungsanforderungen von Microsoft: Lernziele:

Bedienungsanleitung Einsatzplanung. Bedienungsanleitung Einsatzplanung. Inhalt. Bedienung einer Plan-Tabelle

Information zum SQL Server: Installieren und deinstallieren. (Stand: September 2012)

Installation der 4Dv12sql Software für Verbindungen zum T.Base Server

Inhalt. 1 Einleitung AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER

1 Was ist das Mediencenter?

Neue Steuererklärung 2013 erstellen

Verbinden. der Firma

Installationshandbuch

Tevalo Handbuch v 1.1 vom

Datensicherung EBV für Mehrplatz Installationen

Netzwerk einrichten unter Windows

Mit der Maus im Menü links auf den Menüpunkt 'Seiten' gehen und auf 'Erstellen klicken.

IntelliRestore Seedload und Notfallwiederherstellung

Er musste so eingerichtet werden, dass das D-Laufwerk auf das E-Laufwerk gespiegelt

mysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank

Einrichtung des WS_FTP95 LE

Zugriff auf OWA Auf OWA kann über folgende URLs zugegriffen werden:

White Paper. Konfiguration und Verwendung des Auditlogs Winter Release

Überprüfung der digital signierten E-Rechnung

Netzlaufwerke mit WebDAV einbinden

Leichte-Sprache-Bilder

SEPA-Anleitung zum Release 3.09

Transkript:

begrüßt Sie herzlich zum Vortrag auf der VODC 2006 Konfiguration von.net Applikationen Dozent Michael Fischer Copyright 2006 Fischer & Consultants GmbH (F&C) Martinstrasse 1 44137 Dortmund www.appfact.com Kontakt: Michael Fischer Email mifi@appfact.de Phone +49 (172) 6801489 Fax +49 (941) 599212011 Hinweis Zum Zeitpunkt der Konferenz war der Design-Support für Application Settings noch nicht Bestandteil der aktuellen Beta von Vulcan.NET. Dieses Feature ein Bestandteil der Visual Studio Integration war jedoch inoffiziell als Bestandteil des fertigen Produktes angekündigt. Die Beispiele in dieser Präsentation verwenden daher leider noch Code, der in C# und nicht in Vulcan.NET geschrieben ist, um die Konzepte schon zu diesem frühen Zeitpunkt demonstrieren zu können. 1

Inhalt 1.Historie 2.Grundlagen 3.SimpleCSharpSample: Konfiguration (fast) ohne Code 6.Mehr aus System.Configuration 7.Fragen 4.Selbst ist der Entwickler I: ConfigurationManager 5.Selbst ist der Entwickler II: Eigenes Setting Objektmodell MSDN-Beispiel Folie 2 von 21 Abstract: Wie hätten Sie's denn gerne? Konfiguration von Vulcan.NET Applikationen Die Konfiguration von Applikationen ist so alt wie die Software-Entwicklung selbst und ihre Speicherung vielfältigen Moden unterworfen. Die Palette reicht von hart codierten Einstellungen, den legendären INI-Dateien und der (zu Recht) gehassten Registry über Einträgen in SQL-Tabellen bis hin zum Dernier Cri: XML-Dateien. Als Teil des.net Framework 2.0 steht Vulcaniern die Bibliothek System.Configuration zur Verfügung, ein mächtiges Framework für die Speicherung von Applikations- und Anwenderspezifischen Einstellungen, dessen Leistungsfähigkeit sich nicht gerade auf den ersten Blick erschließt. Michael Fischer nimmt sich die Konfiguration von Vulcan.NET Programmen in allen Facetten vor. In seiner Session begegnen sie einfachen Konfigurationseinstellungen für das gesamte Programm, lokalen oder wandernden Benutzereinstellungen und persistenten Konfigurationsobjekten. Sie schließen Freundschaft mit dynamisch konfigurierbaren Eigenschaften im Formular-Editor von Visual Studio, lernen das PropertyGrid lieben und bekommen einen allgemein verwendbaren und einsatzbereiten Dialog für Benutzereinstellungen geliefert. Und wer sich noch nie Vulcan.NET im Visual Studio angesehen hat, bekommt einen ersten Eindruck der neuen Entwicklungsumgebung. 2

1. Historie Meine kleine Historie von Konfigurationsquellen DATA-Zeilen in eigenen Modulen GW-Basic: hartcodierte Einstellungen im Code INI-Dateien Clipper: Zugriffsklasse (Eigenentwicklung) auf Basis von FOpen VO: Zugriffsklasse (Eigententwicklung) auf Basis des Win32 API Registry VO: Zugriffsklasse (Eigententwicklung) auf Basis des Win32 API SQL VO: direkter Zugriff auf Tabellen über SQL-Klassen XML VO: direkter Zugriff über Klassen des MSXML-Parsers C#: Application Settings über System.Configuration Folie 3 von 21 Zu den DATA-Zeilen In GW-Basic hatten wir z.b. in meiner damaligen Firma die Escape- Sequenzen zur Bildschirmsteuerung der Terminals unterschiedlicher Hersteller in DATA-Zeilen hinterlegt. Für jedes unterstützte Terminal gab es ein Modul. Um die Software für andere Terminals zu erstellen, musste nur das entsprechende Modul gelinkt werden. Immerhin. 3

1. Historie Probleme der Vergangenheit Hartcodierte Settings können nur vom Entwickler geändert werden INI-Dateien robust und einfach aber relativ ungeeignet für komplexe Einstellungen (z.b. Bäume) Registry $%*# Registry SQL ohne Verbindung zur Datenbank keine Einstellungen (und wo kommt dann der Connection String hin?) XML VO: Keine Unterstützung durch fertige Klassen, Rechteprobleme Folie 4 von 21 XML Ein Problem war z.b. der relativ naive Ansatz, über den MS XML-Parser direkt in XML-Dateien im Verzeichnis der Applikation zu schreiben, also C:\Programme\MeineApplikation\Config.XML. Das funktioniert solange, wie der Benutzer Schreibrechte auf diesem Verzeichnis hat, die benötigt der XML-Parser nämlich. Viele Firmen haben aber über Policies Standard- Benutzern Schreibrechte auf das Programme-Verzeichnis entzogen. 4

2. Grundlagen Application Settings unter.net 2.0 Gilt für Windows Applikationen (System.Windows.Forms). Design-Zeit Unterstützung für VB.NET und C# Eigener Editor für Settings Verfügbarkeit der Settings im Form-Editor Einfacher Zugriff im Code My Namespace in VB.NET Properties Namespace in C# Für diese Möglichkeiten muss keine Zeile Code geschrieben werden. Darüberhinaus: Sehr umfangreiche Basisklassen für eigene Erweiterungen System.Configuration Namespace Folie 5 von 21 Hinweise Die Klassen zur Handhabung von Konfigurationseinstellungen sind im von Vulcan.NET verwendeten Framework 2.0 gegenüber der Version 1.1 erheblich erweitert worden. Diese reichten in den meisten Fällen nicht aus. So gab es z.b. keine fertige Funktionalität zur Speicherung von Benutzerbezogenen Einstellungen. Entsprechend gibt es auf dem Internet viele Artikel und Beispielklassen (bis hin zum Configuration Application Block der Enterprise Library 1.1, einer Bibliothek von Microsoft selbst), die die Schwächen des Frameworks 1.1 ausmerzen. Diese Ansätze sind i.d.r. heute obsolet. Achten Sie bei Artikeln oder Code zum Thema Configuration oder Application Settings daher unbedingt darauf, dass diese für.net 2.0 geschrieben wurden. Die in dieser Präsentation beschriebenen Verfahren gelten nur für Windows Applikationen. Für Web Applikationen (ASP.NET) gibt es leicht veränderte Ansätze. 5

2. Grundlagen Eigenschaften von Settings Name unter dem die einzelne Einstellung zur Laufzeit angesprochen wird. Typ des Werts. Neben Standard-Datentypen geht hier jede Klasse. Gültigkeitsbereich (Scope) ist entweder Application oder User. Wert Folie 6 von 21 6

2. Grundlagen Bereiche von Settings Application Application Settings gelten für alle Benutzer einer Applikation. Sie sind read only zur Laufzeit, d.h. die Applikation selbst kann sie aus Sicherheitsgründen nicht ändern. User User Settings gelten nur für den aktuellen Benutzer (Windows). Sie sind read/write zur Laufzeit, d.h. die Applikation kann sie verändern und speichern. Sie lassen sich weiter unterscheiden: non-roaming (lokal für den Benutzer auf dem jeweiligen Rechner, Default) roaming (wandert bei Anmeldung mit dem aktuellen Benutzer im Netz) Folie 7 von 21 Application Settings können dagegen selbstverständlich von einem Benutzer außerhalb der Applikation durch direkte Änderung der entsprechenden XML- Datei verändert werden. Wenn er denn Schreibrechte auf der Datei hat 7

2. Grundlagen Pfade für User Settings <app>.config im Programmverzeichnis nur lesend für Defaults user.config unter Dokumente und Einstellungen private void btnsettingdirectories_click(object sender, EventArgs e) { StringBuilder msg = new StringBuilder(); msg.appendformat("roaming: {0}\n", Application.UserAppDataPath); msg.appendformat("local: {0}", Application.LocalUserAppDataPath); MessageBox.Show(msg.ToString(), "Storage of User Settings"); } Folie 8 von 21 Hinweis Der Name der Firma sowie der Name und die Version der Applikation, die in den Pfad mit eingebaut werden, werden über die Attribute in der AssemblyInfo definiert. 8

3. Beispiel: Konfiguration (fast) ohne Code Die Beispiel-Applikation Neue C# Windows Application AssemblyInfo.cs ausfüllen! Firmenname, Applikationsname und Version finden Einzug in den Namen der User-Konfigurationsdatei Form gestalten Folie 9 von 21 Refactoring Rename der Form von Form1.cs in MainForm.cs führt nicht nur zu einem Rename der Form selbst sondern auch zur Änderung allen abhängigen Codes, z.b. dem Aufruf in Program.cs. Anmerkungen zum Form Editor Man beachte die Positionierungshilfe bei der Platzierung der Controls Verwendung von Anchor (wird bereits zur Design-Zeit berücksichtigt) Properties: Misc, AutoComplete für eine Verzeichnisauswahl 9

3. Beispiel: Konfiguration (fast) ohne Code Definition von Settings in Visual Studio Editor Aufruf über Properties-Dialog, SettingsTab Alternativ Doppelklick auf Properties, Settings im Solution Explorer Folie 10 von 21 Synchronize Über den Synchronize-Button können während einer Testphase während der Bedienung der Applikation gespeicherte User Settings (user.config unterhalb von Dokumente und Einstellungen) wieder gelöscht werden. View Code Generiert beim ersten Mal die Settings-Klasse, in der man selbst eigenen Code schreibt. 10

3. Beispiel: Konfiguration (fast) ohne Code Generierter Code app.config XML-Konfigurationsdatei mit allen definierten Einstellungen wird beim Build mit dem Namen der EXE in das bin-verzeichniskopiert Settings.Designer.cs gehört zum Namespace Properties generierte sealed partial class Singleton fertige Properties zum Zugriff auf die Einstellungen Default-Werte als Attribute Settings.cs andere Hälfte der generierten partial class für eigene Erweiterungen, z.b. Event Handler Folie 11 von 21 Notiz Das Verfahren, generierte Klassen in eine interne, partial Klasse mit dem generierten Code einerseits und einer zweiten, für die Bearbeitung bestimmten partial Klasse, findet in C# z.b. auch beim Form Editor statt. In gewisser Weise entspricht das dem bewährten Verfahren (Best Practice) unter VO, von den vom Window Editor generierten Klassen in einem eigenen Modul zu vererben und dort seinen Code zu platzieren. 11

3. Beispiel: Konfiguration (fast) ohne Code app.config Folie 12 von 21 Wer möchte, kann die XML-Datei auch direkt bearbeiten, Visual Studio bietet eine recht ordentliche Code Completion auch für XML. 12

3. Beispiel: Konfiguration (fast) ohne Code Settings.Designer.cs Folie 13 von 21 Die generierte Settings Klasse vererbt von ApplicationSettingsBase aus dem System.Configuration Namespace und erhält so ihre Grundfunktionalität, z.b. den Indexer für die einzelnen Properties und die Persistenz der Settings über einen Provider. 13

3. Beispiel: Konfiguration (fast) ohne Code Verwendung von Settings im Code Settings können über den PropertiesNamespace im Code direkt angesprochen werden. Beispiel-Methoden der TestForm Klasse. Folie 14 von 21 14

3. Beispiel: Konfiguration (fast) ohne Code Verwendung von Settings im Form Editor Control selektieren Properties, Data, ApplicationSettings, PropertyBinding, Text dort die Combobox öffnen und das gewünschte Application Setting wählen der Default Wert ist bereits im Form Editor zu sehen Definition neuer Settings auch direkt aus Form Editor Folie 15 von 21 15

3. Beispiel: Konfiguration (fast) ohne Code Wo kommen die Settings zur Laufzeit her Settings werden in dieser Reihenfolge gesucht user.config aus dem Pfad unterhalb von Dokumente und Einstellungen gilt nur für User Settings.config im Verzeichnis der EXE EXE oder DLL Keine.config gefunden Default-Werte als Attribute der generierten SettingsKlasse im Code! Folie 16 von 21 16

4. ConfigurationManager Startpunkt für direkten, selbst codierten Zugriff auf Konfigurationsdaten Neu in.net 2.0 Ersetzt AppSettingsReader Referenz auf system.configuration notwendig Umfangreicher Baum von Klassen für Section Groups, Sections, Properties Folie 17 von 21 17

4. ConfigurationManager Dient auch dem Schreiben von Konfigurationseinstellungen niemals selbst per XMLReader oder XMLWriter die Dateien öffnen ansonsten drohen SecurityProbleme Funktioniert bereits in Vulcan.NET Folie 18 von 21 18

5. Eigene Objektmodelle für Settings Demonstration des MSDN Beispiels von Bryan Porter Download von msdn.microsoft.com Eigene Klassen vererben von Basisklassen in System.Configuration Intensive Verwendung von Attributen Generische Programmierung Alternative Darstellung über PropertyGrid Folie 19 von 21 Zur Download-Adresse mit Code siehe die Literaturhinweise in den Notizen der letzten Folie. 19

6. Mehr aus System.Configuration Weitere Bereiche Validatoren Klassen zur Überprüfung von Werten Verschlüsselte Konfigurationsdateien DpapiProtectedConfigurationProvider Übernahme von Benutzereinstellungen bei Programmupdates Der Pfad unter Dokumente und Einstellungen ändert sich Properties.Settings.Default.Upgrade(); Andere Speicherorte Default ist LocalFileSettingsProvider Base Class SettingsProvider für eigene Provider Folie 20 von 21 20

7. Fragen? Folie 21 von 21 21

Vielen Dank für Ihre Aufmerksamkeit! Gesellschaft für Softwareentwicklung und Unternehmensberatung mbh Martinstrasse 1 44137 Dortmund www.appfact.com mifi@appfact.de Literaturverzeichnis Porter, Bryan: Configure This; Parameterize Your Apps Using XML Configuration In The.NET Framework 2.0; in MSDN Magazine 06.2006. http://msdn.microsoft.com/msdnmag/issues/06/06/configurethis/ Stoecker, Matt: Using Settings in C#; in Visual Studio 2005 Technical Articles. http://msdn.microsoft.com/library/default.asp?url=/library/enus/dnvs05/html/settingscs_rl.asp 22