Asp служба компонентов


Содержание

Раздел: Компоненты

Шаблонная конфигурация

Шаблонная конфигурация содержит все объекты конфигурации, необходимые для интеграции на 1С (версии >=8.2). Шаблон для версии 8.1 запрашивайте отдельно. Имя шаблонной конфигурации содержит номер версии. Порядок интеграции или обновления смотрите в соответствующих разделах справки. Скачать последнюю стабильную версию вы можете по ссылкам: версия 1.93 (больше не поддерживается) версия 1.94 (стабильная, поддержка протокола 1.4) версия 2.0 […]

Функции и процедуры транспортного модуля

#Область Глобальные_переменные Перем ОшибкиСеанса Экспорт; Перем ДанныеСертификатов Экспорт; Перем ДанныеСертификата Экспорт; Перем ДанныеСЗ Экспорт; Перем ДанныеСЖ Экспорт; Перем КонтекстДокумента Экспорт; #КонецОбласти #Область Вспомогательные Функция СтрРазбить(Стр, Разделитель=»,») Экспорт Функция СтрОбъединить(Массив, Поле=Неопределено, Разделитель=»,») Экспорт Функция СвернутьВДерево(Таблица, ПоляСтрокой) Экспорт Процедура ДополнитьТаблицу(Таблица, Дополнение) Экспорт Функция ОбратитьДату(Поле) Экспорт Функция ПустаяДата(Дата) Экспорт Функция СтатусВСтроку(Код) Экспорт #КонецОбласти #Область Ошибки Процедура ХКонтекст(Описание, Контекст=0, […]

Роли доступа в рамках интеграции АСП_Меркурий

АСП_Администратор — полные права доступа на все объекты подсистемы АСП_ВетВрач — полный доступ к сертификатам, шаблонам и реквизитам справочников. Административные технические настройки при этом не доступны. АСП_Пользователь — полный доступ на чтение всех объектов подсистемы. Роли доступности интерфейса (распространяются на всех, кроме администратора): АСП_Контрагенты — доступность вкладки Контрагенты на внешней обработке АСП_Товары — доступность вкладки […]

Регионы Меркурий

Прямая интеграция содержит предзагруженные справочники с классификатором регионов системы Меркурий: АСП_Страны АСП_Регионы АСП_Районы АСП_Города АСП_Улицы Данный классификатор является уникальным в рамках системы Меркурий и может не совпадать с другими распространёнными классификаторами, в т.ч. с КЛАДР, используемым в 1С. Однако, содержит ГУИДы, требуемые при регистрации хозяйствующих и поднадзорных субъектов в системе Меркурий. Заполнение Заполняется из внешней […]

Модель общих событий подсистемы

Для удобства интеграции и доработки подсистемы используется вызов общих событий, собранных в модуле АСП_Общие. Данные события позволяют уточнять данные и алгоритм поведения сертификатов на всём цикле: Создание → Проведение → Регистрация. Создание сертификата Запрос табличных частей Серия кастомных событий для рассчёта и получения табличных частей документов. Каждая функция должна возвращать встраиваемый кусочек запроса, необходимый для […]

КодГен

КодГен — это сервис сборки персональных внешних обработок для прямых интеграций 1С. Другое название «сборщик». Перейти на сайт сервиса можно тут.

Внешние ресурсы для использования подсистемой

Транспортный модуль обращается к следующим ресурсам системы и интернета: Интернет http://api.aspcom.ru (вспомогательный информационный сервис) https://api.vetrf.ru (адрес протокола меркурий, продуктив) https://api2.vetrf.ru:8002 (адрес протокола меркурий, тест) Перечень необходимых открытых внешних сетевых портов: 80 443 8002 (только для теста) Система Для имитации паузы в ожидании ответа от сервисов Меркурия вызывается команда системы ping.

Общий модуль АСП_Функции

Содержит процедуры и функции общего пользования. // функция подготавливает табличную часть товаров для сертификата // на вход подаётся запрос, полученный любой функции типа ЗапросТаблицы* из модуля АСП_Общие, // а также ссылка на документ основание Функция ТоварыЗапроса(Запрос, Ссылка) Экспорт // поиск шаблона сертификата для документа, указанного ссылкой и виду документа Функция НайтиШаблон(Ссылка, ВидДокумента=Неопределено, ЧастичныйВозврат=Ложь) Экспорт // […]

Общий модуль печати АСП_Печать

// функция формирует двумерный QR-код с веб-ссылкой на ГУИД указанного сертификата // и возвращает путь к сгенерированной картинке Функция СформироватьДвухмерныйШтрихКод(Сертификат) Экспорт // функция возвращает заполненный макет полных печатных форм сертификатов (№4) // по всем сертификатам из массива Функция Распечатать(МассивСсылок) Экспорт // тот же смысл, только используется макет сокращённой формы №2 Функция ПечатьСокращеннойФормы(МассивСсылок) Экспорт Примечание: для […]

Общий модуль АСП_Общие

Содержит персональные процедуры и функции интеграции клиента. Единственный модуль, рекомендуемый к изменению в процессе интеграции. При новой интеграции необходимо проверить каждую функцию модуля а адаптировать поведение под требуемую логику. При обновлении конфигурации по шаблону требуется уделять ему особое внимание. Описание процедур и функций Выборки по справочникам // Функция, возвращающая запрос для выборки поднадзорных организаций // […]

Лекция 2. Анатомия ASP.NET. ASP.NET в действии.

Введение

ASP.NET – один из компонентов .NET Framework. Перечислим кратко основные черты этой технологии.

* Общеязыковая исполнительная среда CLR
* Библиотека классов .NET Framework
* Языки.NET(C#, VB.NET, J# и другие)
* ADO.NET
* ASP.NET
* Web-службы
* Промежуточный язык MSIL (Microsoft Intermediate Language). Это ассемблер для среды выполнения CLR.

ADO.NET – набор классов, предназначенных для доступа к базам данных Microsoft SQL Server, к источникам данных OLEDB и к файлам XML.

Разные части вашего проекта могут быть написаны на разных языках, это называется interoperability. Мы попробуем написать проект, где одна из страниц будет на Visual Basic, а другая на С#.

Компютерные языки бывают компилируемыми и интерпретируемыми. В процессе компиляции программы, написанной на компилируемом языке, создается выполняемый файл(В Windows – exe). Он выполняется быстро, но не может исполняться на другой платформе. Машина, на которой она выполняется, должна иметь похожую конфигурацию. Например, если программа использует dll, то эта библиотека должна быть установлена и на целевой машине. Интерпретируемые программы компилируются в момент выполнения, поэтому они работают медленнее, но не зависят от конкретной машины. В .NET Framework применяется двухэтапная компиляция, то есть первый этап – это компиляция в MSIL, а вторая – компиляция «Just-in-time» компилятором во время исполнения. JIT-компилятор оптимизирует код для той машины, на которой он исполняется. В ASP.NET страница компилируется в MSIL при первом обращении клиента к странице. Вместе с ней компилируются классы, которые она использует. Если вы используете Visual Studio 2005, можно не ожидать первого запроса, а принудительно скомпилировать все страницы вашего проекта. Это позволит выявить синтаксические и другие ошибки.

MSIL – это ассемблер, не зависящий от машины. Он может выполняться на любой машине, где установлена CLR. Проект Mono пытается перенести CLR на другие платформы, позволяя взаимодействовать серверам, работающим на разных платформах.

Вы можете ознакомиться с проектом на сайте http://mono-project.com

На странице http://go-mono.com/archive/xsp-0.10.html находится XSP — сервер ASP.NET, который может служить расширением сервера Apache – основного сервера *nix – систем.

Как работает ASP.NET

Когда мы исталлируем .NET, в соответсвующих директориях C:WINDOWSMicrosoft.NETFramework помещается также файл aspnet_isapi.dll. Это – ISAPI-расширение, и предназначено оно для получения запросов, адресованных ASP.NET-приложениям (*.aspx *.asmx и т.д.), а также создания рабочих процессов aspnet_wp.exe, обратывающих запросы. Интернет-сервер – IIS или встроенный в WebMatrix или встроенный в Visual Studio Cassini – используют это расширение, когда им надо обработать обращение к страницам с расширением aspx.

Этот модуль разбирает(parse) содержимое страниц aspx вместе с файлом отделенного кода и генерирует класс на языке страницы с объектом Page. Страница aspx отличается от обычной HTML-страницы наличием серверных элементов управления, которые описываются специальными тегами. Для понимания работы ASP.NET важно отметить, что каждому тегу элемента управления соответствует свой член класса страницы. Например,

Основная задача объекта Page – посылка HTML-код в выходной поток. Этот класс компилируется в библиотеку .dll, которая загружается в процесс веб-сервера. Последующие запросы к странице также обрабатывает dll, если исходный код страницы не меняется. Все эти файлы можно найти в директории «Temporary ASP.NET Files» текущей версии .NET. Если мы работаем в среде разработки Visual Studio 2005 или VWD, для каждого проекта создается своя поддиректория.

Типы страниц и папок проекта

В проект можно добавлять новые файлы через диалог New File. Если снять отметку с флажка “Place code in separate file”, Visual Studio создаст один файл, в котором будет и страница, и код для ее обработки(в стиле WebMatrix).

Все файлы помещаются в директорию проекта. И наоборот, все файлы, которые будут помещены в директорию проекта, станут его частью. Для веб-сайтов не существует специального файла .csproj, в котором перечислялись бы его составные части, как это было в предыдущих версиях Visual Studio. Структура решения(solution) описывается в текстовом файле .sln. В решение могут входить несколько веб-сайтов и библиотек.

В ASP.NET 2.0 имеются специальные поддиректории проекта для разных типов файлов. Например, в папке App_Code хранятся общедоступные классы, текстовые файлы и некоторые другие(DataSet, диаграмма классов). Файлы с расширениями .cs или .vb, попавшие туда, автоматически компилируются, когда запрашивается любая страница проекта. В App_Data содержатся источники данных, используемых в проекте – базы данных Access и Microsoft SQL, XML-файлы. К этой директории нельзя получить доступ извне, а только из самого приложения. В папке Themes хранятся темы проекта(лекция 13). Применение тем позволяет настроить единообразный внешний вид сайта и централизованно им управлять. В App_GlobalResources находятся ресурсы, например таблицы строк, которые можно создавать на разных языках. Язык ресурсов выбирается автоматически в зависимости от настроек браузера пользователя. В папке App_WebReferences находятся ссылки на используемые веб-сервисы.

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

Проект на 2 языках

Проект Web-сайта состоит из страниц aspx и классов, которые используются на страницах(и, конечно, разнообразных ресурсов). Файлы с классами, к которым можно обратиться из разных страниц, помещают в специальную папку App_Code. При компиляции они помещаются в одну сборку – библиотеку .dll в формате portable executable. Совершенно неважно, на каком языке написан класс, если это язык .NET.

Готовые скомпилированные сборки сторонних производителей тоже можно использовать в проекте. Их помещают в папку Bin. При этом их необходимо импортировать в проект.

Создайте новый проект. Добавьте в него файл, выбрав тип файла Class и язык Visual Basic. Среда сама предложит поместить его в папку Code. Назовем его CustomClass. У него будет очень простой код. Всего одна функция, которая добавляет слово Hello к имени, переданному в качестве параметра.

Добавьте в проект страницу CodeFolder_cs.aspx. Это страница написана на C#, но она создает класс, написанный на VB.NET.

На странице определена форма, напоминающая форму Windows-приложения. На ней имеется кнопка, нажатие на которую обрабатывается в функции Button1_Click. В ней создается класс и вызывается его функция GetMessage с параметром, который берется из элемента редактирования. Возвращаемое значение записывается в элемент Label1. В более простом варианте это выглядит так:

Класс может быть написан на C#, а использоваться из страницы на Visual Basic.

Однако поместить в директории App_Code можно только на одном языке. Если там будет находиться файлы на разных языках, проект не будет компилироваться. Для того, чтобы использовать два языка, необходимо создать поддиректорию, добавить ее в файле web.config и поместить в нее файлы на другом языке.

Регистрация в файле web.config:

Директивы

На каждой странице aspx обычно задаются директивы, с помощью которых Вы можете контролировать поведение страницы. Можно считать их языком, с которым вы общаетесь с компилятором, указывая ему, как обрабатывать данную страницу. Директивы обычно помещают в начале файла. Мы уже встречались с директивой Page в первой лекции.

Синтаскис объявления директив такой:

Можно объявить несколько директив одновременно:

В ASP.NET 2.0 существует 11 директив.
Директива Атрибуты Описание
@Assembly Name
Src Импортирует на страницу или в элемент управления сборку с заданным именем
@Control такие же, как у Page Применяется для задания свойств при создании собственных пользовательских элементов управления.
@Implements Interface Указывает, что класс данной страницы реализует данный интерфейс
@Import Namespace Импортирует пространство имен
@Master такие же, как у Page Применяется на страницах шаблона дизайна(Master page). Новая в ASP.NET 2.0
@MasterType TypeName
VirtualPath Дает строго типизированную ссылку на класс, содержащийся в шаблоне дизайна. Позволяет обращаться к свойствам этого класса.
@OutputCache Duration
Location
VaryByCustom
VaryByHeader
VaryByParam
VaryByControl Управляет кэшированием страницы или элемента управления. Подробнее описана в лекции 15.
@Page см. Ниже Атрибуты, относящиеся к данной странице. Употребляется только в файлах с расширением aspx
@PreviousPageType TypeName
VirtualPath Страница, с которой были отправлены данные, введенные пользователем. Новая в ASP.NET 2.0. Раньше страницы отправляли пост только самим себе.
@Reference Page
Control Страница или элемент управления, который нужно компилировать вместе с данной
@Register Assembly
Namespace
Src
TagName
TagPrefix Создает псевдонимы для пространств имен и пользовательских элементов управления

Пока что подробно рассмотрим 2 из них – Page и Import.

Директива Page

Директива Page позволяет установить свойства страницы, которые будут использованы во время компиляции. Эта директива используется чаще остальных, поэтому ее необходимо рассмотреть более подробно.

Наиболее важные атрибуты директивы перечислены в таблице:

AutoEventWireup Автоматическая обработка событий страницы
Buffer Управляет буферизацией страницы. По умолчанию буферизуется
ClassName Позволяет назначать имя класса, сгенерированного данной страницей
CodeFile Название файла с отделенным кодом для данной страницы
Culture Устанавливает набор региональных параметров, т.е. язык, формат валюты, даты, чисел
Debug Если true, на страницу выводится отладочная информация
Trace Вывод трассировочной информации
EnableViewState Сохранение состояния страницы. По умолчанию она сохраняется
EnableTheming Позволяет включить или выключить поддержку тем оформления. По умолчанию включено
Inherits Класс, от которого наследуется класс данной страницы в технологии отделенного кода
IsAsync Показывает, обрабатывается ли страница асинхронно.
Language Язык, используемый во внедренном коде
WarningLevel Наибольший допустимый уровень предупреждений компилятора
CompilerOptions Опции компилятора

Пространства имен библиотеки классов

Библиотека классов FCL содержит тысячи классов. Для удобства использования они объединены в пространства имен. Чтобы обращаться к классам, объявленным в пространстве имен, без указания полного пути, его нужно импортировать в проект. Если вы хотите работать с файлами формата XML, вам нужно импортировать пространство имен System.XML. В страницах отделенного кода на C#, как всегда, используется директива using.

На странице aspx – директива Import

Для каждого пространства имен требуется отдельная директива Import.

Visual Studio.NET и VWD по умолчанию включают в страницу на C# наиболее часто используемые пространства имен. На страницу aspx импортировать эти пространства имен не требуется.

Например, в пространстве имен System.Web.UI находится класс Page, без которого не может существовать ни одна страница ASP.NET, в System.Web — HttpRequest и HttpResponse.

Программа просмотра классов

Как же узнать, какие классы имеются в библиотеке классов .NET? Для этого предназначен Object Browser (Visual Studio 2005) и Class Browser WebMatrix. Чтобы открыть Object Browser в Visual Studio 2005 или VWD Express, выберите пункт меню View-> Object Browser. Если вы используете WebMatrix, то Class Browser находится в той же папке меню Windows, что и WebMatrix – All Programs->ASP.NET WebMatrix. В формате ASP.NET Class Browser включен в состав Framework SDK.

Все имеющиеся пространства имен показаны как узлы древовидной структуры. Нас интересует System.Web. Раскройте этот узел. Внутри оказались другие пространства имен. Раскройте System.Web.UI. Там находится большое количество классов, интерфейсов, делегатов, перечислений. Их можно узнать по иконкам. Например, иконка делегата похожа на чемодан.

Выберите класс Page. В окошке справа появится список его методов, полей и событий. Если выбрать метод, в третьем окне под вторым появится его описание. Внутри класса находятся еще две папки – классов-прародителей(Base Classes) и классов-потомков. Все их тоже можно просмотреть. Object Browser показывает и классы текущего проекта. Если классы закомментирован тегами генерации документации XML, то эта информация тоже видна, например Summary, Parameters, Values, Returns.

Исследуя свойство IsPostBack, можно узнать, что оно имеет булевское значение, и предназначено только для чтения.

Проверка соответствия стандартам

Существуют разные стандарты HTML и XHTML. Более поздние стандарты предъявляют более строгие требования, например, XHTML 1.1 не разрешает пользоваться
и другими простыми тегами без закрывающего слэша
. В то же время старые стандарты не поддерживают новые теги.

В заголовке HTTP-запроса указывается стандарт документа, Visual Studio 2005 во всех страницах указывает следующий стандарт:

Этот стандарт требует наличия атрибута xmlns в теге — ссылки на сайт с описанием стандарта.

Многие страницы, сделанные для предыдущих версий ASP.NET, не имеют такого атрибута. В панели инстументов Html Source Editing также находится выпадающий список, в котором можно выбрать стандарт или версию браузер, для которого предназначена данная страница. Страница автоматически проверяется на соответствие этому стандарту.
Свойства страницы

Страница – это основа всего в Web-приложении.

Класс System.Web.UI.Page инкапсулирует функциональность, необходимую для создания и обработки страниц ASP.NET.

Каждая страница ASP.NET – это объект класса, который автоматически генерируется ядром ASP.NET. Класс наследуется от ассоциированного со страницей класса, если мы используем отделенный код, или прямо наследуется от System.Web.UI.Page, если код на C# встроен в страницу. Среда также создает конструктор по умолчанию.

Чтобы убедиться в этом, можем создать страницу “PageType.aspx”:

Тип данной страницы ASP.pagetype_aspx
Базовый тип данной страницы System.Web.UI.Page

Такая же страница, созданная по технологии разделения кода.

Тип данной страницы ASP.pagetype_aspx
Базовый тип данной страницы PageType

То, что PageType – наследник System.Web.UI.Page, прописано в файле отделенного кода:

К текущему объекту страницы можно обращаться как к переменной Page. Page – это контейнер элементов управления данной страницы, поэтому содержит в себе коллекцию Controls. Если в теге присутствует атрибут runat = “server”, то в Page содержится и поле Header, через которое можно управлять заголовком страницы. Например, поменять название странице в заголовке браузера, назначить файл каскадных таблиц стилей.

В этом примере мы поменяли текст заголовка. Запустите эту страницу. В получившемся HTML-коде внутри тега стоит уже не «Untitled Page», а «Новый заголовок», который был установлен через Page.Header.Title. Был создан стиль для тега

, что отразилось таким образом:

Внешняя страница CSS была импортирована из файла.

Если атрибут AutoEventWireup, который присутствует в заголовке страниц, генерируемых VS, установлен, то методы с префиксом Page_ автоматической назначаются обработчиками событий страницы.

У страницы есть два важных свойства — Response и Request. Свойство Response имеет тип HttpResponse. Response страницы можно воспринимать как выходной поток. Весь HTML код генерируемой страницы в принципе может быть выведен через запись в этот поток. Это был обычный способ работы разработчиков asp. Но в ASP.NET есть более удобные средства вывода данных с помощью серверных элементов управления. Response лучше использовать для записи Cookies, для задания различных параметров заголовка – управлять кэшированием, свойством Expires.

Вот пример из MSDN:

Можно поменять кодовую страницу.

Функция Response.Redirect перенаправляет браузер на другую страницу.

Здесь формируется командная строка с параметрами QueryString, которые целевая страница может прочитать.

Аналогично свойство Request – это запрос, переданный на сервер для вывода нужной страницы. Он имеет тип HttpRequest. В нем хранится все о клиенте, включая настройки его браузера, файлы-cookie и данные, введенные им в форму.

События страницы

Работа среды ASP.NET со страницей начинается с получения и обработки Web-сервером IIS запроса к данной странице и передачи этого запроса среде выполнения ASP.NET. Среда выполнения анализирует, нужно ли компилировать страницу или можно выдать в качестве ответа страницу из кэша.

Затем начинается жизненный цикл страницы. Он начинается с этапа PreInit. После получения запроса среда выполнения загружает класс вызываемой страницы, устанавливает свойства класса страницы, выстраивает дерево элементов, заполняет свойства Request и Response и свойства UICulture и вызывает метод IHttpHandler.ProcessRequest. После этого среда выполнения проверяет, каким образом была вызвана эта страница, и если страница вызвана путем передачи данных с другой страницы, о чем будет рассказано далее, то среда выполнения устанавливает свойство PreviousPage.

На этом этапе устанавливается также свойство IsPostback объекта Page, которое позволяет узнать, в первый ли раз загружается форма или она должна формироваться как результат обработки данных, введенных пользователем.

В обработчиках событий страницы можно проверить это свойство:

Дальше происходит инициализация страницы – событие Init. Во времени инициализации страницы создаются дочерние пользовательские элементы управления и им установливаются свойства id. В это же время к странице применяются темы оформления. Если страница вызвана в результате постбэка, то на этом этапе данные, отправленные на сервер, еще не загружены в свойства элементов управления. Программист может инициализировать их свойства.

Загрузка. Во время события Load устанавливаются свойства элементов управления на основании информации о состоянии, если страница создается в результате отправки данных формы.

Если на странице существуют валидаторы(классы проверки данных, см. лекцию 5), то для них вызывается метод Validate(). Затем вызываются обработчики событий (при условии, что страница генерируется в ответ на действия пользователя).


В методе Render генерируется сам HTML-код выводимой страницы. При этом страница вызывает соответствующие методы дочерних элементов, те – методы своих дочерних элементов. В методе Render код выводится в Response.OutputStream. Сама страница тоже считается элементом управления – класс Page является наследником класса Control. Если на странице есть блоки отображения, они становятся частью функции отрисовки (rendering).

Наконец, страница выгружается из памяти сервера и происходит событие Unload.

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

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

Полный список событий страницы, которые можно переопределить в классе страницы:

* PreInit
* Init
* InitComplete
* PreLoad
* Load
* LoadComplete
* PreRender
* PreRenderComplete
* Unload

Для всех событий определены обработчики – виртуальные функции OnInit, OnLoad. Когда AutoEventWireup равно true, в классе автоматически объявляются функции-обработчики событий с префиксом Page — Page_Load, Page_Init и так далее. Одно из самых популярных событий – это Page_Load. Создавая новую страницу, Visual Studio создает обработчик этого события. Здесь можно изменить внешний вид элементов и создать новые. Можно установить AutoEventWireup в false. В таком случае надо писать перегруженные версии виртуальных функций.

Так можно добиться ускорения работы страницы.
Способы внедрения кода ASP.NET в страницу.

Есть три способа внедрить код на программном языке в страницу aspx.

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

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

Архитектура веб-служб

Служба ASP . NET состоит из библиотеки DLL , файла ASMX и файла Codebehind , который содержит класс , специально созданный для работы с веб-службами. Файл ASMX аналогичен файлу ASPX веб-формы ASP . NET , через него выполняются запросы веб-служб. В данной лекции мы будем считать веб-службу и класс с интегрированным HTTP -интерфейсом равнозначными. В проект можно добавлять другие классы, при этом не нужно создавать другой файл ASMX, так как классы сами по себе не являются веб-службами. При добавлении класса создается только файл для поддержки кода класса с именем .cs или . .

В проект веб-службы Visual Studio . NET может входить несколько веб-служб. При компиляции проекта результат записывается в одну библиотеку DLL . Она включает классы нескольких файлов ASMX и дополнений к классам, поддерживающим файлы веб-службы ASMX.

Файл ASMX связан в IIS с расширением ISAPI aspnet_isapi.dll , поэтому при запросе файла ASMX из IIS aspnet_isapi.dll направляет HTTP — запрос нужной DLL -библиотеке веб-службы (см. рис. 3.1). Файл ASMX связан в один момент времени с одной DLL -библиотекой. Как правило, проекты веб-служб Visual Studio . NET располагают DLL в каталоге двоичных файлов внутри папки с файлами ASMX.

Веб-службы ASP . NET используют те же файлы конфигурации библиотеки и файлы конфигурации реализации IIS , что и веб-формы ASP . NET . Файлы веб-службы ASP . NET , используемые компилятором для создания веб-службы в библиотеке, именуются .asmx (в отличие от файлов веб-форм ASP . NET с расширением .aspx ). Веб-служба ASP . NET имеет ту же самую архитектуру, равно как и типы файлов, связанные с ней внутри проекта. Например, файл ASMX является адресуемой входной точкой веб-службы и как главный файл предоставляет директивы обработки для компиляции веб-службы. Файл ASMX описывает файлы, предназначенные для веб-службы ASP . NET , и сам может содержать в себе код. Код, связанный с веб-службой ASP . NET , обычно располагается в файле Codebehind. Файл Codebehind .asmx.cs содержит исходный код веб-службы, а файл .asmx.resx является источником, обслуживающим файл Codebehind.

Примечание. Файл ASMX может включать код вместо файла Codebehind, однако Visual Studio .NET использует файл Codebehind в шаблоне проекта веб-службы по умолчанию. Если файл ASMX не использует Codebehind, то технология .NET компилирует файл и создает DLL автоматически по первому запросу.

Создание веб-службы с помощью Visual Studio .NET

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

  • anEvent. Класс представляет событие, происходящее в данный момент времени и день.
  • Events. Класс представляет коллективную группу экземпляров класса anEvent .
  • EventClient. Веб-форма, использующая экземпляры Events и anEvent .

Класс Events является веб-службой, класс anEvent – классом, используемым веб-службой Events , а класс EventClient – веб-формой, использующей классы anEvent и Events . Все классы располагаются в едином пространстве имен myPortal . В результате компиляции проекта создается библиотека myPortal.dll . Файл Events.asmx указывает на класс в библиотеке myPortal.dll . Библиотека myPortal.dll также содержит класс веб-формы EventClient и класс anEvent . Файл EventClient.aspx направляет технологию . NET в myPortal.dll как в скомпилированный код, содержащий соответствующий класс .

Создадим новый проект веб-службы ASP . NET .

  1. Откройте Visual Studio .NET. Отобразится начальная страница (если в Visual Studio .NET не отключено отображение начального окна). Как и в предыдущих версиях Visual Basic, предоставляется окно с шаблоном по умолчанию (вы можете его отключить).
  2. Выберите File\New Project (Файл\Создать проект) для открытия окна со списком типов проектов и соответствующих шаблонов.
  3. В списке слева выберите узел Visual C# Projects (Проекты Visual C#) – справа отобразятся шаблоны проектов для языка C#.
  4. Выберите шаблон ASP.NET Web Service (Веб-служба ASP.NET).
  5. Новой веб-службе в любом проекте по умолчанию присваивается имя Service1 . В нашем примере проект называется myPortal (см. рис. 3.2). Задайте путь к корневому веб-каталогу сервера при помощи адреса URL или UNC. В URL указывается имя сервера по умолчанию localhost , если разрабатываемое программное решение располагается на рабочей станции при написании кода и модульном тестировании.
  6. Нажмите на кнопку OK.

Visual Studio . NET выполнит подключение к веб-серверу, указанному в диалоговом окне New Project (Новый проект), создаст новый виртуальный каталог и скопирует в него файлы веб-служб по умолчанию.

После генерации файлов проекта отобразится представление Design ( Дизайн ) веб-службы Service1 , готовое к разработке. Visual Studio . NET присваивает веб-файлам веб-службы имена по умолчанию, поэтому их нужно переименовать.

  1. Откройте Solution Explorer в меню View\Solution Explorer (Вид\Диспетчер программы).
  2. Щелкните правой кнопкой мыши на файле Service1.asmx и выберите Rename (Переименовать).
  3. Удалите имя Service1 и введите имя Events.
  4. Нажмите на клавишу Enter, и имена файлов ASMX, Codebehind и файла разрешения сменятся на Events.asmx , Events.asmx.cs и Events.asmx.res соответственно.

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

  1. Выделите файл Events.asmx в диспетчере Solution Explorer и нажмите на кнопку View Designer (Отобразить дизайнер). Файл Events.asmx.cs отобразится в дизайнере компонентов).
  2. Щелкните правой кнопкой мыши на файле Events.asmx.cs и выберите Properties (Свойства).
  3. В открывшемся окне свойство Name (Имя) содержит значение Service1 . Удалите это значение.
  4. Введите в свойстве имени значение Events. Дизайнер компонентов автоматически изменит каждый экземпляр имени класса в файле Codebehind.

