Симон Робинсон - 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 - читать книгу онлайн бесплатно, автор Симон Робинсон
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

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

является корневым элементом XML для всех конфигурационных файлов .NET. Все удаленные конфигурации можно найти в подэлементе . является подэлементом .

Посмотрим на основные элементы и атрибуты в :

□ В элементе определяется имя приложения с помощью атрибута name. На серверной стороне это имя сервера, а на клиентской стороне — имя клиентского приложения. Пример серверной конфигурации определяет имя удаленного приложения Hello, которое используется клиентом как часть URL для доступа к удаленному объекту.

□ На сервере элемент используется для определения совокупности удаленных объектов. Он может иметь подэлементы и вместе с определенным типом удаленного объекта — well known или client-activated.

□ Клиентской частью элемента является . Подобно элементу он может иметь подэлементы и для определения типа удаленного объекта. В отличие от элемент имеет атрибут url для определения URL удаленного объекта.

□ является элементом, который используется на сервере и на клиенте для определения хорошо известных удаленных объектов. Серверная часть выглядит так:

□ В то время как атрибут modeможет принимать значения SingleCallили Singleton, typeявляется типом удаленного класса, включая пространство имен Wrox.ProfessionalCSharp.Hello, за которым следует имя сборки RemoteHello. Именем удаленного объекта является objectURI, который зарегистрирован в канале. На клиенте атрибут typeявляется таким же, как и для серверной версии. modeи objectURIне нужны, вместо них используется атрибут urlдля определения пути доступа к удаленному объекту: протокол, имя хоста, номер порта, имя приложения и URI объекта:

□ Элемент используется для активированных клиентом объектов. С помощью атрибута typeдолжны быть определены тип данных и сборка как для клиентского, так и для серверного приложений:

□ Для определения канала, используется элемент . Это подэлемент , так что совокупность каналов можно сконфигурировать для одного приложения. Его использование аналогично для клиентов и серверов. Атрибут typeиспользуется для определения типа канала и сборки. Атрибут portявляется номером порта, который нужен только для серверной конфигурации:

Конфигурация сервера для хорошо известных объектов

Этот пример файла wellknown.configимеет значение Helloдля свойства Name. Мы используем канал TCP для прослушивания порта 6791, а канал HTTP для прослушивания порта 6792. Класс удаленного объекта — Wrox.ProfessionalCSharp.Helloв сборке RemoteHello.dll, объект в канале называется Hi, и используется режим SingleCall:

Конфигурация клиента для хорошо известных объектов

Для хорошо известных объектов в клиентском конфигурационном файле wellknown.configнеобходимо определить сборку и канал. Типы для удаленного объекта можно найти в сборке RemoteHello.dll, Hiявляется именем объекта в канале, a URI для удаленного типа Wrox.ProfessionalCSharp.Hello— это tcp://localhost:6791/Hi. На клиенте также работает канал TCP, но на клиенте не определяется порт, поэтому выбирается свободный порт.

Внесем небольшое изменение в конфигурационный файл и можем использовать канал HTTP (как видно в wellknownhttp.config):

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

Преобразуя только конфигурационный файл (который находится в clientactivated.config), можно изменить сервер с активизированных сервером объектов на активизированные клиентом объекты. Здесь определяется подэлемент элемента . С его помощью для серверной конфигурации должен быть определен атрибут type. Атрибут nameэлемента applicationопределяет URI:

Клиентская конфигурация для активизированных клиентом объектов

Файл clientactivated.configопределяет активированный клиентом удаленный объект с помощью атрибута urlэлемента и атрибута typeэлемента :

Серверный код, использующий конфигурационные файлы

В серверном коде необходимо сконфигурировать удаленное использование статического метода Configure()из класса RemotingConfiguration. Здесь создаются экземпляры всех определяемых каналов. Может быть мы захотим также узнать о конфигурациях каналов из серверного приложения. Поэтому созданы статические методы ShowActivatedServiceTypes()и ShowWellKnovmServiceTypes(), которые вызываются после загрузки и запуска удаленной конфигурации:

public static void Main(string[] args) {

RemotingConfiguration.Configure("HelloServer.exe.config");

Console.WriteLine(

"Application: " + RemotingConfiguration.ApplicationName);

ShowActivatedServiceTypes();

ShowWellKnownServiceTypes();

System.Console.WriteLine("hit to exit");

System.Console.ReadLine();

return;

}

Эти две функции показывают данные конфигурации хорошо известных и активированных клиентом типов:

public static void ShowWellKnownServiceTypes() {

WellKnownServiceTypeEntry[] entries =

RemotingConfiguration.GetRegisteredWellKnownServiceTypes();

foreach (WellKnownServiceTypeEntry entry in entries) {

Console.WriteLine("Assembly: " + entry.AssemblyName);

Console.WriteLine("Mode: " + entry.Mode);

Console.WriteLine("URI " + entry.ObjectUri);

Console.WriteLine("Type: " + entry.TypeName);

}

}

public static void ShowActivatedServiceTypes() {

ActivatedServiceTypeEntry[] entries =

RemotingConfiguration.GetRegisteredActivatedServiceTypes();

foreach(ActivatedServiceTypeEntry entry in entries) {

Console.WriteLine("Assembly: " + entry.AssemblyName);

Console.WriteLine("Type: " + entry.TypeName);

}

}

Клиентский код, использующий конфигурационные файлы

В клиентском коде с помощью конфигурационного файла client.exe.configнужно сконфигурировать только удаленные службы. После этого можно использовать оператор new для создания новых экземпляров класса Remoteнезависимо от того, происходит ли работа с активированными сервером или с активированными клиентов удаленными объектами. Но помните, что существует небольшая разница. Для активированных клиентом объектов теперь можно использовать произвольные конструкторы с помощью оператора new. Это невозможно для активированных сервером объектов и не имеет смысла в этом случае: объекты SingleCallне могут иметь состояния, так как они разрушаются вместе с каждым вызовом, объекты Singletonсоздаются только однажды. Вызов произвольных конструкторов полезен только для активированных клиентом объектов, так как только для этого вида объектов оператор new реально вызывает конструктор удаленного объекта:

RemotingConfiguration.Configure("HelloClient.exe.config");

Hello obj = new Hello();

if (obj == null) {

Console.WriteLine("could not locate server");

return 0;

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

Интервал:

Закладка:

Сделать


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

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




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


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


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

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