[.NET2.0] ConfigurationManager / System.Configuration

Pagina: 1
Acties:

  • whoami
  • Registratie: December 2000
  • Laatst online: 17:41
Eigenlijk een simpel vraagje:

Waarom heeft MS plots besloten dat een configuration-file plots niet meer read-only moet zijn ?
Uit de documentatie maak ik op dat het nu mogelijk is dat jouw applicatie niet alleen van de config-file leest, maar er ook kan naar schrijven ?

Is dat wel een goed idee ? Een config-file staat meestal in de program files directory, die voor gewone gebruikers toch read-only is ?

Mis ik hier iets waardoor ik het heil er niet van inzie ?

Een bijkomend vraagje trouwens:
Ik zie in de help dat je de ConfigurationManager class moet gebruiken als je vanuit een client-applicatie (winforms applicatie) de config file wilt accessen, en dat je de WebConfigurationManager class moet gebruiken als je de config file in een web-app (asp.net) wilt accessen.
Waarom dit onderscheid, en, wat is de aangewezen manier als je vanuit een DLL (classlib project) iets uit die configuratie file wilt lezen ? Daar wordt nl. niets over gezegd.
De System.Configuration assembly wordt zelfs by default niet aan een classlib project toegevoegd.

[ Voor 39% gewijzigd door whoami op 22-11-2005 20:29 ]

https://fgheysels.github.io/


  • Brent
  • Registratie: September 2001
  • Laatst online: 19:07
Moet je dat ook niet eigenlijk netjes in Application Data zetten?

Humanist | Kernpower! | Determinist | Verken uw geest | Politiek dakloos


  • whoami
  • Registratie: December 2000
  • Laatst online: 17:41
Hoe bedoel je ?
Ik heb een DLL die ik zowel voor windows applicaties als voor web-applicaties kan gebruiken.
Die DLL heeft echter wel een bepaalde configuratie-instelling nodig die de client-applicatie die die DLL gebruikt moet voorzien in z'n config file.

Ik begin me trouwens een beetje aan die nieuwe Configuratie classes te ergeren... ConfigurationManager.AppSettigns returned bv geen null als je een bepaalde, niet bestaande key wilt accessen, maar gooit direct al een exceptie.
Ik check dat liever, en gooi dan liever zelf m'n eigen exceptie; ipv nu een exceptie op te vangen en te rethrowen.

[ Voor 41% gewijzigd door whoami op 22-11-2005 20:34 ]

https://fgheysels.github.io/


  • P_de_B
  • Registratie: Juli 2003
  • Niet online
Ik weet wel dat er veel geklaagd werd in verschillende fora over het read-only zijn van de config file, misschien dat MS daar naar geluisterd heeft?

Ik ze me trouwens kunnen voorstellen dat je bijvoorbeeld database connectieinformatie wilt kunnen wijzigen vanuit een applicatie, en dat je dat daar in zet? Persoonlijk heb ik het nog niet nodig gehad.

Oops! Google Chrome could not find www.rijks%20museum.nl


  • Brent
  • Registratie: September 2001
  • Laatst online: 19:07
Die config file?

Humanist | Kernpower! | Determinist | Verken uw geest | Politiek dakloos


  • P_de_B
  • Registratie: Juli 2003
  • Niet online
Die staat toch gewoon in de applicatiedirectory?

Oops! Google Chrome could not find www.rijks%20museum.nl


  • Rodyman
  • Registratie: November 2001
  • Laatst online: 08-06-2024

Rodyman

chillend

Ik denk dat ze hem niet meer read-only hebben gemaakt om in ieder geval de mogelijkheid te bieden voor ontwikkelaars om er iets in weg te schrijven. Of het slim is om gebruik van te maken ivm rechten in de verschillende directories is een andere vraag, lijkt mij niet namelijk.
P_de_B schreef op dinsdag 22 november 2005 @ 20:43:
Die staat toch gewoon in de applicatiedirectory?
Ja, de Applicatie-directory ja, niet de Application-DATA dir.
Dus de file staat bijv in: C:\program files\bla\app.config
En hier hebben de meeste users op een beetje beveiligd systeem nou geen schrijfrechten toe.

[ Voor 41% gewijzigd door Rodyman op 22-11-2005 20:59 ]


  • Brent
  • Registratie: September 2001
  • Laatst online: 19:07
P_de_B schreef op dinsdag 22 november 2005 @ 20:43:
Die staat toch gewoon in de applicatiedirectory?
Hangt ervanaf hoe jij je app schrijft, maar Application Data is daar de geschikte plek voor lijkt me? Misschien wil MS het gebruik van die dir wat stimuleren omdat vaak de config files idd in de dir van de app staan.

