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

C# Discussion :

Différence entre un livrable généré depuis un Release\Debug


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mars 2007
    Messages
    122
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 122
    Par défaut Différence entre un livrable généré depuis un Release\Debug
    Bonjour,

    Quelle est la différence entre un livrable généré depuis un Release et un livrable généré depuis le Debug ? quel type faut il donner aux utilisateurs?.

    Merci infiniment.

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 210
    Par défaut
    Salut,

    La version Release est destinée au client, elle est optimisée (les variables non utilisées ne sont pas compilées, les codes entre les éventuelles balises #DEBUG ne sont pas générées, etc.).

    La version Debug portant bien son nom est destinée au développement, version de test. Je crois même qu'une version debug finit immanquablement par planter avec le temps (les fuites mémoires n'étant pas forcément bien gérées).

  3. #3
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par binoo Voir le message
    Je crois même qu'une version debug finit immanquablement par planter avec le temps (les fuites mémoires n'étant pas forcément bien gérées).
    Ca m'étonnerait... c'était peut-être vrai en C/C++, mais le code managé est presque identique entre debug et release. Il y a quelques optimisations en release, mais rien de très important. Le gros de l'optimisation est fait plus tard par le JIT

  4. #4
    Membre Expert
    Avatar de jbrasselet
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Mars 2006
    Messages
    1 022
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 022
    Par défaut
    De toute manière, il vaut mieux donner une version release aux utilisateurs. C'est plus pro et plus propre.

  5. #5
    Membre Expert
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 210
    Par défaut
    Citation Envoyé par tomlev
    Ca m'étonnerait... c'était peut-être vrai en C/C++, mais le code managé est presque identique entre debug et release.
    Ok merci pour l'info. C'était loin d'être une certitude, mais j'étais resté la dessus.

  6. #6
    Membre émérite Avatar de kheironn
    Homme Profil pro
    Chef de projets technique C# / MVC / .Net
    Inscrit en
    Février 2007
    Messages
    822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projets technique C# / MVC / .Net
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2007
    Messages : 822
    Par défaut
    en release, VS te génère les pdb, tu es dans un mode optimisé avec fichier de "débug"...
    Tu peux configurer tes projets pour qu'ils ne génèrent pas ces fichiers(qui ne servent pas à grand chose en prod) en release.

    Ensuite le mode sert aussi quand tu fais bien les choses et que tu compiles en release sur une machine d'intégration.

  7. #7
    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
    Par défaut
    salut

    Il me semble qu'une chose a été omise (peut-etre est-ce que cela n'est plus vrai), mais à l'époque ou je développais en C++/MFC (avant .Net donc), il était illégale de diffuser une version Debug car, s'appuyant sur les librairies de microsoft en Debug, celle ci ne sont pas redistribuables.

    En clair, on peut utiliser un runtime C++/.NEt release, mais "jamais" Microsoft ne fournira un runtime "debug" des librairies... et à mon avis, il est illégale de faire un installeur avec les versions debug des librairies Microsoft.

    C'était vrai pour des applications C++/MFC, il faudrait vérifier que cela est toujours vrai pour le .Net.

    Voilà pour la précision "licence"

  8. #8
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Par défaut
    Citation Envoyé par kheironn Voir le message
    Tu peux configurer tes projets pour qu'ils ne génèrent pas ces fichiers(qui ne servent pas à grand chose en prod) en release.
    Je ne suis pas d'accord avec cette affirmation : sans les pdb, il est impossible de localiser l'emplacement exact de la levée d'une exception. Donc à moins de ne pas utiliser de trace sérieuses (ce qui est pour le moins étrange sur une appli en prod), la livraison des pdb fait pour moi parti du livrable.

    A moins que tu penses que ta procédure de recette a éliminé toutes les possibilités de levées d'exceptions ....

  9. #9
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 199
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 199
    Par défaut
    Citation Envoyé par tomlev Voir le message
    Ca m'étonnerait... c'était peut-être vrai en C/C++, mais le code managé est presque identique entre debug et release. Il y a quelques optimisations en release, mais rien de très important. Le gros de l'optimisation est fait plus tard par le JIT
    si si
    enfin sur notre appli on se prend un outofmemory au bout de quelques dizaines d'heures en debug (appli H24)

    et en cherchant, je crois qu'en debug y a des weakreference ajoutées de partout, je sais pas si c'est ca qui y fait quelque chose ...
    de plus en mode debug dans vs on peut voir la valeur d'une variable qui est censée être hors de portée, donc c'est bien qu'il les garde

    et à priori ms interdit la livraison en mode debug
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  10. #10
    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
    Par défaut
    Pol63:

    ms interdit la livraison en mode debug

    Ah, il me semblait bien que je ne disais pas trop d’âneries

Discussions similaires

  1. Réponses: 7
    Dernier message: 02/04/2010, 13h32
  2. Différence entre le mode Dbug et Release
    Par imad_eddine dans le forum Visual Studio
    Réponses: 9
    Dernier message: 15/09/2008, 20h40
  3. Réponses: 6
    Dernier message: 11/01/2008, 10h23
  4. Différence entre mode release et mode debug
    Par WELCOMSMAIL dans le forum Visual C++
    Réponses: 1
    Dernier message: 06/11/2006, 10h20
  5. Différence entre deux lancements Release ??
    Par yetpa dans le forum MFC
    Réponses: 10
    Dernier message: 22/02/2006, 14h50

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