2012-05-17 1 views
0

Problème: Je développe en ASP .NET avec C# et je veux valider les e-mails. Pour cela j'utilise une expression régulière (appelons-la EmailRegularExpressionValidator) et mon problème est où placer l'expression rationnelle pour les changer facilement si je veux/besoin sans avoir besoin de recompiler le code. La validation est faite dans "IntermediateServices", dans la couche de gestion, où tout vient pour faire les choses.Où dois-je mettre une configuration lorsque j'utilise des services Windows, des services Web et des sites Web?

Solution 1: web.config

J'ai beaucoup de services Windows et wich-on leur propre configuration. Si je mets EmailRegularExpressionValidator dans ce que je dois écrire dans tous et quand j'en change un, je dois tout changer. Pas bon.

Solution 2: DB

Parfois, je dois valider 1000 mails (ou même encore plus), et si je mets EmailRegularExpressionValidator dans la base je dois faire 1000 querys connaître la valeur EmailRegularExpressionValidator. Je pense le mettre en mémoire mais j'ai des webservices. Pas une bonne idée.

Solution 3: Ressources

Ressources ne peuvent être facilement modifiés si sur le site. Quand je les mets en business layer, je ne peux pas les changer facilement.

Solution 4: BD + Session

Comme je l'ai dit après, je suis en utilisant webservices ....

espoir j'été explicite et espérons que vous pouvez me aider.

Désolé pour mon anglais (salutations du Portugal).

Merci beaucoup.

Répondre

1

Dans votre cas, je recommanderais les fichiers de configuration. Les fichiers de configuration .NET ont une hiérarchie, et tout commence dans le fichier machine.config, et toutes les applications .NET lisent les paramètres de cette configuration.

Si vous ne remplacez pas les clés des fichiers de configuration des applications, l'application utilisera les paramètres du fichier machine.config. C'est le point le plus central et peut être utilisé pour toutes les applications, changer une fois, il change pour tous.

Il se trouve ici: C : \ Windows \ Microsoft.NET \ Framework \

Puis, après cela dépend du cadre que vous utilisez,

C: \ Windows \ Microsoft.NET \ Framework \ v2.0.50727 \ CONFIG

ou ici:

C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Config

Exemple : Il suffit de placer ceci après la balise <configuration> dans le fichier machine.config.

<appSettings><add key="myParameter" value="myValue"/></appSettings> 

puis dans votre code,

Configuration con = ConfigurationManager.OpenMachineConfiguration(); 
ConfigurationSection consec = con.Sections["myParameter"]; 

Vous devez ajouter une référence à System.Configuration

Hope it helps.

+0

Je pense qu'il est une bonne solution, mais est-il sûr? Et quand j'installe mon application, je dois me rappeler de modifier de machine.key. Je pense que modifier les fichiers dans le dossier Windows n'est jamais une bonne politique. –

+0

Il est plus sûr pour chaque application d'utiliser leurs fichiers de configuration, mais si vous voulez configurer toutes les applications sur la machine, la machine.config est juste pour cela. Il est utilisé par .NET pour une variété de choses, comme le cryptage ... l'idée d'un fichier de configuration de la machine est de maintenir les informations de configuration pour le serveur ou la machine dans son ensemble pour faciliter le déploiement, l'évolutivité, la performance et l'efficacité du applications fonctionnant sur cette machine. – hjgraca

+0

Vous dites, "Et quand j'installe mon application, je dois me rappeler de modifier de machine.key", cela va être des applications de serveur non? Comme les sites Web et windowsservices, cela ne va pas être installé dans n'importe quel client ?! S'il doit être installé dans les clients, vous devez utiliser la configuration de l'application, pas la configuration de la machine. Machine.config est pour les applications serveur, que vous avez le contrôle. – hjgraca