Веб-служба Events выполняет добавление, открытие или удаление экземпляров класса anEvent из портала. Данные экземпляра anEvent сохраняются в базе данных.

Класс Events взаимодействует с базой данных, поэтому при построении веб-службы мы используем компоненты инструментария, реализующие получение и отправку (см. рис. 3.3). Компоненты добавятся в представление Design ( Дизайн ) веб-службы Events .

Создание серверных компонентов для ASP-приложений

ASP (Active Server Pages) — технология создания Web-страниц, содержащих код, выполняемый Web-сервером (подробнее об истории и современном состоянии этой технологии см. в статье Алексея Федорова «Технология ASP+», № 9’2000, а о практических вопросах применения ASP см. в цикле статей Рубена Садояна , № 9-11’2000. — Прим. ред.). Современная версия данной технологии позволяет использовать в ASP-страницах сторонние серверные компоненты, созданию которых и посвящена данная статья.

В качестве средства разработки ASP-объектов будет использоваться Borland Delphi 5, Enterprise-версия которого позволяет это делать. К сожалению, в документации, поставляемой с Delphi 5, крайне скупо сказано о назначении, последовательности создания и тестирования серверных объектов ASP; кроме того в комплекте поставки Delphi 5 отсутствуют примеры работающих ASP-объектов. Настоящая публикация частично восполняет эти пробелы.

Клиентское приложение, использующее ASP-объекты, представляет собой HTML-документ (этот документ может также включать клиентский и серверный коды на скриптовых языках. — Прим. ред.), который в принципе можно прочесть с помощью любого Web-браузера. Обычно такие HTML-документы размещаются на каком-либо Web-сервере (как правило, это Microsoft Internet Information Server версии 3.0 и выше). Web-сервер, получив требование о предоставлении документа, считывает его из локального хранилища и передает клиенту, при этом часть информации вносится в документ Web-сервером динамически; сам же Web-сервер может обращаться к ASP-объектам, входящим в комплект поставки Internet Information Server или созданным сторонними разработчиками. Обычно Web-документы, содержащие обращения к ASP-объектам, имеют расширение *.asp. Примеры подобных документов можно найти в каталогах, создаваемых при установке Internet Information Server.

Некоторые Web-дизайнеры полагают, что технология ASP заключается, грубо говоря, в замене расширения *.htm в HTML-файле на расширение *.asp. Действительно, при работе с Internet Information Server изменение расширения файла позволит корректно отображать находящийся в нем HTML-документ. Однако на самом деле технология ASP — это обращение к методам специальных объектов, называемых ASP-объектами и представляющих собой COM-серверы. Типичный пример обращения к ASP-серверу из HTML-документа, представляющий собой фрагмент кода на языке VBScript, выглядит следующим образом:

Несмотря на наличие кода на скриптовых языках (VBScript или JavaScript), ASP-страница может быть доступна клиентам, работающим в других операционных системах, например в UNIX. На первый взгляд это может показаться странным, поскольку UNIX-компьютеры не используют ни Basic, ни тем более VBScript. Но дело в том, что скрипты, содержащиеся в ASP-документах, выполняются на сервере, а клиент получает HTML-документ, который является результатом выполнения этого скрипта.

Серверные объекты ASP выполняются в адресном пространстве Internet Information Server (Internet Information Services), работающего под управлением операционной системы Windows NT (Windows 2000) либо Windows 98.

По существу ASP-сервер представляет собой сервер автоматизации, в котором предопределено несколько интерфейсов; среди них — IRequest и IResponse. Интерфейс IRequest содержит методы, вызов которых позволяет передать параметры, введенные пользователем и заполненные на клиенте (об этом будет рассказано ниже). IResponse содержит методы, вызов которых приводит к формированию HTML-документа и передаче данного документа пользователю. Наличие этих признаков делает ASP-сервер похожим на CGI-приложения и ISAPI/NSAPI DLLl (далее — Web-приложения). Идеология выполнения методов в ASP-объекте и Web-приложениях также аналогична: сначала анализируется запрос клиента, затем динамически формируется отклик. Различие заключается в том, что Web-приложения формируют HTML-документ целиком, в то время как отклик ASP-объекта вставляется в исходную HTML-страницу. Например, если документ ASP представлен в виде:

и результат выполнения метода ScriptContent возвращает строку ‘First call to ASP server’, то пользователь, получивший данный документ, увидит следующее (рис. 1).

Иными словами, отклик ASP-объекта добавляется к HTML-документу. В одном документе допустимо обращение к нескольким ASP-объектам, и результат их отклика формируется в единый документ — этого невозможно достичь при использовании Web-приложений. Впрочем, имеется одно ограничение: набор ASP-серверов, к которым производится обращение из одного документа, должен быть зарегистрирован на одном и том же Internet Information Server — нельзя обращаться по различным адресам для формирования одного HTML-документа.

Как было сказано выше, Enterprise-версия Delphi 5 содержит эксперт для создания ASP-объектов. Для запуска этого эксперта следует выбрать пункт главного меню File|New среды разработки Delphi, а затем со страницы ActiveX репозитария объектов — пиктограмму Active Server Object.

