le moteur pour la recherche est windows search desktop, donc un accé a une base oledb, la version "normal" est légére, mais la version plus sécurisé stock les droit de l'utilisateur sur les différent emplacement afin de ne pas avoir a tout refaire pour chaque recherche, aprés lourd, non on va pas dire ca, mais avec le nombre ca monte vite
le singleton ca risque de posé pas mal de probléme d'un point de vue accé a une ressource partagé.
je ne suis pas non plus en singlecall(ou l'objet est instancié des qu'on appelle une methode puis détruit)
la classe serveur est en singleton par contre
1 2 3
| public interface IServeur {
IThreadClient start(IClient client);
} |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| class Serveur : MarshalByRefObject, IServeur {
static Boolean secure =false;
...
/// <summary>
/// cette methode permet au client d'obtenir une instance de IThreadClient en fonction de la politique de sécurité défini
/// </summary>
/// <param name="client">une référence vers un IClient qui permetrat au service d'établir une connection bi directionelle</param>
/// <returns> l'instance de IThreadClient aloué a ce client</returns>
public IThreadClient start(IClient client) {
if (client == null) {
return null;
}
IThreadClient service=null;
if (secure) {
service = new SecureThreadClient(client);
} else {
service = new ThreadClient(client);
}
return service;
} |
public class ThreadClient : MarshalByRefObject, IThreadClient{..}
class SecureThreadClient : ThreadClient {..}
bon c'est t'être tordu, mais c'est ce qui me parais le plus logique, c'est ma première expérience en application distribué
Partager