2009-06-30 13 views
2

Wir haben eine Reihe von Leuten, die an einem Projekt arbeiten. Gibt es ein Tool, das meine gesamte Lösung scannt und prüft, wenn sie über nicht verwalteten Code oder nicht typsicheren Code verfügt?Wie überprüfe ich, ob meine Lösung nicht verwalteten Code hat?

Ziel ist es, die gesamte Lösung mit vollständig verwaltetem Code zu hosten, die Lücken zu finden und sie als typsicheren und verwalteten Code zu reparieren.

Was sind die allgemeinen Schlupflöcher, die ich berücksichtigen und behandeln muss?

Danke.

Antwort

1

PE Verify ist ein nützliches Werkzeug zur Überprüfung der Typensicherheit. Es kennzeichnet nicht verwalteten Code per se nicht. Weitere Informationen finden Sie unter http://msdn.microsoft.com/en-us/library/62bwd2yd(VS.80).aspx

+0

PEVerify ist nützlich nach der Kompilierung, ich muss dies vor der Kompilierung in Visual Studio selbst tun. –

+0

Ich bin mir nicht sicher, ob es ein Tool gibt, das diese "vor" Kompilierung erkennen kann. Vielleicht müssen Sie ein regexbasiertes, benutzerdefiniertes Werkzeug schreiben, das dann in Ihre IDE integriert wird, um dies zu überprüfen. Aber wenn es Ihnen nichts ausmacht, die Compileroption/compare zu entfernen, dann sollten Sie den Compiler zum Werfen bringen ein Fehler. Alles, was Sie jetzt tun müssen, ist die Compilerfehler zu beheben. – Prashanth

0

Vielleicht MoMA ist was Sie brauchen. Dies sollte Ihnen einige Hinweise geben.

1

Um nicht verwalteten Code zu erkennen, lassen Sie unsachgemäßen Code in jedem Projekt einfach ab und sehen Sie, was kompiliert wird.

In verwaltetem Code ist alles typsicher (da der Compiler kein unsicheres Casting ausführen kann), was Sie suchen, ist eher "schwaches Schreiben". Sie können mit der Suche nach Klassen im System.Collection Namensraum wie ArrayList und HashTable beginnen. Sie sollten überhaupt nicht mehr verwendet werden, da es im Namensraum System.Collection.Generic stark typisierte Ersetzungen gibt.

(ich benutze Anführungszeichen um schwache Typisierung in diesem Fall, da es viele verschiedene Definitionen des Begriffs sind, und wir sind nur einige Aspekte davon suchen.)