¿Sitio web ASP.NET o aplicación web ASP.NET?

Cuando comienzo un nuevo proyecto ASP.NET en Visual Studio, puedo crear una aplicación web ASP.NET o puedo crear un sitio web ASP.NET.

¿Cuál es la diferencia entre la aplicación web ASP.NET y el sitio web ASP.NET? ¿Por qué elegiría uno sobre otro?

¿La respuesta es diferente según la versión de Visual Studio que estoy usando?

preguntado el 29 de diciembre de 08 a las 14:12

Aquí, en MSDN, encontrará una comparación y una explicación completas y más recientes (para 4.5): Proyectos de aplicaciones web versus proyectos de sitios web en Visual Studio -

25 Respuestas

Pagina web:

EL sitio web El proyecto se compila sobre la marcha. Terminas con muchos más archivos DLL, lo que puede ser una molestia. También da problemas cuando tiene páginas o controles en un directorio que necesitan hacer referencia a páginas y controles en otro directorio, ya que es posible que el otro directorio aún no esté compilado en el código. Otro problema puede estar en la publicación.

Si no se le dice a Visual Studio que reutilice los mismos nombres constantemente, aparecerá con nuevos nombres para los archivos DLL generados por las páginas todo el tiempo. Eso puede llevar a tener varias copias cercanas de archivos DLL que contienen el mismo nombre de clase, lo que generará muchos errores. El proyecto del sitio web se introdujo con Visual Studio 2005, pero resultó no ser popular.

Aplicación web:

EL Aplicación web El proyecto se creó como un complemento y ahora existe como parte del SP 1 para Visual Studio 2005. Las principales diferencias son que el proyecto de aplicación web se diseñó para funcionar de manera similar a los proyectos web que se enviaron con Visual Studio 2003. Compilará la aplicación. en un solo archivo DLL en el momento de la compilación. Para actualizar el proyecto, se debe volver a compilar y publicar el archivo DLL para que se produzcan cambios.

Otra característica interesante del proyecto de aplicación web es que es mucho más fácil excluir archivos de la vista del proyecto. En el proyecto del sitio web, se cambia el nombre de cada archivo que excluye con una palabra clave excluida en el nombre del archivo. En el Proyecto de aplicación web, el proyecto simplemente realiza un seguimiento de qué archivos incluir / excluir de la vista del proyecto sin cambiarles el nombre, lo que hace que las cosas sean mucho más ordenadas.

Referencia

El artículo ASP.NET 2.0 - Proyecto de sitio web vs aplicación web también da razones sobre por qué usar uno y no el otro. He aquí un extracto del mismo:

  • ¿Necesita migrar grandes aplicaciones de Visual Studio .NET 2003 a VS 2005? utilizar el proyecto de aplicación web.
  • ¿Quiere abrir y editar cualquier directorio como un proyecto web sin crear un archivo de proyecto? utilizar el proyecto del sitio web.
  • ¿Necesita agregar pasos previos y posteriores a la compilación durante la compilación? utilizar el proyecto de aplicación web.
  • ¿Necesita crear una aplicación web utilizando varios proyectos web? utilizar el proyecto de aplicación web.
  • ¿Quiere generar un ensamblaje para cada página? utilizar el proyecto del sitio web.
  • ¿Prefieres la compilación dinámica y trabajar en páginas sin crear un sitio completo en cada vista de página? utilizar el proyecto del sitio web.
  • ¿Prefiere el modelo de código de una sola página al modelo de código subyacente? utilizar el proyecto del sitio web.

Proyectos de aplicaciones web versus proyectos de sitios web (MSDN) explica las diferencias entre el sitio web y los proyectos de aplicaciones web. Además, analiza la configuración que se realizará en Visual Studio.

respondido 18 nov., 20:15

Aún puede compilar todo su sitio en un dll con el sitio web basado en archivos. - dTC

La forma en que tiendo a pensar en ello. Si está programando una aplicación que utiliza HTML como interfaz de usuario, utilice Aplicación web. Si tiene un sitio web que necesita un poco de Asp.net en algunas de sus páginas, utilice Web Site Project. - Ian Ringrose

