- Любовные романы
- Фантастика и фэнтези
- Ненаучная фантастика
- Ироническое фэнтези
- Научная Фантастика
- Фэнтези
- Ужасы и Мистика
- Боевая фантастика
- Альтернативная история
- Космическая фантастика
- Попаданцы
- Юмористическая фантастика
- Героическая фантастика
- Детективная фантастика
- Социально-психологическая
- Боевое фэнтези
- Русское фэнтези
- Киберпанк
- Романтическая фантастика
- Городская фантастика
- Технофэнтези
- Мистика
- Разная фантастика
- Иностранное фэнтези
- Историческое фэнтези
- LitRPG
- Эпическая фантастика
- Зарубежная фантастика
- Городское фентези
- Космоопера
- Разное фэнтези
- Книги магов
- Любовное фэнтези
- Постапокалипсис
- Бизнес
- Историческая фантастика
- Социально-философская фантастика
- Сказочная фантастика
- Стимпанк
- Романтическое фэнтези
- Ироническая фантастика
- Детективы и Триллеры
- Проза
- Юмор
- Феерия
- Новелла
- Русская классическая проза
- Современная проза
- Повести
- Контркультура
- Русская современная проза
- Историческая проза
- Проза
- Классическая проза
- Советская классическая проза
- О войне
- Зарубежная современная проза
- Рассказы
- Зарубежная классика
- Очерки
- Антисоветская литература
- Магический реализм
- Разное
- Сентиментальная проза
- Афоризмы
- Эссе
- Эпистолярная проза
- Семейный роман/Семейная сага
- Поэзия, Драматургия
- Приключения
- Детская литература
- Загадки
- Книга-игра
- Детская проза
- Детские приключения
- Сказка
- Прочая детская литература
- Детская фантастика
- Детские стихи
- Детская образовательная литература
- Детские остросюжетные
- Учебная литература
- Зарубежные детские книги
- Детский фольклор
- Буквари
- Книги для подростков
- Школьные учебники
- Внеклассное чтение
- Книги для дошкольников
- Детская познавательная и развивающая литература
- Детские детективы
- Домоводство, Дом и семья
- Юмор
- Документальные книги
- Бизнес
- Работа с клиентами
- Тайм-менеджмент
- Кадровый менеджмент
- Экономика
- Менеджмент и кадры
- Управление, подбор персонала
- О бизнесе популярно
- Интернет-бизнес
- Личные финансы
- Делопроизводство, офис
- Маркетинг, PR, реклама
- Поиск работы
- Бизнес
- Банковское дело
- Малый бизнес
- Ценные бумаги и инвестиции
- Краткое содержание
- Бухучет и аудит
- Ораторское искусство / риторика
- Корпоративная культура, бизнес
- Финансы
- Государственное и муниципальное управление
- Менеджмент
- Зарубежная деловая литература
- Продажи
- Переговоры
- Личная эффективность
- Торговля
- Научные и научно-популярные книги
- Биофизика
- География
- Экология
- Биохимия
- Рефераты
- Культурология
- Техническая литература
- История
- Психология
- Медицина
- Прочая научная литература
- Юриспруденция
- Биология
- Политика
- Литературоведение
- Религиоведение
- Научпоп
- Психология, личное
- Математика
- Психотерапия
- Социология
- Воспитание детей, педагогика
- Языкознание
- Беременность, ожидание детей
- Транспорт, военная техника
- Детская психология
- Науки: разное
- Педагогика
- Зарубежная психология
- Иностранные языки
- Филология
- Радиотехника
- Деловая литература
- Физика
- Альтернативная медицина
- Химия
- Государство и право
- Обществознание
- Образовательная литература
- Учебники
- Зоология
- Архитектура
- Науки о космосе
- Ботаника
- Астрология
- Ветеринария
- История Европы
- География
- Зарубежная публицистика
- О животных
- Шпаргалки
- Разная литература
- Зарубежная литература о культуре и искусстве
- Пословицы, поговорки
- Боевые искусства
- Прочее
- Периодические издания
- Фанфик
- Военное
- Цитаты из афоризмов
- Гиды, путеводители
- Литература 19 века
- Зарубежная образовательная литература
- Военная история
- Кино
- Современная литература
- Военная техника, оружие
- Культура и искусство
- Музыка, музыканты
- Газеты и журналы
- Современная зарубежная литература
- Визуальные искусства
- Отраслевые издания
- Шахматы
- Недвижимость
- Великолепные истории
- Музыка, танцы
- Авто и ПДД
- Изобразительное искусство, фотография
- Истории из жизни
- Готические новеллы
- Начинающие авторы
- Спецслужбы
- Подростковая литература
- Зарубежная прикладная литература
- Религия и духовность
- Старинная литература
- Справочная литература
- Компьютеры и Интернет
- Блог
Обработка баз данных на Visual Basic®.NET - Джеффри Мак-Манус
Шрифт:
Интервал:
Закладка:
Использование компонента в другом приложении
Попробуем теперь использовать созданный компонент в совершенно другом приложении. Для этого нужно создать новое приложение Visual Basic .NET на основе шаблона Windows Application среды Visual Studio .NET и создать в нем ссылку на файл Novelty1.dll, который располагается в каталоге bin проекта Novelty1. При использовании компонента из другого пространства имен или другого проекта нужно помнить, что dll-файл компонента находится в каталоге bin своего проекта. Например, dll-файл Web-приложения с именем Web_приложение обычно находится в каталоге с:inetpubwwwrootWeb_приложениеbin.
Для указания ссылки на внешний компонент щелкните правой кнопкой мыши на элементе References в окне Solution Explorer и выберите в контекстном меню команду Add Reference. В диалоговом окне References щелкните на кнопке Browse и укажите dll-файл используемого компонента. Для закрытия диалогового окна References щелкните на кнопке OK. В данном примере предполагается, что dll-файл используемого компонента Novelty1.dll находится в каталоге c:inetpubwwwroot Novelty1bin.
Здесь следует напомнить, что, как и при работе с прежним приложением Windows, после указания директивы Imports его пространство имен становится полностью доступным. В общем вспомогательный код Web-формы из листинга 12.7 напоминает код из листинга 12.6. Он создан на основе шаблонного кода, сгенерированного конструктором Web-форм среды Visual Studio .NET.
Листинг 12.7. Вспомогательный код Web-формы Form1.vbImports Novelty1.GetRowCount
Public Class Form1
Inherits System.Windows.Forms.Form
#Region " Windows Form Designer generated code "
Public Sub New() MyBase.New()
' Этот вызов метода организован конструктором Web-форм.
InitializeComponent()
' Инициализация после вызова метода InitializeComponent().
End Sub
' Переопределение метода Dispose для очистки списка компонентов.
Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
If disposing Then
If Not (components Is Nothing) Then
components.Dispose()
End If
End If
MyBase.Dispose(disposing)
End Sub
' Код, созданный конструктором Web-форм.
Private components As System.ComponentModel.IContainer
' ЗАМЕЧАНИЕ: Код, созданный конструктором компонентов.
' Его можно изменять только с помощью конструктора
' Не изменяйте его вручную в окне редактирования кода.
Friend WithEvents Label1 As System.Windows.Forms.Label
Friend WithEvents Button1 As System.Windows.Forms.Button
<System.Diagnostics.DebuggerStepThrough()> _
Private Sub InitializeComponent()
Me.Label1 = New System.Windows.Forms.Label()
Me.Button1 = New System.Windows.Forms.Button()
Me.SuspendLayout()
'
' Label1
'
Me.Label1.Location = New System.Drawing.Point(8, 16)
Me.Label1.Name = "Label1"
Me.Label1.Size = New System.Drawing.Size(248, 16)
Me.Label1.Tablndex = 0
Me.Label1.Text = "Label1"
'
' Button1
'
Me.Button1.Location = New System.Drawing.Point(264, 8)
Me.Button1.Next = "Button1"
Me.Button1.Size = New System.Drawing.Size(72, 24)
Me.Button1.TabIndex = 1
Me.Button1.Text = "Test It!"
'
' Form1
'
Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)
Me.ClientSize = New System.Drawing.Size(344, 54)
Me.Controls.AddRange(New System.Windows.Forms.Control() _
{Me.Button1, Me.Label1})
Me.Name = "Form1"
Me.Text = "Form1"
Me.ResumeLayout(False)
End Sub
#End Region
Private Sub Button1_Click(ByVal sender As System.Object, _
ByVal е As System.EventArgs) Handles Button1.Click
Dim GRC As New Novelty1.GetRowCount()
Label1.Text = "There are " & GRC.GetRowCount.ToString _
& " rows in the table."
GRC.Dispose ()
End Sub
End Class
В код, созданный конструктором форм, добавлены только объекты Label1 и Button1. Текст надписи будет задан только во время выполнения приложения. Теперь можно приступить к созданию Web-службы.
Доступ к объектам с помощью Web-служб
Итак, мы приступаем к работе на совершенно новом уровне, т.е. с использованием Web-служб. С самого начала Web-среда рассматривалась как способ передачи данных между двумя точками. Именно эта исходная концепция способствовала развитию и популяризации Web-среды. Однако она обладала несколькими ограничениями и только недавно консорциум World Wide Web Consortium (W3C) начал реализовывать стандарты технологии обмена данными. Реализация Web-служб на платформе .NET основана именно на этих стандартах и использует язык XML для идентификации и передачи данных.
Допустим, что компания Jones Novelties, Incorporated решила предоставить другим компаниям быстрый доступ к своим данным без необходимости создания пользовательского интерфейса. Для решения этой задачи прекрасно подходят Web-службы.
Прежде чем приступить к решению этой бизнес-ситуации, следует привести основные сведения о Web-службах. Читатели с опытом создания Web-служб могут пропустить остаток этого раздела без ущерба для понимания остального материала или освежить свои знания, бегло познакомившись с ним.
По определению Web-службы – это объекты, которые обмениваются данными с помощью протоколов Internet, например HTTP. Причем для определения данных или набора выполняемых сервером инструкций используется XML. Эти инструкции также могут возвращать данные. Например, для включения нового пользователя с фамилией Doe и именем John в базу данных можно послать некому воображаемому Web-серверу www.someserver.com следующий запрос:
http://www.someserver.com/sevices/dataserver.asmx?op=AddUserToDB&FName= John&LName=Doe
В данном примере используется протокол HTTP и запрос GET для вызова службы dataserver, которая имеет функцию AddUserToDB с двумя параметрами – FName и LName. Было бы просто замечательно, если бы у нас был способ доступа к Web-службе и информирования о выполняемых действиях. К счастью, Microsoft вместе с несколькими другими компаниями предусмотрела эту возможность и создала язык определения Web-служб Web Services Description Language, или WSDL (эта аббревиатура произносится как английское словосочетание wiz-dull). WSDL способен анализировать код Web-службы и находить ту информацию, которую нужно сообщить пользователям (людям или машинам) о данной Web-службе и выполняемых ею функциях. Пример такой функции приводится далее, в разделе о программном способе доступа к Web-службе.
Как уже отмечалось, доступ к Web-службе осуществляется с помощью HTTP-протокола (методы GET и POST). Основное различие между ними заключается в том, что при использовании GET параметры запроса передаются в URL-указателе, а при использовании POST – инкапсулируются внутри самого запроса.
Кроме того, для взаимодействия Web-служб разработан протокол объектного доступа Simple Object Access Protocol (SOAP), который позволяет Web-серверам обмениваться сообщениями с инструкциями запросов, заключенными в конверт (envelope). SOAP-конверт имеет формат XML, как показано в приведенном ниже примере.
<?xml version="1.0" encoding"utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3c.org/2001/XMLSchema-insatance" xmlns:xsd="http://www.w3c.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ShowGetRowCountResponse xmlns="http://localhost/">
<ShowGetRowCountResult>int</ShowGetRowCountResult>
</ShowGetRowCountResponse>
</soap:Body>
</soap:Envelope>
Для передачи такого запроса необходимо создать собственный Web-запрос и послать его серверу. К счастью, на платформе .NET в пространстве имен System.NET для выполнения этих действий предусмотрены специальные средства, которые существенно упрощают выполнение этой задачи.
Рассмотрим бизнес-ситуацию, для решения которой следовало бы применить Web-службы.
База данных содержит имена 100 тыс. человек в возрасте от 14 лет до 21 года. Вместе с этими данными хранятся постоянно обновляемые ответы посетителей Web-узла на ежедневно обновляемые вопросы. Допустим, что компания Pepsi хочет регулярно знакомиться с результатами таких опросов, например за 1 млн долларов в месяц. Как предоставить ей доступ к вашей базе данных? Именно в такой ситуации пригодятся Web-службы.
Приведем еще один сценарий.
Допустим, что некий Web-узел выполняет аутентификацию входа на другие Web-узлы, которые платят ежемесячную абонентную плату и предоставляют пароль и учетное имя для создания cookie-файлов на клиентских компьютерах с обозначением аутентификации пользователей. Похоже на службу Microsoft Passport, не так ли? В этой ситуации также пригодятся Web-службы.
Web-службы дают разработчику возможность публиковать свои функции в Web-среде (Internet) или корпоративной среде (intranet), которые входят в состав других приложений или баз данных и располагаются на том же или на другом компьютере, о которых разработчик может даже не подозревать. Web-службы, по сути, стали именно тем, для чего разрабатывались COM-компоненты, но Web-службы можно вызывать с любого компьютера, подключенного к Internet или внутренней сети под управлением любой операционной системы.

