Loïc Joly wrote on 22/01/2007 20:57:
Je crois que dans mes applications .NET (principalement de l'IHM, avec
les classes de base, plus deux biblitohèques externes, mais toutes
sont comparables en l'occurence), je me retrouve à faire du downcast
depuis Objet [..] vers le type que je manipule directement.
s'il s'agit "principalement d'IHM", ne manque-t-il pas une modélisation
polymorphe des classes en jeu qui éviterait tout (99%) downcast?
Loïc Joly wrote on 22/01/2007 20:57:
Je crois que dans mes applications .NET (principalement de l'IHM, avec
les classes de base, plus deux biblitohèques externes, mais toutes
sont comparables en l'occurence), je me retrouve à faire du downcast
depuis Objet [..] vers le type que je manipule directement.
s'il s'agit "principalement d'IHM", ne manque-t-il pas une modélisation
polymorphe des classes en jeu qui éviterait tout (99%) downcast?
Loïc Joly wrote on 22/01/2007 20:57:
Je crois que dans mes applications .NET (principalement de l'IHM, avec
les classes de base, plus deux biblitohèques externes, mais toutes
sont comparables en l'occurence), je me retrouve à faire du downcast
depuis Objet [..] vers le type que je manipule directement.
s'il s'agit "principalement d'IHM", ne manque-t-il pas une modélisation
polymorphe des classes en jeu qui éviterait tout (99%) downcast?
s'il s'agit "principalement d'IHM", ne manque-t-il pas une
modélisation polymorphe des classes en jeu qui éviterait tout (99%)
downcast?
Je ne sais pas trop ce que tu entends par là...
je me retrouve à faire du downcast depuis Objet [...]
Je n'ai pas mesuré, mais à vue de nez, je crois ne pas exagérer
en disant que dans ce code, une ligne sur 5 contient un downcast.
J'ai mon modèle objet C++ auquel j'accède par l'intermédiaire
interfaces C#, et là, j'ai très peu de downcast.
Par contre, dans mon IHM, j'utilise une DataGridView .NET, qui dans un
premier temps considère une ligne comme une collection de cellule (type
de base), mais demande que l'on fasse des accès spécifiques en fonction
du type de cellule (une cellule combo-box n'aura pas la même interface
qu'une cellule case à cocher). Dans un second temps, le données
associées à une cellules sont gérées sous formes d'object.
Je ne vois pas dans ces conditions comment ne pas avoir de downcast, à
moins éventuellement de dupliquer en local dans une structure de donnée
typée les informations qui sont dans ma grille, ce qui ne me semble pas
forcément génial non plus.
J'utilise une bibliothèque pour gérer un graphe, qui dans chaque
fonction, chaque évènement... me retourne des node d'une classe de base,
alors que j'ai besoin d'informations en plus disponibles dans mes
classes dérivées, là encore, je ne vois pas comment faire sans donwcast.
De même, bien que les conteneurs génériques existent, les conteneurs
utilisés par les différentes bibliothèques que l'on a dans nos produits
sont non génériques ne serait-ce que par compatibilité avec la version
1.0 du framework, qui ne connaissait pas les génériques => downcast.
Alors, effectivement, si je réécrivais tous les windows form.NET et la
bibliothèque de gestion de graphe qu'on utilise, il y aurait beaucoup
moins de downcast... Mais dans ce cas là, je n'utiliserait assurément
pas un langage .NET pour le faire.
s'il s'agit "principalement d'IHM", ne manque-t-il pas une
modélisation polymorphe des classes en jeu qui éviterait tout (99%)
downcast?
Je ne sais pas trop ce que tu entends par là...
je me retrouve à faire du downcast depuis Objet [...]
Je n'ai pas mesuré, mais à vue de nez, je crois ne pas exagérer
en disant que dans ce code, une ligne sur 5 contient un downcast.
J'ai mon modèle objet C++ auquel j'accède par l'intermédiaire
interfaces C#, et là, j'ai très peu de downcast.
Par contre, dans mon IHM, j'utilise une DataGridView .NET, qui dans un
premier temps considère une ligne comme une collection de cellule (type
de base), mais demande que l'on fasse des accès spécifiques en fonction
du type de cellule (une cellule combo-box n'aura pas la même interface
qu'une cellule case à cocher). Dans un second temps, le données
associées à une cellules sont gérées sous formes d'object.
Je ne vois pas dans ces conditions comment ne pas avoir de downcast, à
moins éventuellement de dupliquer en local dans une structure de donnée
typée les informations qui sont dans ma grille, ce qui ne me semble pas
forcément génial non plus.
J'utilise une bibliothèque pour gérer un graphe, qui dans chaque
fonction, chaque évènement... me retourne des node d'une classe de base,
alors que j'ai besoin d'informations en plus disponibles dans mes
classes dérivées, là encore, je ne vois pas comment faire sans donwcast.
De même, bien que les conteneurs génériques existent, les conteneurs
utilisés par les différentes bibliothèques que l'on a dans nos produits
sont non génériques ne serait-ce que par compatibilité avec la version
1.0 du framework, qui ne connaissait pas les génériques => downcast.
Alors, effectivement, si je réécrivais tous les windows form.NET et la
bibliothèque de gestion de graphe qu'on utilise, il y aurait beaucoup
moins de downcast... Mais dans ce cas là, je n'utiliserait assurément
pas un langage .NET pour le faire.
s'il s'agit "principalement d'IHM", ne manque-t-il pas une
modélisation polymorphe des classes en jeu qui éviterait tout (99%)
downcast?
Je ne sais pas trop ce que tu entends par là...
je me retrouve à faire du downcast depuis Objet [...]
Je n'ai pas mesuré, mais à vue de nez, je crois ne pas exagérer
en disant que dans ce code, une ligne sur 5 contient un downcast.
J'ai mon modèle objet C++ auquel j'accède par l'intermédiaire
interfaces C#, et là, j'ai très peu de downcast.
Par contre, dans mon IHM, j'utilise une DataGridView .NET, qui dans un
premier temps considère une ligne comme une collection de cellule (type
de base), mais demande que l'on fasse des accès spécifiques en fonction
du type de cellule (une cellule combo-box n'aura pas la même interface
qu'une cellule case à cocher). Dans un second temps, le données
associées à une cellules sont gérées sous formes d'object.
Je ne vois pas dans ces conditions comment ne pas avoir de downcast, à
moins éventuellement de dupliquer en local dans une structure de donnée
typée les informations qui sont dans ma grille, ce qui ne me semble pas
forcément génial non plus.
J'utilise une bibliothèque pour gérer un graphe, qui dans chaque
fonction, chaque évènement... me retourne des node d'une classe de base,
alors que j'ai besoin d'informations en plus disponibles dans mes
classes dérivées, là encore, je ne vois pas comment faire sans donwcast.
De même, bien que les conteneurs génériques existent, les conteneurs
utilisés par les différentes bibliothèques que l'on a dans nos produits
sont non génériques ne serait-ce que par compatibilité avec la version
1.0 du framework, qui ne connaissait pas les génériques => downcast.
Alors, effectivement, si je réécrivais tous les windows form.NET et la
bibliothèque de gestion de graphe qu'on utilise, il y aurait beaucoup
moins de downcast... Mais dans ce cas là, je n'utiliserait assurément
pas un langage .NET pour le faire.
Il est etrange de reduire POO - PBO a l'heritage uniquement.
Il est etrange de reduire POO - PBO a l'heritage uniquement.
Il est etrange de reduire POO - PBO a l'heritage uniquement.
Fonctions virtuelles et polymorphisme d'inclusion n'ont bien sûr pas de
sens sans héritage.
Fonctions virtuelles et polymorphisme d'inclusion n'ont bien sûr pas de
sens sans héritage.
Fonctions virtuelles et polymorphisme d'inclusion n'ont bien sûr pas de
sens sans héritage.
J'utilise une bibliothèque pour gérer un graphe, qui dans chaque
fonction, chaque évènement... me retourne des node d'une classe de base,
alors que j'ai besoin d'informations en plus disponibles dans mes
classes dérivées, là encore, je ne vois pas comment faire sans donwcast.
J'utilise une bibliothèque pour gérer un graphe, qui dans chaque
fonction, chaque évènement... me retourne des node d'une classe de base,
alors que j'ai besoin d'informations en plus disponibles dans mes
classes dérivées, là encore, je ne vois pas comment faire sans donwcast.
J'utilise une bibliothèque pour gérer un graphe, qui dans chaque
fonction, chaque évènement... me retourne des node d'une classe de base,
alors que j'ai besoin d'informations en plus disponibles dans mes
classes dérivées, là encore, je ne vois pas comment faire sans donwcast.
Loïc Joly wrote on 24/01/2007 02:13:
par là, je n'entendais pas grand chose, mais je pensais qu'il y avait
des downcast.J'ai mon modèle objet C++ auquel j'accède par l'intermédiaire
interfaces C#, et là, j'ai très peu de downcast.
mis à part une obfuscation, je ne sais pas ce que peux signifier
"interface cs",
je ne cromprends donc pas le point.
Par contre, dans mon IHM, j'utilise une DataGridView .NET, qui dans un
premier temps considère une ligne comme une collection de cellule
(type de base), mais demande que l'on fasse des accès spécifiques en
fonction du type de cellule (une cellule combo-box n'aura pas la même
interface qu'une cellule case à cocher). Dans un second temps, le
données associées à une cellules sont gérées sous formes d'object.
je ne sais pas non plus (et n'est pas envie de savoir) ce qu'est une
"DataGridView.NET" mais si je devais spécialiser une telle ListView
(apparue avec W95, pas .TRUC) en mode 'detail', je définirais simplement
une classe template paramètrée selon le type et nombre de colonnes à
gérer et "surchargerais" son NM_CUSTOMDRAW;
j'ai l'habitude de stocker
mes données dans ... des structures de données, pas dans les structures
opaques d'un contrôle d'interface d'un éditeur particulier.
J'utilise une bibliothèque pour gérer un graphe, qui dans chaque
fonction, chaque évènement... me retourne des node d'une classe de base,
alors que j'ai besoin d'informations en plus disponibles dans mes
classes dérivées, là encore, je ne vois pas comment faire sans donwcast.
avec un "node" disposant d'une interface (collection de virtuelles)
pertinente.
De même, bien que les conteneurs génériques existent, les conteneurs
utilisés par les différentes bibliothèques que l'on a dans nos
produits sont non génériques ne serait-ce que par compatibilité avec
la version 1.0 du framework, qui ne connaissait pas les génériques =>
downcast.
.NET n'est pas compatible avec lui-même, c'est facheux, mais est-ce
réellement en rapport notre point ?
Alors, effectivement, si je réécrivais tous les windows form.NET et la
bibliothèque de gestion de graphe qu'on utilise, il y aurait beaucoup
moins de downcast... Mais dans ce cas là, je n'utiliserait assurément
pas un langage .NET pour le faire.
?! on a fait des graphes avant .net, non ?
Loïc Joly wrote on 24/01/2007 02:13:
par là, je n'entendais pas grand chose, mais je pensais qu'il y avait
des downcast.
J'ai mon modèle objet C++ auquel j'accède par l'intermédiaire
interfaces C#, et là, j'ai très peu de downcast.
mis à part une obfuscation, je ne sais pas ce que peux signifier
"interface cs",
je ne cromprends donc pas le point.
Par contre, dans mon IHM, j'utilise une DataGridView .NET, qui dans un
premier temps considère une ligne comme une collection de cellule
(type de base), mais demande que l'on fasse des accès spécifiques en
fonction du type de cellule (une cellule combo-box n'aura pas la même
interface qu'une cellule case à cocher). Dans un second temps, le
données associées à une cellules sont gérées sous formes d'object.
je ne sais pas non plus (et n'est pas envie de savoir) ce qu'est une
"DataGridView.NET" mais si je devais spécialiser une telle ListView
(apparue avec W95, pas .TRUC) en mode 'detail', je définirais simplement
une classe template paramètrée selon le type et nombre de colonnes à
gérer et "surchargerais" son NM_CUSTOMDRAW;
j'ai l'habitude de stocker
mes données dans ... des structures de données, pas dans les structures
opaques d'un contrôle d'interface d'un éditeur particulier.
J'utilise une bibliothèque pour gérer un graphe, qui dans chaque
fonction, chaque évènement... me retourne des node d'une classe de base,
alors que j'ai besoin d'informations en plus disponibles dans mes
classes dérivées, là encore, je ne vois pas comment faire sans donwcast.
avec un "node" disposant d'une interface (collection de virtuelles)
pertinente.
De même, bien que les conteneurs génériques existent, les conteneurs
utilisés par les différentes bibliothèques que l'on a dans nos
produits sont non génériques ne serait-ce que par compatibilité avec
la version 1.0 du framework, qui ne connaissait pas les génériques =>
downcast.
.NET n'est pas compatible avec lui-même, c'est facheux, mais est-ce
réellement en rapport notre point ?
Alors, effectivement, si je réécrivais tous les windows form.NET et la
bibliothèque de gestion de graphe qu'on utilise, il y aurait beaucoup
moins de downcast... Mais dans ce cas là, je n'utiliserait assurément
pas un langage .NET pour le faire.
?! on a fait des graphes avant .net, non ?
Loïc Joly wrote on 24/01/2007 02:13:
par là, je n'entendais pas grand chose, mais je pensais qu'il y avait
des downcast.J'ai mon modèle objet C++ auquel j'accède par l'intermédiaire
interfaces C#, et là, j'ai très peu de downcast.
mis à part une obfuscation, je ne sais pas ce que peux signifier
"interface cs",
je ne cromprends donc pas le point.
Par contre, dans mon IHM, j'utilise une DataGridView .NET, qui dans un
premier temps considère une ligne comme une collection de cellule
(type de base), mais demande que l'on fasse des accès spécifiques en
fonction du type de cellule (une cellule combo-box n'aura pas la même
interface qu'une cellule case à cocher). Dans un second temps, le
données associées à une cellules sont gérées sous formes d'object.
je ne sais pas non plus (et n'est pas envie de savoir) ce qu'est une
"DataGridView.NET" mais si je devais spécialiser une telle ListView
(apparue avec W95, pas .TRUC) en mode 'detail', je définirais simplement
une classe template paramètrée selon le type et nombre de colonnes à
gérer et "surchargerais" son NM_CUSTOMDRAW;
j'ai l'habitude de stocker
mes données dans ... des structures de données, pas dans les structures
opaques d'un contrôle d'interface d'un éditeur particulier.
J'utilise une bibliothèque pour gérer un graphe, qui dans chaque
fonction, chaque évènement... me retourne des node d'une classe de base,
alors que j'ai besoin d'informations en plus disponibles dans mes
classes dérivées, là encore, je ne vois pas comment faire sans donwcast.
avec un "node" disposant d'une interface (collection de virtuelles)
pertinente.
De même, bien que les conteneurs génériques existent, les conteneurs
utilisés par les différentes bibliothèques que l'on a dans nos
produits sont non génériques ne serait-ce que par compatibilité avec
la version 1.0 du framework, qui ne connaissait pas les génériques =>
downcast.
.NET n'est pas compatible avec lui-même, c'est facheux, mais est-ce
réellement en rapport notre point ?
Alors, effectivement, si je réécrivais tous les windows form.NET et la
bibliothèque de gestion de graphe qu'on utilise, il y aurait beaucoup
moins de downcast... Mais dans ce cas là, je n'utiliserait assurément
pas un langage .NET pour le faire.
?! on a fait des graphes avant .net, non ?
mis à part une obfuscation, je ne sais pas ce que peux signifier
"interface cs",
Le but est de manipuler depuis une IHM en .NET un framework en C++. Il
faut bien à un moment faire le passage entre les notions, et c'est cette
interface C# qui me sert d'isolation entre les deux mondes (avec une
implémentation C++/CLI de l'interface pour faire le liant).
je ne cromprends donc pas le point.
Le point est que dans le code où j'ai moi même choisi quelles étaient
les classes et leurs relations, je n'ai pas de problème. Le problème,
c'est dans la partie où ma tâche principale est d'utiliser des classes à
usage générique pour faire de l'IHM développées par d'autres, et que je
ne peux pas modifier.
Le fait est qu'une telle classe est déjà fournie prête à l'emploi dans
..NET, et qu'elle n'est pas templatée, et possède des fonctions
retournant des types de base, mais à downcaster pour être utilisables.
Je pourrais bien entendu choisir de redévelopper une interface plus
fortement typée au dessus de cette classe, mais je perd alors tout
l'intérêt d'utiliser .NET pour mon IHM,
et en plus, ma boîte ne me paye
pas pour mettre en place un framework d'IHM, mais pour utiliser un tel
framework pour faire des appliquations qu'elle peut vendre.
Je stocke aussi mes données là où elles ont du sens. Par contre, pour
récupérer la valeur que l'utilisateur a mise dans une cellule, je
récupère un object, qu'il me faut downcaster en fonction du type de
cellule.
Le node, ce n'est pas moi qui l'ai écrit. Et son interface n'est pas
suffisante pour tout faire. Le concepteur n'a pas pu penser à tout ce
dont j'aurais besoin. Et donc, par exemple, dans une fonction du graphe
que je surcharge, genre IsLinkPossible(Node n1, Node n2); j'ai besoin de
récupérer des informations spécifiques à mon domaine d'application.
Comment faire sans un moment downcaster n1 et n2 dans des types que j'ai
développés moi et qui possèdent ces informations.
?! on a fait des graphes avant .net, non ?
Oui. Et ?
mis à part une obfuscation, je ne sais pas ce que peux signifier
"interface cs",
Le but est de manipuler depuis une IHM en .NET un framework en C++. Il
faut bien à un moment faire le passage entre les notions, et c'est cette
interface C# qui me sert d'isolation entre les deux mondes (avec une
implémentation C++/CLI de l'interface pour faire le liant).
je ne cromprends donc pas le point.
Le point est que dans le code où j'ai moi même choisi quelles étaient
les classes et leurs relations, je n'ai pas de problème. Le problème,
c'est dans la partie où ma tâche principale est d'utiliser des classes à
usage générique pour faire de l'IHM développées par d'autres, et que je
ne peux pas modifier.
Le fait est qu'une telle classe est déjà fournie prête à l'emploi dans
..NET, et qu'elle n'est pas templatée, et possède des fonctions
retournant des types de base, mais à downcaster pour être utilisables.
Je pourrais bien entendu choisir de redévelopper une interface plus
fortement typée au dessus de cette classe, mais je perd alors tout
l'intérêt d'utiliser .NET pour mon IHM,
et en plus, ma boîte ne me paye
pas pour mettre en place un framework d'IHM, mais pour utiliser un tel
framework pour faire des appliquations qu'elle peut vendre.
Je stocke aussi mes données là où elles ont du sens. Par contre, pour
récupérer la valeur que l'utilisateur a mise dans une cellule, je
récupère un object, qu'il me faut downcaster en fonction du type de
cellule.
Le node, ce n'est pas moi qui l'ai écrit. Et son interface n'est pas
suffisante pour tout faire. Le concepteur n'a pas pu penser à tout ce
dont j'aurais besoin. Et donc, par exemple, dans une fonction du graphe
que je surcharge, genre IsLinkPossible(Node n1, Node n2); j'ai besoin de
récupérer des informations spécifiques à mon domaine d'application.
Comment faire sans un moment downcaster n1 et n2 dans des types que j'ai
développés moi et qui possèdent ces informations.
?! on a fait des graphes avant .net, non ?
Oui. Et ?
mis à part une obfuscation, je ne sais pas ce que peux signifier
"interface cs",
Le but est de manipuler depuis une IHM en .NET un framework en C++. Il
faut bien à un moment faire le passage entre les notions, et c'est cette
interface C# qui me sert d'isolation entre les deux mondes (avec une
implémentation C++/CLI de l'interface pour faire le liant).
je ne cromprends donc pas le point.
Le point est que dans le code où j'ai moi même choisi quelles étaient
les classes et leurs relations, je n'ai pas de problème. Le problème,
c'est dans la partie où ma tâche principale est d'utiliser des classes à
usage générique pour faire de l'IHM développées par d'autres, et que je
ne peux pas modifier.
Le fait est qu'une telle classe est déjà fournie prête à l'emploi dans
..NET, et qu'elle n'est pas templatée, et possède des fonctions
retournant des types de base, mais à downcaster pour être utilisables.
Je pourrais bien entendu choisir de redévelopper une interface plus
fortement typée au dessus de cette classe, mais je perd alors tout
l'intérêt d'utiliser .NET pour mon IHM,
et en plus, ma boîte ne me paye
pas pour mettre en place un framework d'IHM, mais pour utiliser un tel
framework pour faire des appliquations qu'elle peut vendre.
Je stocke aussi mes données là où elles ont du sens. Par contre, pour
récupérer la valeur que l'utilisateur a mise dans une cellule, je
récupère un object, qu'il me faut downcaster en fonction du type de
cellule.
Le node, ce n'est pas moi qui l'ai écrit. Et son interface n'est pas
suffisante pour tout faire. Le concepteur n'a pas pu penser à tout ce
dont j'aurais besoin. Et donc, par exemple, dans une fonction du graphe
que je surcharge, genre IsLinkPossible(Node n1, Node n2); j'ai besoin de
récupérer des informations spécifiques à mon domaine d'application.
Comment faire sans un moment downcaster n1 et n2 dans des types que j'ai
développés moi et qui possèdent ces informations.
?! on a fait des graphes avant .net, non ?
Oui. Et ?
Loïc Joly wrote on 24/01/2007 20:17:
mis à part une obfuscation, je ne sais pas ce que peux signifier
"interface cs",
Le but est de manipuler depuis une IHM en .NET un framework en C++. Il
faut bien à un moment faire le passage entre les notions, et c'est
cette interface C# qui me sert d'isolation entre les deux mondes (avec
une implémentation C++/CLI de l'interface pour faire le liant).
c'est bien ce que j'ai dit: de l'obfuscation!
un framework (de données?) en C++ peut (doit?) se gérer via une IHM C++
coller des glues cli / net / cs pour qu'au final toutes ses (inutiles)
couches adressent une dizaine d'API win32 ne peut pas porter d'autre nom.je ne cromprends donc pas le point.
Le point est que dans le code où j'ai moi même choisi quelles étaient
les classes et leurs relations, je n'ai pas de problème. Le problème,
c'est dans la partie où ma tâche principale est d'utiliser des classes
à usage générique pour faire de l'IHM développées par d'autres, et que
je ne peux pas modifier.
"generiques" au sens "'template' est déjà pris, inventons un concept
galitineux rien qu'à nous" (c) CLI ?
si tu es obligé d'utiliser ces ""choses"" alors en effet tu es obligé...
je pensais qu'il était imaginable que d'autres fournisseurs de
composants utilisassent des languages moins fermés ou qu'ils ne
basassent pas l'intérêt de leur produit sur le "j'suis-à-la-mode" mais
plus sur la qualité des interfaces / services mises à disposition du
développeur-utilisateur ou encore qu'il était possible de coder ses
propres composants
([snip]
Le fait est qu'une telle classe est déjà fournie prête à l'emploi dans
..NET, et qu'elle n'est pas templatée, et possède des fonctions
retournant des types de base, mais à downcaster pour être utilisables.
bah !... si la corde est fournie prête à l'emploi, y'a plus qu'à se
pendre, sur ! ;)Je pourrais bien entendu choisir de redévelopper une interface plus
fortement typée au dessus de cette classe, mais je perd alors tout
l'intérêt d'utiliser .NET pour mon IHM,
non ?? y'a un intérêt à utiliser .net ??? zut alors, ce détail m'aurait
échappé ?!...
Loïc Joly wrote on 24/01/2007 20:17:
mis à part une obfuscation, je ne sais pas ce que peux signifier
"interface cs",
Le but est de manipuler depuis une IHM en .NET un framework en C++. Il
faut bien à un moment faire le passage entre les notions, et c'est
cette interface C# qui me sert d'isolation entre les deux mondes (avec
une implémentation C++/CLI de l'interface pour faire le liant).
c'est bien ce que j'ai dit: de l'obfuscation!
un framework (de données?) en C++ peut (doit?) se gérer via une IHM C++
coller des glues cli / net / cs pour qu'au final toutes ses (inutiles)
couches adressent une dizaine d'API win32 ne peut pas porter d'autre nom.
je ne cromprends donc pas le point.
Le point est que dans le code où j'ai moi même choisi quelles étaient
les classes et leurs relations, je n'ai pas de problème. Le problème,
c'est dans la partie où ma tâche principale est d'utiliser des classes
à usage générique pour faire de l'IHM développées par d'autres, et que
je ne peux pas modifier.
"generiques" au sens "'template' est déjà pris, inventons un concept
galitineux rien qu'à nous" (c) CLI ?
si tu es obligé d'utiliser ces ""choses"" alors en effet tu es obligé...
je pensais qu'il était imaginable que d'autres fournisseurs de
composants utilisassent des languages moins fermés ou qu'ils ne
basassent pas l'intérêt de leur produit sur le "j'suis-à-la-mode" mais
plus sur la qualité des interfaces / services mises à disposition du
développeur-utilisateur ou encore qu'il était possible de coder ses
propres composants
([snip]
Le fait est qu'une telle classe est déjà fournie prête à l'emploi dans
..NET, et qu'elle n'est pas templatée, et possède des fonctions
retournant des types de base, mais à downcaster pour être utilisables.
bah !... si la corde est fournie prête à l'emploi, y'a plus qu'à se
pendre, sur ! ;)
Je pourrais bien entendu choisir de redévelopper une interface plus
fortement typée au dessus de cette classe, mais je perd alors tout
l'intérêt d'utiliser .NET pour mon IHM,
non ?? y'a un intérêt à utiliser .net ??? zut alors, ce détail m'aurait
échappé ?!...
Loïc Joly wrote on 24/01/2007 20:17:
mis à part une obfuscation, je ne sais pas ce que peux signifier
"interface cs",
Le but est de manipuler depuis une IHM en .NET un framework en C++. Il
faut bien à un moment faire le passage entre les notions, et c'est
cette interface C# qui me sert d'isolation entre les deux mondes (avec
une implémentation C++/CLI de l'interface pour faire le liant).
c'est bien ce que j'ai dit: de l'obfuscation!
un framework (de données?) en C++ peut (doit?) se gérer via une IHM C++
coller des glues cli / net / cs pour qu'au final toutes ses (inutiles)
couches adressent une dizaine d'API win32 ne peut pas porter d'autre nom.je ne cromprends donc pas le point.
Le point est que dans le code où j'ai moi même choisi quelles étaient
les classes et leurs relations, je n'ai pas de problème. Le problème,
c'est dans la partie où ma tâche principale est d'utiliser des classes
à usage générique pour faire de l'IHM développées par d'autres, et que
je ne peux pas modifier.
"generiques" au sens "'template' est déjà pris, inventons un concept
galitineux rien qu'à nous" (c) CLI ?
si tu es obligé d'utiliser ces ""choses"" alors en effet tu es obligé...
je pensais qu'il était imaginable que d'autres fournisseurs de
composants utilisassent des languages moins fermés ou qu'ils ne
basassent pas l'intérêt de leur produit sur le "j'suis-à-la-mode" mais
plus sur la qualité des interfaces / services mises à disposition du
développeur-utilisateur ou encore qu'il était possible de coder ses
propres composants
([snip]
Le fait est qu'une telle classe est déjà fournie prête à l'emploi dans
..NET, et qu'elle n'est pas templatée, et possède des fonctions
retournant des types de base, mais à downcaster pour être utilisables.
bah !... si la corde est fournie prête à l'emploi, y'a plus qu'à se
pendre, sur ! ;)Je pourrais bien entendu choisir de redévelopper une interface plus
fortement typée au dessus de cette classe, mais je perd alors tout
l'intérêt d'utiliser .NET pour mon IHM,
non ?? y'a un intérêt à utiliser .net ??? zut alors, ce détail m'aurait
échappé ?!...
Il faut reconnaître qu'il est bien ciblé, la mode étant plutot au fast
scripting de façon à gèrer les demandes et les customisations client (en
théorie du moins).
Il faut reconnaître qu'il est bien ciblé, la mode étant plutot au fast
scripting de façon à gèrer les demandes et les customisations client (en
théorie du moins).
Il faut reconnaître qu'il est bien ciblé, la mode étant plutot au fast
scripting de façon à gèrer les demandes et les customisations client (en
théorie du moins).