En realidad, los proyectos de aplicaciones web eran precisamente el tipo de proyecto ASP.NET original. No son "como" los proyectos que teníamos en Visual Studio 2003. No se crearon como un complemento. Visual Studio 2005 SP1 simplemente restauró lo que Visual Studio 2005 RTM eliminó por error. - Juan Saunders

Puede utilizar la salida de WebApplication en un proyecto de implementación web. No puede utilizar la salida de WebSite en un proyecto de WebDeployment. Si desea crear un proyecto de implementación, apéguese a WebApplication. Pero para desarrollar, WebSite es más conveniente. Sin embargo, la conversión no siempre está libre de problemas, así que comience con WebApplication de inmediato. - Stefan Steiger

@xarzu: Los "proyectos" del sitio web no tienen archivos .csproj o .vbproj. En realidad, no son proyectos, solo son carpetas llenas de archivos. - Juan Saunders

sitio web es lo que implementa en un servidor web ASP.NET como IIS. Solo un montón de archivos y carpetas. No hay nada en un sitio web que lo vincule a Visual Studio (no hay ningún archivo de proyecto). Se realiza la generación de código y la compilación de páginas web (como .aspx, .ascx, .master) dinámicamente en tiempo de ejecución, y el marco detecta los cambios en estos archivos y los vuelve a compilar automáticamente. Puedes poner el código que quieras compartir entre páginas en la carpeta especial App_Code, o puede precompilarlo y poner el ensamblaje en la carpeta Bin.

Aplicación web es un proyecto especial de Visual Studio. La principal diferencia con los sitios web es que cuando crea el proyecto, todos los archivos de código se compilan en un solo ensamblado, que se coloca en el directorio bin. No implementa archivos de código en el servidor web. En lugar de tener una carpeta especial para archivos de código compartido, puede colocarlos en cualquier lugar, tal como lo haría en la biblioteca de la clase. Debido a que las aplicaciones web contienen archivos que no están destinados a ser implementados, como archivos de proyecto y código, existe una Publicar comando en Visual Studio para generar un sitio web en una ubicación especificada.

App_Code frente a papelera

La implementación de archivos de código compartido es generalmente una mala idea, pero eso no significa que deba elegir Aplicación web. Puede tener un sitio web que haga referencia a un proyecto de biblioteca de clases que contenga todo el código del sitio web. Aplicaciones web es solo una forma conveniente de hacerlo.

Código detrás

Este tema es específico de los archivos .aspx y .ascx. Este tema es cada vez menos relevante en los nuevos marcos de aplicaciones, como ASP.NET MVC y ASP.NET Web Pages, que no utilizan archivos de código subyacente.

Al tener todos los archivos de código compilados en un solo ensamblado, incluido código detrás archivos de páginas .aspx y controles .ascx, en las aplicaciones web debe volver a crear cada pequeño cambio y no puede realizar cambios en vivo. Esto puede ser un verdadero problema durante el desarrollo, ya que tiene que seguir reconstruyendo para ver los cambios, mientras que con los sitios web los cambios son detectados por el tiempo de ejecución y las páginas / controles se recompilan automáticamente.

Hacer que el tiempo de ejecución administre los ensamblados de código subyacente es menos trabajo para usted, ya que no necesita preocuparse por dar nombres únicos a las páginas / controles, u organizarlos en diferentes espacios de nombres.

No estoy diciendo que implementar archivos de código sea siempre una buena idea (especialmente no en el caso de archivos de código compartidos), pero los archivos de código subyacente solo deben contener código que realice tareas específicas de la interfaz de usuario, controladores de eventos de conexión, etc. Su aplicación debe ser en capas para que el código importante siempre termine en la carpeta Bin. Si ese es el caso, la implementación de archivos de código subyacente no debe considerarse dañina.

Otra limitación de las aplicaciones web es que solo puede utilizar el idioma del proyecto. En los sitios web, puede tener algunas páginas en C #, algunas en VB, etc. No es necesario un soporte especial de Visual Studio. Esa es la belleza de la extensibilidad del proveedor de compilación.

Además, en las aplicaciones web no obtiene detección de errores en las páginas / controles, ya que el compilador solo compila sus clases de código subyacente y no el código de marcado (en MVC puede solucionar esto usando la opción MvcBuildViews), que se compila en tiempo de ejecución.

