Asp управление работой приложения


Содержание

Роль сервера приложений: настройка сервера приложений

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

  • Группировка ресурсов в пул (например, создание пулов подключений к базе данных и пулов объектов).
  • Управление распределенными транзакциями.
  • Асинхронная связь программ, в основном при помощи очереди сообщений.
  • Модель оперативной активации объекта.
  • Интерфейсы автоматических веб-служб XML для доступа к рабочим объектам.
  • Службы перемещения при сбое и определения работоспособности приложений.
  • Интегрированная безопасность.

Операционные системы Windows Server 2003 включают в себя все эти функции в добавление к службам разработки, развертывания и управления во время работы веб-службами XML, веб-приложениями и распределенными приложениями.

В этом разделе объясняются основные шаги, которые необходимо проделать при настройке сервера приложений. Этот процесс включает в себя использование мастера настройки сервера для настройки сервера как сервера приложений. После завершения установки основного сервера приложений, дополнительные задачи можно выполнять при помощи программы «Управление данным сервером».

Предварительная подготовка

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

  • Все существующие тома диска используют файловую систему NTFS. Тома FAT32 не безопасны и не поддерживают сжатие файлов и папок, дисковые квоты, шифрование файлов и разрешения специального доступа к файлам. Чтобы узнать тип файловой системы, в папке Мой компьютер щелкните правой кнопкой мыши том диска и выберите команду Свойства.
  • Компьютер подключен к сети и имеет статический или динамический IP-адрес.

Следующая таблица содержит сведения, необходимые для добавления роли сервера приложений.

Действия, которые следует выполнить перед добавлением роли сервера приложений Комментарии
Ознакомьтесь со следующими технологиями, которые устанавливаются автоматически во время настройки сервера приложений.
  • Службы IIS
  • Консоль сервера приложений
  • COM+
  • Координатор распределенных транзакций (DTC)
  • IIS 6.0 — это полнофункциональный веб-сервер, который обеспечивает инфраструктуру для среды .NET, а также существующих веб-приложений и веб-служб.
  • COM+ – расширение модели объектных компонентов (COM). COM+ основано на интегрированных службах и свойствах COM, облегчая разработчикам создание и использование компонентов программного обеспечения на любом языке и используя любые средства.
  • Оснастка сервера приложений предоставляет возможность администрирования веб-приложений. Чтобы открыть оснастку сервера приложений, в окне «Управление данным сервером» выберите пункт Управление этим сервером приложений.
  • Координатор распределенных транзакций (DTC) координирует транзакции COM+.
Определите, нужно ли устанавливать серверные расширения FrontPage. Серверные расширения FrontPage позволяют пользователю на клиентском компьютере удаленно публиковать и администрировать веб-узлы на сервере.
Определите, нужно ли запускать на сервере приложения ASP.NET. ASP.NET — это единая платформа веб-разработки, которая предоставляет необходимые службы для создания разработчиками веб-приложений корпоративного уровня. ASP.NET можно активировать для разработки веб-приложений.

Настройка сервера приложений

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

  • В программе «Управление данным сервером» выберите ссылку Добавить или удалить роль. По умолчанию программа «Управление данным сервером» автоматически загружается при входе в систему. XOX
  • XOX

На странице Роль сервера выберите пункт Сервер приложений (IIS, ASP.NET) и нажмите кнопку Далее.

В этом разделе собраны сведения по следующим вопросам.

Параметры сервера приложений

На странице Параметры сервера приложений по желанию можно выбрать для установки следующие компоненты сервера приложений.

  • Серверные расширения FrontPage—. Серверные расширения FrontPage позволяют нескольким пользователям с клиентского компьютера администрировать и публиковать данные на веб-узле в удаленном режиме. Это свойство следует выбирать, чтобы предоставить возможность нескольким пользователям с клиентских компьютеров создавать веб-приложения или одновременно через Интернет создавать веб-узлы.
  • Включить ASP.NET—. ASP.NET – единая платформа веб-приложений, предоставляющая службы, необходимые для создания и развертывания веб-приложений корпоративного уровня. ASP.NET предлагает новую модель программирования и инфраструктуру для более безопасных, масштабируемых и устойчивых приложений, предназначенных для любых программ обозревателей или устройств. Если на веб-узле имеются приложения, разработанные с помощью ASP.NET, выберите это свойство. Если вы не уверены в этом, ASP.NET можно включить позднее с помощью диспетчера IIS. XOX После включения ASP.NET на сервере приложений можно размещать приложения ASP.NET. Ниже перечислены некоторые свойства ASP.NET.
    • ASP.NET может работать одновременно с кодом ASP в службах IIS. Если код ASP уже запущен, не обязательно обновлять страницы ASP, кроме того, можно добавлять страницы ASP.NET в приложения.
    • ASP.NET имеет улучшенное быстродействие.
    • ASP.NET поддерживает множество языков, в том числе Visual Basic .NET, C# и JScript .NET.

Для продолжения нажмите кнопку Далее.

Сводка выбранных параметров

На странице Сводка выбранных параметров посмотрите и подтвердите выбранные параметры. Если на странице Роль сервера был выбран пункт Сервер приложений (IIS, ASP.NET), в сводке будут отображены следующие параметры.

  • Установка IIS
  • Включение COM+ для удаленных транзакций
  • Включение координатора распределенных транзакций Microsoft (DTC) для удаленного доступа

Если были выбраны пункты «Серверные расширения FrontPage» или «ASP.NET», отобразятся следующие параметры.

  • Установка серверных расширений FrontPage
  • Включить ASP.NET

Для применения параметров, выбранных на странице Сводка выбранных параметров, нажмите кнопку Далее. После нажатия кнопки Далее появится, а затем автоматически закроется страница Настройка компонентов мастера компонентов Windows. На этой странице невозможно нажать кнопки Назад или Далее.

Завершение работы мастера настройки сервера

После настройки компонентов мастер настройки сервера отобразит страницу Данный сервер теперь является сервером приложений. Для просмотра всех изменений, сделанных на сервере мастером настройки сервера, или для проверки успешной установки новой роли щелкните ссылку Просмотр сведений о настройке журнала сервера. Мастер настройки сервера находится в папке системный_корневой_каталог\Debug\Configure Your Server.log. Чтобы закрыть мастер настройки сервера, нажмите кнопку Готово.

Если установка завершилась неудачно, отобразится страница Продолжение невозможно и служба IIS не будет установлена. Для устранения неполадок щелкните ссылку Просмотр сведений о настройке журнала сервера.

Удаление роли сервера приложений

Если требуется перенастроить сервер для другой роли, можно удалить существующую роль. Вместе с удалением роли сервера приложений удаляются все его компоненты, такие как IIS. После этого сервер прекращает поддержку в качестве сервера веб-страниц, веб-приложений или распределенных приложений.

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

  • В программе «Управление данным сервером» выберите ссылку Добавить или удалить роль. По умолчанию программа «Управление данным сервером» автоматически загружается при входе в систему. XOX
  • XOX

На странице Роль сервера выберите пункт Сервер приложений (IIS, ASP.NET) и нажмите кнопку Далее. На странице Подтверждение удаления роли просмотрите список, отображенный под заголовком Сводка, установите флажок Удалить роль сервера приложений и нажмите кнопку Далее. После нажатия кнопки Далее появится, а затем автоматически закроется страница Настройка компонентов мастера компонентов Windows. На этой странице невозможно нажать кнопки Назад или Далее. На странице Роль сервера приложений удалена нажмите кнопку Готово.

Дальнейшие действия: выполнение дополнительных задач

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

  • установка IIS, ASP.NET, и COM+;
  • включение серверных расширений FrontPage, если требуется;
  • включение ASP.NET, если требуется.

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

Устройство веб-приложений

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

Клиентская часть реализует пользовательский интерфейс, формирует запросы к серверу и обрабатывает ответы от него.

Серверная часть получает запрос от клиента, выполняет вычисления, после этого формирует веб-страницу и отправляет её клиенту по сети с использованием протокола HTTP.

Само веб-приложение может выступать в качестве клиента других служб, например, базы данных или другого веб-приложения, расположенного на другом сервере. Ярким примером веб-приложения является система управления содержимым статей Википедии: множество её участников могут принимать участие в создании сетевой энциклопедии, используя для этого браузеры своих операционных систем (будь то Microsoft Windows, GNU/Linux или любая другая операционная система) и не загружая дополнительных исполняемых модулей для работы с базой данных статей.

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

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

Виды Веб-приложений и технологии их создания:

AJAX(Asynchronous JavaScript and XML) — подход к построению пользовательских интерфейсов Web-приложений, при котором в ответ на каждое действие пользователя Web-страница на его браузере, не перезагружается полностью — с Web-сервера только догружаются нужные ему данные. Этим обеспечивается оперативная работа как одного, так и групп пользователей с приложениями. AJAX представляет собой не одну, а группу технологий и базируется на принципах использования DHTML для динамичного изменения содержания страницы и использования XMLHttpRequest для обращения к серверу (альтернативный вариант — динамическая подгрузка JavaScript с использованием объектной модели документа — DOM). С учетом этих принципов можно создавать удобные Web-интерфейсы на тех страницах сайтов, где необходимо активное взаимодействие с пользователями. Популярность AJAX приобрела после того, как компания Google начала применять его при создании Gmail, Google maps, Google suggest.

ASP (Active Server Pages) — технология создания Web-приложений, использующая объектную модель интерфейса, созданного на основе ISAPI-фильтра. ASP упростила задачи генерации HTML-страниц и позволила производить обращение к компонентам баз данных. Принцип, заложенный в основу интерфейса приложения, заключается в том, что на Web-странице присутствуют фрагменты кода, который интерпретируется Web-сервером и предоставляет пользователю готовый результат выполнения выбранных фрагментов кода. Web-страница, созданная с использованием технологии ASP, имеет расширение «.asp».

