Czy ktoś zna sposób na znalezienie nieużywanych widoków w projekcie? z Resharperem lub bez niego. jakiś pomysł co jest łatwiejsze niż pisanie w dół wszystkie widoki i przejść przez wszystkie kontrolery i sprawdzić ręcznie jest doceniana :) DziękiCzy istnieje automatyczny sposób wyszukiwania nieużywanych widoków w MVC?
Odpowiedz
Z ReSharper możesz kliknąć prawym przyciskiem myszy widok Razor i Znajdź użycie, ale musisz przejść ręcznie i powtórzyć dla wszystkich widoków (chyba że możesz podłączyć się do API ReSharper i zautomatyzować go).
Problem z widokiem oczywiście jest to, że spóźniłeś związany na podstawie konwencji określonej w silniku Widok w przypadku domyślnie RazorViewEngine
szuka odpowiedniego widoku w ~/Views/{Controller}/{Action}
i ~/Views/Shared/{Action}
. Trudno jest więc określić w czasie projektowania lub kompilacji, które widoki, części i szablony nigdy nie są używane.
Możecie approch go od przeciwległego kąta: dowiedzieć się, jakie są używane widoki. Następnie porównuj tę listę ze wszystkimi widokami w projekcie, oceń wyniki (ręcznie i za pomocą ReSharper Find Usages) i potwierdź, że naprawdę nie są używane, zanim ostatecznie je usuniesz.
Aby znaleźć używane widoki, można dostosować maszynę RazorViewEngine do rejestrowania przy każdym załadowaniu widoku za pomocą CreateView
i FindPartialView
, np.
public class LoggingRazorViewEngine : RazorViewEngine
{
protected override IView CreateView(
ControllerContext controllerContext,
string viewPath,
string masterPath)
{
LogManager.GetLogger("").Debug(viewPath);
return base.CreateView(controllerContext, viewPath, masterPath);
}
}
skonfigurować go w Global.asax.cs
ViewEngines.Engines.Clear();
ViewEngines.Engines.Add(new LoggingRazorViewEngine());
Potem wyodrębnić listę zalogowanych unikalnych ścieżek widok porównać przed widokiem swojego projektu. Trochę wysiłku, ale być może warto, jeśli masz dużo nieużywanych widoków zaśmiecających projekt.
Można zmienić nazwę jednego z podejrzanych poglądów i skompilować ... jeśli jakiś kontroler wykorzystuje to ty będzie się błędy :)
nie znam żadnego „wbudowany” cecha patrzeć na niewykorzystane widoki.
- 1. Czy istnieje sposób wyszukiwania historii w nrepl?
- 2. Czy istnieje sposób renderowania częściowych widoków w WebForms?
- 3. Czy istnieje sposób na zignorowanie nieużywanych niezdefiniowanych odniesień?
- 4. Czy istnieje sposób na uniknięcie wyszukiwania liniowego?
- 5. iPhone: Czy istnieje automatyczny sposób identyfikowania niewykorzystanych zasobów?
- 6. UICollectionView: Czy istnieje sposób na przeładowanie tylko widoków dodatkowych?
- 7. Czy istnieje sposób wykonywania ASCX przez MVC?
- 8. Programowo uzyskać listę widoków MVC?
- 9. Czy istnieje sposób generowania rusztowania szyn bez widoków?
- 10. Czy istnieje szybki sposób wyszukiwania zmiennych w R?
- 11. Rozszerzalność widoków ASP.NET MVC w czasie wykonywania
- 12. ASP.NET MVC Globalizacja widoków
- 13. Czy istnieje prosty sposób na znalezienie nieużywanych ciągów w projekcie Android?
- 14. Czy istnieje prosty sposób utworzenia tabeli wyszukiwania javascript?
- 15. Wykonywanie wyszukiwania w Asp.net MVC
- 16. Przechowywanie widoków ASP.Net MVC w bazie danych
- 17. Czy istnieje sposób na zmianę katalogu .net mvc bin dir?
- 18. Usuwanie nieużywanych bibliotek w R
- 19. Dodawanie widoków w podfolderach w ASP.NET MVC 3
- 20. Czy istnieje widok w Asp.Net MVC?
- 21. W jaki sposób mogę zapobiec kompilacji moich "nieużywanych" zmiennych globalnych?
- 22. Czy w VBA jest dostępny skrót automatyczny?
- 23. Wiosenny test integracji MVC - sposób wyszukiwania Zapytanie Ścieżka odwzorowania?
- 24. wiosny MVC z wielu widoków przeliczniki
- 25. Czy istnieje polecenie postgres do listy/upuszczenia wszystkich zmaterializowanych widoków?
- 26. Prekompilacja widoków ASP.NET MVC w aplikacji sieci Web Azure
- 27. Czy istnieje sposób dla NHibernate do informowania, że pamięć podręczna zapytań z widoków jest unieważniana?
- 28. Rozdzielanie widoków mobilnych i tabletów MVC 4
- 29. Czy istnieje implementacja drzewa wyszukiwania binarnego w .NET 4?
- 30. Czy istnieje narzędzie szybkiego wyszukiwania w IntelliJ iDEA?
Jedynym problemem, który może pojawić się w czasie kompilacji jest, jeśli przemianować go poza Visual Studio i nadal istnieje odniesienie do pliku przez poprzednią nazwą w CSProj - w przeciwnym razie będzie to skompilować bez jakichkolwiek widoków pasujące tylko drobne . ReSharper powinien pokazać błąd, jeśli masz go zainstalowany - ale musiałem otworzyć kontroler, aby pokazać błąd. Warto również zauważyć, że nawet to nie jest niezawodne, jeśli istnieje inny widok z pasującą nazwą w Udostępnianej lokalizacji lub w katalogu widoków głównych aplikacji, jeśli widok, który usuwasz, znajduje się w obszarze. – pwdst