Visual Studio

Dado que las aplicaciones web son proyectos de Visual Studio, obtiene algunas características que no están disponibles en los sitios web. Por ejemplo, puede usar eventos de compilación para realizar una variedad de tareas, por ejemplo, minificar y / o combinar archivos Javascript.

Otra característica interesante introducida en Visual Studio 2010 es Transformación web.config. Esto tampoco está disponible en sitios web. Ahora funciona con sitios web en VS 2013.

La creación de una aplicación web es más rápida que la creación de un sitio web, especialmente para sitios grandes. Esto se debe principalmente a que las aplicaciones web no compilan el código de marcado. En MVC, si establece MvcBuildViews en verdadero, compila el código de marcado y obtiene la detección de errores, lo cual es muy útil. La desventaja es que cada vez que crea la solución, se crea el sitio completo, lo que puede ser lento e ineficiente, especialmente si no está editando el sitio. Me encuentro activando y desactivando MvcBuildViews (lo que requiere una descarga del proyecto). Por otro lado, con los sitios web puede elegir si desea crear el sitio como parte de la solución o no. Si elige no hacerlo, la creación de la solución es muy rápida y siempre puede hacer clic en el nodo Sitio web y seleccionar Crear, si ha realizado cambios.

En un proyecto de aplicación web MVC, tiene comandos y cuadros de diálogo adicionales para tareas comunes, como 'Agregar vista', 'Ir a vista', 'Agregar controlador', etc. Estos no están disponibles en un sitio web MVC.

Si usa IIS Express como servidor de desarrollo, en Sitios web puede agregar directorios virtuales. Esta opción no está disponible en aplicaciones web.

La restauración de paquetes de NuGet no funciona en sitios web, debe instalar manualmente los paquetes enumerados en packages.config La restauración de paquetes ahora funciona con sitios web iniciar NuGet 2.7

Respondido el 07 de junio de 14 a las 04:06

Debido a que los programadores escriben la aplicación, la aplicación se construye. El equipo de prueba prueba la aplicación en el sistema de prueba. Luego, el cliente instala las aplicaciones. ¡Ese ÚLTIMO pensamiento que quieres es que alguien haga cambios en vivo! - Ian Ringrose

Para mí, tener la opción es lo mejor, en los sitios web siempre puede heredar de una clase base precompilada si lo desea. Hay muchos lenguajes / frameworks (por ejemplo, PHP) donde la gente está acostumbrada a la idea de implementar código fuente. Eso no significa que no sean aplicaciones "serias". - max toro

"En realidad, no administra esas DLL, [...] ni siquiera tiene que saber que existen. No es un problema". - Hasta que el marco se confunda, no limpia las versiones antiguas correctamente y comienza a lanzar excepciones de compilación con nombres en conflicto en todo el sitio ... Puede agregar detección de errores del marcado mediante el uso de un proyecto WebDeployment. Tampoco estoy seguro de su último punto "con sitios web puede usar IIS como servidor", también puede hacer esto con una aplicación web, y tengo proyectos como este en los que el proyecto es parte de una aplicación web más grande. - Zhaph - Ben Duguid

La implementación de un sitio web no siempre tiene que ser en un servidor en vivo. Las iteraciones de desarrollo deberían, en un mundo perfecto, probarse en un espejo del entorno en vivo. Con la incapacidad de Web Apps para realizar cambios rápidos en el código de un sitio que se ejecuta en un servidor IIS de desarrollo (es decir, que no se ejecuta con la instancia VS local), es un gran problema probar pequeñas soluciones rápidas. Esto sucede todo el tiempo en sistemas donde no puede replicar las mismas condiciones en su máquina local. - NikoRoberts

"Esto puede ser una verdadera molestia durante el desarrollo, ya que tienes que seguir reconstruyendo para ver los cambios" ... ten en cuenta que tendría que ser un proyecto MASIVO o una computadora REALMENTE VIEJA para que sea una molestia. una reconstrucción en estos días. - Darren

sitio web = usar cuando el sitio web es creado por diseñadores gráficos y los programadores solo editan una o dos páginas