CGI(Common Gateway Interface, общий шлюзовой интерфейс) — программа поиска в удаленных БД, переадресации ссылок, использования графических меню, связи с базами данных (путем запуска программы преобразования форматов баз данных в формат языка HTML).

CRM (Customer Relationship Management) — Web-приложения для автоматизации и повышения эффективности процессов, связанных с бизнесом (обработка заказов, маркетинг, обслуживание клиентов). CRM используются в специализированных операторских «контакт-центрах». Первая версия программного продукта Microsoft CRM появилась в 2002 году. Web-сервисы Microsoft CRM реализуются на основе использования SQL-сервера и предусматривают создание основного хранилища данных Microsoft CRM, БД метаданных, БД для построения отчетности и дистрибуционной БД, предназначенной для отслеживания взаимодействия автономных пользователей клиента Outlook с основной БД Microsoft CRM. Использование XML позволяет интегрировать Microsoft CRM с приложениями подобного назначения независимо от языка программирования и операционной системы, под управлением которой работает стороннее приложение (например, SAP R/3). Система предусматривает ограничения доступа и проверку прав доступа клиентов.

ERP (Enterprise Resource Planning) — Web-приложения, предназначенные для автоматизации процессов управления внутрихозяйственной деятельностью корпорации, включая управление производством, финансами, снабжением, персоналом.

ISAPI (Internet Server Application Programming Interface) — интерфейс к серверу Интернета фирмы Microsoft, предназначен для программного управления сервером. ISAPI поддерживается большинством производителей программных средств. ISAPI-программы представляют собой специальный вид приложений, обрабатывающих пользовательские запросы и отображающих их вывод в виде потока HTML, который поступает непосредственно в браузер клиента.

ITRP (IT Resources Planning) — класс Web-приложений, предназначен для поддержки управления корпоративными ИТ-ресурсами и сервисами.

JSP (Java Server Pages) — технология создания Web-приложений, основанная на однократной компиляции Java-кода (сервлета) при первом обращении к нему с последующим выполнением методов этого сервлета и помещением полученных результатов в набор данных, которые отправляются в браузер.

OSS (Operation Support Systems) — вид Web-приложений, предназначен для обеспечения работы операторов распределенных вычислительных сетей. OSS обеспечивает управление сетью, производительность, ликвидацию сбоев в работе, создание и учет сервисов, планирование сетевых ресурсов, мониторинг процессов, контроль за безопасностью, качество услуг и уровень обслуживания клиентов, сбором статистических данных. Разновидностью OSS является система поддержки бизнеса — BSS (Business Support Systems). К ним относятся биллинговые системы, системы управления взаимоотношениями с клиентами, управления сетями, заказами, качеством услуг.

PHP (Personal Home Page) — сценарный язык и программное средство для создания Web-страниц. В его состав входит CGI-интерфейс, интерпретатор языка и набор функций для доступа к базам данных и различным объектам WWW. PHP позволяет формировать страницы в режиме интерактивного взаимодействия в системах «клиент-сервер».

Требования к веб-приложениям

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

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

Нефункциональные требования представляют собой описание характеристик приложения, важных для пользователя при работе с системой. Рассмотрим, какие характеристики задают нефункциональные требования к системе:

• надежность: Формально, надежность – это свойство приложения сохранять

во времени в установленных пределах значения всех параметров, характеризующих

способность выполнять требуемые функции в заданных режимах и условиях

применения (ГОСТ 27.002-89). Т.е. требования к надежности приложения

определяются условиями функционирования приложения (параметры сервера,

максимальное количество пользователей приложения) и допустимыми показателями

качества работы системы в этих условиях (время обработки запроса пользователя к

системе, количество отказов системы). Таким образом, надежное веб-приложение

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

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

при проектировании системы).

быстродействие приложения: Быстродействие определяется как среднее

время обработки запроса пользователя к системе. Максимальным приемлемым

временем отклика для веб-приложений считается 5 секунд.

• безопасность: Требование безопасности веб-приложения включает в себя:

разграничение прав доступа к функциям и данным каждого компонента веб-

приложения может, контроль уровня доступа компонентов и/или пользователей,

авторизация и верификация пользователей.

масштабируемость:– это способность системы увеличивать свою

производительность при повышенной нагрузке и добавлении ресурсов. Для

пользователя масштабируемого веб-приложения должен оставаться незаметным

момент (т.е. время отклика системы на запросы пользователя не должно заметно

изменяться), когда возрастет нагрузка (например, к приложению получают доступ

одновременно еще несколько пользователей), и при изменении конфигурации

приложения (например, если на уровень бизнес-логики будет добавлен

дополнительный компонент обработки данных).

66. Виды Web-сайтов. Структура сайта. Предпроектное обследование для создания структуры сайта и его информационного наполнения.Виды сайтов и их назначение

Не нашли то, что искали? Воспользуйтесь поиском:

Лучшие изречения: При сдаче лабораторной работы, студент делает вид, что все знает; преподаватель делает вид, что верит ему. 9336 — | 7293 — или читать все.

188.64.174.135 © studopedia.ru Не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования. Есть нарушение авторского права? Напишите нам | Обратная связь.

Отключите adBlock!
и обновите страницу (F5)

очень нужно

Введение в разработку веб-приложений с использованием Microsoft Visual Studio 2010

Introduction to Web Development with Microsoft Visual Studio 2010

Код: 10267
Направление обучения: Средства разработки, ИТ/прочие
Продолжительность: 5 дней / 40 часов
Цена для физ. лиц: 21000 руб.
Цена для юр. лиц: 24000 руб.

Описание образовательной программы

  • Создавать веб-приложения с использованием Microsoft Visual Studio 2010 и .NET-совместимых языков программирования.
  • Создавать веб-формы ASP.NET.
  • Добавлять функциональность к веб-формам ASP.NET.
  • Создать пользовательские элементы управления и главные страницы.
  • Использовать элементы управления для проверки данных, введенных пользователем.
  • Отлаживать ASP.NET веб-приложения.
  • Управлять данными в ASP.NET веб-приложениях.
  • Реализовать задачи, требующие доступа к данным, с использованием технологии LINQ.
  • Управлять данными с использованием платформы динамических данных ASP.NET.
  • Вызывать службы Windows Communication Foundation (WCF).
  • Управлять состоянием в веб-приложениях.
  • Настраивать и распространять веб-приложения ASP.NET.
  • Защищать веб-приложения ASP.NET.
  • Использовать новые технологии для веб-разработки, появившиеся в Visual Studio 2010.

Цель курса

Формирование базовых знаний и навыков, необходимых для разработки веб-приложений с использованием Microsoft Visual Studio 2010.

Целевая аудитория

Начинающие разработчики веб-приложений, обладающие знанием HTML или DHTML, а также знанием одного из скриптовых языков программирования, например, Visual Basic Scripting Edition или Microsoft JScript.

Необходимая подготовка

  • Опыт создания страниц HTML или DHTML (таблицы, изображения, формы).
  • Опыт программирования на Visual Basic .NET или Visual C# (объявление переменных, использование циклов, использование условных выражений).

Содержание

  • Знакомство с .NET Framework.
  • Обзор ASP.NET.
  • Обзор приложения, которое будет использоваться в лабораторных работах.

  • Выбор языка программирования.
  • Обзор Visual Studio 2010.
  • Создание простого веб-приложения.
  • Лабораторная работа: Создание веб-приложений в Microsoft Visual Studio 2010 на .NET- совместимом языке программирования.
    • Создание сайта ASP.NET.
    • Добавление и настройка серверных элементов управления.
    • Компиляция и развертывание веб-приложения ASP.NET.
  • Создание веб-форм.
  • Добавление и настройка серверных элементов управления.
  • Лабораторная работа: Создание веб-формы Microsoft ASP.NET.
    • Создание веб-формы.
    • Добавление и настройка серверных элементов управления.
  • Использование страниц отделенного кода.
  • Обработка событий серверных элементов управления.
  • Создание классов и компонентов с использованием Visual Studio 2010.
  • Обработка событий страницы.
  • Лабораторная работа: Добавление функциональности веб-форме MicrosoftASP.NET.
    • Добавление кода в веб-приложение.
    • Создание обработчиков событий.
    • Создание компонента.
    • Обработка событий страницы и элементов управления.
  • Создание главных страниц.
  • Добавление пользовательских элементов управления в веб-форму ASP.NET.
  • Лабораторная работа: Создание главных страниц и пользовательских элементов управления.
    • Добавление и применение главной страницы.
    • Преобразование веб-форм в страницы содержимого и пользовательские элементы управления.
  • Обзор возможностей проверки пользовательского ввода.
  • Элементы управления ASP.NET для проверки пользовательского ввода.
  • Проверка Web Forms.
  • Лабораторная работа: Проверка данных, вводимых пользователем.
    • Добавление элементов управления для проверки данных.
    • Настройка элементов управления для проверки данных.
    • Добавление проверки на стороне сервера.
  • Отладка в ASP.NET.
  • Трассировка в ASP.NET.
  • Лабораторная работа 6: Отладка веб-приложений Microsoft ASP.NET.
    • Отладка веб-приложений.
    • Трассировка веб-приложений.
  • Обзор ADO.NET.
  • Создание подключения к базе данных.
  • Управление данными.
  • Лабораторная работа: Управление данными в веб-приложениях ASP.NET 4.0.
    • Подключение к источнику данных.
    • Связывание серверного элемента управления с источником данных.
    • Изменение источника данных.
  • Обзор технологии LINQ.
  • Управление XML-данными с применением LINQ to XML.
  • Управление SQL-данными с применением LINQ to SQL и LINQ to Entities.
  • Лабораторная работа: Управление данными с использованием технологии LINQ.
    • Загрузка данных с использованием XmlDataSource.
    • Отображение данных с применением LINQ to XML.
    • Сохранение данных с применением LINQ to Entities.
  • Обзор платформы ASP.NET Dynamic Data.
  • Применение ASP.NET Dynamic Data.
  • Настройка приложений ASP.NET Dynamic Data.
  • Лабораторная работа: Управление данными с использованием платформы ASP.NET Dynamic Data.
    • Добавление динамических данных на существующий сайт.
    • Регистрация LINQ to Entities с использованием динамических данных.
    • Тестирование приложения.
  • Обзор AJAX.
  • Создание приложений ASP.NET AJAX с использованием расширений AJAX для ASP.NET.
  • Расширение возможностей ASP.NET приложения с использованием AJAX ControlToolkit.
  • Лабораторная работа: Создание приложения ASP.NET AJAX.
    • Создание модального окна About.
    • Настройка шаблонов полей динамических данных с использованием серверных элементов AJAX.
    • Добавление индикатора хода выполнения Country Import.
  • Обзор служб WCF.
  • Вызов служб WCF.
  • Использование служб данных WCF.
  • Лабораторная работа: Использование служб Microsoft Windows Communication Foundation.
    • Создание прокси для ссылки службы WCF.
    • Вызов метода сервиса WCF из веб-формы.
    • Использование служб данных WCF.
  • Управление состоянием.
  • Профили ASP.NET.
  • Кэширование в ASP.NET.
  • Лабораторная работа: Управление состоянием в веб-приложениях.
    • Просмотр данных, хранимых в ViewState.
    • Кэширование данных.
    • Отображение счетчика посещений на главной странице.
  • Настройка веб-приложения ASP.NET.
  • Развертывание веб-приложения ASP.NET.
  • Лабораторная работа: Настройка и развертывание веб-приложений Microsoft ASP.NET.
    • Настройка размера страницы элемента ListView и активация кнопки SaveCountries.
    • Настройка счетчика посещений.
    • Развертывание веб-приложения.
  • Обзор возможностей защиты веб-приложений.
  • Декларативная настройка аутентификации и авторизации.
  • Программная настройка аутентификации и авторизации.
  • Лабораторная работа: Защита веб-приложений Microsoft ASP.NET.
    • Использование аутентификации Forms Authentication.
    • Настройка авторизации.
    • Защита конфигурационного файла.
  • Использование ASP.NET MVC 2 Framework.
  • Использование Silverlight 4.
  • Создание приложений Silverlight в Visual Studio 2010.
  • Лабораторная работа: Использование расширенных возможностей для разработки веб-приложений.
    • Создание приложений Silverlight.
