asp.net-mvc-3 - una - web forms c# ejemplos
¿Hay una forma automática de encontrar vistas sin usar en MVC? (2)
¿Alguien sabe una forma de descubrir las vistas no utilizadas en el proyecto? con Resharper o sin él. cualquier idea que sea más fácil que escribir todas las vistas y pasar por todos los controladores y verificar manualmente se agradece :) Gracias
Con ReSharper, puede hacer clic con el botón derecho en una vista Razor y Buscar usos , pero tendría que pasar manualmente y repetir para todas las vistas (a menos que pueda enganchar en la API de ReSharper y automatizarla).
El problema con las vistas, por supuesto, es que están atrasadas en función de una convención definida en el motor de visualización, en el caso del RazorViewEngine
predeterminado, busca una vista correspondiente en ~/Views/{Controller}/{Action}
y ~/Views/Shared/{Action}
. Por lo tanto, es difícil distinguir en el diseño o el tiempo de compilación qué vistas, parciales y plantillas nunca se utilizan.
Puede acercarse desde el ángulo opuesto: encuentre qué vistas están siendo utilizadas. Luego, compare esta lista con todas las vistas del proyecto, evalúe los resultados (manualmente y con ReSharper Find Usages) y confirme que realmente no se están utilizando antes de eliminarlos finalmente.
Para encontrar las vistas que se utilizan, puede personalizar RazorViewEngine para que se registre cada vez que carga una vista con CreateView
y FindPartialView
, por ej.
public class LoggingRazorViewEngine : RazorViewEngine
{
protected override IView CreateView(
ControllerContext controllerContext,
string viewPath,
string masterPath)
{
LogManager.GetLogger("").Debug(viewPath);
return base.CreateView(controllerContext, viewPath, masterPath);
}
}
Configurarlo en global.asax.cs
ViewEngines.Engines.Clear();
ViewEngines.Engines.Add(new LoggingRazorViewEngine());
Luego, extraiga una lista de rutas de vista exclusivas registradas para compararlas con las vistas de su proyecto. Se necesita un poco de esfuerzo, pero posiblemente valga la pena si tienes muchas vistas sin usar que complican el proyecto.
Podría cambiar el nombre de una de las vistas sospechosas y compilar ... si algún controlador lo está utilizando obtendrá errores :)
No se conoce ninguna característica "incorporada" para buscar vistas no utilizadas.