Nuestro portal web actual en el trabajo era un puerto de una base de código ASP clásico. Actualmente, todas las páginas de nuestro proyecto extienden una clase personalizada Page
llamada PortalPage
. Maneja el inicio/cierre de sesión, proporciona acceso a un objeto público User
para el usuario autenticado actualmente, y agrega el encabezado y el pie de página estándar a todas nuestras páginas.¿Diseñando todas las páginas completamente en el código subyacente?
Cada La página en nuestro sitio está 100% diseñada en el código subyacente. La página ASPX no se usa en absoluto. Cada div, img y bloque de texto se asignan como un objeto y se agregan desde una función C#, incluso si se trata de contenido completamente estático (del que tenemos una cantidad decente).
Ejemplo para un encabezado de página:
HtmlGenericControl wrapperDiv = new HtmlGeneric("div");
HtmlAnchor bannerLink = new HtmlAnchor();
HtmlImage banner = new HtmlImage();
bannerLink.HRef = "index.aspx";
banner.Src = "mybanner.png";
banner.Alt = "My Site";
bannerLink.Controls.Add(banner);
wrapperDiv.Controls.Add(bannerLink);
this.Page.Controls.Add(wrapperDiv);
Lo que es peor, se añade todo el Javascript para la página como un lío gigante de concatenaciones de cadenas:
ClientScript.RegisterClientScriptBlock(this.GetType(), "javascript", @"
<script language='javascript'>
fullUrl = '" + ConfigurationManager.AppSettings["fullUrl"].ToString() + @"';
function showModule()
{
$('#" + this.userModule.ClientID + @"').css('display','block');
$('#" + this.groupModule.ClientID + @"').css('display','none');
$('#" + this.listsModule.ClientID + @"').css('display','none');
$('#" + this.labelsModule.ClientID + @"').css('display','none');
}
En la actualidad, uno de mis compañeros de trabajo aducen que asignar cada objeto en el código subyacente es cientos de veces más rápido que utilizar el enfoque ASPX w/Codebehind que veo en todas las demás aplicaciones web. Esto va en contra de mis instintos, ya que básicamente está agregando runat="server"
a cada pieza de HTML en la página.
También dice que todas las tiendas profesionales escriben el código de esta manera y nunca usan páginas ASPX. Él dice que todos los libros de texto y el código de muestra utilizan páginas ASPX porque son más fáciles de entender para los programadores novatos. ¿Hay algo de cierto en esto o solo estamos escribiendo de una manera increíblemente ineficiente por el bien de la tradición?
Para que podamos cambiar a la forma "estándar" de escribir formularios web, necesito proporcionar alguna fuente para mostrar que está equivocado.
Mi problema es que nunca he oído hablar de nadie escribiendo todo en el código subyacente. Todos los ejemplos que he visto páginas ASPX utiliza para la interfaz de usuario y un código subyacente de la lógica, las llamadas bases de datos, etc.
Así que en resumen:
1) ¿Son las páginas ASPX realmente mucho más lento que el 100% de código subyacente?
2) ¿Las tiendas profesionales realmente usan código 100% detrás?
3) Si ASPX w/codebehind es el camino a seguir, ¿alguien tiene enlaces válidos que puedan ayudarme a respaldarme?
Suena como un chico en busca de excusas para hacer las cosas de esta manera. Nunca ** he visto ** ningún lugar que haga 100% de código detrás. – Oded
Para citar erróneamente a Charles Babbage, "no soy capaz de comprender el tipo de confusión de ideas que podría provocar un método de desarrollo web como este". – Carson63000
En términos técnicos: su compañero de trabajo es golpeado. Esta tiene que ser la forma más oscura e ineficaz de código que he escuchado. Perdiste TODA LA capacidad de ajustar el diseño de la página mientras se ejecuta (que tal vez ni siquiera conozcas dado tu enfoque) y todo ¿para qué? ¿Para que puedas presumir de escribir el código más abstruso posible? –