Todo acerca de Inline, beside, behind, Web Site Project y Web Application Project.
De
ahora en adelante [PLEFDS = para leer el fin de semana]. Digamos que
hay dos maneras de tener el código de página: código "Inline", ósea
dentro del mismo archivo aspx, y el modelo separado del código de la
aspx, ósea hablamos de Behind y de Beside. La primera pregunta es
¿Inline o código de separado?.
Ahora si escogo código separado,
Behind o Beside?. En VS 2003 sólo teníamos Behind (Web Application
Project). En VS2005 sólo teníamos Beside (Web Site Project), pero si a
VS2005 le poníamos SP1, tenemos disponible los tipos de proyectos, en
VS2008 tenemos los dos también, y ahora la segunda pregunta es: ¿Web
Site Project o Web Application Project?.
Por cierto, y antes de
que salte alguien, estos temas no son nuevos y no es mi intención
presentarlos como una novedad, la idea es presentar un resumen de
estos, y como va esto ahora con VS2008.
Leyendo todos los
artículos de abajo, tengan por seguro que no les quedará ninguna duda.
Si estamos nuevos en esto, y vamos a iniciar un nuevo tipo de proyecto
este tipo de decisiones puede darte satisfacciones o dolores de cabeza
si no tomas una decisión correcta respecto a tu escenario.
Voy
a dar una aproximación rápida, aunque primero quería leer los
principales artículos de abajo cuando hubiera un tiempito libre, pero
si ese tiempito no llega (cosa muy común), quería dejar la lista para
los interesados, y dejar una rápida opinión de acuerdo a la pequeña
experiencia que llevo :D.
Inline o código separado?, pues,
puedes tener los dos en un mismo sitio web, ya que esto es por página,
y puedes usarlo en un Web Site Project, como en un Web Application
Project. Ahora Inline puede recargar mucho el código de página,
convirtiendo el mantenimiento de la misma en una tarea compleja. Yo
recomendaría Inline, para cosas simples como una página que haga un
redirect, y cosas así, cosas que no comprometan la seguridad, porque es
más fácil que vean el aspx (sólo con notepad), que una dll (necesitan Reflector).
Ahora
la pregunta Web Site o Web Application?, a ver decir que en VS2005
eliminaron Web Application, pero después con el SP1 agregaron
nuevamente Web Application. Y en VS2008 tenemos disponibles los dos:
Web Site Project o Web Application Project. Me quedo con esta frase del primer artículo de Patrick MacKay
:
"Como
ya había mencionado, en Visual Studio 2005, la forma de compilación y
entrega para proyectos web cambió considerablemente. Sin entrar en
justificaciones como tampoco en detalles, sólo agregaré que Microsoft
enmendó el rumbo proveyendo algo similar a como funcionaba en Visual
Studio 2003. Éste se llama Visual Studio 2005 Web Application Projects"
No
voy a comentar cual es mejor entre Web Site o Web Application, con
respecto si uno es más fácil de abrir, o si con el otro es más fácil
migrar aplicaciones desde VS2003, si no con respecto al modo de
compilación, por lo que pude ver el modo de compilación de Web
Application Project es mas ordenado que Web Site Project... pero esto
hay que sustentarlo como lo hace Patrick en la serie de artículos que
tiene, y también hay que leer un poco de como funciona todo esto de la
compilación... cuando llegue ese tiempo libre espero poner screenshoots
de las pantallas con los diversos modos, pero si quieren ir
adelantándose pueden probar esto: Creen dos Webs: Web Site Project y
Web Application Project, dentro de cada uno agreguen una página Inline
a la ya existente (en Web Site habrá una página Code-Beside, y en Web
Application una página Code-Behind), agreguen código simple, botones,
cajas de texto, y labels. Publiquen las dos web, y revisen esta
carpeta: C:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary
ASP.NET Files\. Después de navegar en la web, verán como se construyen
las carpetas de compilación, las pruebas que pueden hacer en los web
Site es: Cambiar el código de la página Inline (C# o VB), y vean como
afecta en cada Web, y después de esto cambien el código en una página
con el archivo de código separado, y también como afecta... esta son
las primeras cosas que se me ocurren probar...
P.D.: Y yo que quería dejar un comentario de unas pocas líneas :S.
Espero que llegue ese tiempito, pero por mientras la pequeña lista de artículos:
Introducción:
Web Site vs Web Projects:
Code-Behind vs Code-Inline vs Code-Beside:
Model Compilation ASP.NET 2.0:
MSBuild:
Fuente del Articulo:
Sergio Tarrillo