Симон Робинсон - C# для профессионалов. Том II

Тут можно читать онлайн Симон Робинсон - C# для профессионалов. Том II - бесплатно полную версию книги (целиком) без сокращений. Жанр: comp-programming, издательство Лори, год 2003. Здесь Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.
  • Название:
    C# для профессионалов. Том II
  • Автор:
  • Жанр:
  • Издательство:
    Лори
  • Год:
    2003
  • Город:
    Москва
  • ISBN:
    5-85582-187-0
  • Рейтинг:
    4.88/5. Голосов: 81
  • Избранное:
    Добавить в избранное
  • Отзывы:
  • Ваша оценка:
    • 100
    • 1
    • 2
    • 3
    • 4
    • 5

Симон Робинсон - C# для профессионалов. Том II краткое содержание

C# для профессионалов. Том II - описание и краткое содержание, автор Симон Робинсон, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru
C# для профессионалов

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

В этой книге представлены все основные концепции языка C# и платформы .NET. Полностью описывается синтаксис C#, приводятся примеры построения различных типов приложений с использованием C# — создание приложений и служб Windows, приложений и служб WWW при помощи ASP.NET, а также элементов управления Windows и WWW Рассматриваются общие библиотеки классов .NET, в частности, доступ к данным с помощью ADO.NET и доступ к службе Active Directory с применением классов DirectoryServices.

Для кого предназначена эта книга

Эта книга предназначена для опытных разработчиков, возможно, имеющих опыт программирования на VB, C++ или Java, но не использовавших ранее в своей работе язык C# и платформу .NET. Программистам, применяющим современные технологии, книга даст полное представление о том, как писать программы на C# для платформы .NET.

Основные темы книги

• Все особенности языка C#

• C# и объектно-ориентированное программирование

• Приложения и службы Windows

• Создание web-страниц и web-служб с помощью ASP NET

• Сборки .NET

• Доступ к данным при помощи ADO NET

• Создание распределённых приложений с помощью NET Remoting

• Интеграция с COM, COM+ и службой Active Directory

C# для профессионалов. Том II - читать онлайн бесплатно полную версию (весь текст целиком)

C# для профессионалов. Том II - читать книгу онлайн бесплатно, автор Симон Робинсон
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

ChannelServices и RemotingContiguration

Служебный класс ChannelServicesиспользуется для регистрации каналов в среде выполнения .NET Remoting. С помощью этого класса можно также получить доступ ко всем зарегистрированным каналам. Это крайне полезно, если для конфигурирования канала используются конфигурационные файлы, так как в этом случае канал создается неявно (см. ниже).

Канал регистрируется с помощью статического метода ChannelServices.RegisterChannel().

Здесь представлен серверный код для регистрации каналов HTTP и TCP:

TcpChannel tcpChannel = new TcpChannel(8086);

HttpChannel httpChannel = new HttpChannel(8085);

Channel Services.RegisterChannel(tcpChannel);

СhannelServices.RegisterChannel(httpChannel);

Служебный класс ChannelServicesможно теперь использовать для отправки синхронных и асинхронных сообщений и для отмены регистрации определенных каналов. Свойство RegisteredChannelsвозвращает массив IChannelвсех зарегистрированных каналов. Возможно также и< пользование метода GetChannel()для доступа к определенному каналу по его имени. С помощью ChannelServicesпишется специальная административная утилита для управления каналами. Вот небольшой пример показывающий как можно остановить режим прослушивания канала:

HttpServerChannel channel =

(HttpServerChannel)ChannelServices.GetChannel("http");

channel.StorListening(null);

Класс RemotingConfiguration— другой служебный класс .NET Remoting. На серверной стороне он используется для регистрации типов удаленных объектов активированных на сервере объектов и для маршализации удаленных объектов в ссылочный класс маршализованного объекта ObjRef. ObjRefявляется сериализуемым представлением объекта, которое было послано по линии связи. На клиентской стороне работает RemotingServices, демаршализуя удаленный объект, чтобы создать прокси из объектной ссылки.

Вот серверный код для регистрации хорошо известного типа удаленного объекта в RemotingServices:

RemotingConfiguration.RegisterWellKnownServiceType(

typeof(Hello), // Тип

"Hi", // URI

WellKnownObjectMode.SingleCall); // Режим