[edit]Ik begrijp dat de verwarring uit Application Data voort komt. Application Data is die dir in je gebruikersmap.

[ Voor 14% gewijzigd door Brent op 22-11-2005 21:02 ]

Humanist | Kernpower! | Determinist | Verken uw geest | Politiek dakloos


  • whoami
  • Registratie: December 2000
  • Laatst online: 17:41
In dit geval is 'Application Data' niet de geschikte plek voor, omdat die config-instelling niet user-specifiek is.

https://fgheysels.github.io/


  • P_de_B
  • Registratie: Juli 2003
  • Niet online
Rodyman schreef op dinsdag 22 november 2005 @ 20:56:
Ja, de Applicatie-directory ja, niet de Application-DATA dir.
Dus de file staat bijv in: C:\program files\bla\app.config
En hier hebben de meeste users op een beetje beveiligd systeem nou geen schrijfrechten toe.
Dat weet ik, ik geef alleen aan dat een .config bestand standaard in de applicatiedirectory staat en niet in de application data locatie.

zie hier: http://msdn.microsoft.com...ionconfigurationfiles.asp

[ Voor 13% gewijzigd door P_de_B op 22-11-2005 21:06 . Reden: linkje toegevoegd ]

Oops! Google Chrome could not find www.rijks%20museum.nl


  • Brent
  • Registratie: September 2001
  • Laatst online: 19:07
whoami schreef op dinsdag 22 november 2005 @ 21:05:
In dit geval is 'Application Data' niet de geschikte plek voor, omdat die config-instelling niet user-specifiek is.
Dan moet 'ie in 'All Users'.

Humanist | Kernpower! | Determinist | Verken uw geest | Politiek dakloos


  • whoami
  • Registratie: December 2000
  • Laatst online: 17:41
Breepee schreef op dinsdag 22 november 2005 @ 21:08:
[...]


Dan moet 'ie in 'All Users'.
Nee, hij moet in die config-file.

https://fgheysels.github.io/


  • Brent
  • Registratie: September 2001
  • Laatst online: 19:07
whoami schreef op dinsdag 22 november 2005 @ 21:09:
[...]


Nee, hij moet in die config-file.
En die moet dus in 'All Users\Application Data'.... :+

[ Voor 14% gewijzigd door Brent op 22-11-2005 21:22 ]

Humanist | Kernpower! | Determinist | Verken uw geest | Politiek dakloos


  • whoami
  • Registratie: December 2000
  • Laatst online: 17:41
AFAIK wordt de config file (app.config) nog altijd in dezelfde directory geplaatst als de assembly...

En gelieve nu weer on-topic te gaan.

[ Voor 18% gewijzigd door whoami op 22-11-2005 21:31 ]

https://fgheysels.github.io/


  • P_de_B
  • Registratie: Juli 2003
  • Niet online
Breepee schreef op dinsdag 22 november 2005 @ 21:18:
[...]


En die moet dus in 'All Users\Application Data'.... :+
Kijk nu even in de link die in gepost heb, die _moet_ in dezelfde directory als de executable.

Oops! Google Chrome could not find www.rijks%20museum.nl


Verwijderd

Een config-file staat meestal in de program files directory, die voor gewone gebruikers toch read-only is ?
Klopt. Hoewel de config API het nu toelaat om te schrijven naar config files, wil dat niet zeggen dat dit werkt voor gebruikers zonder de juiste rechten. Ik denk dat je je echter moet afvragen wie de config mag wijzigen/in elke situaties een configuratie gewijzigd wordt. Als het gaan om dingen als wijzigen van het pad naar bvb. de amazon webservice, kan ik me voorstellen dat zoiets door een beheerder-achtig persoon gedaan zal worden.
Ik zie in de help dat je de ConfigurationManager class moet gebruiken als je vanuit een client-applicatie (winforms applicatie) de config file wilt accessen, en dat je de WebConfigurationManager class moet gebruiken als je de config file in een web-app (asp.net) wilt accessen.
Waarom dit onderscheid, en, wat is de aangewezen manier als je vanuit een DLL (classlib project) iets uit die configuratie file wilt lezen ? Daar wordt nl. niets over gezegd.
Indien je een class lib hebt die onafhankelijk is van desktop/web zul je in de meeste gevallen gewoon de ConfigurationManager willen gebruiken. De WebConfigurationManager is echter gespecialiseerd. Zo is het bijvoorbeeld mogelijk om virtual paths te gebruiken bij het openen van een config, en wordt er (voor zover ik me kan herinneren) ondersteuning geboden voor het feit dat een web app web.configs kan hebben op verschillende niveaus (bvb. /web.config en /admin/web.config).

[ Voor 7% gewijzigd door Verwijderd op 23-11-2005 21:16 ]

Pagina: 1