Voila, nous sommes 2 stagiaires qui développons une application de gestion
pour le service qualité d'une entreprise X. Nous développons en orienté
objets et nous avions choisi comme solution de départ une application Web en
ASP.net. Solution vraiment optimal puisque différent site du groupe de
l'entreprise souhaite utiliser à distance l'application.
Dans cette architecture POO nous utilisons des singleton (ou design pattern)
pour nous permettre d'utilser une seule instance de chaque collection
d'objets pour l'ensemble des sessions.
Hors suite à une insatisfaction de l'application en webform, ils nous a été
demandé de refaire l'interface en winform, hors le probleme est comment
utiliser une seule instance des collections pour l'ensemble des instance
d'application lancé. Pour information, les applications sont lancé au travers
d'ne session Terminal Server, c'est à dire que tous les instances
d'application lancé sont sur le serveur.
La question est comment obtenir un comportement similaire d'une application
webform en winform, c'est à dire une instance d'application pour plusieurs
sessions ?
J'espère avoir été clair, c'est ma première expérience OO en entreprise.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Patrick Philippot
Bonjour,
Le mieux est de construire une architecture multiniveaux (si ce n'est déjà fait), même si tous les niveaux sont sur la même machine.
Sur le serveur un module unique est chargé de gérer la collection d'objects partagées entre toutes les instances des applis. Chaque instance communique avec ce module (qui pourrait être un Web service) et lui demande les infos quand elle en a besoin.
En fait, rien ne vous empêche d'utiliser votre architecture de départ. Il n'y a que vos clients qui changent de nature. Et un client WinForm peut facilement communiquer avec un Web Service qu'il soit local (sur le serveur) ou éloigné.
-- Patrick Philippot - Microsoft MVP MainSoft Consulting Services www.mainsoft.fr
Bonjour,
Le mieux est de construire une architecture multiniveaux (si ce n'est
déjà fait), même si tous les niveaux sont sur la même machine.
Sur le serveur un module unique est chargé de gérer la collection
d'objects partagées entre toutes les instances des applis. Chaque
instance communique avec ce module (qui pourrait être un Web service) et
lui demande les infos quand elle en a besoin.
En fait, rien ne vous empêche d'utiliser votre architecture de départ.
Il n'y a que vos clients qui changent de nature. Et un client WinForm
peut facilement communiquer avec un Web Service qu'il soit local (sur le
serveur) ou éloigné.
--
Patrick Philippot - Microsoft MVP
MainSoft Consulting Services
www.mainsoft.fr
Le mieux est de construire une architecture multiniveaux (si ce n'est déjà fait), même si tous les niveaux sont sur la même machine.
Sur le serveur un module unique est chargé de gérer la collection d'objects partagées entre toutes les instances des applis. Chaque instance communique avec ce module (qui pourrait être un Web service) et lui demande les infos quand elle en a besoin.
En fait, rien ne vous empêche d'utiliser votre architecture de départ. Il n'y a que vos clients qui changent de nature. Et un client WinForm peut facilement communiquer avec un Web Service qu'il soit local (sur le serveur) ou éloigné.
-- Patrick Philippot - Microsoft MVP MainSoft Consulting Services www.mainsoft.fr
Jean-Claude Kutz
Merci pour votre réponse, j'ai recherché aussi du coté des WebServices, et j'ai eu une difficulté à recupérer mes collections d'objets (problème de sérialization), sachant que j'ai utilisé des ArrayList pour gérer mes collections d'objets métier.
Merci pour votre réponse, j'ai recherché aussi du coté des WebServices, et
j'ai eu une difficulté à recupérer mes collections d'objets (problème de
sérialization), sachant que j'ai utilisé des ArrayList pour gérer mes
collections d'objets métier.
Merci pour votre réponse, j'ai recherché aussi du coté des WebServices, et j'ai eu une difficulté à recupérer mes collections d'objets (problème de sérialization), sachant que j'ai utilisé des ArrayList pour gérer mes collections d'objets métier.
Merlin
Jean-Claude Kutz a écrit :
Merci pour votre réponse, j'ai recherché aussi du coté des WebServices, et j'ai eu une difficulté à recupérer mes collections d'objets (problème de sérialization), sachant que j'ai utilisé des ArrayList pour gérer mes collections d'objets métier.
Tu peux aussi voir du côté du .NET Remoting, c'est beaucoup plus souple et puissant qu'un Web service, si et seulement si toute la chaîne est .NET (sinon seul le Web Service permet de dialoguer avec d'autre plate-formes). Mais si toutes les applis sont .NET alors le Remoting sera une meilleure solution.
Pour ce qui est de la sérialisation, les ArrayList se sérialisent très bien, bien entendu il faut que les objets pointés (tes objets métiers) soient marqués comme sérialisables par l'attribut ad hoc.
Merci pour votre réponse, j'ai recherché aussi du coté des WebServices, et
j'ai eu une difficulté à recupérer mes collections d'objets (problème de
sérialization), sachant que j'ai utilisé des ArrayList pour gérer mes
collections d'objets métier.
Tu peux aussi voir du côté du .NET Remoting, c'est beaucoup plus souple
et puissant qu'un Web service, si et seulement si toute la chaîne est
.NET (sinon seul le Web Service permet de dialoguer avec d'autre
plate-formes). Mais si toutes les applis sont .NET alors le Remoting
sera une meilleure solution.
Pour ce qui est de la sérialisation, les ArrayList se sérialisent très
bien, bien entendu il faut que les objets pointés (tes objets métiers)
soient marqués comme sérialisables par l'attribut ad hoc.
Merci pour votre réponse, j'ai recherché aussi du coté des WebServices, et j'ai eu une difficulté à recupérer mes collections d'objets (problème de sérialization), sachant que j'ai utilisé des ArrayList pour gérer mes collections d'objets métier.
Tu peux aussi voir du côté du .NET Remoting, c'est beaucoup plus souple et puissant qu'un Web service, si et seulement si toute la chaîne est .NET (sinon seul le Web Service permet de dialoguer avec d'autre plate-formes). Mais si toutes les applis sont .NET alors le Remoting sera une meilleure solution.
Pour ce qui est de la sérialisation, les ArrayList se sérialisent très bien, bien entendu il faut que les objets pointés (tes objets métiers) soient marqués comme sérialisables par l'attribut ad hoc.
> Merci pour votre réponse, j'ai recherché aussi du coté des WebServices, et j'ai eu une difficulté à recupérer mes collections d'objets (problème de sérialization), sachant que j'ai utilisé des ArrayList pour gérer mes collections d'objets métier.
Vous voulez dire qu'un ensemble unique d'objets est maintenu de manière centralisée mais que vous distribuez une copie à chaque instance de l'application? Cet ensemble d'objets est donc suffisamment statique pour que vous n'ayez pas de problèmes de réconciliation si les objets sont modifiés?
Les instances ont-elles vraiment besoin des collections elles-mêmes ou d'informations portées par ces collections? Auquel cas, ne distribuez que les infos utiles.
Quel est le problème rencontré lors de la sérialisation?
-- Patrick Philippot - Microsoft MVP MainSoft Consulting Services www.mainsoft.fr
> Merci pour votre réponse, j'ai recherché aussi du coté des
WebServices, et j'ai eu une difficulté à recupérer mes collections
d'objets (problème de sérialization), sachant que j'ai utilisé des
ArrayList pour gérer mes collections d'objets métier.
Vous voulez dire qu'un ensemble unique d'objets est maintenu de manière
centralisée mais que vous distribuez une copie à chaque instance de
l'application? Cet ensemble d'objets est donc suffisamment statique pour
que vous n'ayez pas de problèmes de réconciliation si les objets sont
modifiés?
Les instances ont-elles vraiment besoin des collections elles-mêmes ou
d'informations portées par ces collections? Auquel cas, ne distribuez
que les infos utiles.
Quel est le problème rencontré lors de la sérialisation?
--
Patrick Philippot - Microsoft MVP
MainSoft Consulting Services
www.mainsoft.fr
> Merci pour votre réponse, j'ai recherché aussi du coté des WebServices, et j'ai eu une difficulté à recupérer mes collections d'objets (problème de sérialization), sachant que j'ai utilisé des ArrayList pour gérer mes collections d'objets métier.
Vous voulez dire qu'un ensemble unique d'objets est maintenu de manière centralisée mais que vous distribuez une copie à chaque instance de l'application? Cet ensemble d'objets est donc suffisamment statique pour que vous n'ayez pas de problèmes de réconciliation si les objets sont modifiés?
Les instances ont-elles vraiment besoin des collections elles-mêmes ou d'informations portées par ces collections? Auquel cas, ne distribuez que les infos utiles.
Quel est le problème rencontré lors de la sérialisation?
-- Patrick Philippot - Microsoft MVP MainSoft Consulting Services www.mainsoft.fr
Jean-Claude Kutz
Concernant la sérialisation, je ne conné pas bien les marqueurs qui permette la serialisation de mes propres classes.
Concernant la sérialisation, je ne conné pas bien les marqueurs qui permette
la serialisation de mes propres classes.
http://msdn.microsoft.com/msdnmag/issues/04/10/AdvancedSerialization/ -- Paul Bacelar
"Jean-Claude Kutz" wrote in message news:
Concernant la sérialisation, je ne conné pas bien les marqueurs qui
permette
la serialisation de mes propres classes.
Lloyd Dupont
en passant tu pourrais aussi t'essayer a Remoting, moi je trouve que c'est mieux! les seuls 2 'problemes' sont 1. c'est seulement .NET (alors qu'un WebService peut potentiellement coomuniquer avec un prog C, java, etc...) 2. ca necessite d'avoir une DLL commune pour partager les datas.
"Jean-Claude Kutz" wrote in message news:
Merci pour votre réponse, j'ai recherché aussi du coté des WebServices, et j'ai eu une difficulté à recupérer mes collections d'objets (problème de sérialization), sachant que j'ai utilisé des ArrayList pour gérer mes collections d'objets métier.
en passant tu pourrais aussi t'essayer a Remoting, moi je trouve que c'est
mieux!
les seuls 2 'problemes' sont
1. c'est seulement .NET (alors qu'un WebService peut potentiellement
coomuniquer avec un prog C, java, etc...)
2. ca necessite d'avoir une DLL commune pour partager les datas.
"Jean-Claude Kutz" <JeanClaudeKutz@discussions.microsoft.com> wrote in
message news:7273E89A-EF36-4BFA-A386-01BDAC08EF6A@microsoft.com...
Merci pour votre réponse, j'ai recherché aussi du coté des WebServices, et
j'ai eu une difficulté à recupérer mes collections d'objets (problème de
sérialization), sachant que j'ai utilisé des ArrayList pour gérer mes
collections d'objets métier.
en passant tu pourrais aussi t'essayer a Remoting, moi je trouve que c'est mieux! les seuls 2 'problemes' sont 1. c'est seulement .NET (alors qu'un WebService peut potentiellement coomuniquer avec un prog C, java, etc...) 2. ca necessite d'avoir une DLL commune pour partager les datas.
"Jean-Claude Kutz" wrote in message news:
Merci pour votre réponse, j'ai recherché aussi du coté des WebServices, et j'ai eu une difficulté à recupérer mes collections d'objets (problème de sérialization), sachant que j'ai utilisé des ArrayList pour gérer mes collections d'objets métier.