Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1910 connectés 

 


 Mot :   Pseudo :  
  Aller à la page :
 
 Page :   1  2  3  4  5  ..  15  16  17  ..  77  78  79  80  81  82
Auteur Sujet :

[Topic unique] .Net @ Prog

n°2095989
kaiser52
Posté le 18-08-2011 à 14:47:11  profilanswer
 

Reprise du message précédent :
Salut à vous,
 
J'ai une petite question con sur les habitudes de chacun.
 
J’essaye généralement d'avoir le moins de block try catch finaly.
 
Bien sûr quand je dois créer ce type de bloc je m'obstine à tout architecturer bien pour utiliser de façon cohérente le bloc finaly, je catch aussi les exceptions spécifique, pas de gros bloc exception.
 
Je voulais connaitre votre habitude de ce côté-là ?


---------------
Benchmarks du peuple - Crysis War - Vide grenier ! - nVIDIA Tegra
mood
Publicité
Posté le 18-08-2011 à 14:47:11  profilanswer
 

n°2096091
nucl3arfl0
Better Call Saul
Posté le 18-08-2011 à 19:07:20  profilanswer
 

Y a rien d'anormal à utiliser le t/c/f, bien au contraire !
Après s'il y a des exceptions non managées, tu les rejettes, mais sinon tu les traites.

 

Je fais pas mal de spécialisations de la classe Exception pour avoir quelque chose de très propre et explicite.

 

Par contre, je trouve qu'il vaut mieux pas utiliser le t/c/f de façon laborieuse au lieu d'utiliser des conditions if/then/else, car on y perd beaucoup sur le côté performance (testé et pas approuvé :) )

 

Le finally je m'en sers souvent quand je travaille avec des flux (réseau, fichiers) pour les fermer proprement.
C'est plus rare avec un datacontext, en général, mon using se trouve dans la portion "try".

Message cité 1 fois
Message édité par nucl3arfl0 le 18-08-2011 à 19:10:20
n°2096092
Taiche
(╯°□°)╯︵ ┻━┻
Posté le 18-08-2011 à 19:13:14  profilanswer
 


Ba c'est comme tout, y a de bonnes et de mauvaises utilisations. Genre dans un bloc try/catch tu ouvres une connec vers une base de données, si jamais un truc inattendu arrive et que tu sors du try, t'es bien content de pouvoir fermer la connec dans un finally.


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
n°2096134
kaiser52
Posté le 18-08-2011 à 21:07:41  profilanswer
 

Bien sympas comme retour d'expérience. :)
 
J'utilise souvent Try / Catch / Finaly pour tout ce qui est IDisposable avec des exécutions critiques.
Mais en générale j'essaye de me débrouiller sans, quand j'arrive sur les méthodes les arguments ont déjà été validé auparavant.
 
Par moments il peut m'arriver de faire des méthodes type TryNomDeLaMethode (Voir des méthodes d’extensions), mais là c’est plus spécifique au projet.
 
nucl3arfl0, as-tu des chiffres coté performances ? Car ce que tu viens de me dire m'intéresse beaucoup. :)
 
Fred82, oui j’ai cette option d’activé, c’est clairement utile, beaucoup plus simple lors du debug.
 
Taiche, exactement. :)

Message cité 2 fois
Message édité par kaiser52 le 18-08-2011 à 21:08:43

---------------
Benchmarks du peuple - Crysis War - Vide grenier ! - nVIDIA Tegra
n°2096158
nucl3arfl0
Better Call Saul
Posté le 18-08-2011 à 21:58:15  profilanswer
 

kaiser52 a écrit :

Bien sympas comme retour d'expérience. :)

 

J'utilise souvent Try / Catch / Finaly pour tout ce qui est IDisposable avec des exécutions critiques.
Mais en générale j'essaye de me débrouiller sans, quand j'arrive sur les méthodes les arguments ont déjà été validé auparavant.

 

