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

Здесь есть возможность читать онлайн «Симон Робинсон - C# для профессионалов. Том II» весь текст электронной книги совершенно бесплатно (целиком полную версию без сокращений). В некоторых случаях можно слушать аудио, скачать через торрент в формате fb2 и присутствует краткое содержание. Город: Москва, Год выпуска: 2003, ISBN: 2003, Издательство: Лори, Жанр: Программирование, на русском языке. Описание произведения, (предисловие) а так же отзывы посетителей доступны на портале библиотеки ЛибКат.

C# для профессионалов. Том II: краткое содержание, описание и аннотация

Предлагаем к чтению аннотацию, описание, краткое содержание или предисловие (зависит от того, что написал сам автор книги «C# для профессионалов. Том II»). Если вы не нашли необходимую информацию о книге — напишите в комментариях, мы постараемся отыскать её.

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», без необходимости каждый раз заново искать на чём Вы остановились. Поставьте закладку, и сможете в любой момент перейти на страницу, на которой закончили чтение.

Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

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

Класс MarshalByRefObjectимеет в дополнение к унаследованным методам из класса Objectметоды для инициализации и получения служб времени жизни. Службы времени жизни определяют, как долго живут удаленные объекты. Службы времени жизни и арендуемые свойства будут рассмотрены позже в этой главе.

Чтобы увидеть .NET Remoting в действии, создается простая библиотека классов для удаленного объекта. Класс Helloвыводится из System.MarshalByRefObject. В конструкторе и деструкторе на консоли записывается сообщение, чтобы было известно о времени жизни объекта. Кроме того, имеется только один метод Greeting(), который будет вызываться от клиента.

Для того чтобы легко различать в последующих разделах сборку и класс, дадим им различные имена аргументов, которые используют вызовы метода. Присвоим сборке имя RemoteHello.dll, а классу — Hello. Типом проекта Visual Studio.NET, используемым для этого класса, является Visual C# Class Library:

namespace Wrox.ProfessionalCSharp {

using System;

///



/// Краткое описание Class1

///

public class Hello: System.MarshalByRefObject {

public Hello() {

Console.WriteLine("Constructor called");

}

~Hello() {

Console.WriteLine("Destructor called");

}

public string Greeting(string name) {

Console.WriteLine("Greeting called");

return "Hello, " + name;

}

}

}

Простой сервер

Для сервера используется консольное приложение C#. Для применения класса TcpServerChannelнеобходимо сослаться на сборку System.Runtime.Remoting.dll. Также требуется, чтобы мы ссылались на созданную ранее сборку RemoteHello.dll.

В методе Main()создается объект System.Runtime.Remoting.Channel.Тcр.TcpServerChannelс портом номер 8086. Этот канал регистрируется в классе System.Runtime.Remoting.Channels.ChannelServices, чтобы сделать его доступным для удаленных объектов. Тип удаленного объекта регистрируется с помощью System.Runtime.Remoting.RemotingConfiguration.RegisterWellKnownServiceType. Здесь определяется тип класса в удаленном объекте, используемый клиентом URI, и режим. Режим WellKnownObject.SingleCallозначает, что для каждого вызова метода создается новый экземпляр, мы не храним состояние в удаленном объекте.

После регистрации удаленного объекта продолжим выполнение сервера, пока не будет нажата клавиша:

using System;

using System.Runtime.Remoting;

using System.Runtime.Remoting.Channels;

using System.Runtime.Remoting.Channels.Tcp;

namespace Wrox.ProfessionalCSharp {

///



/// Краткое описание Class1

///

public class HelloServer {

public static void Main(string[] args) {

TcpServerChannel channel = new TcpServerChannel(8086);

ChannelServices.RegisterChannel(channel);

RemotingConfiguration.RegisterWellKnownServiceType(

typeof(Hello), "Hi", WellKnownObjectMode.SingleCall);

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

System.Console.ReadLine();

}

}

}

Простой клиент

Клиент также является консольным приложением C#. И здесь делается ссылка на сборку System.Runtime.Remoting.dll, чтобы можно было использовать класс TcpClientChannel. Кроме того, имеется ссылка на сборку RemoteHello.dll. Хотя объект будет создаваться на удаленном сервере, нам понадобится сборка на стороне клиента, чтобы прокси прочитал метаданные во время выполнения.

В клиентской программе создается объект TcpClientChannel, который регистрируется в ChannelServices. Для TcpChannelиспользуется конструктор по умолчанию, поэтому выбирается свободный порт. Затем используется класс Activatorдля возврата прокси удаленному объекту. Прокси является типом System.Runtime.Remoting.Proxies._TransparentProxy. Этот объект выглядит как реальный. Это делается с помощью механизма отражения, в котором считываются метаданные реального объекта. Прозрачный прокси использует реальный для пересылки сообщений в канал:

using System;

using System.Runtime.Remoting.Channels;

using System.Runtime.Remoting.Channels.Tcp;

namespace Wrox.ProfessionalCSharp {

///



/// Краткое описание Class1.

///

public class HelloClient {

public static void Main(string[] args) {

ChannelServices.RegisterChannel(new TcpClientChannel());

Hello obj = (Hello)Activator.GetObject(typeof(Hello), "tcp://localhost:8086/Hi");

if (obj == null) {

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

}

for (int i = 0; i < 5; i++) {

Console.WriteLine(obj.Greeting("Christian"));

}

}

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

Интервал:

Закладка:

Сделать

Похожие книги на «C# для профессионалов. Том II»

Представляем Вашему вниманию похожие книги на «C# для профессионалов. Том II» списком для выбора. Мы отобрали схожую по названию и смыслу литературу в надежде предоставить читателям больше вариантов отыскать новые, интересные, ещё непрочитанные произведения.


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

Обсуждение, отзывы о книге «C# для профессионалов. Том II» и просто собственные мнения читателей. Оставьте ваши комментарии, напишите, что Вы думаете о произведении, его смысле или главных героях. Укажите что конкретно понравилось, а что нет, и почему Вы так считаете.