Сдам Сам

ПОЛЕЗНОЕ


КАТЕГОРИИ







Основи Internet технологій, використання їх як платформи для WEB-застосувань





СОДЕРЖАНИЕ

1 Основи Internet технологій, використання їх як платформи для WEB-застосувань 2

1.1 Сучасні Інтернет технології побудови систем з архитектурою клієнт-сервер. 2

1.2 Архітектура Web-застосування з базою даних в технології ASP.NET 4

2 Історія компонентних технологій Microsoft. Хронологія розвитку і основні переваги платформи Microsoft .NET. 7

2.1 Історія компонентних технологій Microsoft 7

2.2 Хронологія розвитку платформи Microsoft.NET. 10

3 Архітектура платформи Microsoft .NET. 16

3.1 Архітектура .NET Framework. 19

3.2 Технології платформи Microsoft.NET. 23

3.3 Загальномовне виконуюче середовище Common Language Runtime(CLR) .Схема компіляції .NET-додатків. 28

3.4 Cтруктура CLR-модулів, збірка модулів. 31

3.5 Бібліотека класів .NET Framework Class Library(FCL). Основні простори імен FCL 33

3.6 Особливості та переваги ASP.NET. 35

4 ASP.NET Web Forms. 43

4.1 Модель програмування ASP.NET Web Forms. 43

4.2 Модель зворотного виклику. 50

4.3 Сторінкові директиви в ASP.NET Web Forms. 53

4.4 Серверні елементи управління. 57

4.5 Модель подій та життєвий цикл сторінок. 70

4.6 Збереження стану застосування. 80

4.6.1 Рядок запиту- QueryString. 80

4.6.2 Стан виду ViewState. 81

4.6.3 Стан сеансу - Session. 83

4.6.4 Стан застосування Application. 85

5 Технологія ADO.Net. 87

5.1 Переваги і нововведення ADO.Net. 87

5.2 Типи сховищ даних і рівні моделі постачальників. 89

5.3 Сполучені і роз'єднані оточення в ADO.Net 92

5.4 Підключені та автономні класи і об’єкти. 93

 

Основи Internet технологій, використання їх як платформи для WEB-застосувань

Архітектура Web-застосування з базою даних в технології ASP.NET

ASP.NET — это платформа для создания Web-приложений и Web-сервисов, работающих под управлением IIS. Сегодня существуют другие технологии, позволяющие создавать Web-приложения. К ним относятся, прежде всего, очень популярные сегодня языки PHP и PERL, более старая и менее популярная технология CGI и т. д. Однако ASP.NET отличается от них высокой степенью интеграции с серверными продуктами, а также с инструментами Microsoft для разработки доступа к данным и обеспечения безопасности.

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

Архитектура Web-приложения ASP.NET представлена на рисунке 1.2

 

 

Рис. 1.2 - Архітектура Web-застосування ASP.NET

 

ASP.NET функционирует исключительно на серверах Windows, так как требует наличия IIS. Для создания Web-приложений, не требующих IIS, а использующих, например, Web-сервер Apache и работающих на серверах под управлением операционных систем, отличных от Windows, применяются другие технологии.

Важным моментом в понимании архитектуры ASP.NET является тот факт, что она является частью инфраструктуры .NET Framework.

Целью данного курса является изучение одной из технологии создания Web приложения ASP.NET

Історія компонентних технологій Microsoft. Хронологія розвитку і основні переваги платформи Microsoft .NET.

Архітектура .NET Framework

Платформа .NET Framework является надстройкой над операционной системой, в качестве которой может выступать любая версия Windows.

Собственно .NET Framework состоит из трёх основных частей:

- среда выполнения программ CLR (Common Language Runtime - общеязыковая среда выполнения), в которой выполняются объекты, построенные на этой платформе;

- иерархическое множество унифицированных библиотек классов FCL(Framework Class Labrary) для построения Web-служб и приложений, работающих в Windows и в Интернете;

- набор Framework уровня приложений;

- Отношения архитектурных компонентов платформы .NET Framework с концептуальной точки зрения представлены на рисунке 3.2.

 

Рисунок. 3.2. - Архитектура .NET Framework

