2009-08-03 12 views

Respuesta

6

Código en línea can requieren compilación la primera vez que se realiza la solicitud. Después de eso (o si está precompilado), no hay absolutamente ninguna diferencia entre ellos.

Por cierto, incluso si requiere compilación, la diferencia de velocidad debe ser insignificante ya que ASP.NET tendrá que compilar un archivo fuente de todos modos. ¡La diferencia se reducirá a agregar unas pocas líneas de código en un gran archivo fuente!

+0

¿No compila toda la plantilla? – Dykam

+0

Todo el aspx está compilado en origen C#/VB con código en línea incluido directamente en el lugar apropiado. La fuente C# se compilará en un ensamblado IL. –

1

Sí, ish ... Si compila en tiempo de ejecución, siempre va a ser más costoso que algo que no tiene que ser así, pero esa compilación se almacenará en caché (si se quiere) después del primera solicitud para que obtenga cero diferencia a partir de ese momento.

Probablemente haya alguien que conozca otra razón, pero en mi opinión, el único propósito realista para inline es la capacidad de realizar correcciones sin reconstruir + volver a desplegar: el tipo de cosa que podría hacer en proyectos de desarrollo de etapa pequeña o inicial. Personalmente también encuentro en línea un poco ... estéticamente desagradable.

+0

La razón principal de que en línea es posible es la compatibilidad con ASP.classic –

+0

Hay dos tipos de código en línea: asp-ish inline clásico y una gran etiqueta de "script" en la parte superior del archivo que aún separa el código del marcado . –

+0

No estoy seguro de que ASP "clásico" haya sido alguna vez una preocupación para los desarrolladores de ASP.NET yo mismo ... – annakata

1

Las páginas aspx deben analizarse y compilarse de todos modos, ya que ASP.Net las convierte en clases que heredan del código subyacente (de ahí el atributo heredar en la directiva de página) por lo que la compilación es necesaria en ambos casos. La diferencia entre los dos para las primeras carreras va a ser insignificante a menos que hablemos de varios miles de líneas de código.

Pero estoy de acuerdo con anna: inline is icky.

0

No estoy seguro de si el conjunto resultante producido tiene activado o desactivado el atributo AllowOptimize. No puedo encontrar documentación que indique esto de cualquier manera.

Como tal, es posible que el código resultante no sea optimizado por el JIT de la misma manera.

Dudo que esto marque una diferencia significativa (como he dicho que esto podría controlarse de alguna otra manera) pero ciertamente podría afectar ciertas operaciones si, por ejemplo, deshabilitaba la línea y tenías un gran lazo extremadamente apretado . Tal construcción probablemente sería una mala elección dentro de una página asp.net así que esto no debería ser un problema.

0

No. A menos que esté utilizando un proyecto web, el sitio debe compilarse en el primer acceso. Eso afecta tanto a la línea como al código subyacente en cierta medida. Después de eso, corren prácticamente a la misma velocidad.

Cuestiones relacionadas