Илон Маск рекомендует:  Методы и функции JavaScript

Получаемый документ

Удостоверение о повышении квалификации, или Сертификат.

(В зависимости от категории слушателей и общей продолжительности программы)

Одностраничные приложения: создание современных адаптивных веб-приложений с помощью ASP.NET

Продукты и технологии:

Single-Page Applications (SPA), ASP.NET Web API, Knockout.js, Ember.js, AJAX и HTML5

В статье рассматриваются:

  • создание уровня сервисов и веб-клиента AJAX для приложения-примера;
  • шаблоны MVC и MVVM;
  • связывание с данными;
  • создание веб-клиента с применением Knockout.js;
  • создание веб-клиента с применением Ember.js.

Одностраничные приложения (Single-Page Applications, SPA) — это веб-приложения, которые загружают одну HTML-страницу и динамически обновляют ее при взаимодействии с пользователем.

SPA используют AJAX и HTML5 для создания гибких и адаптивных веб-приложений без постоянных перезагрузок страницы. Однако это означает, что большая часть работы возлагается на клиентскую сторону, а именно на JavaScript-код. Разработчику для традиционной ASP.NET может быть трудно совершить такой кульбит. К счастью, существует множество JavaScript-инфраструктур с открытым исходным кодом, которые облегчают создание SPA.

В этой статье я пошагово пройду процесс создания простого SPA-приложения. Попутно вы ознакомитесь с некоторыми фундаментальными концепциями создания SPA, в том числе с шаблонами Model-View-Controller (MVC) и Model-View-ViewModel (MVVM), связыванием с данными и маршрутизацией (routing).

О приложении-примере

Я создал приложение-пример для операций с простой базой данных по фильмам (рис. 1). В крайнем слева столбце страницы отображается список жанров. Выбор жанра приводит к появлению списка соответствующих фильмов. Кнопка Edit рядом с записью позволяет изменять эту запись. После редактирования можно щелкнуть кнопку Save для передачи обновления на сервер или кнопку Cancel для отмены изменений.

Рис. 1. SPA-приложение для базы данных по фильмам

Я создал две версии этого приложения: одна из них использует библиотеку Knockout.js, а другая — библиотеку Ember.js. Эти две библиотеки основаны на разных подходах, поэтому будет весьма поучительно сравнить их. В обоих случаях клиентское приложение не требовало более 150 строк JavaScript-кода. На серверной стороне я задействовал ASP.NET Web API, чтобы обслуживать JSON для клиента. Исходный код обеих версий вы найдете на github.com/MikeWasson/MoviesSPA.

(Примечание Я создавал приложение, используя RC-версию Visual Studio 2013. В RTM-версии некоторые вещи могли измениться, но они не должны повлиять на код.)

Обзор

В традиционном веб-приложении при каждом вызове сервера тот осуществляет рендеринг новой HTML-страницы. Это вызывает обновление страницы в браузере. Если вы когда-нибудь писали приложение Web Forms или PHP, этот жизненный цикл страниц должен быть знаком вам.

В SPA после загрузки первой страницы все взаимодействие с сервером происходит через AJAX-вызовы. Эти AJAX-вызовы возвращают данные (не разметку) — обычно в формате JSON. Приложение использует JSON-данные для динамического обновления страницы без ее перезагрузки. Рис. 2 иллюстрирует разницу между этими двумя подходами.

Рис. 2. Сравнение традиционного жизненного цикла страницы с жизненным циклом в SPA

Traditional Page Lifecycle Традиционный жизненный цикл страницы
Client Клиент
Page Reload Перезагрузка страницы
Server Сервер
Initial Request Начальный запрос
HTML HTML
Form POST Передача формы командой POST
SPA Lifecycle Жизненный цикл в SPA
AJAX AJAX
JSON JSON

Одно из преимуществ SPA очевидно: приложения более гибкие и адаптивные, свободные от рваного эффекта перезагрузки страницы и ее рендеринга заново. Другое преимущество может оказаться менее очевидным и касается того, как вы проектируете архитектуру веб-приложения. Отправка данных приложения как JSON обеспечивает разделение между презентационной частью (HTML-разметкой) и прикладной логикой (AJAX-запросы плюс JSON-ответы).

Это разделение упрощает проектирование и развитие каждого уровня. В SPA-приложении с тщательно продуманной архитектурой можно изменять HTML-разметку, не касаясь кода, который реализует прикладную логику (по крайней мере, в идеале). Вы увидите это на практике, когда мы будем обсуждать связывание с данными.

В чистом SPA все UI-взаимодействие происходит на клиентской стороне через JavaScript и CSS. После начальной загрузки страницы сервер действует исключительно как уровень сервисов. Клиенту нужно просто знать, какие HTTP-запросы он должен посылать. Ему не важно, как сервер реализует свою часть.

При такой архитектуре клиент и сервис независимы. Вы могли бы полностью заменить серверную часть, которая выполняет сервис, и, пока вы не изменяете API, вы никак не нарушите работу клиента. Верно и обратное: вы можете заменить все клиентское приложение, не изменяя уровень сервисов. Например, вы могли бы написать родной мобильный клиент, который использует этот сервис.

Создание проекта в Visual Studio

В Visual Studio 2013 есть один тип проекта ASP.NET Web Application. Мастер этого проекта позволяет выбрать ASP.NET-компоненты, которые будут включены в проект. Я начал с шаблона Empty, а затем добавил в проект ASP.NET Web API, установив флажок Web API в разделе Add folders and core references for, как показано на рис. 3.

Рис. 3. Создание нового ASP.NET-проекта в Visual Studio 2013

В новом проекте есть все библиотеки, необходимые для Web API, а также кое-какой конфигурационный код Web API. Я не вводил никаких зависимостей от Web Forms или ASP.NET MVC.

Обратите внимание на рис. 3, что Visual Studio 2013 включает шаблон Single Page Application. Этот шаблон устанавливает скелет SPA-приложения, основанный на Knockout.js. Он поддерживает вход с применением базы данных с информацией о членстве в группах или с помощью внешнего провайдера аутентификации. Я не стал использовать этот шаблон в своем приложении, потому что хотел показать более простой пример с нуля. Шаблон SPA — отличный ресурс, особенно если вам нужно добавить аутентификацию в приложение.

Создание уровня сервисов

Я использовал ASP.NET Web API, чтобы создать простой REST API для приложения. Не буду здесь вдаваться в детали Web API — подробности вы можете прочитать по ссылке asp.net/web-api.

Сначала я создал класс Movie, представляющий фильм. Этот класс делает две вещи:

  • сообщает Entity Framework (EF), как создавать таблицы базы данных для хранения информации о фильмах;
  • сообщает Web API, как форматировать полезные данные JSON.


Вы не обязаны использовать одну модель для обеих целей. Например, вам может понадобиться, чтобы схема базы данных отличалась от полезных данных JSON. В этом приложении я ничего не усложняю:

Затем я воспользовался технологией scaffolding в Visual Studio для создания контроллера Web API, который задействует EF в качестве уровня данных. Чтобы применить эту технологию, щелкните правой кнопкой мыши папку Controllers в Solution Explorer и выберите Add | New Scaffolded Item. В мастере Add Scaffold укажите Web API 2 Controller with actions, using Entity Framework, как показано на рис. 4.

Рис. 4. Добавление контроллера Web API

На рис. 5 приведен мастер Add Controller. Я присвоил контроллеру имя MoviesController. Имя имеет значение, так как URI для REST API основываются на имени контроллера. Я также установил флажок Use async controller actions, чтобы задействовать преимущества новой функциональности async в EF 6. Я выбрал класс Movie в качестве модели и указал New data context, чтобы создать новый контекст данных EF.

Рис. 5. Мастер Add Controller

Мастер добавляет два файла:

  • MoviesController.cs — определяет контроллер Web API, который реализует REST API для приложения;
  • MovieSPAContext.cs — это в основном склеивающий слой EF, который предоставляет методы для запроса нижележащей базы данных.

В табл. 1 показан REST API по умолчанию, создаваемый технологией scaffolding.

Табл. 1. REST API по умолчанию, созданный технологией scaffolding из Web API

HTTP-команда URI Описание
GET /api/movies Получить список всех фильмов
GET /api/movies/ Получить фильм с идентификатором, равным
PUT /api/movies/ Обновить фильм с идентификатором, равным
POST /api/movies Добавить новый фильм в базу данных
DELETE /api/movies/ Удалить фильм из базы данных

Значения в фигурных скобках являются заменителями для подстановки. Например, чтобы получить фильм с идентификатором, равным 5, URI должен выглядеть так: /api/movies/5.

Я расширил этот API, добавив метод, который находит все фильмы указанного жанра:

Клиент указывает жанр в строке запроса URI. Например, чтобы получить все фильмы жанра Drama, клиент посылает GET-запрос на /api/movies?genre=drama. Web API автоматически связывает параметр запроса с параметром genre в методе GetMoviesByGenre.

Создание веб-клиента

До сих пор я просто создавал REST API. Если вы отправите GET-запрос на /api/movies?genre=drama, исходный HTTP-ответ будет выглядеть так:

Теперь мне нужно написать клиентское приложение, которое делает с этим что-то осмысленное. Базовый рабочий процесс такой:

  • UI инициирует AJAX-запрос;
  • обновляем HTML для отображения полезных данных ответа;
  • обрабатываем AJAX-ошибки.

Вы могли закодировать все это вручную. Например, вот некоторый jQuery-код, который создает список названий фильмов:

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

Решение заключается в том, чтобы использовать JavaScript-инфраструктуру. К счастью, их выбор довольно велик, и эти инфраструктуры имеют открытый исходный код. К некоторым из более популярных инфраструктур относятся Backbone, Angular, Ember, Knockout, Dojo и JavaScriptMVC. Большинство использует вариации шаблонов MVC или MVVM, поэтому будет полезно вкратце рассмотреть эти шаблоны.

Шаблоны MVC и MVVM

Корни шаблона MVC уходят в 80-е годы прошлого века и связаны с ранними графическими UI. Цель MVC — разбиение кода на три уровня со своими обязанностями (рис. 6). Вот что они делают:

  • модель представляет данные и бизнес-логику предметной области;
  • представление отображает модель;
  • контроллер принимает пользовательский ввод и обновляет модель.

Рис. 6. Шаблон MVC

View View
Controller Controller
Model Model
User Input Пользовательский ввод
Updates Обновления
Modifies Модифицирует

Более современная вариация MVC — шаблон MVVM (рис. 7). В шаблоне MVVM:

  • модель по-прежнему представляет данные предметной области;
  • модель представления — это абстрактное отражение представления;
  • представление отображает модель представления и посылает пользовательский ввод модели представления.

Рис. 7. Шаблон MVVM

View Model View Model

В JavaScript-инфраструктуре MVVM представлением является разметка, а моделью представления — код.

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

Создание веб-клиента с применением Knockout.js

Для первой версии своего приложения я использовал библиотеку Knockout.js. Knockout следует шаблону MVVM, соединяя представление и модель представления через связывание с данными.

Чтобы создать привязки данных, вы добавляете к HTML-элементам специальный атрибут data-binding. Например, следующая разметка связывает элемент span со свойством genre в модели представления. Всякий раз, когда изменяется значение genre, Knockout автоматически обновляет HTML:

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

Удобно, что связывание с данными осуществляется декларативно. Вам не требуется подключать модель представления к элементам HTML-страницы. Просто добавьте атрибут data-binding, и Knockout сделает остальное.

Я начал с создания HTML-страницы с базовой разметкой без связывания с данными, как показано на рис. 8.

Рис. 8. Начальная HTML-разметка

