Domanda

Sto cercando di ottimizzare il mio applicazione ASP.NET MVC utilizzando alcune tecniche che includono la generazione URL tweaking a la: http://www.chadmoran.com/blog/2009/4/23/optimizing-url-generation-in-aspnet -mvc-parte-2.html

Se la differenza di velocità è così grande tra l'utilizzo RouteValueDictionary al posto di classi anonime, quindi dovrei anche cercare di utilizzare il dizionario al posto di classi anonime quando si definiscono gli attributi HTML?

Per esempio, devo fare questo:

Html.ActionLink("LinkName", "Action", "Controller",
                new RouteValueDictionary { { "id", Model.Id } },
                new { @class = "someCSSClass" })

o dovrei ottimizzare ulteriormente in questo modo:

Html.ActionLink("LinkName", "Action", "Controller",
                new RouteValueDictionary { { "id", Model.Id } },
                new Dictionary<string, object> { { "class", "someCSSClass" } })

Lo so che è ancora più veloce da usare Url.Action, o meglio ancora di usare la tecnica RouteLink, ma mi chiedo solo se le classi anonime dovrebbe essere completamente evitato per ragioni di rapidità.

È stato utile?

Soluzione

Sì, è più veloce di utilizzare il dizionario.

E 'abbastanza veloce per fare la differenza? Solo un profiler posso dire che, per l'applicazione . Io suggerirei che se fa davvero la differenza, allora si dovrebbe essere la memorizzazione nella cache i tuoi visualizzare i risultati in ogni caso.

Io tendo a bastone con le versioni Dictionary, però, perché la forte tipizzazione aiuta a tagliare il pasticcio folle di sovraccarichi di ActionLink . Passare un object rende via troppo facile per finire con il sovraccarico di sbagliato. La velocità è solo un bonus.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top