Aplicación web = se usa cuando la aplicación es creada por programadores y los diseñadores gráficos solo editan una o dos imágenes / paginadas.

Se puede trabajar en sitios web utilizando cualquier herramienta HTML sin tener que tener un estudio de desarrollo, ya que los archivos de proyecto no necesitan actualizarse, etc. Las aplicaciones web son mejores cuando el equipo usa principalmente el estudio de desarrollo y hay un alto contenido de código.

(Algunos errores de codificación se encuentran en aplicaciones web en tiempo de compilación que no se encuentran en sitios web hasta el tiempo de ejecución).

Aviso: Escribí esta respuesta hace muchos años y no he usado Asp.net desde entonces. Espero que las cosas hayan seguido adelante.

Respondido 19 ago 15, 10:08

A menos que tenga una necesidad específica de un proyecto compilado dinámicamente, no uses un proyecto de sitio web.

¿Por qué? Porque el proyecto del sitio web lo conducirá hasta la pared cuando intente cambiar o comprender su proyecto. Las características de búsqueda de escritura estática (por ejemplo, encontrar usos, refactorizar) en Visual Studio tomarán una eternidad en cualquier proyecto de tamaño razonable. Para obtener más información, consulte la pregunta de desbordamiento de pila Lenta "Buscar todas las referencias" en Visual Studio.

Realmente no puedo ver por qué dejaron de usar aplicaciones web en Visual Studio 2005 para el tipo de proyecto de sitio web que induce dolor, agota la cordura y agota la productividad.

contestado el 23 de mayo de 17 a las 13:05

Hay un artículo en MSDN que describe las diferencias:

Comparación de proyectos de sitios web y proyectos de aplicaciones web

Por cierto: hay algunas preguntas similares sobre ese tema, por ejemplo:

respondido 29 mar '20, 14:03

Supongo que la respuesta sobre si debo usar un archivo de código o un código subyacente en el marcado se ha ido con la respuesta que fue eliminada por SO ... - francés

Entonces, para aquellos que se preguntan: aplicación web = solución bien estructurada = código subyacente en el marcado VS sitio web = grupo de archivos = archivo de código en el marcado - francés

Esto puede parecer un poco obvio, pero creo que es algo que se malinterpreta porque Visual Studio 2005 solo se envió originalmente con el sitio web. Si su proyecto trata con un sitio web que es bastante limitado y no tiene mucha separación lógica o física, el sitio web está bien. Sin embargo, si realmente es una aplicación web con diferentes módulos donde muchos usuarios agregan y actualizan datos, es mejor para usted con la aplicación web.

La mayor ventaja del modelo de sitio web es que cualquier cosa en el app_code La sección se compila dinámicamente. Puede realizar actualizaciones de archivos C # sin una nueva implementación completa. Sin embargo, esto conlleva un gran sacrificio. Suceden muchas cosas bajo las sábanas que son difíciles de controlar. Los espacios de nombres son difíciles de controlar y el uso específico de DLL sale de la ventana por defecto para cualquier cosa debajo app_code ya que todo se compila dinámicamente.

El modelo de aplicación web no tiene compilación dinámica, pero usted gana control sobre las cosas que he mencionado.

Si está realizando un desarrollo de n niveles, le recomiendo encarecidamente el modelo de aplicación web. Si está haciendo un sitio web limitado o una implementación rápida y sucia, el modelo de sitio web puede tener ventajas.

Se puede encontrar un análisis más detallado en:

Respondido el 10 de diciembre de 11 a las 16:12

> La mayor ventaja del modelo de sitio web es que cualquier cosa en la sección app_code se compila dinámicamente. Esto también tiene una gran desventaja. Mi sitio web está alojado en webhost4life, que es barato pero con muchas funciones. La desventaja es que reciclan el proceso de trabajo con mucha frecuencia (¿15 minutos?), Lo que significa que el siguiente usuario tiene una salida de la primera página muy lenta a medida que se vuelve a compilar la aplicación. - Rob Nicholson

Del libro del examen 70-515 del kit de capacitación autodidacta de MCTS:

Con aplicación web (proyecto),

  1. Puede crear una aplicación MVC.
  2. Visual Studio almacena la lista de archivos en un archivo de proyecto (.csproj o .vbproj), en lugar de depender de la estructura de carpetas.
  3. No puede mezclar Visual Basic y C #.
  4. No puede editar el código sin detener una sesión de depuración.
  5. Puede establecer dependencias entre varios proyectos web.
  6. Debe compilar la aplicación antes de la implementación, lo que le impide probar una página si otra página no se compila.
  7. No es necesario que almacene el código fuente en el servidor.
  8. Puede controlar el nombre y la versión del ensamblado.
  9. No puede editar archivos individuales después de la implementación sin volver a compilarlos.

Respondido el 29 de Septiembre de 14 a las 13:09

# 4 está mal. Se puede habilitar "Editar y continuar", con algunas restricciones. Tal vez esto fuera cierto en 2011. El número 9 debería decir "no se pueden editar archivos de código fuente individuales sin volver a compilarlos". Puede editar .aspx, .js, .css, etc. sin volver a compilar. - Juan Saunders

# 4 tiene otro ángulo. Si abre un sitio web usando Archivo> Abrir> Sitio web y navega hasta la carpeta del sistema de archivos del sitio web, en lugar de Al abrir el sitio mediante la selección de la solución desde la ventana de inicio, puede editar los módulos de clase y el código subyacente (al menos en vb.net) sin detener la depuración. No verá los cambios hasta que reconstruya, sin embargo, a menudo es útil poder ver el comportamiento de la página mientras modifica el código. La desventaja es que pierde todo lo que entra en la solución: puntos de interrupción, archivos abiertos, marcadores, etc. Y a veces tiene que eliminar los archivos sln / sou. - wayfarer

Depende de lo que estés desarrollando.

Un sitio web orientado al contenido tendrá su contenido cambiando con frecuencia y un sitio web es mejor para eso.

Una aplicación tiende a tener sus datos almacenados en una base de datos y sus páginas y código cambian raramente. En este caso, es mejor tener una aplicación web donde la implementación de ensamblajes esté mucho más controlada y tenga mejor soporte para pruebas unitarias.

respondido 26 mar '15, 14:03

Compilation En primer lugar, hay una diferencia en la compilación. El sitio web no está precompilado en el servidor, está compilado en un archivo. Puede ser una ventaja porque cuando desea cambiar algo en su sitio web, puede simplemente descargar un archivo específico del servidor, cambiarlo y cargar este archivo de nuevo en el servidor y todo funcionará bien. En la aplicación web, no puede hacer esto porque todo está precompilado y termina con solo una dll. Cuando cambia algo en un archivo de su proyecto, debe volver a compilar todo de nuevo. Entonces, si desea tener la posibilidad de cambiar algunos archivos en el sitio web del servidor, es la mejor solución para usted. También permite que muchos desarrolladores trabajen en un sitio web. Por otro lado, si no desea que su código esté disponible en el servidor, debería elegir Aplicación web. Esta opción también es mejor para las pruebas unitarias debido a que se crea un archivo DLL después de publicar su sitio web.

Project structure También hay una diferencia en la estructura del proyecto. En la aplicación web, tiene un archivo de proyecto tal como lo tenía en la aplicación normal. En el sitio web no hay un archivo de proyecto tradicional, todo lo que tiene es un archivo de solución. Todas las referencias y configuraciones se almacenan en el archivo web.config. @Page directive Hay un atributo diferente en la directiva @Page para el archivo que contiene la clase asociada con esta página. En la aplicación web es estándar "CodeBehind", en el sitio web se utiliza "CodeFile". Puede ver esto en los ejemplos siguientes:

Aplicación web:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs"  
Inherits="WebApplication._Default" %>  

Sitio Web:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> 

Espacios de nombres: en el ejemplo anterior, también puede ver otra diferencia: cómo se crean los espacios de nombres. En la aplicación web, el espacio de nombres es simplemente un nombre del proyecto. En el sitio web hay un espacio de nombres ASP predeterminado para las páginas compiladas dinámicamente.