Первый аргумент метода RegisterWellKnownServiceType()Wrox.ProfessionalCSharp.Helloопределяет тип удаленного объекта. Второй аргумент — Hiявляется универсальным идентификатором ресурса удаленного объекта, который используется клиентом для доступа к удаленному объекту. Последний аргумент — режим удаленного объекта. Режим может быть значением перечисления WellKhownObjectMode: SingleCallили Singleton.

SingleCall означает, что объект не сохраняет состояние. Для каждого вызова удаленного объекта создается новый экземпляр. Объект SingleCallсоздается на сервере с помощью метода RemotingConfiguration.RegisterWellKnownServiceТуре()и аргумента WellKnownObjectMode.SingleCall. Это очень эффективно для сервера, так как получается, что не требуется поддерживать ресурсы может быть для тысяч клиентов.

□ С помощью режима Singletonобъект совместно используется всеми клиентами сервера. Такие объектные типы могут применяться, если желательно предоставить доступ к некоторым данным всем клиентам. Это не должно быть проблемой для читаемых данных, но для данных чтения-записи необходимо знать о вопросах блокировки и масштабируемости. Объект Singletonсоздается на сервере с помощью метода RemotingConfiguration.RegisterWellKnownServiceType()и аргумента WellKnownObjectMode.Singleton. Необходимо убедиться, что данные не могут быть повреждены, когда клиенты получают доступ одновременно, но нужно и проверять, что блокирование сделано достаточно эффективно для достижения требуемой масштабируемости.

Сервер для активизированных клиентом объектов

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

Вместо вызова RemotingConfiguration.RegisterWellKnownType()необходимо вызвать RemotingServices.RegisterActivatedServiceType(). С помощью этого метода определяются только типы, но не URI. Причина этого заключается в том, что для активированных клиентом объектов создаются экземпляры различных объектных типов с помощью одного URI. URI для всех активированных клиентом объектов должен быть определен с помощью RemotingConfiguration.ApplicationName:

RemotingConfiguration.ApplicationName = "HelloServer";

RemotingConfiguration.RegisterActivatedServiceType(typeof (Hello));

Активизация объектов

Для клиентов возможно использование и создание удаленных объектов с помощью класса Activator. Мы можем получить прокси для активированного сервером или хорошо известного удаленного объекта с помощью метода GetObject(). Метод CreateInstance()возвращает прокси для активированного клиентом удаленного объекта.

Вместо класса Activatorдля активации удаленных объектов используется также оператор new. Чтобы сделать это, удаленный объект должен конфигурироваться внутри клиента с помощью класса RemotingConfiguration.

URL-приложения

Во всех сценариях активации необходимо определять URL удаленного объекта. Этот URL является тем же самым, что и в браузере Web. Первая часть определяет протокол, за которым следует имя сервера или адрес IP, номер порта и URI, определенный при регистрации удаленного объекта на сервере в таком виде:

protocol://server:port/URI

Мы все время используем в нашем коде два примера URL: определяем протокол httpи tcp, имя сервера localhost, номер порта 8085 и 8086, и URIкак Hi, что дает нам запись:

http://localhost:8085/Hi

tcp://localhost:8086/Hi

Активация хорошо известных объектов

using System;

using System.Runtime.Remoting;

using System.Runtime.Remoting.Channels;

using System.Runtime.Remoting.Channels.Tcp;

/// ...

TcpClientChannel channel = new TcpClientChannel();

ChannelServices.RegisterChannel(channel);

Hello obj = (Hello)Activator.GetObject(

typeof(Hello), "tcp://localhost:8086/Hi");

GetObject()является статическим методом класса System.Activator, который вызывает метод RemotingServices.Connect()для возврата объекта прокси удаленному объекту. Первый аргумент определяет тип удаленного объекта. Прокси реализует все открытые и защищенные методы и свойства, так что клиент может вызывать эти методы так же, как для реального объекта. Второй аргумент является URL удаленного объекта. Здесь используется строка tcp://localhost:8086/Hello, где tcp— протокол, localhost:8086— имя хоста и номер порта и, наконец, Hello— это URI объекта, который был определен с помощью RemotingConfiguration.RegisterWellKnownServiceType().

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать


Симон Робинсон читать все книги автора по порядку

Симон Робинсон - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




C# для профессионалов. Том II отзывы


Отзывы читателей о книге C# для профессионалов. Том II, автор: Симон Робинсон. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x