Par moments il peut m'arriver de faire des méthodes type TryNomDeLaMethode (Voir des méthodes d’extensions), mais là c’est plus spécifique au projet.

 

nucl3arfl0, as-tu des chiffres coté performances ? Car ce que tu viens de me dire m'intéresse beaucoup. :)

 

Fred82, oui j’ai cette option d’activé, c’est clairement utile, beaucoup plus simple lors du debug.

 

Taiche, exactement. :)


Des chiffres non, désolé.

 

Mais j'ai travaillé sur un produit qui a une interface où tu peux sélectionner des éléments à la souris. Si un élément sortait d'une zone limitée, une exception était levée (au sein d'un élément) et était gérée.
Ben je peux te dire que quand tu commençais à avoir beaucoup d'éléments sélectionnés, il n'appréciait pas trop.

 

J'avais fait un test comme ça pour voir, ben remplacé par un bonne vieille condition, c'était redevenu fluide.


Message édité par nucl3arfl0 le 18-08-2011 à 22:00:32
n°2096163
mareek
Et de 3 \o/
Posté le 18-08-2011 à 22:09:19  profilanswer
 

nucl3arfl0 a écrit :

Le finally je m'en sers souvent quand je travaille avec des flux (réseau, fichiers) pour les fermer proprement.
C'est plus rare avec un datacontext, en général, mon using se trouve dans la portion "try".

Taiche a écrit :

Ba c'est comme tout, y a de bonnes et de mauvaises utilisations. Genre dans un bloc try/catch tu ouvres une connec vers une base de données, si jamais un truc inattendu arrive et que tu sors du try, t'es bien content de pouvoir fermer la connec dans un finally.

kaiser52 a écrit :

J'utilise souvent Try / Catch / Finaly pour tout ce qui est IDisposable avec des exécutions critiques.


Dans ces cas là, je préfère largement utiliser un using, c'est beauoup plus clair et concis et je suis sûr de pas m'emmeler les pédales.  
 
Sinon je suis plutot comme fred82, je n'utilise les try catch que dans des cas bien définis sinon je laisse les exception remonter.
 
A ce sujet, je recommande cet excellent article d'Eric Lippert:
http://blogs.msdn.com/b/ericlipper [...] tions.aspx


---------------
"I wonder if the internal negative pressure in self pumping toothpaste tubes is adjusted for different market altitudes." John Carmack
n°2096210
mareek
Et de 3 \o/
Posté le 19-08-2011 à 01:23:00  profilanswer
 


Ce n'est pas représentatif, les exceptions sont lourdes mais heureusement pas à ce point.
petit test effectué sur mon netbook:

Code :
  1. var rnd = new Random();
  2. var nbTemoin = 0;
  3. var chronoTemoin = Stopwatch.StartNew();
  4. for (var i = 0; i < 100000; i++)
  5. {
  6.    if (rnd.Next(9) < 5)
  7.    {
  8.        nbTemoin++;
  9.    }
  10. }
  11. chronoTemoin.Stop();
  12.  
  13. var nbException = 0;
  14. var chrono = Stopwatch.StartNew();
  15. for (var i = 0; i < 100000; i++)
  16. {
  17.    try
  18.    {
  19.        if (rnd.Next(9) < 5)
  20.        {
  21.            throw new Exception();
  22.        }
  23.    }
  24.    catch
  25.    {
  26.        nbException++;
  27.    }
  28. }
  29. chrono.Stop();
  30.  
  31. MessageBox.Show(string.Format("Nb exception : {0}  Durée : {1}\r\nNb temoin    : {2}  Durée : {3}", nbException, chrono.Elapsed, nbTemoin, chronoTemoin.Elapsed));
 

Nb exception : 55403  Durée : 00:00:04.8223048

 

Nb temoin    : 55513  Durée : 00:00:00.0097033

 

Soit environ 90 microsecondes a chaque excepetion.


Message édité par mareek le 14-11-2011 à 00:54:00

---------------
"I wonder if the internal negative pressure in self pumping toothpaste tubes is adjusted for different market altitudes." John Carmack
n°2096216
nucl3arfl0
Better Call Saul
Posté le 19-08-2011 à 07:58:47  profilanswer
 

mareek a écrit :


Dans ces cas là, je préfère largement utiliser un using, c'est beauoup plus clair et concis et je suis sûr de pas m'emmeler les pédales.  
 
Sinon je suis plutot comme fred82, je n'utilise les try catch que dans des cas bien définis sinon je laisse les exception remonter.
 
A ce sujet, je recommande cet excellent article d'Eric Lippert:
http://blogs.msdn.com/b/ericlipper [...] tions.aspx


L''article est intéressant :jap:
 
Je préfère également les using, mais ça n'empêche pas l'utilisation des try/catch/finally dans certains cas.
D'ailleurs, quelqu'un en fait la remarque dans les commentaires dans l'article, il est difficile de lister toutes les exceptions que tu peux avoir.
 
En résumé, comme ça a déjà  été dit, c'est comme tout, il y a de bonnes et des mauvaises utilisations., mais de là à s'en passer, ce n'est pas un pas que je ferai.

n°2096252
Taiche
(╯°□°)╯︵ ┻━┻
Posté le 19-08-2011 à 10:21:15  profilanswer
 

mareek a écrit :


Dans ces cas là, je préfère largement utiliser un using, c'est beauoup plus clair et concis et je suis sûr de pas m'emmeler les pédales.

 

Sinon je suis plutot comme fred82, je n'utilise les try catch que dans des cas bien définis sinon je laisse les exception remonter.

 

A ce sujet, je recommande cet excellent article d'Eric Lippert:
http://blogs.msdn.com/b/ericlipper [...] tions.aspx


Je vois pas comment utiliser un using dans le cas d'une connec à une BDD :??: Parce que justement, c'est plutôt un truc de type fatal genre une requête qui se ramasse parce que la procédure stockée a changé de signature ou que sais-je. Là, t'as quand même envie de fermer la connec d'une part pour pas empirer les choses (par exemple, j'ai déjà vu un soft qui se connectait en boucle à la base, la connec était établie mais le serveur surchargé ne répondait pas suffisamment vite à la requête donc on se casse sans flinguer la connec et on revient X secondes plus tard ; je te raconte pas l'état du pool de connec et du serveur au bout d'1h) et d'autre part pour pas bloquer le client dans certains cas.
'fin ch'ais pas, j'ai effectivement utilisé using dans le cas de l'ouverture de fichier comme mentionné dans l'article, mais jamais pour une connec à une BDD.


Message édité par Taiche le 19-08-2011 à 10:21:58

---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
n°2096272
Taiche
(╯°□°)╯︵ ┻━┻
Posté le 19-08-2011 à 10:39:09  profilanswer
 

Oui effectivement. L'utilisation de using n'est pas naturelle chez moi (je viens de Java :D), donc j'ai tendance à l'utiliser seulement dans certains cas (fichier parce que c'est comme ça que j'ai appris mais aussi code managé), sans penser aux autres.


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
mood
Publicité
Posté le 19-08-2011 à 10:39:09  profilanswer
 

n°2096274
nucl3arfl0
Better Call Saul
Posté le 19-08-2011 à 10:40:29  profilanswer
 


Ben oui, vu que la portée de la variable est celle du "try".

 

Voilà un exemple tout bidon.

Code :
  1. try
  2. {
  3.      using (DataContext dc = new DataContext())
  4.      {
  5.            List<DAL.Object> objList = dc.Objects.ToList();
  6.      }
  7. }
  8. catch
  9. {
  10.       // ici, dc n'existe pas car sa portée est dans le try.
  11. }


Message édité par nucl3arfl0 le 19-08-2011 à 10:40:57
n°2096343
alien cons​piracy
hardtrance addict
Posté le 19-08-2011 à 14:09:19  profilanswer
 

Mon code ne génère pas d'exception.

n°2096405
Taiche
(╯°□°)╯︵ ┻━┻
Posté le 19-08-2011 à 16:23:52  profilanswer
 

Sinon, chouette blog celui d'Eric Lippert, merci marique :jap:
http://blogs.msdn.com/b/ericlipper [...] three.aspx Une bonne lecture :D


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
n°2096406
alien cons​piracy
hardtrance addict
Posté le 19-08-2011 à 16:24:31  profilanswer
 


You made my day.

n°2096409
nucl3arfl0
Better Call Saul
Posté le 19-08-2011 à 16:31:39  profilanswer
 

alien conspiracy a écrit :

Mon code ne génère pas d'exception.


 

alien conspiracy a écrit :


You made my day.


 
 [:totozzz]

n°2096412
alien cons​piracy
hardtrance addict
Posté le 19-08-2011 à 16:38:23  profilanswer
 


Malheureusement je travaille en équipe. [:dawa]

n°2096413
kaiser52
Posté le 19-08-2011 à 16:41:45  profilanswer
 

C'est facile de rejeter la faute sur les autres. [:d_omi]


---------------
Benchmarks du peuple - Crysis War - Vide grenier ! - nVIDIA Tegra
n°2096415
alien cons​piracy
hardtrance addict
Posté le 19-08-2011 à 16:56:24  profilanswer
 

kaiser52 a écrit :

C'est facile de rejeter la faute sur les autres. [:d_omi]


Règle d'or à retenir si on veux vite monter les échelons. :D

n°2096440
kaiser52
Posté le 19-08-2011 à 17:56:56  profilanswer
 

Tout à fait d'accord, mais ça peut aussi rester en tête, ce n’est pas bien de se mentir. :D


---------------
Benchmarks du peuple - Crysis War - Vide grenier ! - nVIDIA Tegra
n°2096567
mareek
Et de 3 \o/
Posté le 21-08-2011 à 00:19:41  profilanswer
 

Taiche a écrit :

Sinon, chouette blog celui d'Eric Lippert, merci marique :jap:
http://blogs.msdn.com/b/ericlipper [...] three.aspx Une bonne lecture :D


Tu peux dire ça de 90% des articles de son blog, c'est un des meilleurs blog de prog que je lis (si ce n'est le meilleur).


---------------
"I wonder if the internal negative pressure in self pumping toothpaste tubes is adjusted for different market altitudes." John Carmack
n°2096572
nucl3arfl0
Better Call Saul
Posté le 21-08-2011 à 07:13:48  profilanswer
 

Tiens, par rapport a l'article d'au dessus , quelqu'un utilise "volatile" ? Je ne l'ai jamais utilise et j'ai du mal a y trouver une application [:sniperlk]

n°2096578
Taiche
(╯°□°)╯︵ ┻━┻
Posté le 21-08-2011 à 10:05:16  profilanswer
 

Bin justement, lis l'article :D


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
n°2096595
TotalRecal​l
Posté le 21-08-2011 à 17:22:51  profilanswer
 

nucl3arfl0 a écrit :

Tiens, par rapport a l'article d'au dessus , quelqu'un utilise "volatile" ? Je ne l'ai jamais utilise et j'ai du mal a y trouver une application [:sniperlk]


C'est une solution pour feignasse pour éviter d'avoir à gérer proprement l'interlocking sur les variables quand tu fais du multithread ou de l'IPC. En gros c'est moche mais ça marche bien la plupart du temps, jusqu'à ce que.


---------------
Topic .Net - C# @ Prog
n°2096600
nucl3arfl0
Better Call Saul
Posté le 21-08-2011 à 20:22:32  profilanswer
 

Ah ok :D
J'utilise généralement le lock ou les sémaphores selon le contexte, mais j'ai jamais entendu parlé de ce genre de truc :D

n°2096627
mareek
Et de 3 \o/
Posté le 21-08-2011 à 23:24:38  profilanswer
 

TotalRecall a écrit :


C'est une solution pour feignasse pour éviter d'avoir à gérer proprement l'interlocking sur les variables quand tu fais du multithread ou de l'IPC. En gros c'est moche mais ça marche bien la plupart du temps, jusqu'à ce que.


Je vois plus ça comme un outil bas niveau pour ceux qui comprennent vraiment de quoi ils parlent (c.a.d. pas nous).


---------------
"I wonder if the internal negative pressure in self pumping toothpaste tubes is adjusted for different market altitudes." John Carmack
n°2096790
TotalRecal​l
Posté le 22-08-2011 à 21:39:28  profilanswer
 

mareek a écrit :


Je vois plus ça comme un outil bas niveau pour ceux qui comprennent vraiment de quoi ils parlent (c.a.d. pas nous).


Pas faux (et je n'ai pas de prétentions contraires pour ce qui est de mon niveau de maitrise de ces questions :jap:). Cela dit, justement, les gens qui les comprenne comme Lippert ne semblent pas franchement en recommander l'utilisation [:spamafote].


---------------
Topic .Net - C# @ Prog
n°2097434
nucl3arfl0
Better Call Saul
Posté le 25-08-2011 à 10:44:49  profilanswer
 

Y a des gens qui utilisent le Framework Client Profile ?
 
Quel intérêt apporte-t'il principalement ?
 
Je pensais que ça permettait de déployer un client sans avoir à installer le framework (quitte à être plus limité), mais apparemment, il faut quand même installer le-dit framework.
Alors je me pose la question.

n°2097477
nucl3arfl0
Better Call Saul
Posté le 25-08-2011 à 13:33:01  profilanswer
 

Ben après, ça dépend si c'est Visual Studio qui crée le setup, ou un logiciel tiers ?
 
Mais d'après ce que j'ai lu, il faut quand même l'installation d'un framework client profile pour que ça fonctionne.
Donc quitte à devoir installer un framework pour que ça marche, je me demande quel est son intérêt principal.

n°2097480
nucl3arfl0
Better Call Saul
Posté le 25-08-2011 à 13:39:45  profilanswer
 

Je n'ai jamais eu l'occasion de l'utiliser, mais je sais qu'il existe.
 
On utilise beaucoup InnoSetup ici, pour le packaging, mais honnêtement, c'est vraiment à chier.

n°2101200
massanu
Posté le 13-09-2011 à 11:24:03  profilanswer
 

Salut les gars :)
 
J'ai besoin d'un coup de main à un niveau plus abstrait, je refait une partie du système de gestion des User de notre plateforme mais j'ai des doutes sur la conception.
 
Pour ce qui sera du code, toujours en (.Net) C# 3.5 (pas de MVC, Sql Server 2005 + PS)
 
Si vous avez une idée :jap:
 
http://forum.hardware.fr/hfr/Progr [...] 4774_1.htm


---------------
Oui je sais, je suis une merde en orthographe et alors ? Altcoin list: https://docs.google.com/spreadsheet [...] =286417424
n°2102229
nucl3arfl0
Better Call Saul
Posté le 19-09-2011 à 15:18:22  profilanswer
 

Et comme ça, ça te le fait aussi ?
 

Code :
  1. Bitmap img = (Bitmap)Bitmap.FromFile("C:\test\test.jpg" );

mood
Publicité
Posté le   profilanswer
 

 Page :   1  2  3  4  5  ..  15  16  17  ..  77  78  79  80  81  82

Aller à :
Ajouter une réponse
 

Sujets relatifs
service web REST en VB.NET HeySpreadRequete Access avec paramètres, éxécutée en VB .Net
impersonalisation sous ASP.NET[Topic Unique] les blagues pourries de harko et florentg
Generation d'un GIF en ASP.NETAppeler un service web .NET sécurisé en Java
Prog Visual Basic "periodicité"[Oracle] Temps d'execution de requete tres long par rapport au .NET
[VB.NET] Lister des imprimantes réseauxFusion de résultats de requêtes dans une unique Table
Plus de sujets relatifs à : [Topic unique] .Net @ Prog


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)