Cea mai bună abordare pentru configurarea mai multor aplicații .Net

Avem o suită de aplicații interconectate .Net 3.5. Unele sunt site-uri Web, unele sunt servicii web, iar unele sunt aplicații Windows. Fiecare aplicație are în prezent propriul fișier de configurare (app.config sau web.config) și în prezent există câteva chei duplicate în fișierele config (care sunt sincronizate manual în acest moment), deoarece mai multe aplicații necesită aceeași valoare config. De asemenea, această suită de aplicații este implementată în diferite envrionemnts (dev, test, live etc.)

Care este cea mai bună abordare pentru gestionarea configurației acestor aplicații multiple dintr-o singură sursă de configurare, astfel încât valorile de configurare pot fi partajate între mai multe aplicații, dacă este necesar? Am dori, de asemenea, să avem configuri separate pentru fiecare mediu (deci atunci când implementați nu trebuie să schimbați manual anumite valori config, care sunt specifice mediului, cum ar fi șiruri de conecție), dar în același timp nu doriți să mențineți configurații multiple mari (câte unul pentru fiecare mediu), păstrându-l în sincronizare atunci când adăugați chei de configurare noi se va dovedi supărător.

0

5 răspunsuri

Puteți împărți App.config în mai multe fișiere de configurare. Specificați doar numele fișierului care conține secțiunea config.

Schimbarea app.config:


  
  


  

În app.config și SomeSetting.xml:



Unde SomeSetting.xml conține:

Acum puteți să compuneți app.config din diferite fișiere de secțiuni cu un fel de script de implementare sau de implementare. De exemplu.:

if debug copy SomeSettingDebug.xml deploydir/SomeSetting.xml
if MySql copy OtherSectionMySql.xml deploydir/OtherSetting.xml
0
adăugat

Visual Studio are o caracteristică relativ obscură care vă permite să adăugați elemente existente ca link-uri, ceea ce ar trebui să realizeze ceea ce căutați. Consultați Postul lui Derik Whittaker pe acest subiect pentru mai multe detalii.

Visual Studio ar trebui să facă această opțiune mai vizibilă. Nimeni nu crede cu adevărat să facă clic pe acea săgeată mică de lângă butonul "Adăugați".

0
adăugat

Verificați cadrul de prisme din grupul de modele și practici Microsoft?

0
adăugat
Cum ar ajuta ajutorul prismatic cu problemele de configurare?
adăugat autor Robert MacLean, sursa

Folosim șabloane de fișiere, cum ar fi MyApp.config.template și MyWeb.config.template, cu proprietăți NAnt pentru biții care diferă între medii. Deci, fișierul șablon ar putea arăta cam așa:


    ${DbConnString}
    

În timpul unei construcții, generăm toate config-urile pentru diferite medii prin simpla introducere în fiecare mediu într-un script NAnt, schimbând valoarea proprietăților NAnt $ {DbConnString} și $ {WebServiceUri} pentru fiecare mediu (de fapt toate acestea sunt setate în un singur fișier cu secțiuni pentru fiecare mediu) și realizarea unei copii NAnt cu opțiunea de a extinde proprietățile activate.

A fost nevoie de puțin timp pentru a fi înființată, dar ne-a plătit înapoi de cel puțin zece ori în cantitatea de timp salvată în jurul valorii de diferite versiuni de fișiere de configurare.

0
adăugat
0
adăugat
Nu știu de ce acest lucru a fost negativ, cele două întrebări vor fi foarte utile în gestionarea configurațiilor.
adăugat autor sontek, sursa