ASP-сервер, содержащий ASP-объекты, реализуется в виде как исполняемых файлов *.exe, так и библиотек *.dll — это разрешается при создании серверов автоматизации. ASP-сервер, реализованный в виде исполняемого файла, запускается каждый раз в ответ на запрос клиента. При использовании внутренних (in-process) ASP-серверов, выполненных в виде динамически загружаемых библиотек, один экземпляр DLL, загруженный в адресное пространство Internet Information Server, способен обслуживать одновременно нескольких клиентов. При этом возможно либо создание отдельного экземпляра COM-объекта для каждого клиента, либо обслуживание нескольких клиентов единственным экземпляром COM-объекта. Это зависит от модели работы в потоках (Threading Model), выбранной при заполнении диалога, который появляется при запуске эксперта создания ASP-объектов.

Рассмотрим теперь, каким образом работает ASP-сервер на конкретном примере создания внутреннего (in-process) ASP-сервера. Для простоты ограничимся сервером, который выполняет один запрос. Итак, выберем пункт главного меню File|New среды разработки Delphi, со страницы ActiveX репозитария объектов — пиктограмму ActiveX Library и нажмем кнопку OK. В итоге получим новый проект, который сохраним, например, под именем ASP01. Теперь снова выберем пункт главного меню File|New среды разработки Delphi, со страницы ActiveX репозитария объектов — пиктограмму Active Server Object. В появившемся диалоге определим имя будущего COM-класса, например Test.

Поскольку мы создаем in-process-сервер, параметр Instancing не имеет значения — он важен только для исполняемых файлов. Зато в данном случае серьезную роль играет параметр Threading Model. При значении этого параметра равным Single работа сервера неэффективна, поскольку при одновременном обращении к нему нескольких клиентов сервер выполняет запросы последовательно, и если один из клиентов обращается с длительным запросом, то остальные вынуждены ожидать его окончания, даже если их запросы не требуют большого количества времени для выполнения. При этом у пользователей создается впечатление «зависания» браузера, что зачастую приводит к попыткам разными методами прервать задачу. Значение Apartment приводит к разделению запросов клиентов по потокам, причем для каждого клиента будет создан свой экземпляр COM-объекта, в данном примере — класса TTest. При этом при написании методов COM-класса не требуется защиты переменных класса внутри потоков — клиент может свободно модифицировать их, что упрощает разработку кода приложения. Недостаток данной модели состоит в следующем: проект оказывается ресурсоемким и переменные класса инициализируются при каждом обращении, что увеличивает время отклика на запрос. Этих недостатков лишена модель Free, в которой единственный экземпляр COM-объекта обслуживает нескольких клиентов. Однако возможность изменения данных внутри COM-объекта влечет за собой необходимость защиты общих переменных от их изменений из разных потоков, что существенно усложняет процедуру реализации кода приложения и является потенциальным источником трудноуловимых ошибок. Как правило, эту модель используют в ASP-серверах, которые только предоставляют данные, но не позволяют клиенту их модифицировать.

Группа элементов управления Active Server Type дает возможность выбрать назначение ASP-сервера. Если сервер планируется использовать под управлением Internet Information Server версий 3 или 4, то выбирается опция Page Level Events Methods. Объекты, созданные с применением этой опции, можно будет использовать и с Internet Information Services 5.0, но в этом случае опция Object Context позволит создать объект, работающий более эффективно. Эту же опцию следует выбирать, если работой ASP-сервера управляет Microsoft Transaction Server (Windows NT) или Component Services (Windows 2000). Фактически Internet Information Services 5.0 также управляет этим сервером при помощи Component Services, так как оба этих продукта тесно интегрированы.

Опцию Generate a Template Test Script for this object следует оставлять всегда включенной. В этом случае Delphi создаст небольшой HTML-документ, который можно использовать для тестирования ASP-сервера.

Заполнив опции диалога, необходимо нажать кнопку OK, после чего будет создан файл реализации интерфейсов Unit1.pas, который следует сохранить (например, под именем U1_01). Кроме того, будет создана библиотека типов, появятся ее редактор и файл, описывающий библиотеку типов, в данном примере — TEST_TLB.pas.

Если была выбрана опция Page Level Events Methods (как в нашем примере), то библиотека типов будет содержать два предопределенных метода — OnStartPage и OnEndPage. Также будет создан файл Test.asp, который содержит HTML-документ с заготовками на языке VBScript для тестирования сервера. Если заглянуть в файл реализации (U1_01.pas) , то можно увидеть, что класс ТТest является потомком класса TASPObject.

Если была выбрана опция Object Context, библиотека типов не будет содержать предопределенных методов, а сам класс Ttest будет являться потомком класса TASPMTSObject. Оба класса-предка TTest содержат абсолютно одинаковые методы и свойства, но класс TASPObject дополнительно содержит пару методов интерфейса IASPObject — OnStartPage и OnEndPage.

Далее создадим метод, который будет заполнять HTML-документ. Для этого в редакторе библиотеки типов (рис. 2) отметим интерфейс ITest и вызовем команду New Method нажатием кнопки 1.

Назовем вновь созданный метод ScriptContent, отредактировав его название, заданное по умолчанию. Данный метод не должен иметь параметров. Затем вызовем команду Refresh нажатием кнопки 2. После этого в модуле реализации (U1_01.pas) появится заготовка, где следует описать реализацию. Метод реализуем следующим образом:

В данном примере происходит обращение к методу Write интерфейса IResponse. Проверка Assigned(Response) гарантирует, что в момент записи сообщений имеется ссылка на интерфейс.

После этого следует модифицировать созданный Delphi HTML-документ для тестирования сервера, хранящегося в файле Test.asp. В этом документе имеется следующий фрагмент кода на языке VBScript:

В таком виде этот скрипт работать не будет. Необходимо заменить фразу в фигурных скобках на имя метода ASP-сервера, который генерирует отклик. В нашем примере это имя ScriptContent. Исправленный фрагмент выглядит следующим образом:

Теперь наш проект необходимо скомпилировать, после чего можно приступить к тестированию созданного ASP-объекта. Для этого необходимо создать виртуальную директорию Internet Information Server, которая обязана иметь разрешение как на чтение (из нее будут читаться данные), так и на выполнениe (из нее будет загружена и запущена библиотека ASP01.dll). Альтернатива — разместить эти файлы в разных директориях, одна из которых имеет доступ Read, а вторая — Execute. Однако в любом случае выбранные директории должны быть доступны с помощью протокола HTTP. Поэтому в первую очередь необходимо обратиться к WWW-сервису Internet Information Server, посмотреть список доступных директорий и при необходимости создать новые с соответствующими правами доступа.

В нашем примере на компьютере, который имеет IP-адрес 10.10.10.65, была создана виртуальная директория /Test, имеющая права доступа Read и Execute и соответствующая физическому адресу на компьютере C:\ASPTest. В эту директорию были скопированы оба файла. Далее в Microsoft Internet Explorer в поле Address был введен следующий URL: HTTP://10.10.10.65/Test/Test.asp. Результат выполнения этого запроса показан на рис. 1. Видно, что скрипт (текст между ) был замещен результатом выполнения метода ScriptContent созданного нами ASP-объекта.

Теперь подробнее рассмотрим, каким образом выполняется скрипт на странице Test.asp. Internet Information Server, получающий запрос о показе этой страницы, считывает ее содержимое, находит скрипт и выполняет его. При этом запускается интерпретатор VBScript и вызывается команда CreateObject. В случае если ASP01.dll ранее не была загружена, происходит ее загрузка. Для данного запроса создается COM-объект — экземпляр класса TTest (он описан в модуле реализации, для данного примера — U1_01.pas). Ссылка на интерфейс IDispatch (он поддерживается в классе TTest) сохраняется в переменной DelphiASPObj.

При последующем написании кода после имени переменной, хранящей ссылку на интерфейс IDispatch, можно набирать практически любой текст. Интерпретатор VBScript использует текст, который содержится в скрипте и следует после имени переменной (в нашем примере: переменная — DelphiASPObj, метод — .ScriptContent), для того чтобы передать его ASP-серверу. Если ASP-сервер найдет метод с данным именем, он его выполнит. В противном случае генерируется исключение. Поэтому при написании скриптов для ASP-сервера следует быть внимательным в названиях методов и при наличии исключений в первую очередь проверить корректность имен методов. При вызове какого-либо метода ASP-серверу становятся доступными интерфейсы IRequest и IResponse.

А теперь рассмотрим пример создания более сложного ASP-сервера, где запрос клиента анализируется при помощи методов интерфейса IRequest. Задачу поставим следующим образом: дадим возможность клиенту найти запись по фрагменту поля ENAME таблицы EMP в базе данных ORCL, сгенерированной Oracle 8.0.4 при его установке. Для этого в каком-либо редакторе форм создадим форму, содержащую однострочный редактор текста и кнопку Submit. HTML-документ с такой формой выглядит следующим образом:

При реализации этой формы вместо IP-адреса 10.10.10.65 следует указать IP-адрес компьютера, на котором установлен ASP-сервер.

Поместим этот документ в директорию C:\ASPTest, которая имеет доступ на чтение и выполнение (см. выше) под именем Name.htm. Но прежде чем создавать модуль данных и обращаться к серверу баз данных, необходимо выяснить, каким образом анализируется запрос клиента в ASP-объекте.

Запрос клиента можно анализировать при помощи вызова методов интерфейса IRequest, ссылка на который находится в свойстве Request класса TASPObject — предка класса, где реализуется ASP-объект. Интерфейс IRequest предоставляет три свойства: QueryString, Form и Body, в которых находятся ссылки на интерфейс IRequestDictionary. QueryString содержит параметры запроса, Form — список элементов управления, предоставляемых клиенту, а Body — данные, которые клиент ввел в эти элементы управления. Нам потребуются данные, поэтому мы будем анализировать свойство Body, однако все сказанное ниже о методах IRequestDisctionary применимо и к любому другому свойству типа ICustomDictionary — QueryString и Form.

IRequestDictionary определен в модуле ASPTlb.pas следующим образом:

Документация о свойствах этого интерфейса в Delphi отсутствует, и остается только догадываться, каким образом из него можно извлечь параметры запроса, введенные пользователем. Привлекая документацию по компоненту TWebDispatcher, который используется при создании CGI-приложений и ISAPI DLL, где также можно анализировать параметры запроса пользователя, можно понять, что свойство Count содержит число элементов управления на форме — для формы, содержащейся в документе Name.htm, оно равно 2. Свойство Key содержит имена элементов управления; для формы, содержащейся в документе Name.htm, это имена T1 (текстовое поле) и B1 (кнопка). И наконец, свойство Item содержит введенные пользователем значения.

Свойство Count работает как положено, то есть возвращает двойку для примера, приведенного выше. При попытке же извлечь имена элементов управления обнаруживается неприятная особенность: в коллекции Key[] индексы начинаются с единицы, а не с нуля, как это принято в приложениях подобного типа. Но все же, обращаясь к коллекции Key с соответствующим индексом — 1 или 2 для нашего примера, можно получить названия элементов управления в виде строковых переменных.

Аналогичная попытка извлечь данные, введенные пользователем в элементы управления, ни к чему хорошему не приводит. Так, при присвоении строковой переменной значения из коллекции Item[] (которая объявлена аналогично коллекции Key[]) происходит исключение. При анализе значения, возвращаемого коллекцией Item[I], обнаруживается, что возвращается интерфейс — потомок IDispatch. Методы и свойства этого интерфейса также не описаны.

Отсутствие описания интерфейса, а также возврат ссылки на него в переменной типа OLEVariant (а не IDispatch) обычно характерно для продуктов, которые находятся в стадии разработки. В этом случае заголовки методов интерфейса, список параметров методов и их число постоянно меняются, а во избежание исключений в клиентских приложениях часто используется позднее связывание. Этот факт настораживает: не исключена возможность изменения методов интерфейса в будущем, что может привести к потере работоспособности созданных ранее ASP-серверов. Однако хочется надеяться, что данный интерфейс устоялся, а в Microsoft по какой-либо причине просто забыли внести изменения в интерфейсный модуль.

Интерфейс — потомок IDispatch имеет два свойства: Count, которое всегда возвращает 1, и Item[]-коллекцию, которая возвращает текст, введенный клиентом в элементах управления. Коллекция Item начинается с индекса 1.

Для понимания и тестирования запроса в ASP-объекте сделаем небольшое дополнение к проекту. Воспользовавшись редактором библиотек типов, создадим новый метод RequestProp, как это было описано ранее (см. рис. 2). Напишем следующий код для метода RequestProp:

Скомпилируем проект и в созданном ранее файле Test.asp изменим код на языке VBScript следующим образом: вместо строки DelphiASPObj.ScriptContent напишем строку DelphiASPObj. RequestProp. После этого в Internet Explorer необходимо обратиться к странице Name.htm командой http://10.10.10.65/Test/Name.htm, где вместо 10.10.10.65 следует набрать IP-адрес сервера.

В полученной форме (рис. 3) введем какое-либо значение в элемент управления для редактирования данных и нажмем кнопку Submit. В итоге имеем результат выполнения приведенного выше кода метода RequestProp:

Итак, для определения параметров, введенных клиентом в какой-либо элемент управления, необходимо просмотреть всю коллекцию Keys, найти индекс интересующего нас элемента управления (в нашем примере — это 1, что соответствует ключу T1) и извлечь значение, введенное клиентом, посредством вызова команды Request.Body.Item[Index].Item[1].

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

Модуль данных, в который можно помещать невизуальные компоненты, экспертом создания ASP-объекта не генерируется — его необходимо создавать отдельно. Поэтому выберем пункт File|New главного меню среды разработки и из репозитария объектов выберем пиктограмму Data Module. В результате к проекту будет добавлен модуль данных, который мы сохраним под именем U1_02.pas. В этот модуль данных будут помещены невизуальные компоненты доступа к данным (визуальные компоненты в ASP-объектах использовать нельзя).

Вообще говоря, в Web-приложениях (ASP, ISAPI/NSAPI, CGI) показ модальных форм с элементами управления (а диалоги — частный вид таких форм) ни к чему хорошему не приводит. При попытке показать диалог элементы управления на диалоге будут созданы, и приложение будет ожидать, когда диалог будет закрыт (нажатием кнопки OK или Cancel), чтобы продолжить свою работу. Особенность заключается в том, что диалог невидим. Поэтому его нельзя закрыть ни с помощью нажатия на кнопки (они не получают сообщения OnClick), ни с помощью клавиш-акселераторов (сигналы с клавиатуры не посылаются невидимым элементам управления). Визуально программист наблюдает следующее: приложение «висит», отклика от ASP-объекта клиент не получает, а для повторной компиляции проекта требуется перезапуск Internet Information Server либо перезагрузка операционной системы. Даже если команды показа диалогов в ASP-сервере отсутствуют, они могут быть показаны в процессе работы приложения — например, какая-либо из библиотек, используемых приложением, пришлет сообщение об ошибке. Данный факт надо принимать во внимание при написании кода, в котором следует тщательно проверять данные перед их использованием, чтобы внешние приложения или библиотеки не присылали сообщений об ошибках в виде диалогов.

Традиционно доступ к данным в Delphi оcуществляется с помощью механизма Borland Database Engine (BDE), при этом необходимо использовать компоненты TSession, TDatabase и TQuery. Однако при создании ASP-объектов для доступа к данным выяснилось, что в них нельзя использовать BDE для доступа к SQL-серверам — при попытке соединиться с базой данных после передачи параметров, содержащих имя пользователя и пароль, происходит исключение (данный факт был проверен для Oracle 8.0.4 и IB Database 5.5). Через BDE удалось получить доступ только к базе данных DBDEMOS, которая не требует аутентификации пользователя при обращении к данным. К сказанному следует добавить, что в Windows 2000 нельзя получить доступ к данным через BDE в традиционных Web-серверных приложениях ISAPI DLL и CGI, в отличие от предыдущих версий Windows (95/98/NT).

К счастью, в Delphi 5 имеется альтернативный способ доступа к данным — с помощью ADO (ActiveX Data Objects). Для работы с ADO прежде всего необходимо использовать компонент TADOConnection. Поместим его в модуль данных. В инспекторе объектов выберем свойство ConnectionString и вызовем диалог для создания строки. В предложенном диалоге выберем Microsoft OLE DB Provider for Oracle и нажмем кнопку Next (рис. 4).

На второй странице диалога необходимо указать имя сервера (в данном примере — beq-local) и параметры аутентификации: имя пользователя (SCOTT) и пароль (TIGER). Обязательно следует отметить опцию Allow Saving Password, иначе ASP-объект попытается показать диалог ввода имени пользователя и пароля. Протестировать соединение можно нажатием кнопки Test Connection — должно появиться сообщение об успешном соединении с сервером.

Далее в инспекторе объектов следует установить свойство LoginPromp равным False. При работе с другими примерами нужно также изменять свойство DefaultDatabase — имя базы данных, но для данного примера это не обязательно. Проверить правильность установок можно при помощи установления свойства Connected равным True, при этом не должны появляться ни диалог ввода имени пользователя и пароля, ни информация об исключении.

Поместим компонент TADOQuery в модуль данных и в его свойстве Connection сошлемся на определенный выше компонент ADOConnection1.

Следует учесть, что только что разработанный модуль данных автоматически при загрузке ASP-сервера или при обращении клиента к ASP-объекту создаваться не будет. Поэтому необходимо переписать конструктор и деструктор класса TTest, реализация которого находится в файле U1_01.pas. Сошлемся на модуль U1_02.pas в модуле U1_01.pas. В объявлении класса TTest в секции private определим переменную FData типа TDataModule1. В секции public объявим процедуры AfterConstruction и BeforeDesctruction c обязательной директивой override:

Реализуем процедуры AfterConstruction и BeforeDestruction в секции реализации:

Далее в библиотеке типов (см. рис. 2) следует создать новый метод, который назовем QueryResponse. Реализуем его следующим образом:

В данном методе динамически создается SQL-запрос, при этом используются параметры, введенные клиентом в форму на рис. 3. С этим запросом происходит обращение к серверу баз данных, и возвращаемые данные помещаются в HTML-документ. В созданном ранее файле Test.asp изменим код на VBScript следующим образом: вместо строки DelphiASPObj.ScriptContent напишем строку DelphiASPObj. QueryResponse. После этого запустим Microsoft Internet Explorer и снова обратимся к странице Name.htm. Результат выполнения запроса приведен на рис. 5.

При использовании ASP-объекта необходимые для его работы параметры можно поместить, в HTML-документ. Параметры могут редактироваться в документе, что позволит изменять опции для конкретного сайта. Это удобно при поставке ASP-сервера: купившая его компания может изменить начальные установки так, чтобы они соответствовали требованиям компании. Для этого достаточно отредактировать HTML-документ, что возможно даже силами специалистов низкой квалификации.

Пример проиллюстрируем следующим образом: определим в заголовке класса TTest (U1_01.pas) две переменные: FCompanyName:string и FCopyrightYear:string. Определим в библиотеке типов (см. рис. 2) два новых свойства: CompanyName:string и CopyrightYear:integer. В методах *Read и *Wirte для этих свойств определим чтение и возврат данных из описанных выше переменных. В библиотеку типов добавим новый метод ShowCopyright, который реализуем следующим образом:

В созданном ранее файле Test.asp изменим код на языке VBScript:

Результатом обращения к ASP-объекту при помощи команды http://10.10.10.65/Test/Test.asp (вместо 10.10.10.65 следует ввести IP-адрес вашего сервера) будет генерация следующей страницы (рис. 6).

Если в файле Test.asp изменить имя компании (а это можно сделать при помощи любого текстового редактора), соответствующие изменения отобразятся в HTML-документе.

При помощи ASP-объектов можно передавать не только текстовую информацию, но и двоичную, например графические изображения. Создадим обычную HTML-страницу следующего вида:

Файл Test1.asp выглядит следующим образом:

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

Метод GetPicture реализуем следующим образом:

Для передачи двоичных данных необходимо указать их тип в свойстве Response.ContentType и воспользоваться методом BinaryWrite объекта Response. В качестве параметра этого метода используется переменная типа OLEVariant. В этой переменной должны находиться двоичные данные в виде массива байтов. Этот массив передается как отклик. В результате обращения к исходному HTML-документу клиент получит отклик (рис. 7).

До сих пор мы рассматривали in-process-серверы, которые работают в адресном пространстве Internet Information Server и реализуются в динамически загружаемых библиотеках — DLL. В заключение следует сказать и о создании out-of-process ASP-серверов. Такие серверы реализуются в виде исполняемых файлов и работают в отдельном адресном пространстве.

Для создания out-of-process-сервера необходимо открыть готовый проект, компиляция которого приводит к созданию исполняемого файла, или создать новый проект с помощью пункта меню File|New Application. После этого следует выбрать пункт главного меню File|New среды разработки Delphi, а затем со страницы ActiveX репозитария объектов — пиктограмму Active Server Object. В результате будет сгенерирована библиотека типов, содержащая методы OnStartPage и OnEndPage. Все, что было сказано выше по поводу in-process-сервера, справедливо и в отношении out-of-process-сервера: разработка ASP-объекта заключается в создании новых методов, которые будут вызываться из VBScript-кода ASP-страницы.

Сложности возникают при попытке протестировать out-of-process-сервер. По умолчанию параметры настройки Internet Information Server таковы, что запуск им приложений запрещен, а разрешена только загрузка DLL. Более того, в администраторе Internet Information Server отсутствует опция, позволяющая разрешить или запретить использование приложений как ASP-серверов. Для разрешения запуска исполняемого файла как ASP-сервера необходимо выполнить следующий код:

Для выполнения данного скрипта необходимо, чтобы пользователь, инициирующий его выполнение, имел статус администратора. По этой причине данный скрипт бесполезно определять в HTML-документе и запускать его с использованием Internet Explorer, так как любой пользователь Internet имеет статус гостя (Guest), а не администратора. Скрипт необходимо поместить в обработчик какого-либо события в среде разработки Visual Basic или VBA и запустить его оттуда (либо использовать Windows Scripting Host. — Прим.ред.).

К сожалению, в Delphi отсутствует метод, аналогичный методу VBScript GetObject. Очевидно, что метод GetObject возвращает ссылку на интерфейс IDispatch Internet Information Server. Однако при этом в качестве параметра он использует строку, которая не является классовой (ее GUID отсутствует в системном реестре). В Delphi аналогичных методов нет, по крайней мере, в виде простых вспомогательных функций. Возможно, подобный метод станет доступным в следующих версиях Delphi.

Какие службы в Windows нужны, а какие можно отключить.

Здравствуйте дорогие читатели, сегодня я хотел бы поговорить:

1. О службах Windows, что это, для чего нужны и какие за что отвечают.

2. И как же повысить быстродействия компьютера?

И так что это за службы Windows?

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

Открыть список служб можно несколькими способами:

1. Удерживая кнопку windows нажимаем R, откроется окно выполнить, там введите services.msc

2. Пуск > Панель управления > Администрирование > Службы

3. Пуск > правой кнопкой мыши по моему компьютеру > Управление > Службы и приложения > Службы

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

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

Какие службы можно отключить в Windows 7, 8

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

* BranchCache — Служба кэширует сетевое содержимое. Если не пользуетесь домашней сетью, то вообще можете отключить.

* DHCP-клиент — Если пользуетесь интернетом не трогайте ни в коем случае. Именно эта служба присваивает вам ip адрес.

* DNS-клиент Так же необходимая служба для использования интернета. Работает с вашими DNS (служит для правильных направлений).

* KtmRm для координатора распределенных транзакций — системная функция транзакций. Её так же оставляем.

* Microsoft .NET Framework — Все такие службы оставляем как есть. Они служат для нормальной работы большинства приложений.

* Parental Controls — Служба для родительского контроля. Если не используете, можно отключить.

* Plug-and-Play — служит для автоматического распознавания изменений в системе. Например когда вы подключаете флешку, просыпается эта служба… Так что оставляем как есть.

* Quality Windows Audio Video Experience — передача аудио и видео по сети в режиме реального времени. Не нужна только если нет сети (или интернета) в остальных случаях оставляем.


* Remote Desktop Configuration — Для удаленного рабочего стола. Если не пользуетесь удаленными подключениями, отключаем.

* Superfetch — Полезная функция, работает с кэшем. Ускоряет работу Windows, так что оставляем.

* Windows Audio — Управляет звуком. Если не нужен звук отключаем. В остальных случаях оставляем.

* Windows CardSpace — ненужная и небезопасная служба. По этому отключаем.

* Windows Driver Foundation — User-mode Driver Framework — для нормальной работы драйверов, не трогайте. Пусть остается как есть.

* Windows Search — Индексирование файлов для поиска. Если не пользуетесь и есть время подождать пока найдется файл, то отключаем. На ssd обязательно отключаем!

* WMI Performance Adapter — нужна для служб требующие wmi, ставим вручную. Если каким-то приложениям понадобятся, те сами запустят)

* Автонастройка WWAN — служба для использования мобильного интернета. Если пользуетесь usb модемом, сим картой в ноуте, то не отключайте.

* Автономные файлы — помогает работать, автономно с недоступными файлами, которые загрузились до этого. Ставим вручную.

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

* Агент политики IPsec — Нужна при наличии сети и интернета.

* Адаптивная регулировка яркости — Оставляем если есть датчик освещения.

* Архивация Windows — Если не пользуетесь отключайте. Но лучше почитайте про архивацию в windows мало ли, будете пользоваться.

* Биометрическая служба Windows — нужна лишь при использовании биометрических устройств. В остальных случаях отключаем.

* Брандмауэр Windows — Я если честно всегда отключаю, т.к. воровать у меня нечего) А если и зашифруют данные, то восстановлю) Но вам посоветую обзавестись например касперским интернет секьюрити, которого есть и антивирус и брандмауэр. А этот отключите нафиг, т.к. он иногда блокирует что не нужно) Вообщем он следит за безопасностью вашего компьютера и закрывает порты, чтобы ворюги не смогли залезть к вам в компьютер)

* Браузер компьютера В домашней сети не нужна. Вручную.

* Веб-клиент — Нудна если нет интернета. Служит для работы с файлами в интернете. Оставляем.

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

* Вспомогательная служба IP — Работает с протоколом версии 6. Я всегда отключаю его самого, так что и службу можно вообще отключить.

* Вторичный вход в систему — Ставьте вручную, т.к. некоторые игры или программы включат её по необходимости.

* Группировка сетевых участников — Нужна для домашней группы. Ставьте вручную, мало ли понадобится…

* Дефрагментация диска — В принципе она не мешает. Можете оставить или отключить. Если отключите, то рекомендую делать раз в месяц. А для ssd дисков, вообще отключаем!

* Диспетчер автоматических подключений удаленного доступа — Ставим вручную. Нужна для удаленных подключений.

* Диспетчер печати — Нужна если есть с чего печатать. В остальных случаях отключаем.

* Диспетчер подключений удаленного доступа — вручную. Один раз вообще отключил и не смог создать подключение. Так что лучше вручную.

* Диспетчер сеансов диспетчера окон рабочего стола — Если не используете прозрачность от Aero, то можно отключить, даст большой прирост.

* Диспетчер удостоверения сетевых участников — Ставим лучше вручную.

* Диспетчер учетных данных — Лучше вручную. Хранит ваши данные, например логины и пароли.

* Диспетчер учетных записей безопасности — Лучше оставить как есть. Если отключить данную службу, то все изменения в локально политике безопасности пропадут.

* Доступ к HID-устройствам — Доступ к быстрым клавишам. Отключите, если какие-то комбинации перестанут работать, то поставьте обратно.

* Журнал событий Windows — записывает все события. Полезный инструмент для опытного пользователя. Отключить невозможно.

* Журналы и оповещения производительности — системная служба, оставляем как есть.

* Защита программного обеспечения — так же системная служба, оставляем как есть.

* Защитник Windows — Защита от шпионских и вредных программ. Установите нормальный антивирус, а эту службу отключите.

* Изоляция ключей CNG — Вручную.

* Инструментарий управления Windows — Системная служба, без неё, некоторые приложения могут работать некорректно, так что лучше оставить.

* Информация о совместимости приложений — Полезная штука, помогает запустится приложениям, которые отказываются работать на вашей ос. Ставим вручную.

* Клиент групповой политики — Оставляем. Отвечает за настройками политики безопасности.

* Клиент отслеживания изменившихся связей — Отслеживание файлов ntfs, не нужно. Отключаем.

* Координатор распределенных транзакций — Ставим вручную.

* Кэш шрифтов Windows Presentation Foundation — Ставим вручную. При необходимости её запустят приложения.

* Ловушка SNMP — Некоторые программы будут собирать о вас информацию. Так что отключайте.

* Локатор удаленного вызова процедур (RPC) — Вручную, при необходимости приложения её запустят.

* Маршрутизация и удаленный доступ — Не нужна. Отключаем.

* Модули ключей IPsec для обмена ключами в Интернете и протокола IP с проверкой подлинности — Не нужна, но лучше вручную.

* Модуль запуска процессов DCOM-сервера — Системная служба, оставляем как есть.

* Модуль поддержки NetBIOS через TCP/IP — Если нет других компьютеров в сети, то вручную.

* Немедленные подключения Windows — регистратор настройки — Вручную.

* Обнаружение SSDP — Оставьте как есть. Необходима для новых устройств.

* Обнаружение интерактивных служб — Вручную.

* Общий доступ к подключению к Интернету (ICS) — Не нужна, если вы не расшариваете ваш интернет в сетевых подключениях.

* Определение оборудования оболочки — необходима для диалогового окна автозапуска диска или флешки. Кому как удобно, большинству это нужно. Я оставил.

* Основные службы доверенного платформенного модуля — Нужно только для использования чипов ТМР и/или BitLocker.

* Перенаправитель портов пользовательского режима служб удаленных рабочих столов — Если не используете удаленные соединения, то не нужно. Лучше поставьте вручную.

* Перечислитель IP-шин PnP-X — Лучше поставить вручную.

* Питание — Не отключается. Оставляем.

* Планировщик заданий — Желательно оставить как есть, т.к. сейчас много программ его использует.

* Планировщик классов мультимедиа — Оставляем, для кого важен звук.

* Поддержка элемента панели управления «Отчеты о проблемах и их решениях» — Вручную.

* Политика удаления смарт-карт — для пользователей смарт-карт, лучше вручную.

* Поставщик домашней группы — Для использования домашних групп. Лучше вручную.

* Проводная автонастройка — Вручную.

* Программный поставщик теневого копирования (Microsoft) — Вручную.

* Прослушиватель домашней группы — Вручную.

* Протокол PNRP — Тоже оставляем вручную. Некоторые приложения могут использовать службу.

* Публикация ресурсов обнаружения функции — Нужна если вы хотите показывать свои файлы другим компьютерам по сети. Если не хотите, то вручную или отключить.

* Рабочая станция — лучше оставить, т.к. некоторые приложения задействуют данную службу.

* Распространение сертификата — Лучше вручную.

* Расширяемый протокол проверки подлинности (EAP) — Вручную.

* Сборщик событий Windows — Вручную.

* Сведения о приложении — Вручную.

* Сервер — Если компьютер не используется как сервер или не использует общий доступ к файлам и принтерам, то отключайте.

* Сервер упорядочения потоков — Отключаем если нет домашней группы.

* Сетевой вход в систему — Вручную.

* Сетевые подключения — Оставьте как есть. Если нет сети или интернета, то можете отключить.

* Система событий COM+ — ставим вручную. Приложения зависящие от это службы сами её запустят при необходимости.

* Системное приложение COM+ — Так же вручную.

* Служба SSTP — Оставляем как есть, нужна служба если есть интернет на компьютере.

* Служба автоматического обнаружения веб-прокси WinHTTP — Если нужен интернет, то оставьте как есть.

* Служба автонастройки WLAN — служба для беспроводных сетей. Соответственно если их нет, она не нужна.

* Служба базовой фильтрации — с одной стороны, она не нужна (если не нужна безопасность), но с другой, некоторые программы, могут выдавать ошибки. Так что оставляем.

* Служба ввода планшетного ПК — если экран не сенсорный, то не нужна.

* Служба времени Windows — нужна для синхронизации времени с интернетом.

* Служба загрузки изображений Windows (WIA) — Нужна служба, только если есть сканер. Она отвечает за получение изображений со сканеров и камер.

* Служба инициатора Майкрософт iSCSI — Ставим вручную, если программам понадобится, они сами её запустят.

* Служба интерфейса сохранения сети — Нужна для нормальной работы сети.

* Служба кэша шрифтов Windows — служит для повышения производительности, кэширует шрифты и не тратит время на загрузку.

* Служба медиаприставки Media Center — Если не используете никаких приставок, она не нужна.

* Служба модуля архивации на уровне блоков — Ставим вручную. Если понадобится архивация или восстановление, то служба сама запуститься.

* Служба общего доступа к портам Net.Tcp — По умолчанию выключена. Нужна если только понадобится протокол Net.Tcp.

* Служба общих сетевых ресурсов проигрывателя Windows Media — Вручную. Понадобится, включится.

* Служба перечислителя переносных устройств — Служит для синхронизации музыки, видео и т.д. со съемными носителями. Я бы поставил вручную. Не всегда это нужно.

* Служба планировщика Windows Media Center — Нужна если только смотрите передачи в Windows Media Player.

* Служба поддержки Bluetooth — Нужна если есть Bluetooth.

* Служба политики диагностики — Нужна для диагностики неполадок… Она если честно помогает редко. По этому можете по-экспериментировать, отключив её. Если понадобится — включите.

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

* Служба профилей пользователей — Лучше оставить. Она работает с профилями пользователей компьютера.

* Служба публикации имен компьютеров PNRP — Нужна для домашних групп.

* Служба регистрации ошибок Windows — Регистрирует ошибки. Лучше поставить вручную.

* Служба ресивера Windows Media Center — для просмотра телерадио передач в плеере.

* Служба сведений о подключенных сетях — Лучше оставить как есть, для нормальной работы сети.


* Служба списка сетей — Так же лучше оставить.

* Служба уведомления SPP — Для лицензирования. Оставьте вручную.

