Веб-сайт - це те, що ви розгортаєте на веб-сервері ASP.NET, такому як IIS. Просто купа файлів і папок. На веб-сайті немає нічого, що пов’язує вас із Visual Studio (файлу проекту немає). Створення коду та компіляція веб-сторінок (таких як .aspx, .ascx, .master) робиться динамічно під час виконання , і зміни в цих файлах виявляються рамки і автоматично повторно скомпілювати. Ви можете помістити код, який ви хочете поділити між сторінками в спеціальній папці App_Code, або ви можете попередньо скласти його і помістити збірку в папку Bin.
Веб-додаток - це спеціальний проект Visual Studio.Основна відмінність веб-сайтів полягає в тому, що при складанні проекту всі кодові файли збираються в єдину збірку, яка розміщується в каталозі бін. Ви не розгортаєте файли коду на веб-сервері. Замість того, щоб мати спеціальну папку для спільних файлів коду, ви можете розмістити їх куди завгодно, як ви робите в бібліотеці класів. Оскільки веб-програми містять файли, які не призначені для розгортання, такі як файли проектів та коду, у Visual Studio є команда Publish для виведення веб-сайту у вказане місце.
App_Code vs Bin
Розгортання файлів спільного коду, як правило, погана ідея, але це не означає, що вам потрібно вибрати веб-додаток. Ви можете мати веб-сайт, на якому посилається проект бібліотеки класів, який містить весь код веб-сайту. Веб-додатки - це просто зручний спосіб зробити це.
CodeBehind
Ця тема специфічна для файлів .aspx та .ascx. Ця тема набуває все більшої актуальності в нових програмах, таких як ASP.NET MVC та ASP.NET Веб-сторінки, які не використовують файли коду.
Маючи всі файли коду, зібрані в одну збірку, включаючи код позаду файлів .aspx сторінок і .ascx управління, в веб - додатках , ви повинні заново будувати для кожного невеликого зміни, і ви не можете зробити живі зміни. Це може бути справжнім болем під час розробки, оскільки вам доведеться продовжувати перебудову, щоб побачити зміни, тоді як у веб-сайтах зміни виконуються під час виконання, а сторінки / елементи керування автоматично перекомпілюються.
Домогтися керування кодом виконання за збірками - це менше роботи для вас, оскільки вам не потрібно турбуватися про те, щоб дати сторінкам / елементам управління унікальні імена або впорядкувати їх у різні простори імен.
Я не кажу, що розгортання файлів коду - це завжди хороша ідея (особливо це не стосується спільних файлів коду), але кодові файли повинні містити лише код, який виконує конкретні завдання інтерфейсу, обробники подій, що проводяться, і т. Д. Ваша програма повинна бути шаруватий, щоб важливий код завжди опинявся в папці Bin. Якщо це так, розгортання файлів, що знаходяться за кодом, не слід вважати шкідливим.
Ще одне обмеження веб-додатків полягає в тому, що ви можете використовувати лише мову проекту. На веб-сайтах ви можете мати кілька сторінок у C #, деякі у VB тощо. Не потрібно спеціальної підтримки Visual Studio. Така краса розширюваності постачальника побудови.
Крім того, у веб-додатках ви не отримуєте виявлення помилок на сторінках / елементах керування, оскільки компілятор компілює лише ваш код за класами, а не код розмітки (у MVC ви можете це виправити за допомогою параметра MvcBuildViews), який компілюється під час виконання.
Візуальна студія
Оскільки веб-програми - це проекти Visual Studio, ви отримуєте деякі функції, недоступні на веб-сайтах. Наприклад, ви можете використовувати події побудови для виконання різноманітних завдань, наприклад мінімізувати та / або комбінувати файли Javascript.
Ще одна приємна особливість, запроваджена у Visual Studio 2010, - це перетворення Web.config .Це також недоступно на веб-сайтах. Зараз працює з веб-сайтами в VS 2013.
Створення веб-програми швидше, ніж створення веб-сайту, спеціально для великих сайтів. Це головним чином через те, що веб-програми не компілюють код розмітки. Якщо в MVC встановити MvcBuildViews істинним, він компілює код розмітки, і ви отримаєте виявлення помилок, що дуже корисно. Суть полягає в тому, що кожного разу, коли ви створюєте рішення, він створює повний сайт, який може бути повільним і неефективним, особливо якщо ви не редагуєте сайт. Я вважаю, що я включаю та вимикаю MvcBuildViews (що вимагає завантаження проекту). З іншого боку, за допомогою веб-сайтів ви можете вибрати, хочете ви створити сайт як частину рішення чи ні. Якщо ви вирішите не робити, то розробка рішення буде дуже швидкою, і ви завжди можете натиснути на вузол веб-сайту та вибрати Створити, якщо внесли зміни.
У проекті веб-додатків MVC у вас є додаткові команди та діалоги для поширених завдань, як-от "Додати перегляд", "Перейти до перегляду", "Додати контролер" тощо. Вони недоступні на веб-сайті MVC.
Якщо ви використовуєте IIS Express як сервер розробки, у веб-сайти ви можете додавати віртуальні каталоги. Ця опція недоступна у веб-додатках.
NuGet Package Restore не працює на веб-сайтах, вам потрібно вручну встановити пакунки, перелічені на пакети.configВідновлення пакунків тепер працює з веб-сайтами, починаючи з NuGet 2.7