Самым важным компонентом платформы .NET Framework является CLR (Common Language Runtime), предоставляющая среду, в которой выполняются программы. Главная ее роль заключается в том, чтобы обнаруживать и загружать типы .NET и производить управление ими в соответствии с полученными командами. CLR включает в себя виртуальную машину, во многих отношениях аналогичную виртуальной машине Java. На верхнем уровне среда активизирует объекты, производит проверку безопасности, размещает объекты в памяти, выполняет их, а также запускает сборщик мусора.

Под сборкой мусора понимается освобождение памяти, занятой объектами, которые стали бесполезными и не используются в дальнейшей работе приложения. В ряде языков программирования (например, C/C++) память освобождает сам программист, в явной форме отдавая команды как на создание, так и на удаление объекта. В этом есть своя логика. Однако в CLR задача сборки мусора и другие вопросы, связанные с использованием памяти решается в нужное время и в нужном месте исполнительной средой, ответственной за выполнение вычислений.

На на рис.3.2. над уровнем CLR находится набор базовых классов платформы, над ним расположены слой классов данных и XML, а также слой классов для создания Web-служб (Web Services), Web- и Windows-приложений (Web Forms и Windows Forms). Собранные воедино, эти классы известны под общим именем FCL (Framework Class Library). Это одна из самых больших библиотек классов в истории программирования. Она открывает доступ к системным функциям, включая и те, что прежде были доступны только через API Windows, а также к прикладным функциям для Web-разработки (ASP.NET), доступа к данным (ADO.NET), обеспечения безопасности и удаленного управления. Имея в своем составе большое количество классов, библиотека FCL способствует быстрой разработке настольных, клиент-серверных и других приложений и Web-служб.

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

Над этим уровнем находится уровень классов, которые расширяют базовые классы с целью обеспечения управления данными и XML. Классы данных позволяют реализовать управление информацией, хранящейся в серверных базах данных. В число этих классов входят классы SQL (Structured Query Language, язык структурированных запросов), дающие программисту возможность обращаться к долговременным хранилищам данных через стандартный интерфейс SQL. Кроме того, набор классов, называемый ADO.NET, позволяет оперировать постоянными данными. Платформа .NET Framework поддерживает также целый ряд классов, позволяющих манипулировать XML-данными и выполнять поиск и преобразования XML.

Базовые классы, классы данных и XML расширяются классами, предназначенными для построения приложений на основе трех различных технологий: Web Services (Web-службы), Web Forms (Web-формы) и Windows Forms (Windows-формы). Web-службы включают в себя ряд классов, поддерживающих разработку облегченных распределяемых компонентов, которые могут работать даже с брандмауэрами и программами трансляции сетевых адресов (NAT). Поскольку Web-службы применяют в качестве базовых протоколов связи стандартные протоколы HTTP и SOAP, эти компоненты поддерживают в киберпространстве подход "Plug & Play".

Инструментальные средства Web Forms и Windows Forms позволяют применять технику RAD (Rapid Application Development — быстрая разработка приложений) для построения Web- и Windows-приложений. Эта техника сводится к перетаскиванию элементов управления с панели инструментов на форму, двойному щелчку по элементу и написанию кода, который обрабатывает события, связанные с этим элементом.

Основные NET- технологии можно представить следующими ключевыми технологиями:

ASP.NET - компонентная версии ASP, называемая ASP.NET, это эволюция ASP в .NET. ASP.NET представляет собой полнофункциональ-ную платформу для создания сложных серверных веб-приложений. Неотъемлемой частью ASP.NET являются технологии Web-Forms и Web-Services. Сегодня ASP.NET пользуется небывалой популярностью, но с выхода первой версии .NET Framework более 12 лет назад появилось совершенно новое направление, составляющее конкуренцию традиционному программированию с использованием ASP.NET, которое получило название ASP.NET MVC

 

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

 

Web-сервисы-XML - приложения, исполняющиеся на web-сервере и представляющееся интернет-клиентам набором функций API или web-методов, включают ряд классов, поддерживающих разработку облегченных распределенных компонентов, которые могут быть применены с использованием стандартных Интернет-протоколов в различных WEB-приложениях. XML – расширенный язык разметки. Представляет универсальный способ для описания и обмена структурированной информацией, независимо от приложений и разработчиков, используется для обмена данными между web-сервисами и клиентами.

 

Windows Forms – функциональная библиотека Windows для построения клиентских приложений, которая поддерживает набор классов, позволяющий разрабатывать обычные Windows-приложения, обеспечивая простую разработку графических интерфейсов, общий совместимый интерфейс для многих языков программирования. Набор классов содержится в пространстве имён System.Windows.Forms.

 

ADO.NET - набор средств и слоев , позволяющих приложению легко управлять и взаимодействовать со своим файловым или серверным хранилищем данных. ADO.NET – естественное развитие ADO. ADO(Active X Data Objects)- механизм доступа к БД, на платформах Microsoft, представляет собой набор COM – объектов, доступ к данным которых обеспечивают OLE-DB-провайдеры. ADO.NET снимает ограничения на обмен данными, используя XML в качестве формата.

Безопасность типов

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

Расширяемые метаданные

Информация о классах и членах является только одним из типов метаданных, которые .NET может сохранять в скомпилированной сборке. Метаданные описывают код и позволяют предоставлять дополнительную информацию исполняющей среде и другим службам. Например, эти метаданные могут указывать отладчику, как следует выполнять трассировку кода, или же сообщать Visual Studio о том, как во время проектирования должен отображаться какой-то специальный элемент управления. Они также могут использоваться для активизации других служб во время выполнения, например, запуска транзакций или пула объектов.

Многопоточностъ

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

ASP.NET Web Forms

Модель зворотного виклику

Платформа ASP.NET Web Forms, по аналогии с разработкой настольных приложений, содержит модель событий, которые генерируются каждый раз при обработке страницы. Элементы страницы также содержат ряд событий, которые можно использовать для построения своего приложения. Однако, нужно четко понимать, что при работе веб-приложения код страницы генерируется на сервере, а отображается на клиенте. Поэтому необходим механизм, который, например, при нажатии кнопки на клиентской стороне уведомит об этом сервер для того, чтобы последний мог сгенерировать событие и обработать его. По этой причине, при нажатии на кнопку, страница формирует HTTP-запрос к серверу и отправляет данные с помощью метода POST на сервер. В этом случае сервер может понять, что форма инициировала взаимодействие с ним и сгенерировать и обработать нужную последовательность действий.

При выполнении указанных действий, пользователь в момент нажатия на кнопку увидит процесс загрузки той же самой страницы заново. При этом, возможно, часть данных на странице будет обновлена. Фактически, при выполнении подобных действий страница будет перезагружена "сама на себя". Этот процесс можно представить схематически следующим образом(рис 4.4).

 

Рисунок 4.4 – Процесс обработки события элемента управления

 

Процесс отправки данных на эту же страницу и обработки данных на сервере называется моделью обратного вызова (postback).

Для того, чтобы описанный выше процесс смог выполнятся, страница в ASP.NET Web Forms представляет собой большую HTML-форму. Это учитывается при генерации исходного HTML-кода страницы, и все элементы страницы заключены в тег <form>.

 

 

Эта форма всегда указывает на саму себя и использует метод POST. Использование именно этого HTTP-метода обусловлено тем, что в этом случае все данные будут отправлены на сервер в теле HTTP-запроса, что удобно при наличии большого количества элементов управления на странице. Страница ASP.NET Web Forms не может содержать еще дополнительные HTML-формы – все взаимодействия с сервером выполняются в рамках приведенной выше формы.

Для выполнения обратного вызова в составе страницы присутствуют дополнительные элементы – скрытые поля "__EVENTTARGET" и "__EVENTARGUMENT", а также функция на языке JavaScript "__doPostBack".

Скрытые поля на странице предназначены для указания источника обратного вызова и его аргументов. В качестве источника вызова обычно выступает элемент управления, который инициировал обратный вызов, например, кнопка. Функция JavaScript "__doPostBack" предназначена для осуществления обратного вызова. Как видно из исходного HTML-кода страницы, эта функция присваивает скрытым полям необходимые значения и выполняет отправку формы на сервер. Поскольку HTML-форма содержит все элементы страницы, включая указанные выше скрытые поля, они также будут переданы серверу для обработки. Анализируя состояние этих полей, сервер может определить, какой именно элемент управления осуществил обратный вызов.

 

