Skip to content

Instantly share code, notes, and snippets.

@Macadoshis
Last active January 3, 2019 16:25
Show Gist options
  • Select an option

  • Save Macadoshis/a5d2f21180536ab8fd3254a09059e1e1 to your computer and use it in GitHub Desktop.

Select an option

Save Macadoshis/a5d2f21180536ab8fd3254a09059e1e1 to your computer and use it in GitHub Desktop.
conf naoufal
Bennai Naoufal 17:01:
je n'ai pas compir ton commentaire
17:01 Bennai Naoufal a demandé à vous envoyer le fichier « 2EBD6AB5.PNG ».
17:01 2EBD6AB5.PNG a été enregistré dans C:\Users\sbenbouzid\Documents\Mes fichiers reçus. Nous vous conseillons d’effectuer une analyse antivirus avant de l’ouvrir.
Benbouzid Saad 17:02:
oui pourquoi CMSS.ApplicationTests/App.Config ?
Bennai Naoufal 17:03:
car le web.config de RestAPi n'est pas accessible depuis ce projet tests
Benbouzid Saad 17:03:
c'est la mécanique des TU qui demandent de dupliquer le RestAPI/Web.config ?
Benbouzid Saad 17:03:
c'est super lourd et laid :(
Bennai Naoufal 17:03:
et il faut l'app setting soit ajouter dans l'app.config du projet pour que ça soit reconnu
Benbouzid Saad 17:05:
mais essaie d'ajouter un nouveau fichier dans la couche CMSS.Application pour déclarer les clés de locale
Bennai Naoufal 17:06:
pourquoi ajouter dans CMSS.Application?
Benbouzid Saad 17:07:
les ajouter dans CMSS.Application, car plus tard on aura sûrement besoin de faire de la translate locale-aware
Benbouzid Saad 17:08:
par ex. un throw new CMSSException(TranslateManager.get($"impossible de créer un SF après le ${DateTime.UtcNow, format:'le-format-de-la-locale")}
Bennai Naoufal 17:09:
CMSS.Application ou CMSS.Application.Tests?
Benbouzid Saad 17:09:
et donc c'est justement pour pouvoir rentre accessible "le-format-de-la-locale" dans la couche de translate (càd ton appSettings "DefaultAffiliateDateFormat" actuelle)
Benbouzid Saad 17:09:
ah ben non du runtime Naoufal !
Benbouzid Saad 17:09:
pas du tests
Benbouzid Saad 17:09:
du code de prod !
Bennai Naoufal 17:09:
CMSS.Application prend celui du web.config de RestApi
Benbouzid Saad 17:09:
pour qu'Angular ET la couche de translate C# se partagent le même format de date
Benbouzid Saad 17:09:
idem pour le séparateur de milliers, etc etc
Bennai Naoufal 17:10:
je comprend pas trop ce que tu veux dire
Benbouzid Saad 17:10:
oui car vous avez déclaré private const string KEY_DEFAULT_AFFILIATE_LANGUAGE = "DefaultAffiliateLanguage";
Benbouzid Saad 17:10:
dans CMSS.Application.Service.AffiliateManagement.AffiliateService
Benbouzid Saad 17:10:
mais c'est pas safe
Benbouzid Saad 17:11:
jamais une lib doit dépendre de son host, mais l'host dépendre d'une lib !
Benbouzid Saad 17:11:
la lib est CMSS.Application, et l'host c'est RestAPI
Benbouzid Saad 17:11:
y a aucune raison que ce soit RestAPI qui expose à la lib des propriétés n'utilisées que par la lib
Benbouzid Saad 17:11:
c'est l'inverse
Benbouzid Saad 17:12:
si demain un autre module ou une nouvelle webapp REST veut référencer CMSS.Application en librairire, tu seras obligé de copier-coller des appConfig dans le Web.config de la nouvelle webapp
c'est crad
Benbouzid Saad 17:12:
il faut toujours coder dans le dénominateur commun
Benbouzid Saad 17:12:
le dénominateur commun c'est la lib, c'est CMSS.Application
Benbouzid Saad 17:13:
développement en entennoir
Benbouzid Saad 17:13:
toujours toujours développer en entonnoir
Benbouzid Saad 17:14:
c'est toujours à la lib (ou helper ou module ou assembly, ou directory, appelle comme tu veux) commune de déclarer ses dépendances et ses properties
Benbouzid Saad 17:15:
donc AffiliateService peut rester comme il est, mais suffit de déclarer les 4 appSettings de locale dans un nouveau fichier .config stp, et du coup charger ce fichier là au lieu de ConfigurationManager.AppSettings[...]
Benbouzid Saad 17:18:
pour résumer, 2 points importants :
- aucune raison que CMSS.RestAPI/Web.config déclare des propriétés qui ne sont pas utilisés par lui-même (CMSS.RestAPI ne va jamais consommer ces propriétés, mais CMSS.Application/AffiliateService uniquement ! )
- Web.config ne doit pas être un fourre-tout ! (config ADFS, config business, config de locale, ... on commence à avoir de tout et n'importe quoi dans ce fichier. Un Web.config ça doit être que de la config d'infra rien de plus => sinon à sortir dans des autres fichiers xxx.config)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment