- •Федеральное агентство по образованию
- •Таганрогский государственный радиотехнический университет
- •Программирование в Интернет
- •Лекция 1. Введение в Web-программирование
- •Принцип работы Web-приложений
- •Обзор известных средств программирования для Internet
- •Первое решение: cgi
- •Преимущества cgi
- •Недостатки cgi
- •Второе решение: isapi-интерфейс
- •Преимущества isapi
- •Недостатки isapi
- •Третье решение: asp
- •Преимущества asp
- •Недостатки asp
- •Лекция 2. Введение в php
- •Что такое рнр?
- •Архитектура рнр
- •Первая программа на php
- •Взаимодействие html и php
- •Лекция 3. Типы данных php
- •Комментарии
- •Логические переменные
- •Синтаксис логических переменных
- •Приведение значений к логическому типу
- •Целые числа
- •Синтаксис целочисленных переменных
- •Целочисленное переполнение
- •Приведение к целочисленному типу
- •Вещественные числа
- •Константы
- •Преобразование строк
- •Лекция 4. Переменные
- •Изменение типа переменной
- •Преобразование типа переменной
- •Операторы и выражения
- •Оператор присваивания
- •Арифметические операторы
- •Оператор конкатенации
- •Дополнительные операторы присваивания
- •Операторы сравнения
- •Логические операторы
- •Увеличение или уменьшение целой переменной
- •Порядок вычисления операторов
- •Динамические переменные
- •Ссылки на переменные
- •Лекция 5. Инструкция if
- •Блок else инструкции if
- •Блок elseif инструкции if
- •Инструкция switch
- •Оператор ?
- •Цикл while
- •Цикл do... While
- •Цикл for
- •Прерывание циклов инструкцией break
- •Пропуск итераций с помощью инструкции continue
- •Лекция 6. Функции
- •Аргументы функции
- •Аргументы по умолчанию
- •Область видимости переменных
- •Лекция 7. Краткий обзор .Net Framework
- •Промежуточный язык Microsoft Intermediate Language
- •Компиляция “Just In Time”
- •Управляемый код и данные
- •Лекция 8. Создание приложений Web Forms Файлы проекта Web Forms
- •Файлы Web-приложения
- •Обработка событий События жизненного цикла Web-приложения
- •Сохранение данных Web-формы
- •Visual Basic .Net
- •Visual c#
- •События Application и Session
- •Visual Basic .Net
- •Visual c#
- •События Web-формы
- •Visual Basic .Net
- •Visual c#
- •События серверных элементов управления
- •Visual Baste .Net
- •Visual c#
- •Лекция 9. Работа с Web-объектами Введение в пространство имен
- •Пространства имен в Web-приложениях Обзор пространства имен Web
- •Visual Basic .Net
- •Visual c#
- •Использование объекта Application
- •Visual Baste .Net
- •Visual c#
- •Использование объекта Page
- •Visual Basic
- •Visual с#
- •Использование объекта Request
- •Visual Baste .Net
- •Visual c#
- •Использование объекта Response
- •Visual Baste .Net
- •Visual c#
- •Лекция 10. Сохранение сведений о состоянии Способы сохранения сведений о состоянии
- •Использование строк запросов
- •Visual Basic .Net
- •Visual c#
- •Использование переменных состояния Application и Session
- •Упорядочение доступа к переменным состояния
- •Visual Basic .Net
- •Visual c#
- •Visual Basic .Net
- •Visual c#
- •Отключение переменных состояния Session
- •Лекция 11. Web-элементы управления. Использование элементов управления.
- •Простые элементы управления
- •Элементы управления Label
- •Элементы управления HyperLink
- •Элементы управления Image
- •Элементы управления CheckBox
- •Элементы управления RadioButton
- •Элементы управления Table
- •Элементы управления DropDownList
- •Элементы управления ListBox
- •Элементы управления CheckBoxList
- •Элементы управления RadioButtonList
- •Лекция 12. Проверяющие элементы управления
- •Использование проверяющих элементов управления
- •RequiredFieldValidator
- •RangeValidator
- •CompareValidator
- •RegularExpression Validator
- •CustomValidator
- •ValidationSummary
- •Отмена проверки вводимых данных
- •Лекция 13. Введение в Web-сервисы Обзор Web-сервисов xml
- •Инфраструктура Web-сервисов xml
- •Взаимодействие клиентов и Web-сервисов xml
- •Лекция 14. Механизм обнаружения Web-сервисов xml
- •Использование Web-сервисов xml
- •Добавление Web-ссылки
- •Генерация класса прокси
- •Создание объекта класса прокси
- •Доступ к Web-сервису xml через объект прокси
- •Сериализация
- •Лекция 15. Управление Web-методами при помощи атрибутов Атрибуты Web-метода
- •Буферизация откликов Web-метода
- •Visual c#
- •Пользовательские маркеры
- •Подписи
- •Шифрование
- •Лекция 17. Модель безопасности asp.Net
- •Лекция 18. Введение в инфраструктуру Microsoft .Net Remoting
- •Объекты .Net Remoting
- •Передача объектов по механизму .Net Remoting
- •Пример кода для простого серверного объекта .Net Remoting
- •Срок жизни, определяемый арендой
- •Channel Services (System.Runtime.Remoting.Channels)
- •Пример кода, загружающего Channel Services
- •Форматирующие объекты сериализации (System.Runtime.Serialization.Formatters)
Пример кода для простого серверного объекта .Net Remoting
using System;
using System.Runtime.Remoting;
namespace myRemoteService
{
// Общеизвестный объект Web-сервиса
public class myRemoteObject : MarshalByRefObject
{
// Метод myRemoteMethod
public String myRemoteMethod(String s)
{
return "Hello World";
}
}
}
Пример клиентского кода для доступа к этому объекту
using System;
using System.Runtime.Remoting;
using System.Runtime.Remoting.Channels;
using System.Runtime.Remoting.Channels.Http;
using myRemoteService;
public class Client
{
public static int Main(string[] args)
{
ChannelServices.RegisterChannel(new HttpChannel());
// Создаем экземпляр класса myRemoteObject
myRemoteObject myObj = ( myRemoteObject)Activator.GetObject(typeof(myRemoteObject),
"http://myHost:7021/host/myRemoteObject.soap");
myObj. myRemoteMethod ("Hello World");
return 0;
}
}
Срок жизни, определяемый арендой
Для объектов, ссылки на которые передаются в другие приложения, создается так называемая аренда (lease). Она характеризуется сроком аренды (lease time); когда он истекает, объект отключается от инфраструктуры .NET Remoting. После освобождения в AppDomain всех ссылок на объект последний уничтожается во время следующего цикла сбора мусора. Таким образом, срок жизни объекта определяется арендой.
Для объектов устанавливается срок аренды по умолчанию, но его можно увеличить несколькими способами (чтобы объекты продолжали существовать, если клиенту нужно хранить информацию о состоянии в одном и том же серверном объекте).
Серверный объект может установить неограниченное время аренды, что указывает Remoting на то, что объект не уничтожается при сборе мусора.
Клиент может вызвать метод RemotingServices.GetLifetimeService и выяснить срок аренды серверного объекта, возвращаемый диспетчером аренды, который принадлежит AppDomain. Получив объект Lease, клиент может вызвать метод Lease.Renew, чтобы увеличить срок аренды.
Клиент может зарегистрировать спонсора в диспетчере аренды своего AppDomain для получения определенной аренды. Когда срок аренды удаленного объекта истекает, диспетчер аренды обращается к спонсору с запросом, нужно ли возобновлять аренду. Размещение объектов .NET Remoting
Объекты .NET Remoting могут размещаться следующим образом.
В управляемом исполняемом файле Объекты .NET Remoting могут размещаться в обычном .NET EXE-файле или в управляемой службе.
В IIS Объекты, поддерживающие удаленное взаимодействие (Remoting objects), могут размещаться в Internet Information Server (IIS). По умолчанию такие объекты принимают сообщения по HTTP-каналу. Для размещения объектов с поддержкой удаленного взаимодействия в IIS нужно создать виртуальный корень и скопировать в него файл remoting.config. Исполняемый файл или DLL с удаленным объектом следует поместить в подкаталог bin каталога, на который указывает корень IIS. Важно заметить, что имя корневого каталога IIS должно совпадать с со значением элемента <application name>, указанным в файлах конфигурации. Файл конфигурации Remoting загружается автоматически, когда приложение получает первое сообщение. При таком размещении объекты .NET Remoting могут использоваться как Web-сервисы.
Пример файла Remoting.cfg:
<configuration>
<system.runtime.remoting>
<application name="RemotingHello">
<service>
<wellknown mode="SingleCall"
type="Hello.HelloService, Hello"
objectUri="HelloService.soap" />
</service>
<channels>
<channel port="8000"
type="System.Runtime.Remoting.Channels.Http.HttpChannel,
System.Runtime.Remoting" />
</channels>
</application>
</system.runtime.remoting>
</configuration>
В службах .NET-компонентов Объекты .NET Remoting можно размещать в инфраструктуре служб .NET-компонентов, что позволяет использовать такие возможности служб COM+, как транзакции, JIT и создание пулов объектов.
Дополнительную информацию см. в Microsoft .NET Framework Component Services, Part 1.