При генерации страницы на стороне сервера можно определить, в каком режиме происходит загрузка страницы – это может быть первое обращение к странице или обратный вызов страницы, когда страница перезагружается после взаимодействия пользователя с элементами управления. Для этих целей базовый класс Page содержит свойство IsPostBack. Можно воспользоваться этим свойством и несколько изменить логику, выполняемую при обработке страницы. Например, при первом обращении к странице можно обратиться к базе данных, получить данные и отобразить на странице, а при обратном вызове не делать этого – нужные данные уже будут содержаться на странице в поле ViewState.

Элементы управления Web

Эти объекты дублируют функции базовых HTML-тегов, но обладают значительным набором свойств и методов, которые существенно облегчают работу с ними. Примерами таких элементов управления могут являться Label, Button, TextBox и др.

 

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

На этом этапе у страницы вызывается метод Validate(), который перебирает все элементы управления валидатора и вызывает у него метод Validate(). На основе информации от валидаторов задается свойство страницы Page.IsValid.

Генерация страницы.

На этом этапе ASP.NET запускает события генерации HTML-кода страницы. Генерация элементов управления происходит рекурсивно в рамках страницы.

 

Очистка.

На данном этапе страница находится в конце своего жизненного цикла. В этот момент уже сгенерирован HTML код и повлиять на него уже невозможно. Однако объекты элементов управления до сих пор существуют. В этот момент начинается реальная очистка этих объектов и запускается событие Page.Unload.

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

На каждое такое событие можно подписаться из своего кода и запускать в этот момент собственный код. Семантика каждого события заключается в следующем:

 

Таблица 4.4 – События страницы

Наименование события Описание
Application_BeginRequest Срабатывает в начале каждого запроса, включая запросы на файлы, которые не являются Web-формами;
Application_AuthenticateRequest Срабатывает до того, как будет выполнена аутентификация. Это стартовая точка для создания вашей собственной логики аутенти-фикации;
Application_AuthorizeRequest Срабатывает после того как пользователь пройдет процедуру аутентификации и ему нужно будет определить его права. Вы можете использовать данное событие для назначения специальных приви-легий;
Application_ResolveRequestCache Это событие обычно используется вместе с кэшированием выходных данных. В случае если есть кэшированные - выходные данные для страницы, это – последний обработчик, который выполнится в модели событий;
Application_AcquireRequestState Это событие вызывается перед тем, как для клиента будет получена информация, специфичная для сеанса и использована для заполнения коллекции Session;
Application_PreRequestHandlerExecute Это событие вызывается перед тем, как соответствующий HTTP обработчик выполнит запрос;
Application_PostRequestHandlerExecute Это событие вызывается сразу после того, как будет обработан запрос;
Application_ReleaseRequestState Это событие вызывается тогда, когда информация, специфичная для сеанса, сериализуется из коллекции Session, чтобы стать доступной для следующего запроса;
Application_UpdateRequestCache Это событие вызывается перед добавлением информации в кэш выходных данных;
Application_EndRequest Это событие вызывается в конце запроса перед тем, как объекты будут освобождены и восстановлены. Этот момент очень подходит для кода очистки.

 

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

 

Таблица 4.5 – Глобальные события

Наименование события Описание
Application_Start Вызывается тогда, когда впервые запускается приложение и создается домен приложения;
Session_Start Вызывается каждый раз, когда начинается новый сеанс (инициируется сессия);
Application_Error Вызывается всякий раз, когда в приложении возникает необработанное исключение (ошибка);
Session_End Вызывается всякий раз при завершении сеанса (сессия удаляется из памяти);
Application_End Вызывается сразу после завершения работы приложения. В этот момент можно выполнить критическую очистку памяти и освободить критические ресурсы;
Application_Disposed Вызывается после завершения работы приложения, когда сборщик мусора .NET готов к восстановлению занимаемой приложением памяти. В этот момент уже поздно выполнять критическую очистку памяти, хотя вы можете последний раз узнать, были ли освобождены критические ресурсы.

 

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

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

- создать собственный HTTP-модуль, который будет встроен в среду исполнения HTTP;

- использовать файл приложения global.asax.

 

Для подписки на события из файла приложения global.asax, необходимо создать этот файл и определить в классе приложения методы, имена которых совпадают с именем события. Для того, чтобы создать файл приложения, необходимо выбрать пункт "Add new item" в контекстном меню веб-приложения.

 

 

Рисунок 4.10 – Подписка на события из файла приложения global.asax

 

После этого в появившемся окне необходимо выбрать соответствующий тип файла.

 

Рисунок 4.11 – Подписка на события из файла приложения global.asax

 

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

 

Для того, чтобы отследить обрабатываемые на странице события можно использовать встроенные в ASP.NET средства отладки, например, объект Debug. Для этого необходимо открыть разметку страницы и в директиве Page определить задать атрибут Trace равное True.

 

 

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

 

Рисунок 4.12 – Информация о генерируемых событиях при запуске страницы

 

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

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

 

Рядок запиту- QueryString

Строка запроса (QueryString) позволяет сохранять состояние при обращении к текущей или внешней странице сайта. При этом значение состояние передается в строке запроса в качестве параметра GET.

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

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

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

 

Стан виду ViewState.

Состояние вида (ViewState)позволяет передавать состояние между HTTP-запросами в рамках одной и той же страницы.

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

Использование механизма ViewState тесно связано с механизмом Postback. Механизм ViewState обеспечивает передачу данных между HTTP-запросами на основе скрытого поля, которое хранится в HTML-коде страницы. Если странице требуется сохранить состояние между запросами Postback, она сохраняет эти значения в скрытом поле HTML. При следующем Postback-запросе эти данные снова будут отправлены на сервер, где будут обработаны. Так процесс может повторяться несколько раз, пока происходят обращения Postback к данной форме. Однако, состояние ViewState теряется при переходе к другой странице.

Скрытое поле ViewState в коде HTML выглядит следующим образом.

Как видно, данные во ViewState хранятся в закодированном виде (не зашифрованном!) по алгоритму base64. При обработке Postback-запроса среда исполнения анализирует содержимое скрытого поля и помещает данные из него в объект ViewState(коллекция "ключ-значение"), который доступен разработчикам. В процессе обработки страницы содержимое объекта ViewState может изменяться, после чего в конце цикла обработки страницы этот объект трансформируется в строку (сериализуется), кодируется при помощи алгоритма base64 и помещается в скрытое поле. Таким образом, для работы с этим способом сохранения состояния необходимо использовать объект ViewState как показано ниже.

Как правило, при разработке приложений редко приходится напрямую пользоваться объектом ViewState. Обычно, объект ViewState используют элементы управления для сохранения своего состояния. Для управления использованием механизма ViewState у элементов управления есть свойство EnableViewState, которое по умолчанию включено. Если разработчику не требуется подобное поведение для элемента управления, он может отключить использование ViewState для него.

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

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

Во-вторых, у этого механизма существует потенциальная угроза перехвата и подмены данных в поле ViewState. Для решения проблемы с подменой данных можно включить механизм дополнительной защиты – хеш-код. При включении этого механизма в состоянии вида хранится надежно зашифрованная контрольная сумма. Это позволяет отследить подмену состояния вида и среагировать на эту ситуацию. Для включения этого механизма защиты необходимо установить свойство текущей страницы EnableViewStateMAC в значение True. Однако даже если использовать хеш-коды, данные состояния вида все равно остаются доступными для чтения и существует угроза перехвата этих данных. Чтобы исключить возможность перехвата данных можно включить шифрование состояния вида. Для этого необходимо установить свойство ViewStateEncryptionMode у текущей страницы в значение Always.

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

 

Стан сеансу - Session

Другим способом сохранения состояния является состояние сеанса (Session) или просто сессия. Этот способ сохранения состояния позволяет сохранять данные на протяжении всего сеанса работы пользователя с веб-приложением. В этом случае нет ограничения на сохранение состояния в рамках одной страницы – состояние сеанса доступно на протяжении работы с каждой страницей.

Состояние сеанса базируется на встроенной в браузер возможности сохранять Cookie – небольшие данные, которые хранятся на стороне клиента. Если серверу необходимо сохранить какие-то данные в браузере пользователя, он генерирует специальный HTTP-заголовок, который включается в состав HTTP-ответа. При получении ответа браузер анализирует HTTP-ответ на наличие подобных заголовков и, в случае если такой заголовок обнаружен, сохраняет представленные данные на локальном компьютере в специальной папке. После этого при каждом обращении браузера к данному веб-приложению, браузер будет добавлять специальные HTTP-заголовки к своим HTTP-запросам. Таким образом, у сервера есть возможность сохранить на клиенте какие-то данные и получать к ним доступ при каждом обращении клиента к серверу.

