Url.Action()
o Html.ActionLink()
, éstas son generadas usando mayúsculas y minúsculas según hubiéramos indicado en los parámetros de las llamadas:Helper | URL generada |
---|---|
@Url.Action("index", "home") | /home/index |
@Url.Action("List","Products", new{ Category="PC" }) | /Products/List?Category=PC |
@Url.Action("VIEWALL", "PRODUCTS") | /PRODUCTS/VIEWALL |
Como podemos ver, la URL resultante queda a criterio del desarrollador o, lo que es peor, al puro azar. A veces incluso no es algo que podamos elegir fácilmente, puesto que son generadas por otros componentes como T4MVC. Y no sé si desde el punto de vista del SEO tendrá su impacto, pero desde luego el ofrecer estas direcciones sin un aspecto unificado no da buena impresión.
En versiones anteriores a ASP.NET 4.5, esto podíamos solucionarlo creando helpers, o rutas personalizadas que, heredando de
Route
, realizaran esta conversión a minúsculas. Sin embargo, ahora disponemos de un mecanismo más cómodo para forzar que las URLs generadas sean normalizadas a minúsculas, así:public class RouteConfig { public static void RegisterRoutes(RouteCollection routes) { routes.LowercaseUrls = true; routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); [...] } }
Un detalle, sin duda interesante, para tener en cuenta en nuestros desarrollos.
Publicado en: Variable not found.
Publicado por José M. Aguilar a las 9:30 a. m.
Etiquetas: asp.net, aspnetmvc, desarrollo, trucos
.Net
- Static analysis of is
Eric Lippert - C# 5.0 Async explained as simple as possible :)
Chris van Beek (vía @pmolinam) - 2012 Update- Running C# on the Browser
Miguel de Icaza - C#/.NET Little Wonders: Interlocked CompareExchange()
James Michael Har - Amazing. What’s new in WPF 4.5?
Jerry Nixon
Asíncronía = bueno
A grandes rasgos, la explicación es la siguiente: IIS tiene disponible un número limitado de hilos (threads) destinados a procesar las peticiones. Cuando llega una petición, uno de estos hilos es asignado en exclusiva a ella y permanecerá ocupado hasta que haya sido totalmente procesada. Si llegan peticiones cuando todos los hilos están ocupados, se introducen en una cola, también limitada. Cuando el tamaño máximo de esta cola ha sido superado, ya al servidor no le queda más remedio que responder con un error HTTP 503 al usuario indicándole que está seriamente ocupado.
.Net
La verdad es que hemos tenido un veranito cargado de novedades. De hecho, nos encontramos a la vuelta de las vacaciones con versiones renovadas en todos los productos que usamos habitualmente para nuestro trabajo: sistemas operativos, plataforma .NET, entorno de desarrollo, EF, MVC… muchos juguetitos nuevos a los que hincarle el diente, y de los que seguro que hablaremos largamente durante los próximos meses.
Dicho esto, ¡queda inaugurada la temporada 2012-2013 de Variable not found!
Como siempre, nos vemos por aquí :-)
Publicado por José M. Aguilar a las 9:15 a. m.
Etiquetas: blogging, variablenotfound, variablenotfound.com
Hasta el próximo mes de Septiembre soltaré el timón de Variable not found y lo dejaré a la deriva, hasta que vuelva con energías renovadas y ánimos para afrontar el próximo año con la misma ilusión y dedicación que siempre.
En cuanto a los planes veraniegos, este año no voy a poder disfrutar de todo el tiempo libre que me
Pero aún así, tendremos tiempo de hacer una nueva escapada a Mallorca, donde ya estuvimos el año pasado y estamos deseando repetir, y seguro que alguna que otra visita fugaz a playas cercanas de Cádiz y Huelva.
Nos vemos en unas semanillas :-)
¡Felices vacaciones, amigos!