Веб-сайт ASP.NET или веб-приложение ASP.NET? - PullRequest
818 голосов
/ 29 декабря 2008

Когда я запускаю новый проект ASP.NET в Visual Studio, я могу создать веб-приложение ASP.NET или веб-сайт ASP.NET.

В чем разница между веб-приложением ASP.NET и веб-сайтом ASP.NET? Почему я бы выбрал одно над другим?

Отличается ли ответ в зависимости от того, какую версию Visual Studio я использую?

Ответы [ 25 ]

11 голосов
/ 24 января 2009

Одно из ключевых отличий заключается в том, что веб-сайты динамически компилируются и создают сборки на лету. Веб-приложения компилируются в одну большую сборку.

В Visual Studio 2008 различие между ними устранено.

9 голосов
/ 15 августа 2009

Приложения обычно компилируются перед развертыванием, когда веб-сайт использует каталог app_code. Когда что-либо меняется в папке кода приложения, сервер перекомпилирует код. Это означает, что вы можете добавлять / изменять код на веб-сайте на лету.

Преимущество приложения в том, что нет никакой перекомпиляции, и поэтому время первоначального запуска будет быстрее.

8 голосов
/ 28 сентября 2009

Я рекомендую вам посмотреть видео Проекты веб-приложений и проекты веб-развертывания на веб-сайте ASP.NET, где подробно объясняется различие, оно мне очень помогло.

Между прочим, не смущайтесь названием, большая часть видео объясняет разницу между проектами веб-сайтов и проектами веб-приложений и почему Microsoft повторно представила проекты веб-приложений в Visual Studio 2005 (как вы, вероятно, уже знаете, изначально он поставлялся только с проектами веб-сайтов, затем в SP1 были добавлены проекты веб-приложений. Отличное видео, которое я очень рекомендую всем, кто хочет узнать разницу.

7 голосов
/ 18 июня 2012

«Веб-сайт» имеет свой код в специальном каталоге App_Code и во время выполнения он скомпилирован в несколько DLL (сборок) «Веб-приложение» предварительно скомпилировано в одну DLL.

5 голосов
/ 09 мая 2012

Website и Project >> website - это два разных метода создания приложения ASP.NET с использованием visual studio. Один - без проекта, а другой - проектная среда. Отличия как

  1. Файл решения хранится в том же каталоге, что и корневой каталог в среде проекта.
  2. Необходимо удалить файлы решения и проекта перед развертыванием в среде проекта.
  3. Полный корневой каталог развернут в среде без проекта.

Там нет большой принципиальной разницы в использовании любого подхода. Но если вы создаете веб-сайт, который займет больше времени, выберите среду проекта.

5 голосов
/ 19 декабря 2012

Модель проекта веб-приложения

  • Предоставляет ту же семантику веб-проекта, что и Visual Studio .NET Web. проекты. Имеет файл проекта (структура основана на файлах проекта). Модель сборки - весь код в проекте скомпилирован в единый сборка. Поддерживает как IIS, так и встроенную разработку ASP.NET Сервер. Поддерживает все функции Visual Studio 2005 (рефакторинг, дженерики и т. д.) и ASP.NET (главные страницы, членство и логин, навигация по сайту, темы и т. д.). Использование серверных расширений FrontPage (FPSE) больше не является обязательным требованием.

Модель проекта веб-сайта

  • Нет файла проекта (на основе файловой системы).
  • Новая модель компиляции.
  • Динамическая компиляция и работа на страницах без создания всего сайта на каждой странице просмотра.
  • Поддерживает как IIS, так и встроенный сервер разработки ASP.NET.
  • Каждая страница имеет свою сборку.
  • Модель с кодом отклонения.
5 голосов
/ 05 июля 2012

Это всегда зависит от требований вашего клиента. ASP.NET просто включает гибкие функции, которые необходимы пользователю для обеспечения безопасности и простоты обслуживания вашего приложения.

Вы можете думать о веб-приложении как о двоичном файле, который работает внутри платформы ASP.NET. И Веб-сайты в качестве статической веб-страницы, на которую можно просматривать и легко развертывать исходный код.

Но преимущества и недостатки этих двух технологий ASP.NET приходят на пользу.

4 голосов
/ 28 августа 2012

Веб-сайты - файл решения не будет создан. Если мы хотим создавать веб-сайты, нам не нужна визуальная студия.

Веб-приложение - файл решения будет создан. Если мы хотим создать веб-приложение, нужна визуальная студия. Это создаст один файл .dll в папке bin.

3 голосов
/ 28 октября 2014

В веб-приложении вы можете создавать слои функциональности вашего проекта и создавать взаимозависимости между ними, разделяя его на множество проектов, но вы никогда не сможете сделать это на веб-сайте.

3 голосов
/ 24 сентября 2014

Веб-приложениям требуется больше памяти, предположительно потому, что у вас нет другого выбора, кроме как собрать их в одну сборку. Я только что преобразовал большой устаревший сайт в веб-приложение, и у меня возникли проблемы с нехваткой памяти, как во время компиляции, с сообщением об ошибке, как показано ниже:

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

ошибка, и во время выполнения с этим сообщением об ошибке, как показано ниже:

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

Моя рекомендация по преобразованию более крупных сайтов на устаревшем оборудовании с ограниченным объемом памяти заключается в выборе варианта возврата к модели веб-сайта. Даже после первоначального успеха проблема может появиться позже.

...