* Служба уведомления о системных событиях — Если не собираетесь смотреть сообщения Windows, то она вам не нужна.

* Служба удаленного управления Windows (WS-Management) — Поставьте вручную.

* Служба шифрования дисков BitLocker — Шифрует диски. Если не пользуетесь, то лучше отключите.

* Служба шлюза уровня приложения — Служба нужна только для работы с брандмауэром. Вручную.

* Службы криптографии — Для установки новых программ, лучше оставьте как есть.

* Службы удаленных рабочих столов — Если не пользуетесь удаленными рабочими столами, то отключайте.

* Смарт-карта — Если ими не пользуетесь, то она вам не нужна.

* Сопоставитель конечных точек RPC — Служба нужна для входящего трафика. С ней ничего нельзя сделать. По этому оставляем.

* Средство построения конечных точек Windows Audio — Если нужен звук, оставьте.

* Телефония — Оставьте вручную. Если понадобится, запустится.

* Темы — Едят много ресурсов памяти. Если не нужны, отключайте.

* Теневое копирование тома — Создает точки восстановления, архивация в фоновом режиме. Поставьте вручную. Если нужно будет запустится.

* Тополог канального уровня — Тоже вручную. Если понадобится, запустится.

* Удаленный вызов процедур (RPC) — Системная служба. Оставьте как есть.

* Удаленный реестр — Позволяет удаленным пользователям, манипулировать вашим реестром. Отключайте.

* Удостоверение приложения — Вручную.

* Узел системы диагностики — Диагностика проблем. Поставьте вручную.

* Узел службы диагностики — Так же вручную.

* Узел универсальных PNP-устройств — Ставьте вручную. Не все устройства PnP.

* Управление приложениями — Ставьте вручную. Служба позволяет настроить политики для приложений.

* Управление сертификатами и ключом работоспособности — Ставьте вручную, понадобится, запустится сама.

* Установщик ActiveX — Так же вручную. Понадобится установить такой объект, она сама запустится.

* Установщик Windows — Установка программ .msi. Вручную.

* Установщик модулей Windows — Устанавливает и удаляет компоненты и обновления. Вручную.

* Факс — Нужна если только есть факс.

* Фоновая интеллектуальная служба передачи (BITS) — Оставляем вручную. Служба полезная.

* Хост поставщика функции обнаружения — Оставляем вручную. Нужно будет запустится.

* Цветовая система Windows (WCS) — Вручную. Нужна будет устройствам, запустят.

* Центр обеспечения безопасности — Следит за безопасностью Windows. Меня она бесит со своими уведомлениями. Так что отключать или нет, выбирать вам.

* Центр обновления Windows — С одной стороны полезная функция. Заделывает дыры в системе, обновляет драйвера, но с другой стороны, активно использует интернет, ресурсы памяти и если при обновлении выключить компьютер, может рухнуть ОС. Так что так же вам выбирать что важнее, безопасность или быстродействие.

* Шифрованная файловая система (EFS) — Для безопасности файлов. Лучше оставьте как есть вручную.

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

Национальная библиотека им. Н. Э. Баумана
Bauman National Library

Персональные инструменты

