Bonjour,
je réalise actuellement une application architecturée en couches comme ceci :
- Présentation : page aspx + jQuery
- Web Service : ASMX
- Couche business
- Couche d'accès aux données
Jusque là, du très classique...
Lors des interactions avec l'utilisateur, je lance des requêtes asynchrones sur ma couche service via jQuery. Les échanges se font au format JSON.
Ma couche de Web Service est implémentée par une classe MonService :
et je fais mes appels au Web service en ajax via jQuery ainsi :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 ... public class MonService : WebService { private IBL _businessLayer = null; ... public MonService () { logger.Debug("Nvelle instance de service créée"); _businessLayer = IBL.Instance; ... } ... [WebMethod] public ObjetX GetObjetX (string param1) { return _businessLayer.GetObjetX (param1); } }
L'appel au service se fait sans encombres. De ce côté là, tout est opérationnel. Mon problème est le suivant : à chaque appel d'une méthode de la couche de services en Ajax, une nouvelle instance de la couche de service, est créée... (pas les autres couches, car implémentées selon le design pattern singleton).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 $.ajax({ type: "POST", url: "Services/MonService.asmx/GetObjetX ", data: "{'param1' : 'toto'}", contentType: "application/json; charset=utf-8", dataType: "json" });
J'aimerai que la couche service se comporte comme un singleton, et éviter ainsi l'instanciation de ma classe de service autant de fois que d'appel de service... car niveau performance, je ne pense pas vraiment que ce soit optimal... Quelqun pourrait-il me renseigner ? merci
Partager