[C#] FxCop - Sn.exe - Compliant

Résolu
scoubidou944 Messages postés 714 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 19 janvier 2017 - 12 mai 2005 à 00:12
scoubidou944 Messages postés 714 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 19 janvier 2017 - 25 mai 2005 à 01:31
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

cs_Crazyht Messages postés 1522 Date d'inscription mardi 18 décembre 2001 Statut Membre Dernière intervention 21 août 2010 8
16 mai 2005 à 15:46
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]
3
Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 41
12 mai 2005 à 05:43
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.
0
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
12 mai 2005 à 08:32
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#
0
scoubidou944 Messages postés 714 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 19 janvier 2017
25 mai 2005 à 01:31
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
0
Rejoignez-nous