ASP (Application Service Prov > Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 09:58, 24 января 2020.

Поставщик услуг приложений ( ASP ) — это компания, которая предлагает физическим лицам или предприятиям доступ через Интернет к приложениям и связанным с ними службам, которые в противном случае должны были бы располагаться на своих персональных или корпоративных компьютерах. Предполагается, что услуги ASP, как правило, станут важной альтернативой не только для небольших компаний с низким бюджетом для информационных технологий, но и для крупных компаний как формы аутсорсинга и для многих услуг для частных лиц также.. [Источник 1]

Потребность в ASP была обусловлена ​​ростом затрат на специализированное программное обеспечение, которое значительно превысило ценовой диапазон малого и среднего бизнеса. Кроме того, растущие сложности программного обеспечения привели к огромным затратам на распространение программного обеспечения конечным пользователям. Через ASP можно свести сложность и затраты на такое программное обеспечение. Кроме того, вопросы модернизации были исключены из конечной фирмы, поставив бремя на ASP для поддержания современных услуг, технической поддержки 24 x 7, физической и электронной безопасности и встроенной поддержки непрерывности бизнеса и гибкая работа. [Источник 2]

Важность этого рынка отражается в его размерах. По состоянию на начало 2003 года оценки рынка Соединенных Штатов варьировались от 1,5 до 4 млрд. Долларов. Клиенты для служб ASP включают предприятия, правительственные организации, некоммерческие организации и членские организации.

Содержание

Типы поставщиков

Существует несколько форм ASP-бизнеса. Это:

  • Специалист или функциональный ASP обеспечивает единое приложение, например, для обработки кредитных карт оплаты или расписаний услуг;
  • Вертикальный рынок ASP обеспечивает решение пакет для конкретного типа клиента, например, стоматологическая практикой;
  • Предприятие ASP обеспечивает широкие решения спектра;
  • Местный ASP обеспечивает малый бизнес услуг в пределах ограниченной области. [Источник 3]

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

В дополнение к этим типам некоторые крупные многолинейные компании (такие как HP и IBM ) используют концепции ASP в качестве конкретной бизнес-модели, которая поддерживает некоторых конкретных клиентов.

Модель ASP

Прикладное программное обеспечение находится в системе поставщика и доступно пользователям через веб-браузер с использованием HTML или специального программного обеспечения клиента, предоставляемого поставщиком. Пользовательское клиентское программное обеспечение также может взаимодействовать с этими системами через XML API . Эти API также могут использоваться там, где требуется интеграция с внутренними системами. ASP могут использовать или не использовать многопользовательскую установку при развертывании программного обеспечения для клиентов; некоторые ASP предлагают экземпляр или лицензию для каждого клиента (например, с помощью виртуализации), некоторые из них развертываются в режиме доступа к нескольким арендаторам с одним экземпляром, теперь более часто называемым « SaaS ».

Общие функции, связанные с ASP, включают:

  • ASP полностью владеет и управляет программным приложением (приложениями)
  • ASP владеет, управляет и обслуживает серверы, поддерживающие программное обеспечение
  • ASP предоставляет доступную информацию клиентам через Интернет или « тонкий клиент »,
  • ASP-счета на основе «за использование» или ежемесячную / годовую плату

К преимуществам такого подхода относятся:

  • Проблемы с интеграцией программного обеспечения устраняются с клиентского сайта
  • Затраты на программное обеспечение для приложения распространяются на несколько клиентов
  • Поставщики могут создавать больше опыта приложений, чем собственный персонал
  • Платформы разработки с низким кодом позволяют ограничить настройку предварительно созданных приложений
  • Ключевые программные системы постоянно обновляются, доступны и управляются специалистами
  • Повышенная надежность, доступность, масштабируемость и безопасность внутренних ИТ-систем
  • Соглашение об уровне обслуживания поставщика гарантирует определенный уровень обслуживания
  • Доступ к экспертам по продуктам и технологиям, посвященным имеющимся продуктам
  • Снижение внутренних затрат на ИТ до предсказуемой ежемесячной платы
  • Повторное развертывание ИТ-персонала и инструментов для сосредоточения внимания на стратегических технологических проектах, которые влияют на итоговую прибыль предприятия

К числу присущих им недостатков относятся:

  • Клиент обычно должен принимать приложение, как это предусмотрено, поскольку ASP могут предоставлять только индивидуальное решение для крупнейших клиентов.
  • Клиент может полагаться на поставщика, чтобы обеспечить критическую бизнес-функцию, тем самым ограничивая их контроль над этой функцией и вместо этого полагаясь на поставщика
  • Изменения на рынке ASP могут привести к изменению типа или уровня обслуживания, доступного клиентам
  • Интеграция с системами, отличными от ASP, может быть проблематичной. [Источник 4]

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

  • Потеря контроля над корпоративными данными
  • Потеря контроля над корпоративным имиджем
  • Недостаточная безопасность ASP для противодействия рискам
  • Экспонирование корпоративных данных другим пользователям ASP
  • Компромисс корпоративных данных

Некоторые другие риски включают в себя неспособность учитывать финансовое будущее ASP в целом, то есть насколько стабильной является компания, и если у нее есть ресурсы для продолжения бизнеса в обозримом будущем. По этим причинам Cisco Systems разработала всеобъемлющий оценочный ориентир. Это руководство включает оценку сферы обслуживания ASP, безопасность программы и зрелость ASP в отношении безопасности. Наконец, в руководящих принципах указывается на важность проведения аудитов в ASP в отношении:

Физические посещения ASP для оценки формальности организации обеспечат бесценное понимание осведомленности о фирме.

История

С точки зрения их общей цели, позволяющей клиентам передавать на компьютер конкретные приложения, чтобы они могли сосредоточиться на своих основных компетенциях , ASP можно рассматривать как косвенный потомок сервисных бюро 1960-х и 1970-х годов. В свою очередь, эти бюро пытались реализовать видение вычислений как полезность, впервые предложенную Джоном МакКарти в выступлении в Массачусетском технологическом институте в 1961 году. Джостину Эйкеланду , основателю TeleComputing , приписывают приведение в действие акронима ASP в 1996 году, согласно Inc. Magazine. [1]

Сравнение

Модель ASP часто сравнивается с программным обеспечением как службой (SaaS), но в то время как последняя обычно предоставляет универсальную услугу по шкале для многих пользователей, первая обычно включала предоставление услуги небольшому числу пользователей (часто с использованием отдельного отдельного арендатора экземпляры). Это означало, что многие преимущества многопользовательской аренды (разделение затрат, экономия на масштабе и т. Д.) Не были доступны провайдерам ASP, а их услуги были более сопоставимы с внутренним хостингом, чем с настоящими многопользовательскими решениями SaaS, такими как Salesforce. com .

Как установить Asp.Net и как зарегистрировать Asp.Net в IIS

Сегодня мы поговорим о том, как перенести Asp.Net-приложение из среды разработки Visual Studio на веб-сервер IIS.

При запуске в Visual Studio веб-приложение разворачивается на Visual Studio Development Server. Это внутренний веб-сервер, работающий локально в операционной системе. Он создан специально для запуска сайтов на локальной машине и не обслуживает запросы с других компьютеров. Иными словами, другой пользователь со своего компьютера не будет видеть наш сайт.

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

С другой стороны, чтобы наш сайт функционировал, необходимо установить .Net Framework и зарегистрировать Asp.Net в IIS. Об этом и пойдет речь.

Установка Asp.Net

На сервере, где будет располагаться сайт, необходимо установить .Net Framework. Это набор файлов и утилит, позволяющие выполнять и разрабатывать приложения, написанные в среде разработки Ms Visual Studio. Устанавливать нужно ту версию .Net Framework, с помощью которой разрабатывался наш сайт.

Как установить Asp.Net правильной версии? Проверить ее можно следующим образом: открыть проект в Visual Studio, зайти в свойства проекта (меню Проект->Свойства…). На вкладке «Построение» в поле «Требуемая версия .Net Framework» будет указана версия, под которую написано приложение.

Скачать .Net Framework можно с официального сайта Microsoft. Будем считать, что наш сайт написан на .Net 4.0. Скачать установщик можно здесь.

Качаем нужную версию .Net Framework, устанавливаем на сервере. Все, установка Asp.Net завершена!

Как зарегистрировать Asp.Net в IIS

В составе пакета .Net Framework есть утилита aspnet_regiis.exe, с помощью которой мы, собственно, и сможем зарегистрировать Asp.Net в IIS.

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

Asp служба компонентов

Этот текст предназначен для тех, кто никогда не имел дела с ASP и вообще смутно себе представляет возможности программирования на стороне сервера. Я ставил себе задачу создать у читателя общее представление о предмете. Отдельные неточности при этом менее важны — пожалуйста, громко не ругайтесь.

Общие сведения

ASP (Active Server Pages) – это мощная технология от Microsoft, позволяющая легко разрабатывать приложения для WWW. ASP работает на платформе Windows NT и IIS (Internet Information Server), начиная с версии 3, хотя вроде есть реализации на других платформах. ASP – это не язык программирования, это внутренняя технология, позволяющая подключать программы к Web-страницам. Основа успеха ASP – простой скриптовый язык (Visual Basic Script или Java Script) и возможность использования внешних COM-компонент.

Как это все происходит?

Вы пишете программу и складываете в файл на сервере. Браузер клиента запрашивает файл. Файл сначала интерпретируется сервером, на выходе производится HTML-код. Этот HTML посылается клиенту. Файлы с программами имеют расширение .asp. Файлы asp – это обычные текстовые файлы, содержащие исходные тексты программ. Файлы делаются с помощью любого текстового редактора. Каталог, в котором размещены файлы asp должен иметь права на выполнение, так как сервер исполняет эти файлы, когда браузер их запрашивает. Собственно программы пишутся на любом скриптовом языке, который установлен в системе. По умолчанию поддерживаются VBScript и JavaScript. Можно доустановить другие (например, Perl). Если ничего специально не указывать используется VBScript. В дальнейшем будем ссылаться только на него. Программные фрагменты заключаются в скобки . Можно ставить открывающую скобку в начале файла, закрывающую – в конце, все что между ними – программа на Visual Basic’е.

Какие средства есть для программирования?

Web – нормальная среда программирования, если правильно понять, что есть что. В VBScript есть все нормальные конструкции структурного программирования (if, while, case, etc). Есть переменные (описывать не обязательно, тип явно не задается). Поддерживаются объекты. Работа с ними обычная – Object.Property, Object.Method. Есть ряд встроенных объектов (Request, Response, Session, Server, Connection, Recordset). Можно доустанавливать другие компоненты (скачивать, покупать, программировать), например для работы с электронной почтой.

Вывод

Понятия «экран», куда можно выводить данные нет. Все, что надо показать пользователю, выбрасывается в выходной поток на языке HTML. Браузер пользователя интерпретирует этот HTML. Для упрощения вывода существует объект Response . Вывод осуществляется с помощью метода Write .

Так производится запись во внутренний буфер объекта Response. Когда скрипт заканчивает работу, весь буфер выдается клиенту. Надо заметить, что клиент получает «чистый» HTML, таким образом программы на ASP не зависят от клиентского ПО, что очень важно. Если внутри выводимой строки нужно использовать кавычку, кавычка удваивается. Другие методы и свойства Response позволяют управлять выводом. Так Response.Buffer регулирует, получает ли клиент данные по мере из записи в Response, или все сразу по завершении исполнения страницы. Метод Response.Redirect перенаправляет браузер на другую страницу. Чтобы им пользоваться, нельзя до него на странице использовать Response.Write.

Программа на ASP не может явно спросить пользователя о чем-то. Она получает данные из других страниц, либо через URL. Передаваемые параметры помещаются во входной поток и доступны через объект Request . Чтобы передать переменную var в программу test.asp , надо написать:

Чтобы из программы получить значение этой переменной, надо написать:

Несколько переменных разделяется знаком &:

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

Так это выглядит:

При этом пользователь увидит форму из одного поля ввода (var1), в нем будет значение по умолчанию «default». Второе поле (var2) будет невидимо и будет передавать всегда фиксированное значение «var2value». Кнопка «Submit Form» завершает заполнение формы и передает все переменные на test.asp (action). Если method=»get», переменные передаются через URL (test.asp?var1=default&var2=var2value). Если method=»post», передаются вместе с запросом так, что внешне передача переменных не заметна. В вызываемой программе безразлично, какой метод изпользовался (почти). Если у вас нет специальных аргументов за метод GET, используйте метод POST.

Формы

Формы HTML используются для организации диалога с пользователем. Поддерживаются стандартные элементы управления. Все многообразие задается немногими тэгами:

  • INPUT (с параметром TYPE=)
  • SELECT
  • TEXTAREA

Описание – в документации по HTML.

Взаимосвязь между отдельными страницами

Обычно сервер WWW не хранит состояние приложения, т.е. все запросы взаимонезависимы, и нет стандартного способа понять, что несколько запросов пришли от одного и того же пользователя. Но это очень нужно для разработки полноценных приложений и является одной из главных проблем разработки Web-приложений.

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

ASP, используя cookies, предоставляет программисту более простое средство — объект Session (сессия). Сессия стартует, когда новый пользователь обращается к любому asp-файлу приложения. Сессия заканчивается при отсутствии активности пользователя в течение 20 минут, либо по явной команде. Специальный объект Session хранит состояние сессии. Туда можно записывать переменные, которые доступны из любой страницы в этой сессии. Записать данные в этот объект можно просто:

Считать потом еще проще:

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

Наряду с объектом Session существует объект Application . Если сессия создается для каждого нового пользователя, до Application существует в единственном экземпляре, и может использоваться всеми страницами приложения.

Управление приложением

Программисту предоставляется возможность реагировать на 4 события: старт/стоп приложения и старт/стоп каждой сессии. Для реализации этих событий предназначен файл global.asa , который должен располагаться в корневом каталоге приложения. Вот его примерный скелет:

Нужно «просто» вписать Ваш код на соответствующее место. Нужно заметить, что отлаживать код для global.asa довольно непросто, так как он выполняется при очень специфических обстоятельствах (к примеру при старте или остановке сервера).

Использование внешних компонент

Если на сервере установлены дополнительные компоненты, их можно использовать из ASP. Стандартные объекты (например из библиотек ADO (Connection и Recordset) и Scripting (Dictionary, FileSystemObject)) доступны всегда. Установка новой компоненты обычно состоит в копировании dll-файла в каталог на сервере и ее регистрации с помощью программы regsvr32.exe. [В COM+ используется своя процедура инсталляции объектов, это однако не влияет на использования объектов.]

Создать экземпляр объекта можно так:

Class.Object указываются в документации на компоненту. В переменной var запоминается ссылка на созданный экземпляр объекта. Когда объект не нужен, ссылку нужно обнулить с помощью команды:

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

В остальном использование компоненты зависит от самой этой компоненты.

Работа с базами данных

Из ASP можно легко и просто работать с любыми базами данных. Это делается через две промежуточные технологии: ODBC и ADO.

ODBC позволяет организовать доступ к любым базам данных через унифицированный интерфейс с помощью языка SQL. Специфика конкретных СУБД учитывается при помощи специальных драйверов БД. Такие драйверы существуют для всевозможных СУБД (в частности SQL Server, Oracle, Access, FoxPro). Поддержка ODBC обеспечивается на уровне операционной системы Windows (NT). Настройка – через Control Panel/ODBC. Базовым понятием является источник данных или data source. Источник данных – это совокупность сведений о базе данных, включая ее драйвер, имя компьютера и файла, параметры. Чтобы пользоваться базой надо создать источник данных для нее. Важно, чтобы источник данных был «системным», в отличии от «пользовательского». После этого надо лишь знать имя источника данных. [В настоящее время ODBC отступает перед натиском технологии OLE DB. На практике это однако практически ничего не изменяет. Вместо имени источника данных нужно использовать Connection String, в которой указывается имя ODBC-драйвера и все его параметры.]

ADO – это совокупность объектов, доступных из ASP, позволяющих обращаться к источнику данных ODBC [или OLE DB]. Фактически нужны лишь 2 объекта – Connection , представляющий соединение с базой данных и Recordset , представляющий набор записей, полученный от источника. Сначала необходимо открыть соединение, потом к нему привязать Recordset, потом, пользуясь методами Recordset’а, обрабатывать данные. Вот пример:

Если команда SQL не возвращает данных, recordset не нужен, надо пользоваться методом Conn. Execute (SQL_COMMAND).

Если Вы хотите вызывать хранимые процедуры сервера БД с параметрами, нужно воспользоваться объектом Command , который в свою очеред содержит объекты Parameter .

Методики программирования, советы


Описание переменных

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

Однако, есть возможность явно потребовать описания переменных. Для этого первой строкой в ASP-файле нужно написать Option Explicit . После этого обращение к переменной, которая не была объявлена с помощью Dim , вызывает ошибку с указанием номера строки.

Кстати, где расположены описания Dim в процедуре — совершенно не важно. Они могут стоять как до использования переменной, так и после, и даже в цикле. Видимо они отрабатываются препроцессором. Явно задать тип переменной с помощью Dim Var as Typ , как в Visual Basic, все равно нельзя.

Чередование ASP/HTML

Если нужно выдать большой кусок HTML, можно не пользоваться Response.Write. Если в asp-файле встречается кусок текста вне скобок , он трактуется просто как HTML, который надо вывести. Пример:

Обработка ошибок

Для отслеживания ошибок используется специальный объект Err . Он устанавливается в ненулевое значение, если предыдущая команда породила ошибку. Ее можно проверять с помощью If, и таким образом реагировать на ошибки. Чтобы из-за ошибки не прерывалось выполнение программы, в начале нужно включить команду

Включение других файлов

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

Важно: все includes в тексте отрабатываются до исполнения файла. Т.е. даже если include стоит внутри if, то сначала будут включены все includes во всех ветках, и только потом, во время исполнения, будет принятно решение, какую ветку выполнять. Т.е. следующий код не дает условного включения файлов:

Обработка форм

Если надо что-то спросить у пользователя и на основании этого что-то сделать, в простейшем случае создается два файла: один с формой, второй – с ее обработчиком. Обработчик выполняет все действия. Пример:

Рекурсивная обработка форм

Удобный метод состоит в том, чтобы сбор данных и обработку осуществлял один и тот же файл. Для этого пишется asp, в котором есть разные разделы. Специальная переменная отвечает за выбор раздела при запуске. Пример:

Переменные HTTP

Запрос от браузера, кроме запрашиваемой страницы несет еще некоторые данные. Эти данные, например, IP-адрес клиента, доступны через специальные переменные объекта Request. IP-адрес – Request(«REMOTE_ADDR»). Другие — см.документацию (ASPSamp\Samples\srvvar.asp).

Переадресация

Очень легко написать на ASP скрипт, который будет производить некоторые расчеты, и в зависимости от результатов переадресовывать браузер на разные URL (например, подставлять нужный баннер). Делается это так:

Только надо следить, чтобы до выполнения команды redirect ничего не было записано в Response (даже коментарии HTML).

Электронная почта

Одна из часто встречающихся задач – отправить электронную почту с Web-страницы. На первый взгляд, можно просто написать

Дополнительные сведения

Дополнительные сведения о настройке функции смены пароля в веб-клиенте Outlook см. в статье 297121 базы знаний Майкрософт Implementing the Change Password feature with Outlook Web Access (на английском языке).

При настройке возможности смены пароля в Windows Server 2008 необходимо учитывать ряд важных факторов. Например, нужно знать, как устранить следующие проблемы:

    срок действия пароля истек;

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

Дополнительные сведения об этих проблемах см. в статье блога группы разработчиков сервера Exchange Server What you need to know about the OWA Change Password feature of Exchange Server 2007 (на английском языке).

Илон Маск рекомендует:  MySQL статьи, запросы, разработка приложений с mysql
Понравилась статья? Поделиться с друзьями:
Кодинг, CSS и SQL