2009-02-11 14 views
9

Acabo de empezar a usar un cms (N2) que tiene una implementación básica de plantilla usando una plantilla de proyecto de sitio web en vs2008. Me he dado cuenta de que, al compilarlo, lleva mucho más tiempo que usar un proyecto de aplicación web que me resulta más útil.Proyectos del sitio web vs Aplicación web: ¿cuál es mejor?

Mis preguntas son:

  1. ¿Por qué parece que tomar mucho más tiempo para compilar?
  2. ¿Qué es mejor usar?
  3. ¿Debo convertirlo en una aplicación web?

Disculpe si es un duplicado pero no he podido encontrar una pregunta similar.

Saludos

+0

Eche un vistazo a esta pregunta: http://stackoverflow.com/questions/475938/what-is-the-difference-between-web-application-and-website-in-asp-net – M4N

+0

No, solo sido ocupado en el trabajo recientemente y sin tener ningún tipo de orden en el tiempo SO ... todo hecho ahora :-) – WestDiscGolf

+0

posible duplicado de [sitio web ASP.NET o aplicación web ASP.NET?] (http://stackoverflow.com/questions/398037/asp-net-web-site-or-asp-net-web-application) –

Respuesta

10

Los Las principales diferencias son:

En un proyecto de aplicación Web todo es pre-compilados todas las páginas de código subyacente se compilan en un archivo .dll ---- En un Sitio web Proyecto nada en el proyecto está precompilado, el compilador compilará todo para asegurarse de que sea válido pero ninguna de las páginas compiladas se cargan. Cuando un usuario intenta acceder al sitio por primera vez, cada página se compila en su propio dll. Esto significa que en un proyecto del sitio web puede subir un archivo de código subyacente.

espacios de nombres - En un proyecto de aplicación Web espacios de nombres se crean de forma predeterminada en un Sitio Web del Proyecto no lo son.

archivos Project - Proyecto Un sitio web no tiene un "cproj" presentar un proyecto de aplicación Web hace.

Converting to a Web Application project puede ser más difícil de lo que piensas especialmente si dependes en gran medida de la carpeta de código de la aplicación.

Personalmente prefiero un Proyectos de aplicaciones web Me resultan más fáciles de usar y menos molestos de implementar. Personalmente, solo utilizaría el proyecto del sitio web en algo muy pequeño y simple.

lectura adicional de MSDN

+0

Agradable, buen resumen –

+0

También puede compilar un proyecto de sitio web para que todo el código detrás y App_Code se compile en dlls y todo el Las páginas aspx son solo apéndices. Sin embargo, no se compilan en un dll como lo hace una aplicación web. – dtc

+0

Sí, puede pero, y puedo estar equivocado, necesita usar msbuild y solo está intercambiando el archivo .cs de page.dll. No creo que te haga ganar mucho más rápido que la primera puesta en marcha – cgreeno

1

Además de la información proporcionada por Chris, también se debe tener en cuenta que, para proyectos de aplicación Web, los perfiles no están disponibles fuera de la caja:

http://www.codersbarn.com/post/2008/06/01/ASPNET-Web-Site-versus-Web-Application-Project.aspx

Hay es una solución disponible aquí: http://code.msdn.microsoft.com/WebProfileBuilder

Básicamente, el proyecto de aplicación web no tiene el objeto de perfil au automáticamente agregado a cada página como con el proyecto del sitio web, por lo que no podemos obtener acceso programático fuertemente tipado a las propiedades de perfil definidas en nuestro archivo web.config.

Anthony :-)

+0

+1 gracias por esto, no sabía sobre esto ya que no lo había usado antes :-) – WestDiscGolf

+0

No hay problema. De hecho, estoy planeando jugar con N2 pero no sabía que estaba basado en un proyecto de sitio web :-) – IrishChieftain

1

Mi preferencia es usar sitio web del proyecto sobre la aplicación web. Confío principalmente en "Ver en el navegador" para ejecutar la página durante el desarrollo y no en f5. Puedo dejar la ventana del navegador abierta y modificar el código sin cerrar el navegador de tiempo de ejecución. Generalmente, si necesito depurar, adjunto el IDE al proceso apropiado. En mi experiencia, es mucho más eficiente hacerlo de esta manera en lugar de compilar y reiniciar la aplicación cada vez que tengo que compilar o hacer cambios. Esto se magnifica aún más si la aplicación tiene una página de inicio de sesión. La necesidad de iniciar sesión se evita cada vez que se presiona F5, dado que hay formas de configurarlo. Pero la preferencia no es.

+0

+1 Punto válido y lo uso en los sitios web en los que trabajo. Curiosamente, esta es también la forma en que puede trabajar con los proyectos de aplicaciones asp.net mvc; build> actualizar hit, no se requiere f5 en el IDE. Depende de lo que estás escribiendo y de lo que intentas lograr :-) – WestDiscGolf

Cuestiones relacionadas