Типы проектов ASP.NET – Web Site и WebApplication
Дорогие друзья! В этой статье я Вам расскажу о двух способах создания Web-приложений ASP.NET (а они могут создаваться либо как базовые Web-сайты без вспомогательных файлов, либо как Web-проекты) в интегрированной среде разработки (Integrated Development Environment – IDE) Visual Studio Team System 2008. Мы с Вами также рассмотрим модель кода, используемого для Web-страниц ASP.NET, и процесс компиляции, применяемый для Web-приложений ASP.NET.
В Visual Studio предлагается два способа создания Web-приложений, функционирующих на основе ASP.NET:
-
Проектная разработка (или разработка с использованием проекта). Когда создаётся Web-проект, Visual Studio генерирует файл проекта с расширением .csproj (если код пишется на языке C#), в котором фиксируются составляющие проект файлы и сохраняются некоторые отладочные параметры. При запуске Web-проекта, прежде чем запустить Web-браузер, Visual Studio сначала компилирует весь написанный разработчиком код в одну сборку;
-
Беспроектная разработка (или разработка без использования проекта). Это альтернативный подход, который подразумевает создание просто Web-сайта безо всякого файла проекта. При таком подходе Visual Studio предполагает, что каждый файл в каталоге Web-сайта (и всех его подкаталогах) является частью Web-приложения. В этом случае Visual Studio не требуется предварительно компилировать код. Вместо этого ASP.NET компилирует уже сам Web-сайт при первом запросе какой-нибудь входящей в его состав страницы. Разумеется, разработчик может применить предварительную компиляцию и устранить связанные с первым запросом непроизводительные издержки для развёртываемого Web-приложения. О том, как именно он может это сделать, мы поговорим с Вами в следующих статьях.
В этой статье мы сначала опишем процесс создания стандартного беспроектного Web-сайта, потому что такой подход является более простым, а затем уже поговорим о том, как создаются Web-проекты.
Создание беспроектного Web-сайта
Cначала необходимо открыть Microsoft Visual Studio 2008:
Start (Пуск)->
All programs (Все программы)->
Microsoft Visual Studio 2008->
Microsoft Visual Studio 2008.
В результате будет открыта MS VS 2008.
После чего Вам необходимо выбрать в меню File
(Файл) пункт New
(Создать) Website…
(Веб-узел…) – см. рис. 1.

Рис. 1. Создание нового веб-узла

Рис. 2. Диалоговое окно Новый веб-узел
В окне New Web Site (Новый веб-узел) могут быть указаны четыре следующих параметра:
-
Версия .NET. VS 2008 поддерживает такие версии .NET: .NET 2.0, .NET 3.0, .NET 3.5. Создавать разрешается Web-приложение, функционирующее под управлением любой из этих версий .NET. Выбор нужно сделать в списке, который отображается в правом верхнем углу окна Новый веб-узел. При необходимости версию .NET можно будет изменить и уже после создания приложения, как именно – будет рассказываться позже в статье про “Многовариантность”.
-
Шаблон. Шаблон определяет, с каких файлов должен начинаться Web-сайт. VS поддерживает два типа базовых приложений ASP.NET: приложения типа Web-сайтов и приложения типа Web-служб. Эти приложения компилируются и выполняются фактически одинаковым образом. На самом деле, вполне допускается добавлять Web-страницы в приложения типа Web-служб, а Web-службы – в приложения типа Web-сайтов. Единственным отличием являются файлы, которые VS создаёт по умолчанию: в случае приложения типа Web-сайта, это образец Web-страницы, а в случае приложения типа Web-службы – образец Web-службы. Дополнительно в VS предлагаются и более сложные шаблоны для сайтов определённых типов, а также возможность создавать свои собственные шаблоны (и возможность загружать шаблоны, созданные сторонними разработчиками).
-
Размещение. Размещение отвечает за то, где будут храниться файлы Web-сайта. Обычно выбирается вариант File System (Файловая система), а затем указывается либо папка на локальном компьютере, либо сетевой путь. Однако Web-сайт также допускается редактировать и непосредственно через HTTP или FTP (File Transfer Protocol – протокол передачи файлов). Такой подход иногда удобен, когда требуется “вживую” выполнять редактирование Web-сайта на каком-то удалённом Web-сервере. С другой стороны он влечёт за собой дополнительные накладные расходы. Конечно, редактировать напрямую сам производственный сервер не следует никогда, поскольку такие изменения являются автоматическими и необратимыми. Вместо этого лучше ограничивать свои изменения только тестовыми серверами.
-
Язык. Этот параметр позволяет указывать язык программирования .NET, который будет использоваться для написания кода Web-сайта. Выбираемый язык становится просто языком по умолчанию для проекта. Это означает, что разработчик может явно добавлять Web-страницы, написанные на Visual Basic, к Web-сайту на C# и наоборот (что было невозможно в предыдущих версиях VS).
Чтобы не вводить путь размещения файлов вручную, можно щёлкнуть на кнопке Browse (Обзор), что приведёт к открытию диалогового окна Choose Location (Выбор папки). Вдоль левой стороны этого окна будут отображаться четыре кнопки, позволяющие выбирать различные варианты размещения файлов:
-
File System (Файловая система). Это самый простой вариант, поскольку он подразумевает просто просмотр дерева дисков и каталогов или общих ресурсов, отображаемых другими компьютерами в сети, и выбор подходящего каталога. При желании создать новый каталог нужно всего лишь щёлкнуть на пиктограмме Create New Folder (Создать новую папку), которая отображается в правом верхнем углу дерева каталогов. (Заставить Visual Studio создать новый каталог ещё также можно и путём добавления имени нового каталога в конце пути.)
-
Local IIS (Локальный веб-сервер IIS). Этот вариант позволяет просматривать виртуальные каталоги, которые делает доступными предоставляющее Web-хостинг программное обеспечение IIS, при условии, конечно, что таковое установлено на данном компьютере. Более подробно о виртуальных каталогах и способах их создания с помощью IIS Manager (Диспетчер IIS) будет рассказываться в отдельной статье. Наиболее впечатляет то, что виртуальные каталоги также можно создавать, не покидая Visual Studio. Все, что для этого требуется, это просто выбрать узел Default Web Site (Web-сайт по умолчанию) и затем щёлкнуть на пиктограмме Create New Web Application (Создать новое Web-приложение) в правом верхнем углу дерева виртуальных каталогов.
-
FTP Site (FTP-узел). Этот вариант является не таким удобным, как поиск нужного каталога, поскольку предполагает ввод всей информации, которая необходима для установки соединения, а именно: имени FTP-сайта, номера порта, названия каталога, имени пользователя и пароля.
-
Remote Web Site (Удалённый веб-узел). Этот вариант позволяет получать доступ к определённому Web-сайту с определённым URL-адресом по протоколу HTTP. Чтобы он работал, на Web-сервере, к которому требуется получить доступ, должен быть установлен компонент FrontPage Extensions. Вдобавок, при подключении потребуется ввести имя пользователя и пароль.
На рис. 3 показаны все перечисленные варианты размещений.



Рис. 3. Выбор размещения Web-сайта
После того, как вы сделаете свой выбор и щёлкните на кнопке Open (Открыть), Visual Studio вернёт Вас в диалоговое окно New Web Site.
Щёлкните на кнопке OK, и Visual Studio создаст новое Web-приложение.
Изначально новый Web-сайт будет состоять из трёх файлов (рис. 4):
файла главной Web-страницы (Default.aspx),
файла её исходного кода (Default.aspx.cs)
и конфигурационного файла web.config.

Рис. 4. Обозреватель решений
Пока что я рассказал только о том, как можно создавать Web-сайты без каких-либо проектных файлов. Преимуществом беспроектной разработки является то, что она представляет собой простой и прямолинейный процесс. В случае создания беспроектного Web-сайта не требуется развёртывать никаких лишних вспомогательных файлов. Вместо этого каждый находящийся в папке Web-сайта файл автоматически считается частью Web-приложения. (Такая модель имеет смысл потому, что каждая Web-страница в виртуальном каталоге доступна по отдельности независимо от того, считает её разработчик официальной частью своего проекта или нет).
Беспроектная разработка продолжает пользоваться популярностью по перечисленным ниже причинам:
-
Она упрощает сам процесс разработки. Требуется просто скопировать все файлы из каталога Web-сайта на Web-сервер: нет никаких ни проектных, ни отладочных файлов, которых следовало бы избегать.
-
Она упрощает управление файлами. При желании удалить страницу, можно просто удалить ассоциируемые с нею файлы с помощью любой предпочитаемой программы для управления файлами. При желании добавить новую страницу или перенести какую-нибудь страницу из одного Web-сайта в другой, необходимо опять-таки лишь скопировать ассоциируемые с нею файлы: ни иметь дело с Visual Studio, ни редактировать файл проекта не требуется. Из-за отсутствия файла проекта, о котором нужно было бы заботиться, в Web-страницы даже авторские коррективы можно вносить другими средствами.
-
Она упрощает совместную командную работу. Разные люди могут по отдельности работать над разными Web-страницами, и блокировать никакие проектные файлы при этом не требуется.
-
Она упрощает отладку. В случае, когда создаётся Web-проект, при изменении даже одной единственной страницы заново необходимо компилировать всё приложение. В случае беспроектной разработки каждая страница компилируется отдельно, причём только тогда, когда запрашивается впервые.
-
Позволяет смешивать языки Поскольку каждая Web-страница компилируется отдельно, разработчик волен писать код для своих страниц на разных языках. В случае проектной разработки, ему для этого придётся создавать либо отельные Web-проекты (что усложнит управление), либо отдельные проекты библиотеки классов.
Разработка, основанная на проектах
При создании Web-проекта Visual Studio генерирует ряд дополнительных файлов, включая пользовательские файлы проекта с расширением .csproj, а также файл решения с расширением .sln. При компоновке приложения Visual Studio генерирует временные файлы, которые размещает в подкаталоге obj, и один или более .pdb-файлов с отладочными символами, которые размещает в подкаталоге bin. Ни один из этих файлов не должен развёртываться на Web-сервере, когда Web-приложение будет готово. Более того, также не должны развёртываться и файлы исходного кода на C# (файлы с расширением .cs), поскольку Visual Studio предварительно компилирует их в DLL-сборку.
К числу наиболее важных преимуществ Web-проектов относятся перечисленные ниже:
-
Система проектной разработки является более чёткой, чем система беспроектной разработки. Всё дело в том, что в файле проекта явно перечисляются все файлы, которые должны входить в этот проект. Это позволяет перехватывать вероятные ошибки (вроде недостающих файлов) и даже анализировать возможные варианты атак (вроде добавления злонамеренным пользователем нежелательных файлов).
-
Web-проекты предусматривают больше возможностей для управления файлами. Одним из примеров может служить случай, когда создаётся несколько проектов, и все они размещаются в подкаталогах внутри одного и тоже же виртуального каталога. В таком сценарии получается, что файлы хранятся отдельно для целей разработки, но при этом по сути всё равно являются частью одного и того же приложения для развёртывания. В случае беспроектной разработки возможности размещать файлы отдельно в таких подкаталогах не существует.
-
Web-проекты предусматривают возможность настройки процесса развёртывания. Файлы проектов Visual Studio работают с утилитой MSBuild, которая позволяет настраивать и автоматизировать процесс компиляции проекта, а также управлять генерируемой для Web-приложения сборкой, присваивая ей подходящее имя, добавляя в неё подпись и т.д.
-
Web-проекты работают лучше в некоторых сценариях миграции. По этой причине ASP.NET автоматически преобразовывает Web-проекты Visual Studio .NET 2003 в Web-проекты Visual Studio 2008. Это преобразование требует внесения в страницы меньшего количества изменений.
Доступные функциональные возможности ASP.NET как при беспроектной, так и при основанной на проектах разработке выглядят одинаково. Более того, показатели производительности и в том, и в другом случае тоже ничем не отличаются. Так какой же тогда вариант лучше выбирать при создании нового Web-сайта ASP.NET? У каждого подхода имеются свои сторонники. Официально Microsoft рекомендует пользоваться более простой моделью Web-сайта во всех случаях, кроме тех, когда существует серьёзная причина использовать всё-таки именно Web-проект.
Создание Web-проекта
Cначала необходимо открыть Microsoft Visual Studio 2008:
Start (Пуск)->All programs
(Все программы)->
Microsoft Visual Studio 2008->Microsoft Visual Studio 2008.
В результате будет открыта MS VS 2008.
После чего Вам необходимо выбрать в меню File (Файл)
пункт New (Создать)->
Project… (Проект…) – см. рис. 5.
После этого Visual Studio отобразит диалоговое окно New Project
(Создать проект).
В нём необходимо развернуть в дереве Project Types (Типы проектов)
узел Visual C#->Web и выбрать элемент ASP.NET Web Application
(Веб-приложение ASP.NET) как показано на рис. 6.
Рис. 5. Создание нового веб-проекта
Рис. 6. Диалоговое окно Создать проект
Далее нужно указать место размещения, либо в виде пути к файлу, либо в виде URL-адреса, указывающего на локальный или удалённый Web-сервер IIS, а также имя проекта, которое затем будет использовано для создания в выбранном месте размещения соответствующего подкаталога (или виртуального каталога, если применяется URL-адрес). Как и при создании беспроектного Web-сайта, с помощью списка, отображаемого в правом верхнем углу окна, можно изменить целевую версию .NET Framework.
Хотя Web-проекты и беспроектные Web-сайты дают одинаковый конечный результат после развёртывания и компиляции на Web-сервере, в способе, которым они структурируются во время проектирования, существуют некоторые отличия. Ниже перечислены эти отличия:
-
Компиляция. Как уже объяснялось ранее, при запуске Web-проекты компилируются Visual Studio (а не ASP.NET). Классы Web-страниц объединяются в одну сборку, которая получает то же имя, что и у Web-проекта (например, WebApplication) и затем размещается в папке bin.
-
Отделённый код. Web-страницы в Web-проекте всегда используют модель отделенного кода. Однако они включают один дополнительный файл с расширением .aspx.desginer.cs, в котором содержатся объявления для всех имеющихся на них элементов управления. Это означает, что если вы создадите страницу с именем Default.aspx, вы получите файл Default.aspx.cs с классом отделённого кода и файл Default.aspx.designer.cs с объявлениями элементов управления (рис. 7). Во время компиляции эти два файла будут объединены. В беспроектном Web-сайте вы никогда не увидите файла с объявлениями элементов управления, поскольку эта часть кода генерируется во время компиляции системой ASP.NET.

Рис. 7. Файл .aspx.designer.cs с объявлениями элементов управления
-
Директива Page. В Web-страницах Web-проекта директива Page выглядит немного по-другому. В ней для указания на файл с исходным кодом вместо атрибута CodeFile применяется атрибут CodeBehind. Это отличие тоже связано с тем, что компиляцию осуществляет Visual Studio, а не ASP.NET. ASP.NET проверяет атрибут CodeFile, а Visual Studio — атрибут CodeBehind.
-
Ссылки на сборки. В беспроектном Web-сайте все ссылки на сборки фиксируются в файле web.config, так что ASP.NET может использовать их при разрешении ссылок во время компиляции. Но в Web-проекте ссылки на сборки сохраняются в файле проекта, к которому Visual Studio обращается при компиляции кода. Исключением являются только ссылки на сборку System.Core.dll и сборку System.Web.Extensions.dll, в которых содержатся все специфические функции .NET 3.5. Эти ссылки определяются в файле web.config, поскольку включают классы, необходимые для указания новых конфигурационных параметров.
Дорогие друзья! Урок затянулся, но я надеюсь, Вам было интересно. Если что пишите на
rubanov.av@mail.ru.
В следующих уроках я более подробно расскажу о структуре этих двух типов проектов, о страницах и элементах управления (контролах).
Больше информации читайте по теме:
Оценить статью:
Оценивая статью, Вы подсказываете нам насколько данная информация стала
полезной именно для Вас. Мы ожидаем, прежде всего, оценку доступности материала
для понимания и простоты его изложения. Дополнительные комментари, вопросы,
дополнения и замечания Вы можете указать на странице
От Вас
Частичное, или полное копирование материала данной
статьи возможно лишь при размещении ссылки на данную страницу.
|