FxCop
| {{#if: | {{{Name}}} | {{#invoke:WLink|getArticleBase}} }}
{{#if: | | ||||||||
|---|---|---|---|---|---|---|---|---|
colspan="2" class="notheme" style="text-align:center; background:#Vorlage:Standardfarbe; color:#202122;" | {{{Logo}}} |
{{#if: {{#invoke:Wikidata|claim|P154}} |
| ||||||||
[[Datei:{{#invoke:Wikidata|claim|P154}}|150px]]
}} }}{{#if: | | ||||||||
| {{#if: | }}| }} | ||||||||
| Basisdaten
{{#if: | | ||||||||
| Hauptentwickler |
{{#if: {{#invoke:Wikidata|claim|P126}} |
| |||||||
| Maintainer | claim|P126|parameter=link|references=ja|list=, }}
}} }}{{#if: Microsoft Corp. | | |||||||
| Entwickler | Microsoft Corp. |
{{#if: {{#invoke:Wikidata|claim|P178}} |
| |||||||
| Entwickler | claim|P178|parameter=link|references=ja|list=, }}
}} }}{{#if: | | |||||||
| Erscheinungsjahr |
{{#if: {{#invoke:Wikidata|claim|P577}} |
| |||||||
| Erscheinungsjahr | claim|P577|references=ja|list=, }} |
{{#if: {{#invoke:Wikidata|claim|P571}} |
| |||||||
| Erscheinungsjahr | claim|P571|references=ja|list=, }}
}} }} }}{{#ifeq: 10.0 | KEINE_ANGABE || {{#if: 10.0 | | |||||||
| Aktuelle Version | ({{#if: | Vorlage:Datum – die Form mit drei unbenannten Parametern oder anderen einzelnen Zeiteinheiten ist veraltet und wird nicht mehr unterstützt. Bitte gib das Datum einfach im Klartext an. |
format | {{{AktuelleVersionFreigabeDatum}}} | {{#timefl:now|date}}}} | {{{2}}} | T._Monat JJJJ}} | lang= {{#switch: | -|=de | #default=de-AT
}} }} }}) }} |
{{#if: {{#invoke:Wikidata|claim|P348|P548|!Q3295609,Q51930650,Q2122918,Q21727724,Q1072356,Q6736813}} |
|
| Aktuelle Version | claim|P348|P548|!Q3295609,Q51930650,Q2122918,Q21727724,Q1072356,Q6736813|references=ja}} {{#if: {{#invoke:Wikidata|claim|P348|P548|!Q3295609,Q51930650,Q2122918,Q21727724,Q1072356,Q6736813|qualifier=P577}} | ({{#invoke:Wikidata|claim|P348|P548|!Q3295609,Q51930650,Q2122918,Q21727724,Q1072356,Q6736813|qualifier=P577}}) }}}}}} }}{{#ifeq: {{{AktuelleVorabVersion}}} | KEINE_ANGABE || {{#if: | | |||||||
| Aktuelle Vorabversion | ({{#if: | Vorlage:Datum – die Form mit drei unbenannten Parametern oder anderen einzelnen Zeiteinheiten ist veraltet und wird nicht mehr unterstützt. Bitte gib das Datum einfach im Klartext an. |
format | {{{AktuelleVorabVersionFreigabeDatum}}} | {{#timefl:now|date}}}} | {{{2}}} | T._Monat JJJJ}} | lang= {{#switch: | -|=de | #default=de-AT
}} }} }}) }} |
{{#if: {{#invoke:Wikidata|claim|P348|P548|Q1072356,Q51930650,Q3295609,Q2122918,Q21727724}} |
|
| Aktuelle Vorabversion | claim|P348|P548|Q1072356,Q51930650,Q3295609,Q2122918,Q21727724|references=ja}} {{#if: {{#invoke:Wikidata|claim|P348|P548|Q1072356,Q51930650,Q3295609,Q2122918,Q21727724|qualifier=P577}} | ({{#invoke:Wikidata|claim|P348|P548|Q1072356,Q51930650,Q3295609,Q2122918,Q21727724|qualifier=P577}}) }}}}}} }}{{#if: | | |||||||
| Ausführungsumgebung |
{{#if: Windows |
| |||||||
| Betriebssystem | Windows |
{{#if: {{#invoke:Wikidata|claim|P306}} |
| |||||||
| Betriebssystem | claim|P306|parameter=link|references=ja|list=, }}
}} }} }}{{#if: | | |||||||
| Programmiersprache |
{{#if: {{#invoke:Wikidata|claim|P277}} |
| |||||||
| Programmiersprache | claim|P277|parameter=link|references=ja|list=, }}
}} }}{{#if: Statische Code-Analyse | | |||||||
| Kategorie | Statische Code-Analyse
}}{{#if: Microsoft Public License | | |||||||
| Lizenz | Microsoft Public License |
{{#if: {{#invoke:Wikidata|claim|P275}} |
| |||||||
| Lizenz | claim|P275|parameter=link|references=ja|list=, }}
}} }}{{#if: nein | | |||||||
| deutschsprachig | faculty|nein}} | ja | nein }}
}}{{#if: | | |||||||
| Sonstiges | {{{Sonstiges}}}
}}{{#if: microsoft.com | | |||||||
microsoft.com |
{{#if: {{#invoke:Wikidata|claim|P856|notdeprecated=1}} |
| ||||||||
{{#invoke: WLink | formatURL | {{#invoke:Wikidata|claim|P856|parameter=link|notdeprecated=1}}}}
}} }}{{#if: | | ||||||||
| Dateien | [[c:Category:Created with {{{Dateien}}}|{{{Dateien}}}]]
}} | |||||||
FxCop ist ein Analysewerkzeug für das .Net-Framework. Es prüft den CIL-Code und den Aufruf-Multigraphen der einzelnen Routinen nach Verstößen gegen die Entwurfsrichtlinien<ref>msdn.microsoft.com</ref> von Microsoft und auf potentielle Schwachpunkte.
Beschreibung
Die Software ist prinzipiell konsolenorientiert. Allerdings lässt sich FxCop auch als externes Werkzeug nach dem Buildvorgang aufrufen. Ferner gibt es für Visual Studio 2008 und Visual Studio 2005 ein Plugin.<ref>{{#switch:
|0|=Vorlage:Toter Link/Core{{#if: http://fxcopaddin.tigris.org/servlets/ProjectDocumentList | {{#if: fxcopaddin.tigris.org | fxcopaddin.tigris.org }} (Seite {{#switch:|no|0|=|dauerhaft }}nicht mehr abrufbar{{#if: 2025-03 | , festgestellt im {{#invoke:DateTime|format|2025-03|F Y}} }}. Suche im Internet Archive ){{#if: 2025-03-14 16:44:41 InternetArchiveBot | {{#if: | | Vorlage:Toter Link/archivebot }} }} | (Seite {{#switch:|no|0|=|#default=dauerhaft }}nicht mehr abrufbar{{#if: 2025-03 | , festgestellt im {{#invoke:DateTime|format|2025-03|F Y}} }}.) }}{{#switch: |no|0|= |#default={{#if: || }} }}{{#invoke:TemplatePar|check |opt = inline= url= text= datum= date= archivebot= bot= botlauf= fix-attempted= checked= |cat = Wikipedia:Vorlagenfehler/Vorlage:Toter Link |errNS = 0 |template = Vorlage:Toter Link |format = |preview = 1 }}{{#if: http://fxcopaddin.tigris.org/servlets/ProjectDocumentList | {{#if:{{#invoke:URLutil|isWebURL|http://fxcopaddin.tigris.org/servlets/ProjectDocumentList}} || {{#if: || }} }} | {{#if: fxcopaddin.tigris.org | {{#if: || }} | {{#if: || }} }} }}{{#if: 2025-03 | {{#if:{{#invoke:DateTime|format|2025-03|F Y|noerror=1}} || {{#if: || }} }} }}{{#switch: |checked|deadurl|= |#default= {{#if: || }} }}|#default= https://wiki-de.moshellshocker.dns64.de/index.php?title=Wikipedia:Defekte_Weblinks&dwl=http://fxcopaddin.tigris.org/servlets/ProjectDocumentList Die nachstehende Seite ist {{#switch:|no|0|=|dauerhaft }}nicht mehr abrufbar]{{#if: 2025-03 | , festgestellt im {{#invoke:DateTime|format|2025-03|F Y}} }}. (Suche im Internet Archive. ) {{#if: 2025-03-14 16:44:41 InternetArchiveBot | {{#if: | | Vorlage:Toter Link/archivebot }} }}Vorlage:Toter Link/Core{{#switch: |no|0|= |#default= {{#if: || }} }}{{#invoke:TemplatePar|check |all = inline= url= |opt = datum= date= archivebot= bot= botlauf= fix-attempted= checked= |cat = Wikipedia:Vorlagenfehler/Vorlage:Toter Link |errNS = 0 |template = Vorlage:Toter Link |format = |preview = 1 }}{{#if: http://fxcopaddin.tigris.org/servlets/ProjectDocumentList | {{#if:{{#invoke:URLutil|isWebURL|http://fxcopaddin.tigris.org/servlets/ProjectDocumentList}} || {{#if: || }} }} }}{{#if: 2025-03 | {{#if:{{#invoke:DateTime|format|2025-03|F Y|noerror=1}} || {{#if: || }} }} }}{{#switch: |checked|deadurl|= |#default= {{#if: || }} }}}}</ref> In Visual Studio Team System und SharpDevelop ist es integriert. Es existiert ebenfalls eine GUI für den Standalone-Betrieb.<ref>[http://msdn.microsoft.com/de-de/library/bb429476(VS.80).aspx msdn.microsoft.com</ref>
Analysemöglichkeiten
FxCop analysiert primär sieben Bereiche:<ref>Details siehe MSDN</ref>
- Nomenklatur (Wörterbuch und Groß-/Kleinschreibung)
- Weiterverwendbarkeit von Code und Interoperabilität
- Referenzierung von Objekten und überflüssige Allokierung
- Sicherheitsrichtlinienverstöße
- Allgemeine Designrichtlinien der Architektur
- Leistungsrichtlinien
- Globalisierungsrichtlinien
Funktionsweise
FxCop analysiert die geladenen Assemblys. Dabei wird der CIL-Code überprüft und der Aufrufgraph analysiert. FxCop verwendet dabei Richtlinien, nach denen die einzelnen Kriterien gegengeprüft werden. In der Benutzerkonfiguration kann angegeben werden, wie eine Richtlinie gehandhabt wird. Zusätzlich lässt sich über Präprozessordirektiven die Überprüfung durch den Quellcode steuern. So können z. B. beanstandete, aber benötigte Fehler, z. B. ein bewusster und unumgänglicher Designverstoß von der Prüfung ausgenommen werden, ohne generell die Überprüfung gegen diese Richtlinie zu unterbinden.
Implementierung
FxCop ist sowohl kommandozeilenbasiert als auch über eine GUI steuerbar. Eine Integration in Visual Studio ist möglich. FxCop lässt sich ebenso durch den Team Foundation Server auswerten. Dabei kann z. B. bei Verstoß gegen die Richtlinien ein Checkin der Software unterbunden werden. Policyverstöße lassen sich auch durch Metriken auswerten, durch die Reports in TFS integrieren und fließen somit in die Qualitätsbeurteilung einer Software mit ein.
Unterstützte Systeme
FxCop benötigt für die Ausführung .NET 2.0, es unterstützt aber die Überprüfung aller Versionen von 1.1 bis 3.5.
Einzelnachweise
<references />