LibKing » Книги » comp-programming » Симон Робинсон - C# для профессионалов. Том II

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

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

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

Шрифт:

Сбросить

Интервал:

Закладка:

Сделать

namespace SampleBase {

using System;

using System.Drawing;

using System.Collections;

using System.ComponentModel;

using System.Windows.Forms;

using System.Data;

Затем включается пространство имен для ссылки на msxml3.dll. Помните, что ссылку на эту библиотеку необходимо включать в проект (ее можно найти на вкладке COM диалогового окна Add Reference).

using MSXML2;

///



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

///

public class Form1 : System.Windows.Forms.Form {

private System.Windows.Forms.ListBox listBox1;

private System.Windows.Forms.Button button1;

///



/// Необходимая для Designer переменная.

///

private System.ComponentModel.Container components;

Затем объявляется документ DOM на уровне модуля:

private DOMDocument30 doc;

public Form1() {

//

// Требуется для поддержки Windows Form Designer

//

InitializeComponent();

//

// TODO: Добавьте любой код конструктора после вызова

// InitializeComponent

//

}

///



/// Очистить все использованные ресурсы.

///

public override void Disposed {

base.Dispose();

if (components != null) components.Dispose();

}

#region Windows Form Designer создает код

///



/// Необходимый для поддержки Designer метод — не изменяйте

/// содержимое этого метода редактором кода.

///

private void InitializeComponent() {

this.listBox1 = new System.Windows.Forms.ListBox();

this.button1 = new System.Windows.Forms.Button();

this.listBox1.Anchor = ((System.Windows.Forms.AnchorStyles.Top |

System.Windows.Forms.AnchorStyles.Left) |

System.Windows.Forms.AnchorStyles.Right);

this.listBox1.Size = new System.Drawing.Size(336, 238);

this.listBox1.TabIndex = 0;

this.listBox1.SelectedIndexChanged += new System.EventHandler(this.listBox1_SelectedIndexChanged);

this.button1.Anchor = System.Windows.Forms.AnchorStyles.Bottom;

this.button1.Location = new System.Drawing.Point(136, 264);

this.button1.TabIndex = 1;

this.button1.Text = "button1";

this.button1.Click += new System.EventHandler(this.button1_Click);

this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);

this.ClientSize = new System.Drawing.Size(339, 320);

this.Controls.AddRange(new System.Windows.Forms.Control[]{this.button1, this.listBox1});

this.Text = "Form1";

}

#endregion

///



/// Главная точка входа для приложения.

///

[STAThread]

static void Main() {

Application.Run(new Form1());

}

Мы хотим взять номер ISBN из listboxи, используя простой поиск XPath, найти узел книги, который ему соответствует, и вывести текст узла (заглавие книги и цену) в MessageBox. Язык пути доступа XML (XPath) является нотацией XML, которая может использоваться для запроса и фильтрации текста в документе XML. Рассмотрим XPath в .NET позже в этой главе. Вот код обработчика событий для выбора записи в окне списка:

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

string srch=listBox1.SelectedItem.ToString();

IXMLDOMNode nd=doc.selectSingleNode("bookstore/book[@ISBN='" + srch + "']");

MessageBox.Show(nd.text);

}

Теперь мы имеем обработчик события нажатия кнопки. Сначала мы загружаем файл books.xml— обратите внимание, что если файл выполняется не в папке bin/debugили bin/release, необходимо исправить соответствующим образом путь доступа:

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

doc=new DOMDocument30();

doc.load("..\\..\\..\\books.xml")

Следующие строки объявляют, что узлы являются nodeListузлов книг. В данном случае имеется три узла:

IXMLDOMNodeList nodes;

nodes = doc.selectNodes("bookstore/book");

IXMLDOMNode node=nodes.nextNode();

Мы просматриваем узлы в цикле и добавляем текстовое значение атрибута ISBN в listBox1:

while(node!=null) {

listBox1.Items.Add(node.attributes.getNamedItem("ISBN").text);

node=nodes.nextNode();

}

}

}

}

Вот как выглядит пример во время выполнения:

Это изображение появляется после того как была нажата кнопка button1 и - фото 1

Это изображение появляется после того, как была нажата кнопка button1 и загрузился listBox1 с номерами ISBN книг. После выбора номера ISBN будет выведено следующее:

SystemXml Пространство имен SystemXmlявляется мощным и относительно простым - фото 2

System.Xml

Пространство имен System.Xmlявляется мощным и относительно простым для использования, но оно отличается от модели MSXML 3.0. Если вы знакомы с MSXML 3.0, то применяйте его, пока не освоитесь с пространством имен System.Xml. Пространство имен System.Xmlпредлагает большую гибкость и легче расширяется.

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

Чтение и запись XML

Теперь посмотрим, что позволяет делать платформа .NET. Если раньше вы работали с SAX, то XmlReaderи XmlWriterвам будут знакомы. Классы на основе XmlReaderпредоставляют быстрый курсор только для чтения вперед, который создает поток данных XML для обработки. Так как это потоковая модель, то требования к памяти не очень большие. Однако в ней отсутствует навигационная гибкость и средства чтения/записи, присущие модели DOM. Классы на основе XmlWriterбудут создавать документ XML, который соответствует рекомендациям по пространствам имен XML 1.0 консорциума W3C.

XmlReaderи XmlWriterявляются абстрактными классами. Рисунок ниже показывает, какие классы являются производными от XmlReaderи XmlWriter:

XmlTextReaderи XmlTextWriterработают либо с объектами на основе потока либо с - фото 3

XmlTextReaderи XmlTextWriterработают либо с объектами на основе потока, либо с объектами на основе TextReaderили TextWriter. XmlNodeReaderиспользует XmlNodeвместо потока в качестве своего источника. XmlValidatingReaderдобавляет DTD и проверку схем и поэтому предлагает проверку данных. Мы рассмотрим это подробнее позже в этой главе.

XmlTextReader

XmlTextReaderпохож на SAX. Одно из различий заключается в том, что SAX является моделью типа рассылки (push), т.е. посылает данные приложению и разработчик должен быть готов принять их, a XmlTextReaderприменяет модель запроса (pull), где данные посылаются приложению, которое их запрашивает. Это предоставляет более простую и интуитивно понятную модель для программирования. Другое преимущество состоит в том, что модель запроса может быть избирательной в отношении данных, посылаемых приложению. Если нужны не все данные, то их не нужно обрабатывать. В модели рассылки все данные XML должны быть обработаны приложением, нужны они ему или нет.

Возьмем простой пример считывания данных XML, и затем более внимательно рассмотрим класс XmlTextReader. Код можно найти в папке XmlReaderSample1. Можно заменить метод button1_Clickв предыдущем примере на следующий код. Эту версию данного кода можно найти в папке SampleBase2загруженного архива кода. Не забудьте изменить:

Читать дальше
Тёмная тема

Шрифт:

Сбросить

Интервал:

Закладка:

Сделать


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

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




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


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


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

Напишите свой комментарий
Большинство книг на сайте опубликовано легально на правах партнёрской программы ЛитРес. Если Ваша книга была опубликована с нарушениями авторских прав, пожалуйста, направьте Вашу жалобу на PGEgaHJlZj0ibWFpbHRvOmFidXNlQGxpYmtpbmcucnUiIHJlbD0ibm9mb2xsb3ciPmFidXNlQGxpYmtpbmcucnU8L2E+ или заполните форму обратной связи.
img img img img img