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

MFC Discussion :

mfc ou .net ? que choisir ?


Sujet :

MFC

  1. #1
    Membre régulier Avatar de subzero01
    Inscrit en
    Décembre 2007
    Messages
    281
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Décembre 2007
    Messages : 281
    Points : 121
    Points
    121
    Par défaut mfc ou .net ? que choisir ?
    bonjour
    je développe en utilisant le .net framework, mais pendant toute la période depuis que j'ai connu mfc j'essaye de me familiariser avec, et d'en faire ma premiere méthode de programmation, mais vu le developpement et les facilités qu'offre le .net, je ne trouve pas assez de raisons pour revenir à mfc
    j'aimerai bien connaitre le maximum des avantages de programmation en mfc, parceque je veux bien m'y attacher mais je ne trouve pas une bonne raison pour le faire.

  2. #2
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Points : 16 075
    Points
    16 075
    Par défaut
    tout dépend du type de projet que tu veux réaliser

    l'architecture Document/Vue des MFC est très complete
    le framework.net a des avantages qui rend son utilisation très pratique.
    Si ton appli doit etre proche du système, il faut privilégier le natif.

    Bref, avant toute chose, la bonne question à ce poser est : qu'est-ce que je veux faire ?
    et en fonction de ca, une plateforme sera plus adaptée qu'une autre

  3. #3
    Membre régulier Avatar de subzero01
    Inscrit en
    Décembre 2007
    Messages
    281
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Décembre 2007
    Messages : 281
    Points : 121
    Points
    121
    Par défaut
    vous avez raison
    mais des fois on trouve que notre application est aussi faisable dans les mfc que dans le .net, mais vue la complexité des fonctions des mfc, je ne choisis pas cette platform meme si j'aime bien m'adapter a choisir mfc quand le choix ne dépend pas de ce que je veux faire.
    EDIT: une simple application réalisée avec une seule form ou deux par exemple, si elle est réalisée en .net, toute la platform .net (de la meme version) doit etre installée sur la machine sur laquelle l'application va tourner ! par contre, si je choisis les mfc, et j'intègre ses librairies dans mon appli, ca peut faciliter les taches... bon, mais faut pas négliger la facilité qu'offre le .net par rapport a la complexité des mfc.

  4. #4
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Points : 16 075
    Points
    16 075
    Par défaut
    je suis d'accord
    pour des applis simple, je vais dix fois plus vite avec .net

  5. #5
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Points : 17 323
    Points
    17 323
    Par défaut
    Citation Envoyé par nico-pyright(c) Voir le message
    je suis d'accord
    pour des applis simple, je vais dix fois plus vite avec .net
    ah nan pas de publicité subliminale faisant penser a un produit concurrent

  6. #6
    Membre actif
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    646
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 646
    Points : 240
    Points
    240
    Par défaut
    Bonjour a tous,
    Citation Envoyé par nico-pyright(c) Voir le message
    l'architecture Document/Vue des MFC est très complete
    Juste en passant, la j'avoue que je vois pas trop, je connait pas bien le .net, mais apparemment la gestion document/vue est assez fourni aussi. Car il semble que ce soit un des arguments de la plupart des MFC_user. Mais concretement je vois pas de grosses difference, ni petites d'ailleurs...

  7. #7
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Points : 16 075
    Points
    16 075
    Par défaut
    en .net, il existe des archis open source pour faire comme les MFC, mais rien dans le framework.net, qui comme son nom l'indique n'est "qu'un" framework

    Tu voulais peut etre parler de la prorpriété MDI d'une form ?

  8. #8
    Membre actif
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    646
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 646
    Points : 240
    Points
    240
    Par défaut
    Citation Envoyé par nico-pyright(c) Voir le message
    Tu voulais peut etre parler de la propriété MDI d'une form ?
    Exactement! c'est à ceci que je pensais, personnellement je n'ai jamais developpe en .net, et un ami a fait un soft .net MDI, du coup je me demandai si c'etait vraiment complique de mettre en place le modele document/vue. Auquel cas plus ca va, moins ca va pour les MFC.

  9. #9
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Points : 17 323
    Points
    17 323
    Par défaut
    Mettre en balance .net et MFC ne résume pas a c’est mieux d’un coté moins bien de l’autre.
    Programmer en MFC c’est déjà programmer en C++
    Certains programmeurs te diront que c’est déjà un argument.

    Il est clair que coté .net l’environnement est plus simple à mettre en œuvre que les MFC. (sauf si tu disposes comme moi d'un ensemble d'outils maison)

    Mais que peux-tu me dire d’une application .Net travaillant en MDI avec une possibilité d’une centaine de fenêtres différentes ?
    Et je parle a tout les niveaux : organisation du code, maintenance, installation en clientèle etc..
    En MFC cela fonctionne j’ai quelques programmes comme cela, et je ne pense pas me tromper en disant que le coté natif des MFC va plus vite qu’un programme .net
    C’est pour moi un argument majeur, même si pour certains petits développement rapides je regarde du coté de .net.

    On peut continuer comme ça longtemps d’un coté comme de l’autre à trouver des avantages et des inconvénients.

    Alors je dis ça dépend de ton expérience, du sujet, des contraintes, de ton passif de lignes de codes à maintenir etc..

    De plus pour infos ou rappel MS vient de donner un coup de pouce aux MFC avec la bibliothèque bcgsoft qui vient d’être intégrer à Visual 2008.
    Je ne pense pas que ça soit un hasard, cela veut bien dire qu’il y a un intérêt à avoir une plateforme de développement native win32 en parallèle de la plateforme .net.

  10. #10
    Membre éclairé
    Avatar de PetitPapaNoël
    Développeur informatique
    Inscrit en
    Septembre 2006
    Messages
    559
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 559
    Points : 749
    Points
    749
    Par défaut
    Je suis d'accord avec Farscape.

    Moi qui ai eu l'occasion de travailler sur .Net et sur C++/MFC, je peux dire que la programmation sur .Net est plus intuitive et plus rapide que sur C++/MFC.

    Par contre, la gestion de la mémoire est opaque sur .Net alors qu'on fait ce qu'on veut avec C++/MFC. De plus, le déploiement du framework .Net sur tous les postes clients d'une application .Net est bien plus lourd que celui des dll MFC...

  11. #11
    Membre régulier Avatar de subzero01
    Inscrit en
    Décembre 2007
    Messages
    281
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Décembre 2007
    Messages : 281
    Points : 121
    Points
    121
    Par défaut
    merci pour tous vos points de vu,
    je pense que pour s'attacher aux mfc il faut plus de temps en pratique, et de courage pour commancer de grands projets sous mfc et essayer de les finir sans les abandonner et revenir au .net ce que je fais souvent...

  12. #12
    Expert éminent sénior
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 360
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 360
    Points : 20 378
    Points
    20 378
    Par défaut
    Citation Envoyé par subzero01 Voir le message
    mais des fois on trouve que notre application est aussi faisable dans les mfc que dans le .net, mais vue la complexité des fonctions des mfc, je ne choisis pas cette platform meme si j'aime bien m'adapter a choisir mfc quand le choix ne dépend pas de ce que je veux faire.
    .
    Tout est relatif est discutable ; si tu maitrises un minimum MFC et que tu as des bouts de code pour faire telle ou telle action ( par exemple affichage des images, gestion de réseau) tu est autant performant qu'avec .nET.
    Je suis autant performant avec MFC pour développer un projet que je ne le suis avec Visual Basic 6 un outil pourtant sensé réduire les lignes de code..

    Et puis est-ce que tu peux faire avec .NET une CScrollView avec splitter et des CFormView ??

    si tu as pigé les tenants et aboutissants de MFC tu seras autant performant..
    Et puis question performances c'est le jour et la nuit...
    Si je le retrouve il y a un site d'une personne qui fait de l'imagerie médicale et il affirme que y'a pas photo avec MFC c'est bien plus rapide et performants qu'avec .NET

  13. #13
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Points : 5 195
    Points
    5 195
    Par défaut
    salut

    moi, j'ai fait bcp de MFC , et je fais bcp de .Net depuis quelques temps et je vais faire un retour sur mon expérience, ca servira peut-etre

    MFC, c'est rapide... on peut "TOUT" faire... génial

    .Net, c'est assez rapide, on peut "Tout" faire... génial

    Mouais, et alors me direz vous ?

    Je détails....

    .Net, tu vas plus vite pour tout ce qui est IHM... gestion des anchors (possibilité d'attacher un composant sur les bords de la fenetre, resizing)... .Net écrase MFC sauf si tu disposes de "composants" maisons

    Gestion XML... trop facile en .Net...
    LA sérialisation est vraiment aisé... des outils comme XSD.exe sont très utiles.

    Création de UserControl (complexe ou pas)... l'utilisation de GDI+ est "quasiment" la meme en C# qu'en MFC... prime à C# pour la simplicité d'utilisation... et simplicité pour le code.

    Gestion des images: .Net gagne largement (sauf en perfo)... (avec MFC Visual 6, super la gestion des jpeg, png, etc.... une vraie "galère".

    Gestion de plug-in... C'est plus facile en .Net (une archi plug-in en .Net se développe bcp, mais vraiment bcp plus vite qu'en C++... )


    Et j'en passe d'autre.

    Pour info, j'ai travaillé dans une boite ou nous avons developpé un simulateur en .Net, et beh, ca marchait plutot bien...

    Apres, je dirais que tu fais en .Net tout ce que tu faisais en MFC (donc, rien de nouveau), mais seulement, tu le fais juste "PLUS" vite (d'un point de vue développeur)...

    Après, dans quel cas utiliser MFC... Moi, j'aurais tendance à dire que C++/MFC par rapport à C# (.Net) s'est le meme combat que C++/C/Assembleur d'il y a presque 20 ans

    Si tu veux faire une application qui tourne uniquement sous Windows et que tu l'as crée de rien , je trouve ca "idiot" de ne pas faire du .Net....

    Maintenant, si ton appli est super proche du hard, je peux concevoir que tu utilises C++ natif...

    Et si au pire, tu as des traitements très particuliers avec un gros besoin en vitesse, tu mets ton code de traitements dans une DLL C++ et après, tu l'utilises en .Net (un de mes cousins sur Caen fait cela pour des traitements d'images... IHM en VB et code de traitement en C++)...

    JE crois qu'il faut savoir bien délimiter les contextes d'utilisations, les besoins en perfo etc...

    Après, le seul "point" noir de .Net reste l'installation du framework pour fonctionner. Mais bon, Vista est livré avec .Net en natif.. .(ok, j'aime pas vista, mais bon, c'est un fait)

    voila... désolé, je me suis un peu laché sur la durée de mon intervention

    The Monz, Toulouse
    The Monz, Toulouse
    Expertise dans la logistique et le développement pour
    plateforme .Net (Windows, Windows CE, Android)

  14. #14
    Expert éminent sénior
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 360
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 360
    Points : 20 378
    Points
    20 378
    Par défaut
    Citation Envoyé par theMonz31 Voir le message
    .Net, c'est assez rapide, on peut "Tout" faire... génial
    Tout faire sauf mixer du code ASM

    Après, le seul "point" noir de .Net reste l'installation du framework pour fonctionner. Mais bon, Vista est livré avec .Net en natif.. .(ok, j'aime pas vista, mais bon, c'est un fait)

    voila... désolé, je me suis un peu laché sur la durée de mon intervention

    The Monz, Toulouse
    Je trouve que les développements en .NET c'est pas la pérennité d'un projet...c'est mon point de vue perso..
    c'est le même problème qu'il y avait avec ( l'horrible ) Visual Basic..
    Microsoft n'arrête pas de changer son Framework c'est un peu comme les composants VBX et OCX qu'il y avait avec Visual Basic.

    Et puis 30 Mo à distribuer et à lier avec un simple programme qui ouvre une fenêtre ça fait vraiment lourd

  15. #15
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Points : 5 195
    Points
    5 195
    Par défaut
    salut

    le Framework évolue

    Et j'entends les gens dire aussi que les MFC n'évoluent pas et que c'est bien dommage, donc... bon, faut choisir...

    Après.. pour la pérennité, beh, ca existe depuis 6 ans déja et si tu développes en 2.0 , saches que ca tournera avec n'importe quel framework supérieur sans avoir quoique ce soir à changer.

    après, contre l'argument de la taille du framework à installer, je n'ai pas de contre réponse car c'est effectivement dommage. Maintenant, quand tu installes un gros logiciel (style Photoshop, Deluxe Studio (vidéo)etc... tu installes quand meme pas loin de 1 à 2 Go voir plus de bazar, donc, 30 Mo noyé dedans.. c'est pas énorme... maintenant, il est clair que quand tu livres une appli qui fait 1 Mo, ca fait un peu lourd d'avoir 30 Mo de framework à ajouter.... cela dit, une fois le framework installé, c'est fini...

    et perso, comme je livre un CD d'install à mes clients, ce n'est pas génant que le Framework .Net 2.0 soit inclus sur le CD


    Mais je comprends ton argument qui est loin d'être illusoire !

    The Monz, Toulouse
    The Monz, Toulouse
    Expertise dans la logistique et le développement pour
    plateforme .Net (Windows, Windows CE, Android)

  16. #16
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Points : 17 323
    Points
    17 323
    Par défaut
    Citation Envoyé par theMonz31 Voir le message
    salut

    le Framework évolue

    Et j'entends les gens dire aussi que les MFC n'évoluent pas et que c'est bien dommage, donc... bon, faut choisir...

    Après.. pour la pérennité, beh, ca existe depuis 6 ans déja et si tu développes en 2.0 , saches que ca tournera avec n'importe quel framework supérieur sans avoir quoique ce soir à changer.

    après, contre l'argument de la taille du framework à installer, je n'ai pas de contre réponse car c'est effectivement dommage. Maintenant, quand tu installes un gros logiciel (style Photoshop, Deluxe Studio (vidéo)etc... tu installes quand meme pas loin de 1 à 2 Go voir plus de bazar, donc, 30 Mo noyé dedans.. c'est pas énorme... maintenant, il est clair que quand tu livres une appli qui fait 1 Mo, ca fait un peu lourd d'avoir 30 Mo de framework à ajouter.... cela dit, une fois le framework installé, c'est fini...

    et perso, comme je livre un CD d'install à mes clients, ce n'est pas génant que le Framework .Net 2.0 soit inclus sur le CD


    Mais je comprends ton argument qui est loin d'être illusoire !

    The Monz, Toulouse
    faux , voir mon blog

  17. #17
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Points : 16 075
    Points
    16 075
    Par défaut
    en tous cas, ca n'évolue pas aussi vite que .net

  18. #18
    Expert éminent sénior
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 360
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 360
    Points : 20 378
    Points
    20 378
    Par défaut
    Il y a une sorte d'hypocrisie chez Microsoft, si on prend en compte le fait qu'ils se soient largement inspirés de Java pour pondre .NET:

    Extrait du livre "Atelier Visual C++" ou ( Inside Visual C++ en anglais )chez Microsoft Press de Wingo,Sheperd..

    C++ vs. Java
    In the last couple of years, there has been a great deal of interest in the Java programming language. Why should you choose C++ over Java? In the first place, a compiled program will always be faster than an interpreted program. Think about a high-performance spreadsheet program with cell formulas and macros. Now imagine the Java virtual machine interpreting the code that, in turn, interprets the formulas and macros. Not pretty, is it? With just-in-time compilation, it's necessary to compile the program every time you load it. Will that code be as good as the optimized output from a C++ compiler?

    Execution speed is one factor; access to the operating system is another. For security reasons, Java applets can't perform such tasks as writing to disk and accessing serial ports. In order to be platform-independent, Java application programs are limited to the "lowest common denominator" of operating system features. A C++ program for Microsoft Windows is more flexible because it can call any Win32 function at any time.

    Java will be an important language, but we believe it's just another language, not a revolution. If you need an Internet applet or a truly platform-independent application, choose Java. If you need efficiency and flexibility, choose C++.

  19. #19
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Points : 16 075
    Points
    16 075
    Par défaut
    les choses évoluent.

    Dans tous les cas, le CLR c'est pas non plus exactement comme java.
    De plus, tu peux faire du p/invoke ou des appels natifs assez facilement, ce qui rend ton code non-portable. Tout comme du C++ finalement.

  20. #20
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 518
    Points
    41 518
    Par défaut
    Le seul Wingo-shepherd que je vois sur Amazon est à propos de VC++6, donc vieux.

    De plus, .NET contourne le problème de compilation just-in-time grâce au Global Assembly Cache et au Native Image Cache, donc cet argument est toujours valide.

    Tout comme l'argument "Lowest Common Denominator", d'ailleurs.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

Discussions similaires

  1. Que choisir ? C# , VB.NET, C++, Delphi ? pourquoi ?
    Par Louis-Guillaume Morand dans le forum Général Dotnet
    Réponses: 475
    Dernier message: 08/04/2010, 19h27
  2. Qt vs .NET : que choisir ?
    Par vandamme dans le forum Qt
    Réponses: 20
    Dernier message: 16/12/2009, 11h26
  3. Qt vs .NET : que choisir ?
    Par vandamme dans le forum C#
    Réponses: 4
    Dernier message: 16/11/2009, 11h29
  4. [VB.Net] Que choisir tableaux ou collections ?
    Par Pasiphae dans le forum VB.NET
    Réponses: 2
    Dernier message: 16/03/2006, 15h35
  5. [D2005] - Que choisir Winform ou VCL.NET ?
    Par RamDevTeam dans le forum Delphi .NET
    Réponses: 2
    Dernier message: 07/02/2006, 05h25

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