8

ASP.NET Веб-сайт или ASP.NET Веб-приложение?

4

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

В чем разница между ASP.NET Web Application и ASP.NET Web Site? Почему я должен выбрать один вариант вместо другого?

Существует ли разница в ответе в зависимости от версии Visual Studio, которую я использую?

5 ответ(ов)

0

На русском языке, в стиле ответа на вопрос на StackOverflow.com:

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

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

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

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

Предупреждение: Я написал этот ответ много лет назад и с тех пор не использовал Asp.net. Ожидаю, что с тех пор многое изменилось.

0

В ответ на вопрос о веб-приложениях (проекте), согласно книге MCTS Self-Paced Training Kit для экзамена 70-515, можно выделить следующие ключевые моменты:

  1. В рамках веб-приложения можно создать приложение на базе MVC.
  2. Visual Studio хранит список файлов в проекте в файле проекта (.csproj или .vbproj), а не полагается на структуру папок.
  3. Нельзя смешивать языки Visual Basic и C# в одном проекте.
  4. Вы не можете редактировать код, не остановив сессию отладки.
  5. Возможно устанавливать зависимости между несколькими веб-проектами.
  6. Перед развертыванием приложение должно быть скомпилировано, что может помешать тестированию одной страницы, если другая страница не компилируется.
  7. Не обязательно хранить исходный код на сервере.
  8. Вы можете контролировать имя сборки и ее версию.
  9. Нельзя редактировать отдельные файлы после развертывания без повторной компиляции.

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

0

Это зависит от того, что вы разрабатываете.

Если вы создаёте контентно-ориентированный сайт, то контент на нём будет меняться довольно часто, и в этом случае лучше использовать классический веб-сайт.

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

0

Здесь разница между Компиляцией двумя подходами: Веб-сайт не компилируется заранее на сервере, он компилируется по файлу. Это может быть преимуществом, так как вы можете просто скачать нужный файл с сервера, изменить его и загрузить обратно — всё будет работать корректно. В веб-приложении такое невозможно, поскольку всё компилируется заранее и в результате получается только один DLL-файл. При изменении одного файла в проекте вам нужно пересобрать всё заново. Поэтому, если вам нужна возможность изменять файлы на сервере, веб-сайт будет лучшим выбором для вас. Он также позволяет нескольким разработчикам работать над одним веб-сайтом. С другой стороны, если вы не хотите, чтобы ваш код был доступен на сервере, лучше выбрать веб-приложение. Этот вариант также лучше подходит для юнит-тестирования, так как после публикации вашего веб-сайта создается только один DLL-файл.

Структура проекта

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

Директива @Page

В директиве @Page есть различие в атрибуте для файла, который содержит класс, связанный с этой страницей. В веб-приложении используется стандартный "CodeBehind", а в веб-сайте — "CodeFile". Примеры ниже:

Веб-приложение:

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

Веб-сайт:

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

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

Редактирование и продолжение — В веб-приложении доступна функция "Редактировать и продолжить" (чтобы ее включить, нужно перейти в меню Инструменты, затем в параметры и найти "Редактировать и продолжить" в отладке). Эта функция не работает в веб-сайте.

ASP.NET MVC — Если вы хотите разрабатывать веб-приложения с использованием ASP.NET MVC (Модель Вид Контроллер), то лучшим и стандартным вариантом будет веб-приложение. Хотя технически можно использовать MVC в веб-сайте, этого не рекомендуется.

Резюме — Самое важное различие между ASP.NET веб-приложением и веб-сайтом — это компиляция. Если вы работаете над большим проектом, где несколько человек могут вносить изменения, лучше использовать веб-сайт. Но если вы работаете над небольшим проектом, вы также можете использовать веб-приложение.

0

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

Тем не менее, это различие было устранено в Visual Studio 2008.

Чтобы ответить на вопрос, пожалуйста, войдите или зарегистрируйтесь