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

Интервал:

Закладка:

Сделать

public void RefreshQuotes() {

ReadQuotes();

}

}

}

Прежде чем разрабатывать службу для нашего сервера, полезно будет создать тестовую программу, которая имеет экземпляр QuoteServerи вызывает Start(). Таким образом можно протестировать функциональность без необходимости обрабатывать специфические для службы вопросы. Можно сконцентрироваться на создании требуемой функциональности. Этот тестовый сервер должен запускаться вручную и код легко просматривается с помощью отладчика.

Тестовая программа является консольным приложением C#. Мы ссылаемся на сборку класса QuoteServer. Содержащий цитаты класс копируется в каталог с:\wrox(или нужно изменить аргумент конструктора для определения, куда копируется файл). После вызова конструктора мы обращаемся к методу Start()экземпляра QuoteServer.Start()возвращает управление сразу после создания потока выполнения, поэтому консольное приложение продолжает выполняться до тех пор, пока не будет нажата клавиша Return:

static void Main(string[] args) {

QuoteServer qs = new QuoteServer(@"c:\wrox\quotes.txt", 4567);

qs.Start();

Console.WriteLine("Hit return to exit");

Console.ReadLine();

qs.Stop();

}

Отметим, что QuoteServerс помощью этой программы будет выполняться на порте 4567 на localhostи необходимо использовать эти настройки позже на клиенте.

Пример TcpClient

Клиент является простым приложением Windows, где можно вводить имя хоста и номер порта сервера. Это приложение использует класс TCPClientдля соединения с функционирующим сервером и получения возвращаемого сообщения для вывода его в текстовом поле. Внизу формы выводится статусная строка:

В этом коде используются инструкции using using System using - фото 137

В этом коде используются инструкции using:

using System;

using System.Drawing;

using System.Collections;

using System.ComponentModel;

using System.Windows.Forms;

using System.Data;

using System.Net;

using System.Net.Sockets;

using System.Text;

Мы также включаем ссылку на файл QuoteServer.dll. Оставшаяся часть кода автоматически создается в IDL, поэтому он здесь не будет рассматриваться подробно. Основная функциональность клиента находится в обработчике нажатия кнопки Get Quote:

protected void buttonQuote_Click(object sender, System.EventArgs e) {

statusBar.Text = "";

string server = textBoxHostname.Text;

try {

int port = Convert.ToInt32(textBoxPortNumber.Text);

} catch (FormatException ex) {

statusBar.Text = ex.Message; return;

}

TcpClient client = new TcpClient();

try {

client.Connect(

textBoxHostname.Text, Convert.ToInt32(textBoxPortNumber.Text));

NetworkStream stream = client.GetStream();

byte[] buffer = new Byte[1024];

int received = stream.Read(buffer, 0, 1024);

if {received <= 0) {

statusBar.Text = "Read failed"; return;

}

texBoxQuote.Text = Encoding.Unicode.GetString(buffer);

} catch (SocketException ex) {

statusBar.Text = ex.Message;

} finally {

client.close();

}

}

Запустив тестовый сервер и клиент этого оконного приложения, можно протестировать функциональность. Успешное выполнение может дать следующий результат при использовании указанных на экране настроек:

Добавим серверу функциональность службы Программа уже выполняется что же - фото 138

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

Проект Windows Service

Используя новый мастер проектов для C# Windows Services, можно теперь начать создавать службу Windows. Будьте внимательны, чтобы не выбрать проект Web Service.

Службы Web рассматриваются в главе 17.

После нажатия OK для создания приложения Windows Service появится окно - фото 139

После нажатия OK для создания приложения Windows Service появится окно проектировщика, как в приложениях Windows Forms, но здесь нельзя вставлять компоненты Windows Forms. Окно проектировщика будет использоваться для добавления других компонентов, таких как счетчики производительности и регистрации событий: Выбор свойств этой службы открывает окно редактора свойств:

Сконфигурируем свойства службы AutoLog означает что события автоматически - фото 140

Сконфигурируем свойства службы:

□ AutoLog означает, что события автоматически регистрируются для запуска и остановки службы.

□ CanPauseAndContinue, CanShutdown и CanStop означают, что служба может обрабатывать специальные запросы pause, continue, shutdown и stop.

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

□ CanHandlePowerEvent является допустимым параметром для служб, работающих на системе Windows 2000. Мы поговорим о параметрах power позже.

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

Изменение этих свойств с помощью редактора свойств задает значения нашего класса, производного из ServiceBase, в методе InitializeComponent(). Мы уже знаем этот метод из приложений Windows Forms. Со службами он используется аналогичным образом.

Мастер создаст код, но мы изменим имя файла на QuoteService.cs, имя пространства имен на Wrox.ProfessionalCSharp, а имя класса на QuoteService. Мы подробно рассмотрим этот код позже, а пока остановимся на классе ServiceBase.

Класс ServiceBase

Класс ServiceBaseявляется базовым для всех служб .NET. Наш класс QuoteServiceвыводится из ServiceBase. Этот класс общается со служебным управляющим менеджером при помощи недокументированного вспомогательного класса System.ServiceProcess.NativeMethods, который служит просто классом-оболочкой для вызовов API Win32. Этот класс закрытый, поэтому мы не можем его использовать.

Следующая диаграмма последовательностей показывает взаимодействие SCM — класса QuoteServiceи классов из пространства имен System.ServiceProcess. На диаграмме последовательностей просматриваются вертикальные линии жизни объектов и коммуникация, проходящая в горизонтальном направлении. Коммуникация упорядочена по времени сверху вниз:

SCM запускает процесс службы Вначале вызывается метод Main В методе - фото 141

SCM запускает процесс службы. Вначале вызывается метод Main(). В методе Main()нашей службы вызывается метод Run()базового класса ServiceBase. Run()регистрирует метод ServiceMainCallback()с помощью NativeMethods.StartServiceCtrlDispatcher()в SCM и записывает вход в журнал событий.

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

Интервал:

Закладка:

Сделать


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

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




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


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


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

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