Gibt es einen automatisierten Weg, um nicht verwendete Ansichten in MVC zu finden?

8

Kennt jemand eine Möglichkeit, ungenutzte Ansichten im Projekt zu finden? mit Resharper oder ohne es. Jede Idee, die einfacher ist, als alle Ansichten aufzuschreiben und alle Controller zu durchlaufen und manuell zu überprüfen, ist sehr geschätzt :) Danke

    
Azadeh Khojandi 21.11.2011, 03:08
quelle

2 Antworten

7

Mit ReSharper können Sie mit der rechten Maustaste auf eine Razor-Ansicht und Suchen nach Usages klicken, aber Sie müssen manuell durchgehen und für alle Ansichten wiederholen (es sei denn, Sie können die ReSharper-API einbinden und automatisieren) .

Das Problem mit Sichten besteht natürlich darin, dass sie auf der Grundlage einer in der Ansichts-Engine definierten Konvention spät gebunden sind. Im Fall von RazorViewEngine sucht sie nach einer entsprechenden Ansicht in ~/Views/{Controller}/{Action} und ~/Views/Shared/{Action} . . Daher ist es schwierig, beim Entwurf oder der Kompilierung zu bestimmen, welche Ansichten, Teilbilder und Vorlagen nie verwendet werden.

Sie können es aus dem anderen Blickwinkel verwenden: Finden Sie heraus, welche Ansichten verwendet werden. Dann diff diese Liste gegen alle Ansichten im Projekt, werte die Ergebnisse aus (manuell und mit ReSharper Find Usages) und bestätige, dass sie wirklich nicht benutzt werden, bevor sie schließlich entfernt werden.

Um die verwendeten Ansichten zu finden, könnten Sie die RazorViewEngine so anpassen, dass sie bei jedem Laden einer Ansicht mit CreateView und FindPartialView , z. B.

, protokolliert wird %Vor%

Konfigurieren Sie es in global.asax.cs

%Vor%

Extrahieren Sie anschließend eine Liste der protokollierten eindeutigen Ansichtspfade, um sie mit den Ansichten Ihres Projekts zu vergleichen. Etwas Aufwand, aber möglicherweise lohnt es sich, wenn Sie viele ungenutzte Ansichten haben, die das Projekt verstopfen.

    
Chris Fulstow 21.11.2011, 04:00
quelle
-1

Sie könnten eine der verdächtigen Ansichten umbenennen und kompilieren ... wenn ein Controller sie benutzt, werden Sie Fehler bekommen:)

Ich kenne keine eingebauten Funktionen, um nach nicht verwendeten Ansichten zu suchen.

    
Romias 21.11.2011 03:43
quelle