Механизм Cookie сам по себе в какой-то степени является способом сохранения состояния. Однако, если его использовать как средство сохранения состояния для большого объема данных, то объем передаваемых данных от клиента к серверу и обратно существенно возрастает. Кроме того, существует потенциальная угроза получения данных из Cookie на стороне клиента, поскольку браузер никак не защищает эти данные. Именно поэтому был разработан механизм сохранения состояния сеанса.

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

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

Как правило, в сессии может храниться идентификатор пользователя, его настройки, а также другая специфичная для каждого пользователя информация. Для работы с состоянием сеанса используется объект Session. По аналогии с ViewState, объект Session является коллекцией "ключ-значение", а работать с ним можно следующим образом.

Важным отличием состояния сеанса Session от состояния вида ViewState заключается в том, что в Session можно сохранять даже те объекты, которые не поддаются сериализации (преобразованию к текстовому представлению). Например, к таким объектам относится объект подключения к SQL Server и др.

 

Технологія ADO.Net.

Деятельность большинства Web-приложений сосредоточена на извлечении, отображении и модификации данных. Эти задачи кажутся достаточно прямолинейными, но за последнее десятилетие способы использования данных постоянно менялись. Разработчики перешли от простых клиентских приложений с локальными базами данных к распределительным системам, основанным на централизованных базах данных и выделенных серверах. В то же время развивались технологии доступа к данным. Сегодня свыше 95% всех информационных систем так или иначе используют базы данных. Вот почему вопросы организации взаимодействия приложения с базой данных являются актуальными, а внимание ведущих разработчиков программного обеспечения приковано к этой проблеме.

На сегодняшний день ADO.NET является наиболее развитой технологией доступа к данным среди технологий, разработанных корпорацией Microsoft. Она развивает те принципы, которые были заложены в таких технологиях, как DAO и ADO, делая их более простыми в применении, более мощными и универсальными. В то же время ADO.NET является уже иной технологией доступа к данным.

 

Взаимодействие

 

Приложения ADO.NET отличаются гибкостью и обширной поддержкой XML. Так как XML является форматом передачи наборов данных через сеть, обрабатывать данные может любой компонент, поддерживающий чтение данных в формате XML. В сущности, принимающий компонент вообще не обязан быть компонентом ADO.NET: передающий компонент может просто передать набор данных получателю, вне зависимости от способа реализации последнего. Компонент-получатель может быть приложением Visual Studio или любым другим приложением, реализованным какими угодно средствами. Единственное требование состоит в том, что получатель должен уметь читать данные в формате XML. XML как общепризнанный стандарт был разработан именно для такого типа взаимодействия.

 

Масштабируемость

 

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

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

 

Простота модификации

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

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

 

Простота программирования

 

Компоненты данных ADO.NET в Visual Studio инкапсулируют функциональные возможности доступа к данным различными способами, что помогает разрабатывать программные продукты значительно быстрее и с меньшим количеством ошибок.

 

СОДЕРЖАНИЕ

1 Основи Internet технологій, використання їх як платформи для WEB-застосувань 2

1.1 Сучасні Інтернет технології побудови сис







ЧТО ТАКОЕ УВЕРЕННОЕ ПОВЕДЕНИЕ В МЕЖЛИЧНОСТНЫХ ОТНОШЕНИЯХ? Исторически существует три основных модели различий, существующих между...

ЧТО ПРОИСХОДИТ ВО ВЗРОСЛОЙ ЖИЗНИ? Если вы все еще «неправильно» связаны с матерью, вы избегаете отделения и независимого взрослого существования...

Конфликты в семейной жизни. Как это изменить? Редкий брак и взаимоотношения существуют без конфликтов и напряженности. Через это проходят все...

Что будет с Землей, если ось ее сместится на 6666 км? Что будет с Землей? - задался я вопросом...





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


©2015- 2023 zdamsam.ru Размещенные материалы защищены законодательством РФ.