Веб-сайт или веб-приложение в ASP.NET - PullRequest
2 голосов
/ 17 сентября 2008

Какой шаблон Visual Studio следует использовать для веб-сайта ASP.NET, шаблона веб-сайта или проекта | Шаблон веб-приложения?

Ответы [ 7 ]

3 голосов
/ 02 мая 2012

Обе функции и функции аналогичны, но все же различаются в следующих отношениях:

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

  • Мы не можем включать страницы C # и VB в одно веб-приложение.
  • Мы можем установить зависимости между несколькими проектами.
  • Невозможно редактировать отдельные файлы после развертывания без перекомпиляции.
  • Правильный выбор для корпоративных сред, в которых несколько разработчиков работают совместно для создания, тестирования и развертывания.

Веб-сайт:

  • Может смешивать страницы VB и C # на одном веб-сайте.
  • Невозможно установить зависимости.
  • Редактировать отдельные файлы после развертывания.
  • Правильный выбор, когда один разработчик будет отвечать за создание и управление всем сайтом.
3 голосов
/ 17 сентября 2008

вам лучше прочитать это: http://msdn.microsoft.com/en-us/library/aa730880(VS.80).aspx на мой взгляд это зависит от того, что вы разрабатываете

2 голосов
/ 17 сентября 2008

Если вы используете Team Foundation Server для управления исходным кодом, вам, вероятно, придется использовать проект веб-приложения, так как вам нужен файл .csproj.

Есть еще детали от самого Джеффа Этвуда: Проекты веб-сайтов против проектов веб-приложений

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

2 голосов
/ 17 сентября 2008

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

Проекты веб-сайтов работают больше как классические ASP или PHP-сайты. Файл проекта отсутствует (ссылки хранятся в файле решения), а страницы динамически перекомпилируются на сервере. С веб-сайтами хорошо то, что вы можете просто зайти на сервер по ftp и изменить файл в текстовом редакторе. Вам не нужно VS. Некоторые могут ненавидеть это, хотя.

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

1 голос
/ 17 сентября 2008

Я предпочитаю веб-сайт. Веб-сайт - это набор файлов в каталоге. Это становится более портативным и развертываемым. Веб-приложение скрывает проблему с файлом проекта.

0 голосов
/ 17 сентября 2015

В Visual Studio 2015 я стал отдавать предпочтение проектам веб-сайтов, а не проектам веб-приложений. Я все еще использую Visual Studio, хотя, поскольку вы получаете Nuget Packaging, вы можете устанавливать пакеты Nuget для обоих типов проектов.

Однако у проекта WebSite нет файла проекта, вы буквально просто добавляете папку в свое решение.

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

В проектах WebApp у вас есть ваши активы, CSS, виды (бритва, aspx и т. Д.), Контроллеры / кодовые элементы и т. Д., Все в одном проекте, и он просто объединяется. Я предпочитаю работать с сайтами в две половины. Внешний интерфейс (css, js, images, "html / cshtml / aspx / ashx / .master / etc") и внутренний конец (весь код).

Поэтому я создаю проект веб-сайта и библиотеку классов для его сопровождения (в visual studio вы можете добавлять ссылки на проект веб-сайта). Я добавляю свою библиотеку классов как зависимость, и весь код находится в классе Library. У вас все еще может быть global.asax, вы просто должны сказать ему, что код находится в другой dll (не той, в которую будет компилироваться сайт). Представления MVC, вы просто указываете пространства имен, как обычно (dll - это ссылка, поэтому пространства имен есть). А в WebForms вы просто должны помнить, чтобы включить имя сборки в ссылки на тип, в котором находится код.

Это немного утомительно, чтобы привыкнуть, но когда у вас есть изолированная структура, все находится в месте, которое имеет смысл, и модульное в удобном для обслуживания виде.

И плюсом является то, что, поскольку веб-сайт - это просто папка (без файла проекта), его можно легко открыть в коде Visual Studio и других популярных текстовых редакторах, облегчающих работу дизайнеров над css / js / изображения и т. д. (которых нет в проекте кода). Разделяя дизайнеров слоев, дизайнер видит то, что им нужно.

Теперь структура мудрая. Я держу свой код локально на своей машине, проверенный в хранилище subversion, используя Tortoise SVN и Visual SVN (магазин java / .net). Для локального тестирования я устанавливаю IIS и настраиваю проект веб-сайта в IIS локально, как на серверах dev / prod.

Затем я устанавливаю MSDeploy на серверах dev / prod и использую функцию публикации веб-приложения через MSDeploy в visual studio и использую преобразования web.config. Поэтому у меня есть преобразования web.config для dev и prod, а основной web.config без преобразований предназначен для локального тестирования (поэтому он работает для всех разработчиков проекта).

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

Вы можете относиться к проекту WebSite точно так же, как к любому другому проекту Visual Studio, локальному коду, управлению исходным кодом, нескольким разработчикам.

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

0 голосов
/ 17 сентября 2008

Лично я использую проекты веб-приложений исключительно сейчас. Я фактически преобразовал довольно веб-сайт в веб-приложение из-за времени компиляции для веб-сайта.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...