[C#] FxCop - Sn.exe - Compliant [Résolu]

Signaler
Messages postés
714
Date d'inscription
mardi 22 avril 2003
Statut
Membre
Dernière intervention
19 janvier 2017
-
Messages postés
714
Date d'inscription
mardi 22 avril 2003
Statut
Membre
Dernière intervention
19 janvier 2017
-
je viens de passer mes libs à FxCop (http://www.gotdotnet.com/team/fxcop/) et forcément il a trouvé plein de choses à redire.

Tout d'abord, au revoir la notation hongroise, snif c'est bien dommage,
CT pratique de pouvoir différencier bMyVariable et iMyVariable. Bien
sur si certains disent que l'on a qu'a décompresser en boolMyVariable
mais il le voit aussi.

out & ref, il aime pas du tout, donc si on veut le Perfect, faut revoir certaines fonctions récursives :(



bref, il me reste 2 erreurs où je nage un peu par manque de connaissance.



- Il me parle de marquer l'assembly avec l'attribut
'CLSCompliantAttribute' à true. Je n'ai pas trop compris à quoi ça sert
et ce que ça implique sachant que visiblement ca compile plus forcément
après lors d'héritage.



- Ensuite, il me demande de signer avec une clé forte. Moyennant
'sn.exe' et là je suis en plein cosmos. Comment on fait et surtout
comment ça se passe ce processus ? Je pense principalement en Debug
lorsque l'on compile des versions à tout va ?



Merci

----------------------------
C++ forever
C# amateur

4 réponses

Messages postés
1522
Date d'inscription
mardi 18 décembre 2001
Statut
Modérateur
Dernière intervention
21 août 2010
6
Sn.exe te permet de generer un fichier contenant une clé publique et une clé privée pour signer tes assembly.

Tu stockes ce fichier pres de ta solution et tu le reference dans les
AssemblyInfo.cs de tes projets (un des derniers attributs du fichier
generé.)



Cela ne pose aucuns soucis de travailler en signant à chaque compilation.

A++

Crazyht
MVP Visual C#.NET

[Admin Codes-Sources]
[Membre Developer-Association]
Messages postés
3246
Date d'inscription
lundi 25 avril 2005
Statut
Modérateur
Dernière intervention
27 octobre 2012
36
Tu peux te permettre de ne pas respecter toutes les regles de design, Meme les assemblys de Microsoft sont loin de faire un perfect dans FXCop.. Il faut juste penser aux autres langages .NET..


Avec l'attribut CLSCompliant( true ) le compilateur indiquera un avertissement a chaque fois qu'un element public de ton code n'est pas CLSCompliant, c'est a dire qu'il n'est pas utilisable dans tout les langages .NET, soit tu remplaces l'element soit tu le marque CLSCompliant( false ) pour eviter les messages du compilateur et tu fournis une alternative pour les autres langages..


Tu utilises la signature avec un nom fort ( sn.exe ) uniquement a la fin du developpemet, pour distribuer ta librairie, c'est pas obligatoire.
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
86
Salut,

Je pense que les 2 gros points a respecter sont déjà :
- pas de différenciation par la casse [dans les membres accessibles publiquement] (en VB "test" et "TeSt" c'est pareil)
- si tu met le type dans le nom de var, met le type CLR : boolMyVariable devient booleanMyVariable (le bool C# est en gros un alias de System.Boolean)

Après il y a l'histoire du :
"m_maVariable" au lieu de "_maVariable" pour les champs.
"MaPropriete" pour les propriétés
"monParam" pour les paramètres
"MACONST" pour les constantes
etc etc

PS : et par pitié pas de caractères accentués dans le nom des variables :p

Cocoricoooooooo !!!!
coq
MVP Visual C#
Messages postés
714
Date d'inscription
mardi 22 avril 2003
Statut
Membre
Dernière intervention
19 janvier 2017

Pour la gestion de sn.exe et du strong name, voici la solution :



http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnsql90/html/TutConPIV.asp

c'est un peu plus bas dans le texte, suffit de faire un grep ;p



Et vala, c'est pour qui le perfect ? ;op

----------------------------
C++ forever
C# amateur