Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Konfigurationsdatei auf Netzlaufwerk
Neuwerkhof
myCSharp.de - Member



Dabei seit:
Beiträge: 1

Themenstarter:

Konfigurationsdatei auf Netzlaufwerk

beantworten | zitieren | melden

Hallo Gemeinde,
Hallo erstmal.
Bin neu hier, und kein Programmierer (zumindest nicht professionell).

Folgender Sachverhalt der mir nicht so ganz einleuchtet:

Ich bekomme von unseren Unternehmens- Profi- Programmierern immer wieder Apps die im Programmverzeichnis eine Konfiguratuionsdatei in Form von application.dll.config verwenden. Diese soll ich dann brav editieren.
Da mir das aber nicht gefällt mich durch irgendwelche cryptischen Dateien durchzuhangeln (techn. Dokumentation fehlt in der Regel) habe ich mir gedacht ich mache mir eine GUI bei der ich die relevanten Einstellungen komfortabel editieren kann.
Erschwerend hinzu kommt dann noch dass die Apps auf min 30+ Rechnern laufen und alle die gleiche Konfigurationsdatei verwenden sollen (auf Netzlaufwerk mit allen Berechtigungen). Momentan mus ich immer auf alle Clients verteilen, ist seh sehr sehr umständlich und meines erachtens nicht professionell.

Es gibt mehrere Ansätze zu finden wie man das realisieren könnte.
-xml DataSet
-app.config (das ist wohl das was unsere Programmierer verwenden)
-XmlSerializer

Jetzt sehe ich aber den Wald vor lauter bäumen nicht.
Könnte mir jemand helfen wie und mit was ich das am besten programmiere und idealerweise ein kleines Beispiel dazu?

Vielen Dank für die Hilfe
private Nachricht | Beiträge des Benutzers
Abt
myCSharp.de - Team

Avatar #avatar-4119.png


Dabei seit:
Beiträge: 16234

beantworten | zitieren | melden

Zitat von Neuwerkhof
Momentan mus ich immer auf alle Clients verteilen, ist seh sehr sehr umständlich und meines erachtens nicht professionell.

Doch, das ist es - weil sicher; sowohl in Sachen Betrieb wie auch in Sachen Inhalt.
Eine Konfigurationsdatei auf einem Netzlaufwerk ist vielleicht pragmatisch, aber potentiell unsicher - und kann alle Anwendungen zum Knallen bringen.
Windows und .NET definieren per default auch jedes Netzwerlaufwerk als unsicher ein (Code Access Security Policy, hier vor allem DLLs).

Du kannst aber eine Update-Routine einbauen, die die Settings automatisch von einem Online-Endpunkt (das kann ein Share sein) abgleicht und lokal zu Anwendung schreibt.
Auf dem Netzlaufwerk (o.ä.) als Shared Settings File ist jedoch der falsche Weg.
- performance is a feature -

Microsoft MVP - @Website - @blog - @AzureStuttgart - github.com/BenjaminAbt
private Nachricht | Beiträge des Benutzers
Taipi88
myCSharp.de - Member

Avatar #avatar-3220.jpg


Dabei seit:
Beiträge: 1044
Herkunft: Mainz

beantworten | zitieren | melden

Hi,

das klingt nicht nach einer Aufgabe die ich nicht allein (wenn überhaupt) mit C# lösen würde.

a) Die Profis werden dich sicher nicht bestehenden Code dafür ändern lassen (app.config hat halt seine Vorteile)
b) Wenn du keine direkten Änderungen am Code vornehmen kannst - dann wirst du auch nicht um die app.config herum kummen

Sicher - du kannst dir einen Designer schreiben, der es dir einfacher macht - das offensichtlichere Problem ist allerdings die standardmäßig gelieferte app.config. Ob ihr eine Installationsskript schreibt, dass ggf. die app.config automatisch ersetzt - über die Gruppenrichtlinien etwas scriptet oder wo auch immer - ein Skript erscheint mir hier einfacher.

Was den Designer angeht - ich für meinen Teil würde mir das sparen. Mit nem Designer (selbstgebaut) zerschießt man sich sowas auch sehr schnell - und so unübersichtlich ist XML wirklich nicht - kannst dir selbst ja sogar Kommentare einbauen...
(Wenn es so viele Programme sind - wird ein solcher Designer definitiv kein Spaß - wenn du's auf Perfektion trimmst brauchst du wahrscheinlich sehr lange - und die halbgare Lösung kann mit Leichtigkeit Probleme verursachen)

LG
private Nachricht | Beiträge des Benutzers
Th69
myCSharp.de - Experte

Avatar #avatar-2578.jpg


Dabei seit:
Beiträge: 4198

beantworten | zitieren | melden

Dies habe ich aber auch schon gemacht: ein Control, das Konfigurationsdateien (XML) lesen, editieren (mit jeweils passenden Controls) und wieder speichern kann.
private Nachricht | Beiträge des Benutzers
Taipi88
myCSharp.de - Member

Avatar #avatar-3220.jpg


Dabei seit:
Beiträge: 1044
Herkunft: Mainz

beantworten | zitieren | melden

@Th69:

Die Standard-App-Config mit allen zugehörigen Sachen?

Ich mein eine Basis-app.config ist eine Sache - alle Sachen mit Zusammenhängen in anderen Assemblies, EntityFramework klingt da doch recht flott komplizierter finde ich...

LG
private Nachricht | Beiträge des Benutzers
GarlandGreene
myCSharp.de - Member



Dabei seit:
Beiträge: 499
Herkunft: Emmerich, NRW

beantworten | zitieren | melden

Problem 1 (Editor) ist ne Bequemlichkeitssache, mit nem guten Xml-Editor ist das evtl. auch nicht unbedingt nötig. Eine UI für bestimmte XML-Dateien zu bauen, die die Datei öffnet, einen Dialog für ein paar Werte in der Datei anzeigt und dann die Änderungen darin speichert, ist nicht zu kompliziert umzusetzen. Man muss halt entweder was generisches bauen, was beliebige XML-Dateien editieren kann (= man baut sich einen Xml-Editor) oder man geht individuell auf spezifische Xml-Dateien ein, wie auch immer man die identifiziert.

Problem 2 ist eigentlich Softwareverteilung. Ob da jetzt die Software neu installiert werden soll oder nicht, eigentlich ist eine Änderung in der app.config gleich einem neuen Versionsstand der Software. Es gibt günstige oder auch kostenlose Softwareverteilungs-Lösungen, die einem das Problem abnehmen können. PDQ und WPKG setzen wir selber intern ein, um Software auszurollen. WPKG ist da sehr flexibel, PDQ sehr bequem. Alternativ könnte man ein Powershell-Skript schreiben, das alle Rechner in der Domäne (ohne Domäne wirds bei 30 Rechnern im Netzwerk etwas mühsam) auf eine installierte Anwendung abprüft und die Konfigurationsdatei austauscht, wenn sie sich unterscheidet. Wenn man das etwas feiner steuerbar machen möchte, hängt man alle zu prüfenden Rechner in eine AD-Gruppe und verarbeitet im Skript nur deren Mitglieder. Damit sind die Entwickler-Rechner auch aussen vor, denn die wollen sowas meist nicht automatisieren. Dann ändert man die zentral abgelegte app.config und das auf irgendeinem Server per Batch ausgeführte Skript erledigt alle 30 Minuten den Rest.
private Nachricht | Beiträge des Benutzers