(Примечание Я использовал библиотеку Bootstrap для оформления внешнего вида приложения, поэтому в настоящем приложении уйма дополнительных элементов

Создание модели представления

Наблюдаемые объекты (observables) занимают центральное место в системе связывания с данными в Knockout. Наблюдаемым является объект, который хранит какое-то значение и может уведомлять подписчиков об изменении этого значения. Следующий код преобразует JSON-представление фильма в эквивалентный объект с наблюдаемыми полями:

На рис. 9 показана начальная реализация модели представления. Эта версия поддерживает только получение списка фильмов. Средства редактирования я добавлю позже. Модель представления содержит наблюдаемые свойства для списка фильмов, строку ошибки и текущий жанр.

Рис. 9. Модель представления

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

Функция getByGenre выдает AJAX-запрос серверу на получение списка фильмов, а затем заполняет результатами массив self.movies.

При использовании REST API одна из самых хитрых частей — обработка асинхронной природы HTTP. jQuery-функция ajax возвращает объект, реализующий Promises API. Вы можете задействовать метод then объекта Promise, чтобы установить обратный вызов, инициируемый, когда AJAX-вызов завершается успешно, и еще один обратный вызов, запускаемый при неудачном AJAX-вызове:

Привязки данных

Теперь, когда у меня есть модель представления, я могу связать ее с HTML через привязки данных. Для полного списка жанров, который появляется на левой стороне экрана, я использую следующие привязки данных:

Атрибут data-bind содержит одно или более объявлений привязок, где каждая привязка имеет форму «привязка: выражение». В этом примере привязка foreach сообщает Knockout перебирать в цикле содержимое массива genres в модели представления. Для каждого элемента в массиве Knockout создает новый элемент
. Привязка text в присваивает text в span значение элемента массива, каковой в данном случае является названием жанра.

На данный момент щелчок названия жанра ни к чему не приводит, поэтому я добавляю привязку click для обработки событий щелчка:

Это связывает событие щелчка с функцией getByGenre в модели представления. Здесь нужно было использовать $parent, так как эта привязка осуществляется в контексте foreach. По умолчанию привязки в foreach ссылаются на текущий элемент в цикле.

Чтобы отобразить список фильмов, я добавил привязки в таблицу, как показано на рис. 10.

Рис. 10. Добавление привязок в таблицу для отображения списка фильмов

На рис. 10 привязка foreach перебирает в цикле массив объектов movie. Внутри foreach привязки text ссылаются на свойства текущего объекта.

Привязка visible в элементе

контролирует, визуализируется ли таблица. Таблица будет скрыта, если массив movies пуст.

Наконец, вот привязки для сообщения об ошибке и сообщения «No records found» (заметьте, что вы можете помещать в привязку сложные выражения):

Редактирование записей

Последняя часть этого приложения дает возможность пользователю редактировать записи в таблице. Для этого необходима следующая функциональность:

  • переключение между режимами просмотра (только текст) и редактирования (элементы управления вводом);
  • передача обновлений на сервер;
  • поддержка отмены изменений и восстановление исходных данных.

Чтобы отслеживать режим просмотра/редактирования, я добавил булев флаг в объект movie как наблюдаемое свойство:

Мне нужно было, чтобы таблица фильмов отображала текст, когда свойство editing равно false, но переключалась на элементы управления вводом, когда оно — true. Для этого я использовал Knockout-привязки if и ifnot, как показано на рис. 11. Синтаксис « » позволяет включать привязки if и ifnot без их размещения внутри элемента HTML-контейнера.

Рис. 11. Поддержка редактирования записей о фильмах

Привязка value задает значение элемента управления вводом. Это двухсторонняя привязка, поэтому, когда пользователь вводит что-то в текстовое поле или изменяет выбор в раскрывающемся списке, изменение автоматически распространяется на модель представления.

Я связал обработчики щелчка кнопок с функциями save, cancel и edit в модели представления.

Функция edit проста. Достаточно установить флаг editing в true:

Функции save и cancel немного посложнее. Для поддержки отмены мне нужен был какой-то способ кеширования исходного значения при редактировании. К счастью, Knockout упрощает расширение поведения наблюдаемых объектов. В коде на рис. 12 добавляется функция store в класс observable. Вызов функции store из observable придает этому классу две новые функции: revert и commit.

Рис. 12. Расширение ko.observable функциями revert и commit

Теперь я могу вызвать функцию store, чтобы добавить эту функциональность в модель:

Рис. 13 демонстрирует функции save и cancel в модели представления.

Рис. 13. Добавление функций save и cancel

Создание веб-клиента с применением Ember

Для сравнения я написал другую версию своего приложения, используя библиотеку Ember.js.

Ember-приложение начинает с таблицы маршрутизации (routing table), которая определяет навигацию пользователя в рамках приложения:

Первая строка кода создает Ember-приложение. Вызов Router.map создает три маршрута. Каждый маршрут соответствует URI или шаблону URI:

Для каждого маршрута вы создаете HTML-шаблон, используя библиотеку шаблонов Handlebars.

В Ember имеется шаблон верхнего уровня для всего приложения. Этот шаблон подвергается рендерингу для каждого маршрута. На рис. 14 показан шаблон application для моего приложения. Как видите, этот шаблон в основном является HTML-кодом, размещаемым в теге script с type=»text/x-handlebars». Шаблон содержит специальную разметку Handlebars в двойных фигурных скобках: << >>. Эта разметка служит той же цели, что и атрибут data-bind в Knockout. Например, <<#linkTo>> создает ссылку на маршрут.

Рис. 14. Шаблон Handlebars уровня приложения

Теперь допустим, что пользователь переходит к /#/about. Это активирует маршрут about. Ember сначала осуществляет рендеринг шаблона application верхнего уровня, затем шаблона about в <> шаблона application. Вот шаблон about:

На рис. 15 показано, как выполняется рендеринг шаблона about в шаблоне application.

Рис. 15. Рендеринг шаблона about

Поскольку у каждого маршрута свой URI, история браузера сохраняется. Пользователь может осуществлять навигацию кнопкой Back, а также обновлять страницу, не теряя контекст или закладку, и перезагружать ту же страницу.

Контроллеры и модели в Ember

В Ember каждый маршрут имеет модель и контроллер. Модель содержит данные предметной области. Контроллер действует как прокси для модели и хранит все данные состояния приложения для представления. (Это не совпадает с классическим определением MVC. В некоторых отношениях контроллер больше похож на модель представления.)

Вот как я определил модель movie:

Контроллер наследует от Ember.ObjectController (рис. 16).

Рис. 16. Контроллер Movie наследует от Ember.ObjectController

Здесь происходит кое-что интересное. Во-первых, я не указывал модель в классе контроллера. По умолчанию маршрут автоматически устанавливает модель в контроллере. Во-вторых, функции save и cancel используют средства транзакций, встроенные в класс DS.Model. Для отмены изменений просто вызовите функцию rollback модели.

Ember использует массу соглашений по именованию для подключения различных компонентов. Маршрут genres взаимодействует с GenresController, который выполняет рендеринг шаблона genres. По сути, Ember будет автоматически создавать объект GenresController, если вы его не определили. Однако вы можете переопределять все, что предлагается по умолчанию.

В своем приложении я сконфигурировал маршрут genres/movies на использование другого контроллера, реализовав точку подключения (hook) renderTemplate. Тем самым несколько маршрутов может использовать один и тот же контроллер (рис. 17).

Рис. 17. Несколько маршрутов могут иметь общий контроллер

Одна из приятных особенностей Ember в том, что многое можно делать с помощью минимума кода. Мое приложение-пример состоит примерно из 110 строк кода на JavaScript. Эта версия короче, чем версия на основе Knockout, и вдобавок я безо всяких усилий получил поддержку истории браузера. С другой стороны, Ember также является весьма «своенравной» инфраструктурой. Если вы не пишете код в стиле Ember, то скорее всего попадете в неприятности. Так что при выборе инфраструктуры следует принимать во внимание набор функциональности, стиль кодирования и то, насколько общая архитектура инфраструктуры подходит под ваши требования.

Где узнать больше

В этой статье я показал, как JavaScript-инфраструктуры упрощают создание SPA. Попутно я рассказал о некоторых общих средствах этих библиотек, в том числе о связывании с данными, маршрутизации и шаблонах MVC и MVVM. Узнать больше о создании SPA с помощью ASP.NET можно по ссылке asp.net/single-page-application.

Майк Уоссон (Mike Wasson) — программист и технический писатель в Microsoft. Многие годы занимался документированием мультимедийной части Win32 API. В настоящее время пишет о ASP.NET с основным акцентом на Web API. С ним можно связаться по адресу mwasson@microsoft.com.

Выражаю благодарность за рецензирование статьи эксперту Microsoft Хиньяну Чу (Xinyang Qiu).

Разработка web-приложений с использованием технологии ASP.Net MVC

Web-приложения разработанные по технологии ASP.Net MVC в отличии от Web Forms приложений, состоят не из набора классов производных от класса Раде (web-форм), которые включают серверные элементы управления, а из классов трех типов:

  • контроллеры (Controller) – классы, включающие методы (действия), которые могут быть вызваны с помощью запроса пользователя к приложению;
  • представления (View) – задаются в виде шаблона, на основе которого генерируются специальные классы описывающего формирование HTML-ответы пользователю;
  • модели классы разных типов, содержащие данные, которые передаются от контроллеров в представления для формирования ответов.

Особенность технологии MVC состоит в том, что пользователь указывает в URL-адресе не путь к физическому ресурсу (например, *.html или *.aspx), а запрос на выполнение некоторого действия – открытого (public) метода класса-контроллера. Например: myprog.ru/Home/lndex/5 (такому URL никакой ресурс не соответствует). Порядок обработки таких запросов классами MVC-приложения показан на рис. 4.23.

Рис. 4.23. Порядок обработки запроса к MVC-приложению

Общая логика работы ASP.Net MVC приложения показана на рис. 4.24.

Рис. 4.24. Логика работы ASP.Net МVС приложений

Если сравнить данную схему с логикой работы ASP.Nel Web Forms приложений (рис. 4.1), то видно, что они во многом сходны (это два фреймворка технологии ASP.Net). У приложений, созданных с использованием фреймверков ASP.Net Web Forms и MVC, имеются общие возможности: конфигурирование; обеспечение безопасности (классы по работе с учетными записями и ролями); поддержка состояния сеанса и приложения; кэширование. В принципе, в одной приложении можно использовать возможности обоих фреймверков.

Отличие ASP.Net Web Forms и MVC между заключается только в использовании другого МТТР-обработчика. Данный обработчик создает требуемый контроллер и вызывает указанный метод.

В ASP.NET MVC разработчик имеет почти те же самые функциональные возможности по созданию web-приложений, какие есть и в Web Forms, но они реализуются с помощью другого набора инструментов. Фреймвер ASP.NET MVC использует другой шаблон, который не основывается на web-формах (Раде) и полагается на много более тонкий слой абстракции. В результате у разработчика нет сложных, встроенных компонент для быстрого создания пользовательского интерфейса, в котором элементы могут поддерживаться.

В ASP.NET MVC разработчик пишет код, который концептуально и физически ближе к базовым Интернет технологиям; поэтому он требует большего объема программирования, но в тоже время дает ему больше контроля над формируемым FITML-кодом и реальным поведением среды выполнения приложения. Однако, разработчик не должен все писать с нуля. Он имеет в своем распоряжении

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

Автозапуск приложений ASP.NET (из серии статей про VS 2010 и .NET 4.0)

Это седьмая из серии статей, в которых я пишу о готовящихся к выходу VS 2010 и .NET 4.

Я хотел бы отойти от обсуждения новых инструментальных возможностей VS 2010 и написать несколько заметок про новые возможности среды времени выполнения (не волнуйтесь — я вернусь к обсуждению многочисленных новых возможностей VS, я лишь хочу немного разбавить тему).

Сегодня я расскажу об одной небольшой, но очень приятной новой возможности, которой вы можете воспользоваться в ASP.NET 4, — это возможность автоматически запускать и заблаговременно инициализировать веб-приложение, не дожидаясь первого запроса клиента к веб-серверу. Это обеспечит более быструю реакцию на первые запросы к вашему веб-приложению и позволит избежать написания собственных скриптов для «разогрева» сервера и заполнения любых используемых кэшей данных. Автозапуск работает с любыми видами веб-приложений ASP.NET, включая приложения на базе ASP.NET MVC.

Автозапуск приложений с ASP.NET 4

Некоторым веб-приложениям перед тем, как они смогут начать обрабатывать клиентские запросы, необходимо загрузить большие объемы данных или же выполнить инициализационные процедуры, требующие больших вычислительных ресурсов. Сейчас разработчики ASP.NET зачастую решают эти задачи, используя обработчик события «Application_Start» в файле приложения Global.asax (которое срабатывает при обработке первого запроса). Затем они либо разрабатывают хитроумные скрипты, которые посылают веб-приложению подложные запросы, чтобы периодически «будить» его, и выполняют этот код перед тем, как прийдет реальный запрос от пользователя, либо просто вынуждают несчастных первых пользователей, которые обращаются к приложению, ждать, пока вся эта логика отработает, прежде чем будут обработаны их запросы (что может вылиться для них в довольно длительное ожидание).

В ASP.NET 4 реализована новая возможность под названием «автозапуск» («auto-start»), лучше подходящая для решения подобных задач и доступная при выполнении приложений ASP.NET 4 под управлением IIS 7.5 (он идет в поставке Windows 7 и Windows Server 2008 R2). Эта возможность дает вам способ контролируемо запускать рабочий процесс IIS и инициализировать приложение ASP.NET, чтобы затем начать принимать HTTP-запросы.

Настройка автозапуска приложения ASP.NET 4

Чтобы воспользоваться возможностью автозапуска приложений ASP.NET 4, сначала требуется настроить автоматический запуск при загрузке веб-сервера рабочего процесс IIS, в рамках которого будет выполняться ваше приложение. Это можно сделать, открыв файл applicationHost.config IIS 7.5 (C:\Windows\System32\inetsrv\config\applicationHost.config) и добавив атрибут startMode=»AlwaysRunning» к соответствующему узлу :

Если вы запустите Диспетчер задач, установите галку «показывать процессы всех пользователей» и затем сохраните файл applicationHost.config с измененным атрибутом startMode — вы увидите, как сразу после сохранения запустится новый процесс w3wp.exe.

Один рабочий процесс IIS может выполнять несколько приложений ASP.NET. Вы можете указать, какие именно приложения хотите запускать автоматически при запуске рабочего процесса, добавив атрибут serviceAutoStartEnabled=»true» к их узлам в конфигурационном файле:

Атрибут serviceAutoProv для вашего приложения. Соответствующие методы этого класса будут автоматически вызваны, как только загрузится рабочий процесс IIS и ваше приложение (до получения любых внешних запросов), — они могут выполнить любые действия по инициализации или заполнению кэшей данных, которые, по-вашему, необходимы перед началом обработки запросов:

IIS запустит ваше приложение в состоянии, в котором оно не будет принимать никаких запросов, пока не завершится работа вашего кода «разогрева». Когда код инициализации завершится, и метод Preload вернет управление, приложение ASP.NET будет помечено как готовое к обработке запросов.

Вы также можете сочетать эту новую возможность «разогрева» при автозапуске с возможностями балансировки нагрузки, реализованными в расширении IIS7 Application Request Routing (ARR), и использовать ее, чтобы уведомить балансировщик нагрузки о том, что инициализация приложения завершена, и оно готово принимать HTTP-азпросы, — в этот момент сервер может быть включен в «ферму» веб-серверов для участия в обработке запросов.

Резюме

Новая возможность автозапуска веб-приложений в ASP.NET 4 и IIS 7.5 предоставляет четко определенный подход, который вы можете использовать для осуществления ресурсоемких операций по инициализации и предвыборке кэшируемых данных при запуске приложения, прежде чем оно начнет получать запросы от пользователей. За счет этого с самого начала работы ваше приложение может быть «разогрето», обеспечивая стабильно высокий уровень производительности.

Надеюсь, вы нашли для себя что-то полезное,

Asp управление работой приложения

Многие компании-разработчики ПО (включая IBM, Microsoft, Sun и Oracle) предвидят такое будущее развитие технологий, при котором потребителям не надо будет приобретать и инсталлировать программное обеспечение на персональном компьютере — все необходимое будет находиться и скачиваться из Интернета. Это сможет революционизировать индустрию, устранив проблемы с установкой программ, необходимость апгрейда и т.п.

Aplication Service Provider — Провайдер Прикладных Услуг или, как принято говорить, более определенно и развернуто, «Провайдер услуг доступа к приложениям», — это компания, предоставляющая в аренду и обслуживающая необходимый потребителю набор приложений (а это установка, поддержка и сопровождение приложений) на удаленной технологической площадке.
Application Service Providing — это технология, позволяющая создавать решения на основе удаленного доступа к серверу, на котором установлено специальное программное обеспечение.

Основной идеей ASP является возможность не приобретать ИТ-ресурсы в собственность, а арендовать их у провайдера прикладных услуг. В общем случае потребитель может получить доступ к удаленным данным

  • либо через Интернет,
  • либо по локальной сети,
  • либо по защищенной выделенной сети.

Сама по себе идея удаленного доступа к приложениям, исполняемым в вычислительных центрах коллективного пользования, услуги которых «раздаются» клиентам, не нова. Новое на этом витке – Интернет и рыночные принципы работы. В сфере электронной розничной торговли технология ASP воплотилась, в частности, в услугу аренды Интернет-магазинов. Именно аренда приложений лежит в основе новой стратегии Билла Гейтса — .NET, которая предполагает развитие различных Web-услуг, начиная от предложения приложений и заканчивая электронной коммерцией. По модели ASP работает движок DART компании DoubleClick, уже ставший стандартом в области средств управления рекламными кампаниями на расстоянии.

Все об ASP
aspassociation.com
ASP консорциум
allaboutasp.org
www.platzdarm.ru — общий аналитический обзор ASP-рынка.
www.aspbusiness.ru — сайт про ASP
www.e-commerce.ru- об ASP на сайте e-commerce.ru

Задачи, на которые нацелены услуги ASP :

  • хостинг web — сайтов, почтовых служб;
  • предоставление в аренду виртуальных торговых площадок для осуществления продаж через Интернет;
  • доступ к сводным каталогам интернет-продавцов для осуществления покупок через Интернет;
  • обеспечение гибко настраиваемого доступа пользователей к различным функциям приложений, согласно их полномочиям;
  • предоставление защищенного доступа к корпоративным данным;
  • поддержка процессов электронного обмена данными (EDI);
  • эксплуатация сложных систем ERP — систем управления ресурсами предприятия и планирования его деятельности;
  • предварительная настройка компонентов ERP — систем на типовые задачи, что позволяет максимально сократить время внедрения таких систем в эксплуатацию.

Управление приложениями и весь документооборот осуществляется через web — интерфейс или по e-mail.

Преимущества использования ASP-услуг

  • Клиент-арендатор не тратится на покупку лицензий, серверов, установку специального серверного ПО и так далее, понеся лишь небольшие начальные затраты, получает достаточно сложную и дорогую систему.
  • ASP-решение имеет более низкую стоимость, т.к. затраты на его разработку, модернизацию и поддержку возмещают десятки или даже сотни пользователей-арендаторов. Поэтому предприятия малого и среднего бизнеса могут использовать по более низкой цене лицензионное программное обеспечение, серверы, услуги технической поддержки.
  • ASP-провайдер осуществляет круглосуточную техническую поддержку, резервное копирование, оперативное восстановление данных, установка пакетов исправлений, автоматический (бесплатный для арендатора) переход на новые версии ПО.
  • ASP-провайдер гарантирует быстрое обновление оборудования, если потребности пользователя выросли и клиент-арендатор без больших финансовых потерь может перейти и на решение более высокого уровня.
  • Клиент-арендатор может, при необходимости, отказаться от дальнейшего получения услуг или оперативно изменить их объем.
  • При помощи ASP- провайдера для поддержки корпоративных сайтов можно осуществить интеграцию и тестирование под нагрузкой: редкие компании могут позволить себе полномасштабное тестирование своей инфраструктуры в реальных условиях.
  • ASP-провайдеры предлагают и дополнительные платные услуги, например, обучение по работе с программным приложением.
  • Клиент-арендатор выплаты за использование приложений может отнести на себестоимость продукции, тогда как закупать оборудование и лицензии необходимо из собственной прибыли.
  • Аренда приложений гарантирует фиксированную оплату за услуги, что дает возможность прогнозировать ИТ-расходы.

Возможности оплаты ASP-услуг

  • по числу транзакций,
  • по количеству запусков программы,
  • по времени пользования услугой,

Основные проблемы ASP

  • Проблема информационной безопасности коммерческой организации. Для того, чтобы доверить сторонней организации обслуживание своих систем: бухгалтерии, финансовых процессов, офисных приложений и др. необходимо доверять поставщику услуг.
  • Проблема хакерских атак. При сосредоточении большого числа магазинов на одном сервере с единой системой защиты делает эти серверы привлекательной мишенью для хакеров.
  • Проблема гарантий качественной бесперебойной связи. Так как работа с приложением происходит по каналам связи, то важно их качество. При потере данных (полной или частичной) коммерческая компания может понести ощутимые убытки.
  • Проблема ответственности провайдера услуг при остановке или сбоях в работе сервера за бизнес своих клиентов.
  • Необходимость системы страхования рисков электронного бизнеса, Cтрахование ответственности ASP остается серьезной проблемой. поскольку первые прецеденты страхования IT-рисков на российском рынке появились только в 2001 году.
  • Проблема отношений «третьих лиц» с государством в условиях коллективного доступа. Что будет, если люди в черных масках придут в центр коллективного доступа за одним из его клиентов, опечатают и унесут с собой все сервера, остановив бизнес всех клиентов центра. Где должен находиться центр коллективного доступа в России или за границей.
  • ASP — провайдер несет ответственность за работоспособность размещенных систем, их безопасность и доступность согласно Соглашению об уровне сервиса (SLA-Service Level Agreement ), которое подписывается с каждым заказчиком и где фиксируются величины ключевых параметров функционирования( максимальное время простоя оборудования, степень защиты, штрафные санкции, которые могут быть применены к ASP и др.). В случае несоблюдения или непредоставления сервисов надлежащего качества клиенту выплачиваются материальные компенсации. На практике поставщики всячески стараются сузить круг фиксируемых в нем параметров, а для заказчика мониторинг этих параметров порой превращается в настоящий кошмар.

Типы программного обеспечения, чаще всего предлагаемые на рынке ASP

Примеры бесплатных ASP-решений:

Служба для организации мобильного Интернет-офиса
www.beep.ru — Гран-при конкурса «Бизнес-сайт’2000»
Основа для построения интернет/интранет решений для организации совместной работы и общения практически неограниченного числа пользователей. Можно организовать систему для корпоративной почты и корпоративной работы над документами.
Средство для организации совместной работы и общения пользователей.
Механизм групп позволяет создавать приватные или публичные сообщения в рамках beep.ru. Группы обладают:
— коллективным почтовым адресом. Система почты интегрирована с адресной книгой и еженедельниками.
— коллективным хранилищем документов,
— собственными web-форумами (конференциями).
Возможный доступ ко всем компонентам мобильного Интернет-офиса:
— непосредственно через web- интерфейс с офисного или домашнего компьютера, с карманного компьютера:
— с клиентских почтовых программ;
— с сотовых телефонов с wap-браузерами.
Приходяшая корреспонденция и напоминанмя о запланированных делах также могут копироваться на пейджеры или сотовые телефоны в виде текстовых сообщений.

www.Narod.ru — cервис создания бесплатных сайтов.
www.stavka.ru -сервис бесплатного создания интернет-аукциона.
www.Parking.ru -сервис «Готовый сайт», в рамках которого можно арендовать удобное средство для быстрого создания и сопровождения современных сайтов — Metric Site Optimizer.
www.applications.ru — демонстрация решений компаний Oracle, IBM и Avicomp Service AG, и в первую очередь, ERP-системы — Oracle Applications на сервере IBM RS/6000

Прогноз аналитиками Gartner(март 2003): к 2006 году 30 % IT-функций предприятий будет возложено на внешних исполнителей, действующих по принципу коммунальных служб с оплатой по мере использования.

ASP — проекты для крупных коммерческих решений.

Многие компании стали чаще задумываться о повышении своей эффективности благодаря информационным технологиям. Происходит универсализация бизнес-процессов в компаниях, появляются стандартизированные решения для этих задач. Модель аренды информационных ресурсов и аутсорсинг(внешняя поддержка и управление) все чаще будут задействованы в работу IT-служб. Отдавая на аутсорсинг решение тактических задач, компании смогут сосредоточиться на стратегических. При использовании внешних служб поддержки корпоративных данных, выбор варьируется от простого размещения сервера до полного обеспечения работы трехуровневой системы, включающей как внешние так и внутренние базы данных. При размещении приложений, критически важных для бизнеса, требуется широкий спектр услуг (мониторинг, архивирование, обеспечение безопасности и т.д.), поддержка SLA.
Все больше поставщиков решений предоставляют лицензии в режиме ASP. На текущий момент практически все крупные мировые поставщики программного обеспечения предлагают свои продукты по модели ASP. Среди них: Oracle, Microsoft, SAP, PeopleSoft, Siebel, Ariba, Commerce One и другие. Развивается рынок ASP — сетевых приложений, позволяющих группе сотрудников работать с распределенными данными. По мнению экспертов, ASP-модель уже в недалеком будущем составит конкуренцию традиционной модели поставки ERP- и CRM-решений. В ASP-схемах для крупных коммерческих решений ( например ERP-систем типа SAP R/3 или Axapta, CRM, SCM, биллинговых и некоторых других систем) необходима настройка на конкретное предприятие, на его бизнес-процессы.
Проблему закрытия корпоративной информации из конкурентных соображений можно решить, разделив корпоративную информационную систему на две части: оперативный учет, систему управления текущими производственными процессами отдать на ASP, а аналитику держать у себя на собственном сервере.

CRM-решения на базе ASP перечислены в статье «Обзор поставщиков CRM-решений на российском рынке». Некоторые CRM-решения поддерживают работу даже через карманные компьютеры (PDA).

mySap.com- ASP портал компании SAP, предоставляет доступ к приложениям для вертикальных рынков (приложения для компаний, специализирующихся на разных фазах производства и реализации конечного продукта). В портале эксплуатируются не только ERP компании SAP, но и приложения от независимых разработчиков.
Oracle начала заниматься Веб-арендой бизнес-приложений в 1998 году. Весной 2002г. веб-арендой от Oracle пользовались 200 компаний. За следующие 5 лет Oracle намерена перевести на веб-аренду 25% из своих 12 тыс. клиентов. Oracle также предлагает веб-аренду своей СУБД Oracle9i. Целью этого проекта является предоставление возможности использовать СУБД Oracle компаниям с небольшим IT-бюджетом, которые раньше не могли себе позволить покупку данного ПО или использовали его нелегально.

Проект DATA FORT www.datafort.ru компании IBS и международного телекоммуникационного холдинга Cable & Wireless — это первый действующий в России ASP-провайдер систем высокого уровня и инфраструктуры для крупных коммерческих решений(это идея предлагать в аренду торгово-закупочные площадки и корпоративные системы управления). http://b2b.ibs.ru
Технологической площадкой, на базе которой разместился DATA FORT, стал недавно построенный Центр обработки данных Cable & Wireless. Коммерческая эксплуатация DATA FORT начата в октябре 2001 года. Компания DATA FORT сейчас работает с несколькими производителями ПО. DATA FORT являемся одним из первых ASP-партнеров компании Microsoft и партнером для компаний Oracle, Navision, Integral Solutions Corporation (ISC) , Siebel в России. С сентября 2002г. DATA FORT размещает у себя на платформе Unix электронную торговую площадку Matisse.ru, где совершаются сделки с местами и блоками мест на чартерных авиарейсах. DATA FORT предоставляет на льготных условиях СУБД Oracle в режиме аренды, обеспечивает антивирусную защиту, круглосуточный контроль работоспособности системы, полное ежедневное резервное копирование открытой базы данных и архивных журналов, а также хранение резервных копий. Таким образом, обеспечивается легальность эксплуатации ПО Oracle.

В настоящее время услуги по аренде несложных приложений уже оказывает несколько компаний, например «Гарант-Парк-Интернет», предлагает в рамках проекта PARKING.RU продукты компании Microsoft и некоторые собственные разработки. В частности решение MicrosoftR SharePointTM Team Services — возможность создания специализированных web-порталов — средства для коллективной работы над документами членам команды, реализующей единый проект, а также для организации доступа удаленных сотрудников или групп к ресурсам этого проекта через Интернет.

Другие российские компании готовятся к выходу на рынок ASP. Например компания Sterling Group в качестве полигона для обкатки единой ERP-системы SAP R/3 использует одиннадцать своих региональных филиалов, находящихся за тысячи километров друг от друга и от центрального офиса в Москве. Проверяется и вариант зарубежного, открытого фирмой в Женеве , центра коллективного доступа. Таким образом компания выявляет на себе плюсы и минусы модели ASP.

В России есть аутсорсинг бизнес-процессов в бухгалтерии, и он очень активно развивается.

Автозапуск приложений ASP.NET (из серии статей про VS 2010 и .NET 4.0)

Это седьмая из серии статей, в которых я пишу о готовящихся к выходу VS 2010 и .NET 4.

Я хотел бы отойти от обсуждения новых инструментальных возможностей VS 2010 и написать несколько заметок про новые возможности среды времени выполнения (не волнуйтесь — я вернусь к обсуждению многочисленных новых возможностей VS, я лишь хочу немного разбавить тему).

Сегодня я расскажу об одной небольшой, но очень приятной новой возможности, которой вы можете воспользоваться в ASP.NET 4, — это возможность автоматически запускать и заблаговременно инициализировать веб-приложение, не дожидаясь первого запроса клиента к веб-серверу. Это обеспечит более быструю реакцию на первые запросы к вашему веб-приложению и позволит избежать написания собственных скриптов для «разогрева» сервера и заполнения любых используемых кэшей данных. Автозапуск работает с любыми видами веб-приложений ASP.NET, включая приложения на базе ASP.NET MVC.

Автозапуск приложений с ASP.NET 4

Некоторым веб-приложениям перед тем, как они смогут начать обрабатывать клиентские запросы, необходимо загрузить большие объемы данных или же выполнить инициализационные процедуры, требующие больших вычислительных ресурсов. Сейчас разработчики ASP.NET зачастую решают эти задачи, используя обработчик события «Application_Start» в файле приложения Global.asax (которое срабатывает при обработке первого запроса). Затем они либо разрабатывают хитроумные скрипты, которые посылают веб-приложению подложные запросы, чтобы периодически «будить» его, и выполняют этот код перед тем, как прийдет реальный запрос от пользователя, либо просто вынуждают несчастных первых пользователей, которые обращаются к приложению, ждать, пока вся эта логика отработает, прежде чем будут обработаны их запросы (что может вылиться для них в довольно длительное ожидание).

В ASP.NET 4 реализована новая возможность под названием «автозапуск» («auto-start»), лучше подходящая для решения подобных задач и доступная при выполнении приложений ASP.NET 4 под управлением IIS 7.5 (он идет в поставке Windows 7 и Windows Server 2008 R2). Эта возможность дает вам способ контролируемо запускать рабочий процесс IIS и инициализировать приложение ASP.NET, чтобы затем начать принимать HTTP-запросы.

Настройка автозапуска приложения ASP.NET 4

Чтобы воспользоваться возможностью автозапуска приложений ASP.NET 4, сначала требуется настроить автоматический запуск при загрузке веб-сервера рабочего процесс IIS, в рамках которого будет выполняться ваше приложение. Это можно сделать, открыв файл applicationHost.config IIS 7.5 (C:\Windows\System32\inetsrv\config\applicationHost.config) и добавив атрибут startMode=»AlwaysRunning» к соответствующему узлу :

Если вы запустите Диспетчер задач, установите галку «показывать процессы всех пользователей» и затем сохраните файл applicationHost.config с измененным атрибутом startMode — вы увидите, как сразу после сохранения запустится новый процесс w3wp.exe.

Один рабочий процесс IIS может выполнять несколько приложений ASP.NET. Вы можете указать, какие именно приложения хотите запускать автоматически при запуске рабочего процесса, добавив атрибут serviceAutoStartEnabled=»true» к их узлам в конфигурационном файле:

Атрибут serviceAutoProv для вашего приложения. Соответствующие методы этого класса будут автоматически вызваны, как только загрузится рабочий процесс IIS и ваше приложение (до получения любых внешних запросов), — они могут выполнить любые действия по инициализации или заполнению кэшей данных, которые, по-вашему, необходимы перед началом обработки запросов:

IIS запустит ваше приложение в состоянии, в котором оно не будет принимать никаких запросов, пока не завершится работа вашего кода «разогрева». Когда код инициализации завершится, и метод Preload вернет управление, приложение ASP.NET будет помечено как готовое к обработке запросов.

Вы также можете сочетать эту новую возможность «разогрева» при автозапуске с возможностями балансировки нагрузки, реализованными в расширении IIS7 Application Request Routing (ARR), и использовать ее, чтобы уведомить балансировщик нагрузки о том, что инициализация приложения завершена, и оно готово принимать HTTP-азпросы, — в этот момент сервер может быть включен в «ферму» веб-серверов для участия в обработке запросов.

Резюме

Новая возможность автозапуска веб-приложений в ASP.NET 4 и IIS 7.5 предоставляет четко определенный подход, который вы можете использовать для осуществления ресурсоемких операций по инициализации и предвыборке кэшируемых данных при запуске приложения, прежде чем оно начнет получать запросы от пользователей. За счет этого с самого начала работы ваше приложение может быть «разогрето», обеспечивая стабильно высокий уровень производительности.

Надеюсь, вы нашли для себя что-то полезное,

Разработка web-приложений с использованием технологии ASP.Net MVC

Web-приложения разработанные по технологии ASP.Net MVC в отличии от Web Forms приложений, состоят не из набора классов производных от класса Раде (web-форм), которые включают серверные элементы управления, а из классов трех типов:

  • контроллеры (Controller) – классы, включающие методы (действия), которые могут быть вызваны с помощью запроса пользователя к приложению;
  • представления (View) – задаются в виде шаблона, на основе которого генерируются специальные классы описывающего формирование HTML-ответы пользователю;
  • модели классы разных типов, содержащие данные, которые передаются от контроллеров в представления для формирования ответов.

Особенность технологии MVC состоит в том, что пользователь указывает в URL-адресе не путь к физическому ресурсу (например, *.html или *.aspx), а запрос на выполнение некоторого действия – открытого (public) метода класса-контроллера. Например: myprog.ru/Home/lndex/5 (такому URL никакой ресурс не соответствует). Порядок обработки таких запросов классами MVC-приложения показан на рис. 4.23.

Рис. 4.23. Порядок обработки запроса к MVC-приложению

Общая логика работы ASP.Net MVC приложения показана на рис. 4.24.

Рис. 4.24. Логика работы ASP.Net МVС приложений

Если сравнить данную схему с логикой работы ASP.Nel Web Forms приложений (рис. 4.1), то видно, что они во многом сходны (это два фреймворка технологии ASP.Net). У приложений, созданных с использованием фреймверков ASP.Net Web Forms и MVC, имеются общие возможности: конфигурирование; обеспечение безопасности (классы по работе с учетными записями и ролями); поддержка состояния сеанса и приложения; кэширование. В принципе, в одной приложении можно использовать возможности обоих фреймверков.

Отличие ASP.Net Web Forms и MVC между заключается только в использовании другого МТТР-обработчика. Данный обработчик создает требуемый контроллер и вызывает указанный метод.

В ASP.NET MVC разработчик имеет почти те же самые функциональные возможности по созданию web-приложений, какие есть и в Web Forms, но они реализуются с помощью другого набора инструментов. Фреймвер ASP.NET MVC использует другой шаблон, который не основывается на web-формах (Раде) и полагается на много более тонкий слой абстракции. В результате у разработчика нет сложных, встроенных компонент для быстрого создания пользовательского интерфейса, в котором элементы могут поддерживаться.

В ASP.NET MVC разработчик пишет код, который концептуально и физически ближе к базовым Интернет технологиям; поэтому он требует большего объема программирования, но в тоже время дает ему больше контроля над формируемым FITML-кодом и реальным поведением среды выполнения приложения. Однако, разработчик не должен все писать с нуля. Он имеет в своем распоряжении

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

ASP.NET и разработка Web-приложений

Многие разработчики полагают, что технология ASP.NET является чем-то вроде продолжения ASP, т. е. что это, если так можно выразиться, перенесенная на платформу .NET версия ASP 3.0, несколько усовершенствованная и дополненная поддержкой новых языков. Подобное представление в корне неверно. ASP.NET является концептуально новой современной платформой, предназначенной для создания Web-приложений. Специалистами Microsoft в ASP.NET заложено все для того, чтобы сделать цикл разработки Web-приложения более быстрым, а поддержку — более простой.

Для начала мы обсудим новые возможности ASP.NET, и я подчеркну отличия от ASP, чтобы на конкретных примерах продемонстрировать новые принципы построения приложений для Internet, призванные максимально облегчить работу программистов.

Компилирование программного кода. Теперь написанный исходный код при первом обращении компилируется и впоследствии выполняется его скомпилированная версия. Это заметно ускоряет разработку приложений. Web-сервер сам выполняет компиляцию, и если исходный код заменить, то сервер автоматически при первом обращении к странице проведет перекомпиляцию. Тем, кто разрабатывал сервлеты и запускал их на таких Java-серверах, как tomcat, наверняка знакома сложная процедура перезапуска сервера после перекомпиляции. Приходится сначала самому компилировать сервлет, а затем прописывать его в конфигурационный файл, и при каждом изменении вновь перезагружать сервер. С ASP.NET быть разработчиком Web-приложений намного приятнее. Код выполняется быстрее, занимает меньше ресурсов, и при этом процесс разработки не усложнился. Скорее наоборот, так как в случае какого-либо сбоя можно получить полный листинг компилятора, с подробным описанием ошибки.

Библиотеки. Теперь при написании приложений можно задействовать набор компонентов, поставляемых с .NET, а он достаточно велик. Использование библиотеки классов Common Language Runtime (CLR) уменьшает количество кода, ускоряет процесс разработки, установки и переноса приложения.

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

Поддержка средств разработки. Visual Studio.NET предоставляет возможность создания и редактирования приложений в режиме WYSWYG, включает в себя средства, упрощающие разработку и перенос приложений, а также отладку сценариев. Но, несомненно, никто не отнимает права написания кода в любимом редакторе, будь то CodeWright, EditPlus или NotePad.

Языковая независимость. ASP.NET работает в рамках Common Language Runtime, что позволяет писать код на любом языке, для которого существует компилятор, поддерживающий эту технологию. Сейчас имеется поддержка для JScript, VB, Perl и C#.

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

Обработка ошибок. В связи с новыми концепциями (в частности, с компиляцией программных текстов) в ASP.NET добавлены более широкие возможности обработки ошибок. На стадии разработки можно получить полную информацию об ошибке и листинг нужного куска кода. Для обработки ошибок, которые могут случиться во время выполнения приложения, можно использовать новую директиву ErrorPage.

Объектно-ориентированная разработка. Использование C# позволяет в полной мере задействовать концепции, методы и шаблоны объектно-ориентированной разработки.

Повторное применение. Помимо возможностей объектно-ориентированного программирования, ASP.NET представляет новые технологии, такие, как пользовательские элементы управления (user controls), новую концепцию установки (bin) и другие возможности.

Набор серверных компонентов ASP.NET. В комплект ASP.NET входят различные серверные компоненты: от самых простых (кнопка, список) до нестандартных и более функционально богатых (календарь).

Структура

Теперь немного поговорим о внутренней организации ASP.NET. Если продолжить сравнение с ASP, надо отметить, что в связи с описанными нововведениями внутренняя организация не могла остаться прежней. Если ASP представляла собой ISAPI DLL, с набором компонентов и несколькими системными файлами, то ASP.NET — часть глобальной платформы .NET. Создание этой платформы — важнейшее направление новой стратегии Microsoft; она соответствует всем современным стандартам разработки как для распределенных систем, так и для настольных приложений. На Рисунке 1 приведена схема, на которой показано взаимодействие различных частей .NET. Взаимодействие строится следующим образом: библиотека .NET Framework предоставляет интерфейс приложениям, а сама при этом взаимодействует непосредственно с операционной системой. Выше лежит интерфейс приложений ASP.NET, на котором, в свою очередь, базируются Web-формы (страницы ASP.NET) и Web-службы. Интерфейс .NET Framework позволяет стандартизировать обращение к системным вызовам и предоставляет среду для более быстрой и удобной разработки.

Рисунок 1. Схема работы .NET.

Intermediate Language — общий промежуточный язык, в который компилируется любой код под .NET, независимо от того, был ли он написан на C#, VB.NET или другом языке, — позволяет создавать системы на любом языке. И независимо от того, используется ли C#, VB.NET, JScript.NET или Perl.NET, на выходе получается готовый к выполнению код. На Рисунке 2 показана схема процесса компиляции и выполнения приложения ASP.NET. При запросе страницы проверяется, есть ли на диске ее скомпилированная версия и не обновлялась ли страница с момента компиляции. Если есть актуальная версия, она подгружается с диска и выполняется средой .NET. Результат выполнения страницы отсылается клиенту. Если же такая версия не была найдена, страница сначала компилируется. Для этого используются соответствующие компиляторы, которым на вход подается исходный код самой страницы, ее code-behind (т. е. непосредственно исполняемый код, стоящий за Web-формой, который написан отдельно — он может отсутствовать) и код элементов управления. Полученный в результате код сохраняется на диске. В некоторых случаях, а именно, когда в кэше имеется сохраненный результат обработки страницы, MSIL-код даже не приходится выполнять.

Рисунок 2. Схема работы ASP.NET.

На практике

Данный процесс кажется сложным, но разработчики всей этой сложности не замечают — процедура создания страниц ASP.NET достаточно проста. В подтверждение своих слов я хочу создать простейшую ASP.NET-форму. Для написания формы нужно сначала установить, собственно, ASP.NET. Установка начинается с получения комплекта .NET Framework SDK. Размер дистрибутива достигает 90 Мбайт, однако имеется возможность загрузки SDK в виде набора маленьких файлов. После загрузки требуется запустить файл setup.exe и следовать его инструкциям. ASP.NET распространяется как составная часть .NET SDK — сборника всех технологий, необходимых для создания, сборки и тестирования приложений, основанных на .NET Framework. Перед установкой ASP.NET следует инсталлировать Internet Explorer 6. NET SDK можно взять и с компакт-диска Windows Component Update из Visual Studio.NET. Если VS.NET на сервере установлен, то для того, чтобы запускать приложения ASP.NET, уже все есть.

Первую форму мы создадим с привлечением минимальных средств — нам падобится .NET Framework, Internet Information Services 5 и текстовый редактор. Создание формы начнем с написания приложения на Web-сервере. Создадим папку, в которой будет находиться приложение. Предположим, C:SampleApplication. Затем запустим Internet Services Manager. Создадим на сервере новый виртуальный каталог. Для этого нужно вызвать контекстное меню Web-сервера и выбрать пункт NewVirtual Director. На экране появится мастер Virtual Directory Creation Wizard. С его помощью нужно указать имя нового приложения, пусть это будет CustomApp. Далее следует указать каталог, в котором будут находиться файлы приложения. В нашем случае это C:SampleApplication. Следующий шаг — назначить права доступа к приложению (их можно оставить заданными по умолчанию). Далее в полученной папке создадим файл Default.aspx (см. Листинг 1).

Листинг 1. Default.aspx.

Опишу вкратце код этого листинга.

В первой строчке стоит директива @ Page, которая задает параметры страницы. Здесь, в частности, указано, что мы пишем на C#, что на странице у нас будет проводиться дополнительная программная обработка, определенная в файле Default.aspx.cs (мы его еще напишем), а наследоваться страница будет от класса Default (который будет описан в файле Default.aspx.cs).

Далее следует форма. Все серверные элементы управления должны быть включены в серверную форму (

Понравилась статья? Поделиться с друзьями:
Кодинг, CSS и SQL