Statische Überprüfung auf Framework-Konventionen

9

Gibt es ein Produkt / Projekt, mit dem Sie Konventionen für zB ein MVC-Projekt definieren können, um statisch nach Benennungskonventionen wie Controller am Ende von Klassen zu suchen, die vom Controller erben und / oder eine bestimmte Methodensignatur beim Dekorieren erzwingen eine Methode mit einem Attribut.

Im Grunde bin ich auf der Suche nach einer Möglichkeit, einige Leitplanken für neue Entwickler einzurichten, die in unser Team kommen, wo wir eine Reihe von Konventionen haben, von denen einige dazu dienen, Dinge dynamisch durch Reflexion zu verknüpfen. Zu sehen, dass diese Reflexionsübertragung aufgrund einer inkompatiblen Signatur fehlschlagen würde, wäre ein großer Segen für unseren Hochlaufprozess.

Benötigte Schlüsselmerkmale:

  • Statische / Kompilierzeitprüfung auf fehlerhafte Regeln
  • Möglichkeit, Methoden mit bestimmten Attributen (über RegEx oder einen Assistenten) zu targetieren
  • Unterschiedliche Regelsätze basierend auf verschiedenen Arten von Projekten. (Beispiel: Eine Reihe von Konventionen für eine MVC-Anwendung, eine andere Gruppe für eine Web Forms-Anwendung und eine andere Gruppe für eine Klassenbibliothek mit der Endung .BLL)

Alle Eingabevorschläge werden begrüßt, obwohl ich bitte, dass Sie nur antworten, wenn Sie wissen, dass diese Funktionen unterstützt werden.

    
Gent 27.01.2012, 19:35
quelle

1 Antwort

4

Persönliche Erfahrung hier, aber ich schreibe immer Tests für solche Dinge. Ich analysiere meine Assemblies und stelle sicher, dass die Dinge den Konventionen folgen. Für einige spezielle Beispiele überprüfe ich WCF-Anfrage / Antwort-Objekte, um sicherzustellen, dass sie "DTO" nicht über die Leitung senden und sie sich alle in einem konsistenten XML-Namespace befanden.

Hier ist ein kurzes Beispiel, das sicherstellt, dass alle Servicemethoden etwas zurückgeben, das ein BaseResponse-Objekt erbt:

%Vor%

Ich bin sicher, dass jemand etwas besser / automatisierter haben wird, aber das hat für mich funktioniert.

    
Matt Kellogg 27.01.2012, 22:30
quelle