При создании нового проекта ASP.NET в Visual Studio я должен выбрать создать: веб-сайт или проект?
Я понимаю, что проект веб-приложения был способом сделать это в свое время с VS 2003, но все еще применим ли он сегодня? Каковы некоторые из предостережений, использующих одно над другим?
На MSDN есть довольно хорошая сравнительная таблица .
Проекты веб-сайтов просты, так как все файлы, добавленные в папки проектов, автоматически компилируются и включаются, что предположительно было добавлено, чтобы сделать его более приемлемым для классических разработчиков ASP и PHP. Когда-то преимущество заключается в том, что он включает в себя поставщиков компоновки, которые позволяют определенным действиям связываться с типом файла - именно так в первом выпуске SubSonic будет перестроен слой доступа к данным, когда вы добавляете файл .abp на сайт.
Проекты веб-приложений намного более гибки, хотя. Например, все библиотеки классов в проекте веб-сайта должны находиться в папке App_Code, что разочаровывает в сложном приложении. Есть много сценариев, которые просто не работают для проекта веб-сайта.
Вы можете конвертировать из одного в другое, хотя если вы не уверены, я бы рекомендовал начать с веб-приложения.
Я категорически не согласен с тем, что говорится в статье « Веб-сайты и веб-проекты» .
Во-первых, это не была какая-то «маленькая» группа разработчиков, которые восстали - я бы предположил, что большинство из нас не спросили, хотим ли мы полностью изменить способ разработки. Они, конечно, не спрашивали меня, хочу ли я потерять шесть недель времени на разработку того, что они сделали, чтобы сломать совершенно хороший веб-сервис.
Это был не какой-то «загружаемый» MS релиз - это был VS2005 SP1, и они выпустили его чертовски быстро.
В их плюсах для разработки без проектов, команда «Копировать проект» работает очень хорошо, и нам не нужно избегать файлов отладки или проекта; Вы можете перемещать страницы - если вы не используете контроль исходного кода; откуда они взяли, что для совместной работы нужно заблокировать файлы проекта? Что они используют для контроля версий?
Я бы также добавил один вопрос к обсуждению: что такого особенного в веб-сайтах, что они должны быть единственным типом «проекта» (насколько я знаю), который не использует файл «проекта»? Я не могу думать ни о чем, если только Microsoft не считает, что веб-разработчики слишком просты для понимания проектов.
Конечно, если кто-нибудь знает какой-либо другой тип проекта Visual Studio, в котором не используется файл проекта, я был бы признателен за информацию об этом.