Editar y continuar: está disponible la opción Editar y continuar en la aplicación web (para activarla, debe ir al menú Herramientas, hacer clic en Opciones y luego buscar Editar y continuar en Depuración). Esta función no funciona en el sitio web.ASP.NET MVCI Si desea desarrollar aplicaciones web utilizando

ASP.NET MVC (Model View Controller), la mejor opción y la predeterminada es la aplicación web. Aunque es posible utilizar MVC en el sitio web, no se recomienda.

Resumen: la diferencia más importante entre la aplicación web ASP.NET y el sitio web es la compilación. Entonces, si trabaja en un proyecto más grande donde algunas personas pueden modificarlo, es mejor usar el sitio web. Pero si está haciendo un proyecto más pequeño, también puede usar la aplicación web.

Respondido 21 Oct 18, 12:10

En un proyecto grande en el que más de una persona lo está cambiando, se usa el control de código fuente, por lo que esta no es una razón para usar "proyectos" de sitios web. - Juan Saunders

+1 para distinción en codebehind (webapp) vs codefile (sitio web) en la directiva de página. Esta es una precisión que falta en la respuesta seleccionada. - francés

Sí, la aplicación web es mucho mejor que los sitios web, porque las aplicaciones web nos dan libertad:

  1. Tener varios proyectos bajo un mismo paraguas y establecer dependencias entre proyectos. Por ejemplo, para PCS podemos tener seguimiento dentro de la aplicación web:

    • Portales web
    • Controlador de notificaciones (para enviar correo electrónico)
    • Capa empresarial
    • Capa de acceso a datos
    • Gerente de excepciones
    • Utilidad del servidor
    • Servicios WCF (común para todas las plataformas)
    • Artículo de lista
  2. Para ejecutar pruebas unitarias en el código que se encuentra en los archivos de clase asociados con las páginas ASP.NET

  3. Para hacer referencia a las clases que están asociadas con páginas y controles de usuario de clases independientes
  4. Para crear un solo ensamblaje para todo el sitio
  5. Control sobre el nombre del ensamblado y el número de versión que se genera para el sitio
  6. Para evitar poner código fuente en un servidor de producción. (Puede evitar implementar el código fuente en el servidor IIS. En algunos escenarios, como los entornos de alojamiento compartido, es posible que le preocupe el acceso no autorizado al código fuente en el servidor IIS. (Para un proyecto de sitio web, puede evitar este riesgo si compilar previamente en una computadora de desarrollo e implementar los ensamblados generados en lugar del código fuente. Sin embargo, en ese caso, perderá algunos de los beneficios de las actualizaciones fáciles del sitio).
  7. Problema de rendimiento con el sitio web (la primera solicitud al sitio web puede requerir la compilación del sitio, lo que puede provocar un retraso. Y si el sitio web se ejecuta en un servidor IIS con poca memoria, incluido el sitio completo en un un solo ensamblaje podría usar más memoria de la que se necesitaría para varios ensamblajes).

Respondido 04 Abr '13, 13:04

Una de las diferencias clave es que los sitios web se compilan dinámicamente y crean ensamblajes sobre la marcha. Las aplicaciones web se compilan en un conjunto grande.

La distinción entre los dos se ha eliminado en Visual Studio 2008.

respondido 26 mar '15, 14:03

"La distinción entre los 2 se ha eliminado en vs2008" - no estoy seguro de lo que quiere decir allí - siguen siendo tipos de proyectos distintos en VS2008, se comportan de manera diferente y se crean a través de diferentes opciones de menú; sin embargo, al menos ambos están disponibles de forma predeterminada en VS2008. - Zhaph - Ben Duguid

Las aplicaciones generalmente se compilan antes de la implementación, donde el sitio web hace uso del directorio app_code. Cuando algo cambia en la carpeta del código de la aplicación, el servidor volverá a compilar el código. Esto significa que puede agregar / cambiar código con un sitio web sobre la marcha.

La ventaja de una aplicación es que no se puede volver a compilar y, por lo tanto, los tiempos de inicio inicial serán más rápidos.

respondido 10 mar '15, 20:03

Eso es parcialmente cierto, puede precompilar páginas en el sitio web si lo desea. Amr H. Abd Elmajeed

Te recomiendo que veas el video Proyectos de aplicaciones web y proyectos de implementación web en el sitio web ASP.NET que explica la diferencia con gran detalle, fue muy útil para mí.

Por cierto, no se confunda con el título, una gran parte del video explica la diferencia entre los proyectos de sitios web y los proyectos de aplicaciones web y por qué Microsoft reintrodujo los proyectos de aplicaciones web en Visual Studio 2005 (como probablemente ya sepa, originalmente se envió solo con proyectos de sitios web, luego se agregaron proyectos de aplicaciones web en SP1). Un gran video que recomiendo encarecidamente a cualquiera que quiera saber la diferencia.

Respondido el 10 de diciembre de 11 a las 17:12

Un "sitio web" tiene su código en un directorio App_Code especial y se compila en varias DLL (ensamblajes) en tiempo de ejecución. Una "aplicación web" está precompilada en una sola DLL.

Respondido el 18 de junio de 12 a las 08:06

Sitio web y sitio web del proyecto >> son dos métodos diferentes para crear aplicaciones ASP.NET utilizando Visual Studio. Uno no tiene proyecto y otro es el entorno del proyecto. Las diferencias son como

  1. El archivo de solución se almacena en el mismo directorio que el directorio raíz en el entorno del proyecto.
  2. Necesita eliminar los archivos de la solución y del proyecto antes de implementarlo en el entorno del proyecto.
  3. El directorio raíz completo se implementa en un entorno sin proyectos.

no hay mucha diferencia básica en el uso de ambos enfoques. Pero si está creando un sitio web que llevará más tiempo, opte por el entorno del proyecto.

Respondido 31 ago 12, 15:08

No es necesario que el archivo de la solución esté en la misma carpeta. Además, el mecanismo de publicación estándar elimina cualquier artefacto que no debería estar en el sitio de destino, por ejemplo, los archivos de código subyacente no se implementan. - Juan Saunders

Modelo de proyecto de aplicación web

  • Proporciona la misma semántica de proyectos web que los proyectos web de Visual Studio .NET. Tiene un archivo de proyecto (estructura basada en archivos de proyecto). Modelo de compilación: todo el código del proyecto se compila en un solo ensamblado. Admite tanto IIS como el servidor de desarrollo ASP.NET integrado. Admite todas las características de Visual Studio 2005 (refactorización, genéricos, etc.) y de ASP.NET (páginas maestras, membresía e inicio de sesión, navegación del sitio, temas, etc.). El uso de Extensiones de servidor de FrontPage (FPSE) ya no es un requisito.

Modelo de proyecto de sitio web

  • Sin archivo de proyecto (basado en el sistema de archivos).
  • Nuevo modelo de recopilación.
  • Compilación dinámica y trabajo en páginas sin crear un sitio completo en cada vista de página.
  • Admite tanto IIS como el servidor de desarrollo ASP.NET integrado.
  • Cada página tiene su propio montaje.
  • Modelo de código diferente.

Respondido el 19 de diciembre de 12 a las 05:12

Siempre depende del requerimiento de su cliente. ASP.NET solo incluye características flexibles que el usuario necesita para la seguridad y fácil mantenimiento de su aplicación.

Puedes pensar en un Aplicación web como un archivo binario que se ejecuta dentro del marco ASP.NET. Y Sitios Web como una página web estática en la que puede revisar e implementar fácilmente el código fuente.

Pero las ventajas y desventajas de estas dos tecnologías ASP.NET vienen de lo bueno.

respondido 26 mar '15, 14:03

Sitios web: no se creará ningún archivo de solución. Si queremos crear sitios web no necesitamos Visual Studio.

Aplicación web: se creará un archivo de solución. Si queremos crear una aplicación web deberíamos necesitar el Visual Studio. Creará un solo .dll archivo en la carpeta bin.

respondido 10 mar '15, 20:03

-1 En realidad, tiene un archivo de solución si crea un proyecto de sitio web a través de Visual Studio. No tienes un archivo de proyecto. - Darren

+1 seguro, puede crear un archivo de solución, pero este archivo está casi vacío, por lo que es solo una molestia (VS pregunta dónde guardar el archivo al salir) y no algo útil - francés

En proyectos de aplicaciones web, Visual Studio necesita archivos .designer adicionales para las páginas y los controles de usuario. Los proyectos de sitios web no requieren esta sobrecarga. El marcado en sí se interpreta como el diseño.

Respondido 04 Jul 12, 19:07

Sitio web : Genera la carpeta app_code automáticamente y si la publicas en el servidor y luego si haces algunos cambios en cualquier archivo o página en particular, no tienes que compilar todos los archivos.

Aplicación web Genera archivos de soluciones automáticamente que el sitio web no genera y si cambia en un archivo, debe compilar el proyecto completo para reflejar sus cambios.

Respondido el 02 de enero de 14 a las 05:01

"Compilar el proyecto completo" no significa compilar todos los archivos del proyecto. Los archivos de código fuente que no hayan cambiado no se volverán a compilar. - Juan Saunders

En una aplicación web, puede crear las capas de la funcionalidad de su proyecto y puede crear interdependencias entre ellas dividiéndola en muchos proyectos, pero nunca puede hacer esto en un sitio web.

respondido 26 mar '15, 14:03

Definitivamente aplicación web, archivo DLL único y fácil de mantener. Pero un sitio web es más flexible; puede editar el archivo aspx sobre la marcha.

respondido 26 mar '15, 14:03

También puede editar el archivo aspx en un proyecto de aplicación web. - Juan Saunders

Las aplicaciones web requieren más memoria, presumiblemente porque no tiene más remedio que compilarlas en un solo ensamblaje. Acabo de convertir un sitio antiguo grande en una aplicación web y tengo problemas con la falta de memoria, tanto en el momento de la compilación con el mensaje de error como se muestra a continuación:

Unexpected error writing metadata to file '' -- 
Not enough storage is available to complete this operation. 

error, y en tiempo de ejecución con este mensaje de error como se muestra a continuación:

Exception information: 
    Exception type: HttpException 
    Exception message: Exception of type 'System.OutOfMemoryException' was thrown.
   at System.Web.Compilation.BuildManager.ReportTopLevelCompilationException()

Mi recomendación para convertir sitios más grandes en hardware heredado con restricción de memoria es elegir la opción de volver al modelo de sitio web. Incluso después de un éxito inicial, el problema puede surgir más tarde.

Respondido 19 ago 18, 19:08

Eso no parece ser una excepción en tiempo de compilación. - Juan Saunders

Aquí, la Aplicación de soporte web es un ejemplo de sitio web.

Aquí la aplicación de soporte web es un ejemplo de sitio web. El sitio web y la aplicación web pueden ser dinámicos / estáticos, depende de los requisitos, aquí hay un ejemplo para comprender el funcionamiento del sitio web y la aplicación web.

Respondido el 20 de junio de 20 a las 10:06

Esto no se aplica en asp.net. La distinción entre sitio web / aplicación web (en terminología asp.net) se trata más de cómo se organizan los archivos (como una solución bien organizada o como un grupo de archivos) y se compilan ("JIT" frente a estático). En ambos casos, el "programa" es principalmente del lado del servidor. - francés

Para resumir algunas de las respuestas anteriores:

Flexibilidad , ¿puede realizar cambios en vivo en una página web?

sitio web: Posible. Pro: beneficios a corto plazo. Con: riesgo a largo plazo del caos del proyecto.

Aplicación Web: Con: no es posible. Edite una página, archive los cambios en el control de código fuente y luego cree e implemente todo el sitio. Pro: mantener un proyecto de calidad.

Problemas de desarrollo

sitio web: Estructura de proyecto simple sin un archivo .csproj. Dos páginas .aspx pueden tener el mismo nombre de clase sin conflictos. Nombre de directorio de proyecto aleatorio que conduce a errores de compilación como por qué .net framework entra en conflicto con su propio archivo generado y por qué .net framework entra en conflicto con su propio archivo generado. Pro: simple (simplista). Con: errático.

Aplicación Web: Estructura de proyecto similar al proyecto de WebForms, con un archivo .csproj. Los nombres de clase de las páginas asp deben ser únicos. Ventaja: simple (inteligente). Desventaja: ninguna, porque una aplicación web sigue siendo sencilla.

Respondido 12 Feb 18, 12:02

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.