IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Dotnet Discussion :

Génération de code, architecture 3 tiers et databinding avancé


Sujet :

Dotnet

  1. #21
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 4
    Par défaut Conception d'une moulinette générant la couche entité et la couche Accès
    Bonjour,

    Je me suis mis à Visual Studio 2005 depuis cet été et je dois dire que je souffre beaucoup. Je viens du monde VB6 & SQL Server (Ado Oledb), et je n'y connaissais rien en programmation Objet et encore moins en développement WEB.
    Je suis un informaticien indépendant (senior et dépassé), et j'ai eu beaucoup de mal à appréhender ce monde là : on ne parle pas le même langage. Je me suis auto formé et j'ai suivi une formation qui m'a quasiment coûté le tiers de mon dernier contrat.
    Mon premier soucis avant d'attaquer le développement d'une application Web que j’ai vendue a été de reconstruire un atelier de génie logiciel qui me permette de retrouver un environnement familier, que je maîtrise et qui autorise des développements stables, fiables, et duplicables.
    Dans un logiciel de gestion qu'il soit Web ou non, la base de données est la partie la plus importante. Comme mes progiciels VB6, sont hyper stables et suffisamment puissants pour ma clientèle, je n'ai pas voulu la reconcevoir.
    Le challenge que je me suis fixé c'est que mes bases de données, puissent être attaquées par mes anciens progiciels VB6 et les applications Web Visual Studio 2005 que je dois écrire.
    Ainsi je peux proposer un environnement mixte à mes clients Réseau et/ou Web.
    Quand je me suis attaqué au problème, j'ai vite vu qu'il fallait adopter une architecture 3tiers et le DataBinding. Quand j'ai commencé à concevoir la couche métier, je me suis aperçu que la charge de travail était trop importante (plus de 300 tables, et dont certaines sont dodues).
    Je me suis mis à la recherche de générateurs (codesmith et autres) mais soit je n'y comprenais rien, soit le résultat était décevant.
    En désespoir de cause (comme à l’ancienne) , je me suis mis à écrire un générateur de couche métier adapté à mes besoins.
    Auparavant, suite à ma formation ASP Net, j'ai conçu un modèle avec quelques tables pour vérifier le fonctionnement de la couche métier avec le Databinding.
    Ensuite j'ai utilisé VB.net (WinForm) pour développer la moulinette (ou le générateur si vous préférez).
    Cela m’a pris plus d’un mois de travail (j’en ai profité aussi pour me former à VB.Net que je ne connaissais pas)
    Que fait la moulinette :
    1) Elle se connecte sur SQL 2000
    2) On choisit une base de données
    3) On choisit les tables ou les vues
    4) On génère au choix :
    a) les entités
    b) la couche standard d'accés aux données (procédures standard CRUD avec ou sans transaction. Ce sont des classes partielles non modifiables par le programmeur) cette couche est en principe écrasée à chaque génération
    c) la couche spécifique d'accès aux données (classes partielles modifiables par le développeur) cette couche n'est pas en principe écrasée à chaque génération
    d) les procédures stockées à inclure dans SQL Server


    Cette moulinette m'a permis de générer quelques 200.000 lignes de code propre et stable. Elle ne gère pas tous les questions, mais elle permet le DataBinding des GridView avec des collections (List of entites), le DataBinding des formview ou detailview avec des entités. Le problème du tri dans les gridview est résolu avec le SortExpression : on n’a pas besoin de passer par un DataSet.
    Pour les jointures et les transactions il faut écrire un peu de code dans les procédures d'accès au données spécifiques (celles qui ne sont pas écrasées par une nouvelle génération).
    L’intérêt de tout ceci est que la couche interface Utilisateur est indépendante de la couche métier, et je peux dire que lorsqu’on a fait cet énorme effort, c’est quand même beaucoup mieux.
    PS: Pendant ces moments là on se sent un peu seul (techniquement parlant). aussi je suis prêt à partager cette technique, en échange d'indulgence sur le jugement de mon code et pourquoi pas le faire évoluer ensemble

  2. #22
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 101
    Par défaut
    Effectivement, bel effort ... mais qui me parait légérement effrayant au vu de mes délais (surtout que je travaille en TimeBoxing...).

    Peut-tu détailler quels mapper objet/relationnel tu as utilisé, et sur quels points il t'ont déçu ?

  3. #23
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 4
    Par défaut Je ne comprend pas la question
    Si la question m'est adressée, je suis désolé, mais je ne la comprend pas...

    Citation Envoyé par Exsilius

    Peut-tu détailler quels mapper objet/relationnel tu as utilisé, et sur quels points il t'ont déçu ?

  4. #24
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 101
    Par défaut
    Je veux effectivement parler de ce que tu appelles les 'générateurs'. Il semble que ce soit bien des outils de mapping (transformation) de tes entités (modèle relationnel) en classe (modèle objet).

    Me trompe-je ?

  5. #25
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 4
    Par défaut Réponse à Exsilius
    Je vais essayer d'être clair.
    Le lien MoulinetteSurBaseSQLServer.doc explique le fonctionnement général.

    Le lien amw_Cad_TabTiNiveauTiers_Crud_ProcedureStockee.sql montre les procédures stockées gnérées qui seront incluses automatiquement dans SQL Server. La Couche d'accés aux donnnées s'en servira

    Le lien TabTiNiveauTiers.vb montre la classe Entite générée

    Le lien TabTiNiveauTiersCADCrud.vb montre la classe partielle (partie standard) d'accès aux données. En principe le programmeur n'a pas à modifier le code généré

    Le lien TabTiNiveauTiersCADSpecif.vb montre la classe partielle (partie spécifique) d'accès aux données. Le programmeur y écrit les procédures d'accés aux données spécifiques. Par défaut la génération ne l'écrase pas.

  6. #26
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 101
    Par défaut
    Joli boulot !
    Si tu souhaite faire évoluer ton projet regarde du coté des 'framework de persistance' et autres outils de mapping objet/relationnel ('ORM'). Certains sont gratuit et open source.

    Concernant la question précédente, j'aimerais savoir qu'est ce qui était decevant lorsque tu as utilisé des générateurs existant lorsque tu dit :
    Citation Envoyé par alainam
    Je me suis mis à la recherche de générateurs (codesmith et autres) mais soit je n'y comprenais rien, soit le résultat était décevant.
    Et également quels 'générateurs' tu as testé.

  7. #27
    Expert confirmé
    Avatar de Ditch
    Inscrit en
    Mars 2003
    Messages
    4 160
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mars 2003
    Messages : 4 160
    Par défaut
    Citation Envoyé par alainam
    PS: Pendant ces moments là on se sent un peu seul (techniquement parlant). aussi je suis prêt à partager cette technique, en échange d'indulgence sur le jugement de mon code et pourquoi pas le faire évoluer ensemble
    J'ai apprécié le principe de ton outil... Franchement, si tu le souhaites on peut voir comment faire des choses ensemble (toi et dvp.com). On en parle en privé pour ne pas polluer le sujet

  8. #28
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 4
    Par défaut à propos des générateurs ...
    Citation Envoyé par Exsilius
    Joli boulot !
    Concernant la question précédente, j'aimerais savoir qu'est ce qui était decevant lorsque tu as utilisé des générateurs existant lorsque tu dit :


    Et également quels 'générateurs' tu as testé.
    Cet été, sur les conseils de mon formateur, j'ai regardé CodeSmith, c'est un générateur de code basé sur des templates : C'est assez généraliste, mais surtout c'est trop compliqué pour moi : j'ai besoin de choses simples et faciles à comprendre.
    Ensuite j'en ai regardé deux autres, un qui ne m'a pas marqué et dont j'ai oublié le nom et un autre qui m'a influencé pour ma moulinette : TCDesigner.
    C'était pas mal, mais il n'était pas adapté au databinding des Objets VS2005 comme le GridView et le Formview. Il travaillait plutôt avec l'objet DataGrid.
    Peut être que maintenant c'est résolu car en 6 mois il se passe bien des choses. Il n'était pas très cher.
    Il avait aussi l'avantage d'être facilement compréhensible pour un novice, et de plus il pouvait générer les feuilles aspx pour la saisie des tables.
    Si j'avais le temps, je me lancerais bien dans la génération automatique des pages Aspx, et pourquoi pas d'un site dans son ensemble, mais tout seul c'est une charge trop lourde.

  9. #29
    Expert confirmé
    Avatar de Ditch
    Inscrit en
    Mars 2003
    Messages
    4 160
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mars 2003
    Messages : 4 160
    Par défaut
    Citation Envoyé par alainam
    Si j'avais le temps, je me lancerais bien dans la génération automatique des pages Aspx, et pourquoi pas d'un site dans son ensemble, mais tout seul c'est une charge trop lourde.
    Le principe des communautés est de permettre de ne pas être seul

  10. #30
    Membre émérite
    Avatar de FRED.G
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    1 032
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 032
    Par défaut
    Exsilius, je me permet de répondre ici à ton MP.
    Citation Envoyé par Exsilius
    j'ai cru comprendre que tu as pris le parti de ne pas utiliser de 'framework de persistance' (et autres générateurs de code) pour t'assister dans ton dev.
    Je me permets donc de te contacter pour savoir si tu en as testé personnellement ou si tu as fait ce choix pour d'autres raison.
    C'est vrai qu'au départ, en découvrant DotNet, j'ai commencé par étudier les classes ADO.NET. Et venant d'Access, j'étais dans un environnement relativement familier avec les Dataset typés générés par l'assistant.

    Je pensais que tout ceci me conviendrai très bien mais je me suis vite aperçu que mes habitudes de programmation fonctionnelle et le binding sur des entités modélisées selon un schéma "relationnel" (=celui de la bdd source) entraient en contradiction avec les recommandations et les bonnes pratiques du développement orienté objet et en couches séparées. La transition a été assez douloureuse, je crois comprendre ce qu'a évoqué alainam.

    J'ai découvert la problématique du mapping O/R en essayant de comprendre ces contradictions qui se retrouvaient dans mon code, et plus particulièrement après visionnage (et rerevisionnages ) du webcast de Mitsu Furuta sur la question où il proposait "sa" solution, basée sur les classes ADO.NET (jusqu'ici il n'était donc pas question de se tourner vers des outils de mapping OR).
    Ce qui me plaisait dans la solution de Mitsu, c'était (entre autre) qu'elle était basée entièrement sur ADO.NET et tirait bien parti des Dataset, qu'il n'y avait pas de duplication des données entre la couche DATA et la couche BO, et que travaillant sur un concept de "vues", il devait être possible d'avoir des objets métiers dont les données seraient parfaitement synchronisées (tant au niveau des valeurs de propriétés persistantes, qu'au niveau des ajouts/suppression d'items dans les collections). L'intérêt de cette synchronisation étant d'avoir une UI qui se rafraîchit automatiquement (pour ce qui est des objets instanciés en mémoire).
    Mais j'ai fini par abandonner cette voie car d'une part elle imposait un design assez lourd (classes de base imposées), d'autre part, elle ne répondait que partiellement au problème de fond qui est de disposer d'une couche métier objet (voir POCO) facile à maintenir. En effet, plus je méloignais d'un mapping 1:1 avec la source relationnelle pour me rapprocher du modèle objet, plus le code de mapping devenait spécifique et complexe...

    On n'échappe pas à la complexité d'un mapping entre deux modèles différents, mais le code de mapping, si complexe soit-il, doit au minimum être facile à produire et maintenir, voire réutilisable...

    A ce stade, je n'ai donc pas été surpris de découvrir le projet EntityFramework de MS. Mais celui-ci étant encore en développement, je n'ai pas voulu m'impliquer trop en avant dans la compréhension de celui-ci. J'ai donc lu la plupart des docs disponibles à ce sujet mais sans installer et tester la CTP. Honêtement, je fonde tous mes espoirs dans cette techno. Mais en attandant, je ne peux pas m'arrêter de développer. C'est pourquoi je passe en revue tous les outils de mapping O/R gratuits dispos actuellement.

  11. #31
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 101
    Par défaut
    Citation Envoyé par FRED.G
    A ce stade, je n'ai donc pas été surpris de découvrir le projet EntityFramework de MS. Mais celui-ci étant encore en développement, je n'ai pas voulu m'impliquer trop en avant dans la compréhension de celui-ci. J'ai donc lu la plupart des docs disponibles à ce sujet mais sans installer et tester la CTP. Honêtement, je fonde tous mes espoirs dans cette techno.
    Quelqu'un a t il des retours d'expériences ? ... Et j'ai du mal à comprendre le rapport (s'il y en a un) entre LINQ et Entity Framework ?

    Citation Envoyé par FRED.G
    Mais en attandant, je ne peux pas m'arrêter de développer. C'est pourquoi je passe en revue tous les outils de mapping O/R gratuits dispos actuellement.
    N'hésite pas à nous faire partager tes conclusions (ta manière de présenter étant particuliérement pédagogique )


    Pour en revenir à l'architecture en couche, voici ou j'en suis (pour une appli de gestion) :
    Couche supérieure (présentation, j'hésite pour une couche application) :
    - Manipulation des gestionnaires/controleurs métier
    - Manipulation des classes métiers
    -* Pour l'affichage des données
    -* Comme structure de recherche (conteneur DTO/VO)

    Couche métier
    - Controleur/Gestionnaire métier
    -* Contient les DAO et gérent le mapping objet/relationnel
    -* Gére les fonctions CRUD - ainsi que les fonctions utilisant les collections d'objet métier (filtrage)
    - Classes métiers : Attributs/données calculées/régles...

    Couche d'accés aux données
    - Classe DAO (dataset fortement typés)

    Qu'en pensez-vous ?

    *****Avis aux lecteurs
    Etant donné que je n'en suis qu'à un stade théorique et que je n'ai qu'une semaine "d'expérience" sur l'architecture en couche, prenez ce post avec précaution

  12. #32
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2004
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 4
    Par défaut
    Bonjour,

    Je ne sais pas si je suis hors sujet (débutant) mais récemment j'ai découvert cette suite de softs (http://www.visual-paradigm.com/) qui me semble permettre pas mal de chose concernant le mapping O/R.
    Seul le soft de modélisation UML possède une version gratuite mais il y a une version d'essai 30 jrs pour le reste (génération code auto... suffisant pour se faire un idée).

    Une question: pour utiliser Ado.net (DataSets,DataAdapters...), est ce que vous utilisez l'utilitaire graphique ou vous gérez ça directement dans votre code? (je n'arrive pas à me faire une idée sur la conduite à adopter)

    Merci

  13. #33
    Membre émérite
    Avatar de FRED.G
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    1 032
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 032
    Par défaut
    Pour l'utilisation de DataSets, DataAdapters, etc., le recours à l'assistant pour générer des composants fortement typés est "chaudement" recommandé par bidou en personne (cf. son cours sur ADO.NET).
    Bien entendu, cela suppose que la source soit unique et connue.

    Sinon il est possible bien sûr de coder à la main et d'utiliser les DataSet de façon plus générique : un bon exemple ici : http://www.developpez.net/forums/sho...d.php?t=264366 , que j'ai sans doute jugé un peu sévèrement (pardon Gdal ). Faut dire que j'aime les classes bien typées, et surtout, qu'on le veuille ou non, le recours au CommandBuilder au moment du Runtime est à éviter le plus possible (pour des raisons de performance).

    Quant aux composants de visual-paradigm, j'avoue de pas m'y être intérressé pour ma part. Je préfère les trucs Gratuits ou MS.

  14. #34
    Membre émérite
    Avatar de FRED.G
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    1 032
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 032
    Par défaut
    Citation Envoyé par Exsilius
    Pour en revenir à l'architecture en couche, voici ou j'en suis (pour une appli de gestion) :
    Couche supérieure (présentation, j'hésite pour une couche application) :
    - Manipulation des gestionnaires/controleurs métier
    - Manipulation des classes métiers
    -* Pour l'affichage des données
    -* Comme structure de recherche (conteneur DTO/VO)

    Couche métier
    - Controleur/Gestionnaire métier
    -* Contient les DAO et gérent le mapping objet/relationnel
    -* Gére les fonctions CRUD - ainsi que les fonctions utilisant les collections d'objet métier (filtrage)
    - Classes métiers : Attributs/données calculées/régles...

    Couche d'accés aux données
    - Classe DAO (dataset fortement typés)

    Qu'en pensez-vous ?

    *****Avis aux lecteurs
    Etant donné que je n'en suis qu'à un stade théorique et que je n'ai qu'une semaine "d'expérience" sur l'architecture en couche, prenez ce post avec précaution
    J'ai du mal à bien cerner exactement ton organisation. Il faudrait un exemple ou plus de détails.

    Si tu veux une suggestion (ça n'engage vraiemnt que moi) : essai de tout faire vec des DataSet fortement typés générés par l'assistant si tu le peux.

    Sinon, si tu es prêt pour coder de vraies objets et de vraies couches, à la main, voici une astuce : pour la partie CRUD (génération des DbCommand), utilise l'assistant pour créer des TableAdapter reflétant tes classes métier, et piques une partie du code généré pour les TableAdapter, notamment la méthode InitAdapter.

  15. #35
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 101
    Par défaut
    En fait, je pense que le seul élément qui peut être intéressant est que j'utilise mes entités métiers comme conteneur de mes critères de recherche. C'est une solution que je n'ai trouvé nulle part mais qui me convient bien.

    Pour le reste, je pense qu'il n'y a rien de vraiment particulier.
    J'ai effectivement fais le choix d'avoir des entités métiers trés orienté objet afin de bénéficier des avantages du polymorphisme ; et mon entité métier mére encapsule une DataRow.

    J'ai fait validé la structure en 'expertise'. Donc je continue...
    Merci pour vos conseils et plus particuliérement merci à FRED.G.

    Bonne continuation à tous et à bientôt

  16. #36
    Microsoft France

    Profil pro
    Inscrit en
    Avril 2004
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 13
    Par défaut Le débat fait rage !
    C'est très intéressant de voir que cette partie de l'architecture fait toujours couler autant d'encre. J'espère qu'Orcas vous amènera la solution que vous attendez.

    Mitsu

    PS: désolé FRED.G, je n'ai pas eu le temps de répondre à ton mail

  17. #37
    Membre émérite
    Avatar de FRED.G
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    1 032
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 032
    Par défaut
    Citation Envoyé par Mitsu (Ms)
    PS: désolé FRED.G, je n'ai pas eu le temps de répondre à ton mail
    Pas de souci, depuis j'ai fait du chemin.
    En tout cas c'est sûr qu'ici certains attendent beaucoup de l'entity framework d'Orcas.

  18. #38
    Membre averti
    Homme Profil pro
    Inscrit en
    Janvier 2006
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2006
    Messages : 27
    Par défaut C# et Mapping objet-relationnel
    Salut,
    Je veux travailler sur C# et ORM, mais je sais pas quel est l'outil le plus fiable ?
    merci d'avace pour vos reponses

  19. #39
    Membre émérite
    Avatar de FRED.G
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    1 032
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 032
    Par défaut
    Aucun outil ne fait l'unanimité !

    En gratuit, NHibernate a l'air pas mal. Deux autres qui ont l'air intéressant mais que je n'ai pas étudié personnellement : CSLA .NET framework et EUSS


    EDIT : je viens de commencer à découvrir CSLA, c'est une solution qui impose un framework et une classe de base pour les entité métier (NHibernate lui n'impose aucune classe de base) mais ce produit a l'air vraiment très complet (mapping O/R, buisness rules, multiplateform : winforms, Webform, WebService, etc.) et très pratique ! Et il est gratuit, open source, documenté (en anglais) sur internet et par deux bouquins...

  20. #40
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 206
    Par défaut
    J'ai choisi CSLA comme framework métier pour notre applcation, mais il ne propose pas vraiment de couche mapping O/R.

Discussions similaires

  1. XML Databinding et génération de code c++
    Par ArnaudCasella dans le forum XML/XSL et SOAP
    Réponses: 0
    Dernier message: 11/04/2011, 13h14
  2. Génération de code & bpm4struts
    Par k4eve dans le forum BPM
    Réponses: 3
    Dernier message: 08/03/2007, 16h12
  3. [UML] génération de code avec omondo.uml
    Par RENAULT dans le forum Eclipse Java
    Réponses: 3
    Dernier message: 31/10/2003, 14h14
  4. [Design Patterns] Architecture 3 tiers
    Par HPJ dans le forum Design Patterns
    Réponses: 1
    Dernier message: 29/07/2003, 12h49
  5. [Lomboz] Génération de code pour EJB
    Par paikan dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 09/07/2003, 15h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo