Разработка программы "Банк кадров"

Разработка программы для автоматизации сбора, хранения и представления в удобной форме сведений о профессиональной квалификации сотрудников организации. Концепция и структура информационной подсистемы "Подготовка кадров и профессиональная квалификация".

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 24.05.2018
Размер файла 811,6 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

При успешном выполнении запроса метод возвращает указатель на его результат, в противном случае - false. Например:

$db =& JFactory:: getDBO ();

$query = "UPDATE #__users SET block = 0 WHERE username LIKE 'a%'";

$db->setQuery ($query);

$result = $db->query ();

С выборкой данных

В классе JDatabase существуют методы для получения форматированного результата. Их можно разделить на следующие группы

1. Получение одного значения: loadResult ().

2. Получение одной строки таблицы: loadRow (), loadAssoc (), loadObject ().

3. Получение одного столбца таблицы: loadResultArray ().

4. Получение нескольких строк и нескольких столбцов: loadRowList (), loadAssocList (), loadObjectList ().

Рассмотрим каждый из этих методов на примере таблицы #__categories, использующейся Joomla

id

asset_id

parent_id

lft

rgt

level

path

extension

language

1

0

0

0

11

0

system

*

2

27

1

1

2

1

uncategorised

com_content

*

3

28

1

3

4

1

uncategorised

com_banners

*

4

29

1

5

6

1

uncategorised

com_contact

*

5

30

1

7

8

1

uncategorised

com_newsfeeds

*

6

31

1

9

10

1

uncategorised

com_weblinks

*

mixed loadResult ()

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

Например, получим значение поля extension в записи под номером 2:

$db =& JFactory:: getDbo ();

$query = 'SELECT '. $db->nameQuote ('extension').

' FROM '. $db->nameQuote ('#__categories').

' WHERE '. $db->nameQuote ('id'). '='. $db->Quote ('2');

$db->setQuery ($query);

echo $db->loadResult ();

Результатом выполнения данного запроса будет значение "com_content".

array loadRow ()

Загружает первую строку результирующей выборки в виде массива. Если запрос возвращает больше одной строки, то метод вернет первую из них.

$db =& JFactory:: getDbo ();

$query = 'SELECT * FROM '. $db->nameQuote ('#__categories');

$db->setQuery ($query);

print_r ($db->loadRow ());

Результатом запроса будет следующий список (будем называть списком массив, индексами которого являются числа 0, 1, 2 и т.д.):

Array ([0] =>1 [1] =>0 [2] =>0 [3] =>0 [4] =>11 [5] =>0 [6] => [7] =>system [8] =>ROOT [9] =>root [10] => [11] => [12] =>1 [13] =>0 [14] => 0000-00-00 00: 00: 00 [15] =>1 [16] =>{} [17] => [18] => [19] => [20] =>0 [21] =>2009-10-18 16: 07: 09 [22] =>0 [23] =>0000-00-00 00: 00: 00 [24] =>0 [25] =>*)

array loadAssoc ()

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

$db =& JFactory:: getDbo ();

$query = 'SELECT * FROM '. $db->nameQuote ('#__categories');

$db->setQuery ($query);

print_r ($db->loadAssoc ());

Результат запроса:

Array ([id] =>1 [asset_id] =>0 [parent_id] =>0 [lft] =>0 [rgt] =>11 [level] =>0 [path] => [extension] =>system [title] =>ROOT [alias] =>root [note] => [description] => [published] =>1 [checked_out] =>0 [checked_out_time] => 0000-00-00 00: 00: 00 [access] =>1 [params] =>{} [metadesc] => [metakey] => [metadata] => [created_user_id] =>0 [created_time] =>2009-10-18 16: 07: 09 [modified_user_id] =>0 [modified_time] =>0000-00-00 00: 00: 00 [hits] =>0 [language] =>*) object loadObject ()

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

$db =& JFactory:: getDbo ();

$query = 'SELECT * FROM '. $db->nameQuote ('#__categories');

$db->setQuery ($query);

print_r ($db->loadObject ());

Результат запроса:

stdClass Object ([id] =>1 [asset_id] =>0 [parent_id] =>0 [lft] =>0 [rgt] =>11 [level] =>0 [path] => [extension] =>system [title] =>ROOT [alias] =>root [note] => [description] => [published] =>1 [checked_out] =>0 [checked_out_ time] =>0000-00-00 00: 00: 00 [access] =>1 [params] =>{} [metadesc] => [metakey] => [metadata] => [created_user_id] =>0 [created_time] =>2009-10-18 16: 07: 09 [modified_user_id] =>0 [modified_time] =>0000-00-00 00: 00: 00 [hits] =>0 [language] =>*)

array loadResultArray (int numinarray=0)

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

$db =& JFactory:: getDbo ();

$query = 'SELECT '. $db->nameQuote ('extension').

' FROM '. $db->nameQuote ('#__categories');

$db->setQuery ($query);

print_r ($db->loadResultArray ());

Результатом будет следующий список:

Array ([0] =>com_banners [1] =>com_contact [2] =>com_content [3] =>com_newsfeeds [4] =>com_weblinks [5] =>system)

Данный метод позволяет перебирать в цикле столбцы таблицы:

$db =& JFactory:: getDbo ();

$query='SELECT'. $db->nameQuote ('path'). ','. $db->nameQuote ('extension'). ','. $db->nameQuote ('language'). 'FROM'. $db->nameQuote ('#__categories');

$db->setQuery ($query);

for ($i = 0; $i <= 2; $i++)

{

$column = $db->loadResultArray ($i);

print_r ($column);

echo "<br>";

}

В результате на экран будет выведено:

Array ([0] => [1] =>uncategorised [2] =>uncategorised [3] =>uncategorised

[4] =>uncategorised [5] =>uncategorised) Array ([0] =>system [1] =>com_content [2] =>com_banners [3] =>com_contact [4] =>com_newsfeeds [5] =>com_weblinks)

Array ([0] =>* [1] =>* [2] =>* [3] =>* [4] =>* [5] =>*)

array loadRowList (int key)

Метод загружает список массивов или ассоциативный массив массивов. Если задан параметр key, то ключами возвращаемого массива будут значения поля, идущего в таблице под номером key, начиная с нуля.

$db =& JFactory:: getDbo ();

$query = 'SELECT * FROM '. $db->nameQuote ('#__categories');

$db->setQuery ($query);

print_r ($db->loadRowList (7));

В данном примере из таблицы #__categories ядра Joomla извлекаются все записи, причем ключами полученного массива будут значения столбца №7, т.е. поля extension:

Array

(

[system] =>Array ([0] =>1 [25] =>*)

[com_content] =>Array ([0] =>2 [25] =>*)

[com_banners] =>Array ([0] =>3 [25] =>*)

[com_contact] =>Array ([0] =>4 [25] =>*)

[com_newsfeeds] =>Array ([0] =>5 [25] =>*)

[com_weblinks] =>Array ([0] =>6 [25] =>*)

)

Если не указать параметр key, то вместо ассоциативного массива мы получим список:

Array

(

[0] =>Array ([0] =>1 [25] =>*)

[1] =>Array ([0] =>2 [25] =>*)

[2] =>Array ([0] =>3 [25] =>*)

[3] =>Array ([0] =>4 [25] =>*)

[4] =>Array ([0] =>5 [25] =>*)

[5] =>Array ([0] =>6 [25] =>*)

)

array loadAssocList (string key='', string column='')

Метод загружает список ассоциативных массивов или ассоциативный массив ассоциативных массивов. Если задан параметр key, то ключами полученного массива будут значения столбца под названием key. Если задан параметр column, то в полученном массиве будет всего один столбец column.

$db =& JFactory:: getDbo ();

$query = 'SELECT * FROM '. $db->nameQuote ('#__categories');

$db->setQuery ($query);

print_r ($db->loadAssocList ('extension'));

Результат запроса:

Array

(

[system] =>Array ([id] =>1 [asset_id] =>0. [language] =>*)

[com_content] =>Array ([id] =>2 [asset_id] =>27. [language] =>*)

[com_banners] =>Array ([id] =>3 [asset_id] =>28. [language] =>*)

[com_contact] =>Array ([id] =>4 [asset_id] =>29. [language] =>*)

[com_newsfeeds] =>Array ([id] =>5 [asset_id] =>30. [language] =>*)

[com_weblinks] =>Array ([id] =>6 [asset_id] =>31. [language] =>*)

)

Как видим, ключи полученного массива - это значения поля extension, заданного параметром в метод loadAssocList ().

Зададим значение второго параметра, чтобы получить только значение id для каждой строки таблицы:

$db =& JFactory:: getDbo ();

$query = 'SELECT * FROM '. $db->nameQuote ('#__categories');

$db->setQuery ($query);

print_r ($db->loadAssocList ('extension','id'));

Результат запроса:

Array ([system] =>1 [com_content] =>2 [com_banners] =>3 [com_contact] =>4 [com_newsfeeds] =>5 [com_weblinks] =>6)

array loadObjectList (string key='')

Метод загружает список объектов stdClass или ассоциативный массив объектов stdClass. Если задан параметр key, то ключами полученного массива будут значения поля под названием key:

$db =& JFactory:: getDbo ();

$query = 'SELECT * FROM '. $db->nameQuote ('#__categories');

$db->setQuery ($query);

print_r ($db->loadObjectList ('extension'));

Результат запроса:

Array

(

[system] =>stdClass Object ([id] =>1 [asset_id] =>0. [language] =>*)

[com_content] =>stdClass Object ([id] =>2 [asset_id] =>27. [language] =>*)

[com_banners] =>stdClass Object ([id] =>3 [asset_id] =>28. [language] =>*)

[com_contact] =>stdClass Object ([id] =>4 [asset_id] =>29. [language] =>*)

[com_newsfeeds] =>stdClass Object ([id] =>5 [asset_id] =>30. [language] =>*)

[com_weblinks] =>stdClass Object ([id] =>6 [asset_id] =>31. [language] =>*)

)

Таблицы базы данных (класс JTable)

Класс JTable реализует паттерн Active Record и используется для управления таблицами базы данных.

Для каждой таблицы, которую вы будете создавать для своего компонента, необходимо создать класс, производный от JTable. Каждый такой класс помещается в отдельном файле в папке /administrator/components/com_<имя компонента>/tables. Имя класса строится по схеме Table<название таблицы>, а файла - <название таблицы>. php.

Для каждого поля таблицы необходимо создать одноименное поле класса.

Кроме того, создается конструктор класса, принимающий ссылку на объект JDatabase. Конструктор вызывает родительский конструктор, передавая ему название таблицы, название поля, являющегося первичным ключом таблицы, и объект JDatabase.

Например, пусть имеется таблица #__mycomponent_mytable из двух столбцов: id и name. Тогда производный от JTable класс должен выглядеть так:

class TableMytable extends JTable

{

var $id = null;

var $name = null;

function __construct (&$db)

{

parent:: __construct ('#__mycomponent_mytable', 'id', $db);

}

}

Чтобы использовать в коде вашего компонента файл, содержащий этот класс, нужно добавить папку tables в список директорий, в которых JTable может искать классы таблиц:

JTable:: addIncludePath (JPATH_ADMINISTRATOR. DS. 'components'. DS. 'com_mycomponent'. DS. 'tables');

Теперь при создании экземпляра класса TableMytable Joomla будет искать файл mytable. php.

Для получения экземпляра данного класса используется метод getInstance ():

object getInstance (string $type, string $prefix= 'JTable', array $config=array ())

где

$type

- вторая часть имени класса;

$prefix

- первая часть имени класса;

$config

- массив, содержащий настройки конфигурации.

В их числе может находиться объект-представитель базы данных, и тогда он будет использован вместо глобального объекта JDatabase. Например:

$row =& JTable:: getInstance ('mytable', 'Table');

Производный от JTable класс наследует в числе прочих методы bind (), store (), load () и delete (), позволяющие управлять записями таблицы без единой строки SQL-кода.

Создание/редактирование записи таблицы

Как правило, для создания или редактирования записи таблицы во фронтенде или бэкенде создается HTML-форма. Значения, введенные в нее пользователем, можно получить с помощью класса JRequest в виде массива. Полученный массив необходимо связать с объектом JTable. Связывание заключается в том, что каждому полю класса присваивается значение элемента массива, ключ которого совпадает с названием этого поля. Для этого используется метод

bool bind (mixed $src, mixed $ignore=array ())

где:

$src

- ассоциативный массив или объект для связывания с экземпляром класса;

$ignore

- массив или разделенный пробелами список полей, которые нужно

игнорировать при связывании.

Например:

if (! $row->bind (JRequest:: get ('post')))

return JError:: raiseWarning (500, $row->getError ());

Обычно ошибка связывания возникает, если поля класса не соответствуют ключам массива, - например, когда в HTML-форме в название элемента input вкралась опечатка.

Для сохранения записи используется метод bool store (bool $updateNulls=false)

Если параметр $updateNulls равен false, то те поля объекта JTable, которые имеют значение null, будут игнорироваться при связывании.

Пример использования метода store ():

if (! $row->store ())

JError:: raiseError (500, $row->getError ());

Метод store () на основе хранящихся в $row значений генерирует запрос UPDATE или INSERT, в зависимости от значения id. Если запись создается впервые, то она не имеет значения id и будет сконструирован запрос INSERT, в противном случае - UPDATE. Это позволяет использовать данный метод как для создания новых записей, так и для обновления существующих.

Получение записи из таблицы

Для получения записи используется метод

bool load (mixed $keys = NULL, bool $reset = true)

где

$keys

- первичный ключ записи, которую необходимо получить, или массив полей для

поиска соответствий;

$reset

- задает, будут ли перед получением новой записи заново присвоены полям

значения по умолчанию.

Например:

$row->load ($id);

Удаление записи

Для удаления записи используется метод

bool delete (mixed $id=null)

где $id - первичный ключ записи, которую требуется удалить. Если он не задан, то используется значение соответствующего поля объекта.

Пример:

$row->delete ($id);

Управление полями ordering, checked_out/checked_out_time, published и hits

Существуют методы класса JTable для управления часто используемыми полями ordering, checked_out/checked_out_time, published и hits.

ordering

Поле ordering позволяет пользователю упорядочить список объектов по своему желанию. Чтобы пересчитать значения в поле ordering, используется метод

void reorder ([string $where = ''])

При этом записи сортируются по значению ordering, а затем в это поле записываются натуральные числа, начиная с 1. Параметр $where позволяет задать условие ограничения выборки, к которой будет применена эта операция.

Пример использования метода:

$table->reorder ();

Изменить значение ordering для одной записи, передвинув ее выше или ниже в списке, можно с помощью метода

void move (int $dirn, [string $where = ''])

где $dirn - величина, которая будет прибавлена к текущему значению ordering (отрицательное значение приведет к смещению записи вверх, а положительное - вниз).

Например, поднимем запись на одну строку вверх:

$table->load ($id);

$table->move (-1);

checked_out/checked_out_time

Поля checked_out и checked_out_time используются для блокировки записей во избежание редактирования их несколькими пользователями одновременно. checked_out хранит id пользователя, работающего с записью в данный момент, а checked_out_time - время начала редактирования. Прежде чем заблокировать запись, необходимо проверить, не заблокирована ли она уже другим пользователем, с помощью метода

bool isCheckedOut (int $with=0, int $against=null)

где:

$with

- id пользователя, с которым нужно сравнить значение поля checked_out. Если

запись заблокирована как раз этим пользователем, то функция вернет false, как и в том случае, если она не заблокирована вообще. В обоих этих случаях текущий пользователь имеет право работать с ней;

$against

- id пользователя, использующийся, если функция вызвана как статическая.

Для блокировки записей используется метод

bool checkOut (int $userId, mixed $pk=null)

где:

$userId

- id пользователя, блокирующего запись;

$pk

- первичный ключ записи, которую необходимо заблокировать. Если он не задан,

используется значения соответствующего поля класса.

При этом в поле checked_out_time будет записано текущее время.

Для разблокировки записей используется метод bool checkIn (mixed $pk=null)

Рассмотрим пример использования этих методов:

$table->load ($id);

$user =& JFactory:: getUser ();

if ($table->isCheckedOut ($user->get ('id')))

die ('Запись уже заблокирована другим пользователем');

echo 'Запись не заблокирована';

if (! $table->checkout ($user->get ('id')))

die ('Не удалось заблокировать запись с id текущего пользователя');

echo 'Заблокировали запись';

// работа с записью.

if (! $table->checkin ($user->get ('id')))

die ('Не удалось разблокировать запись');

echo 'Разблокировали запись';

published

Значение поля published показывает, опубликована ли запись. Чтобы изменить значение этого поля для одной или нескольких записей, используется метод

bool publish (mixed $pks=null, int $state=1, int $userId=0)

где

$pks

- массив ключей записей, к которым необходимо применить операцию;

$state

- новое значение поля published (0 или 1);

$userId

- используется только когда в таблице существует также поле checked_out. При наличии в таблице этого поля метод publish () может быть применен только к тем записям, для которых checked_out равно 0 или заданному $userId.

Метод вернет true и в том случае, если какие-либо из записей были заблокированы и для них не удалось изменить значение published.

Пример использования этого метода:

$id_list = array ($id);

$user =& JFactory:: getUser ();

if (! $table->publish ($id_list, 1, $user->get ('id')))

die ($table->getError ());

hits

В поле hits хранится количество просмотров записи. Для увеличения этого значения на 1 используется метод

bool hit (mixed $pk=null)

где $pk - первичный ключ записи.

Например:

$table->hit ();

На этом мы заканчиваем с ознакомлением Joomla 2.5 API переходим на язык программирование C#, так как этот язык является более гибким, и ин-теграция нашей продукции в операционной системе MS Windows позволяет использовать все её ресурсы в ходе разработки.

2.2 Язык программирование C# - связь между клиентской и серверной части программного обеспечение “KadrNet”

C# (произносится си шарп) - объектно-ориентированный язык программирования. Разработан в 1998-2001 годах группой инженеров под руководством Андерса Хейлсберга в компании Microsoft как язык разработки приложений для платформы Microsoft.net Framework и впоследствии был стандартизирован как ECMA-334 и ISO/IEC 23270.

C# относится к семье языков с C-подобным синтаксисом, из них его синтаксис наиболее близок к C++ и Java. Язык имеет статическую типизацию, поддерживает полиморфизм, перегрузку операторов (в том числе операторов явного и неявного приведения типа), делегаты, атрибуты, события, свойства, обобщённые типы и методы, итераторы, анонимные функции с поддержкой замыканий, LINQ, исключения, комментарии в формате XML.

Переняв многое от своих предшественников - языков C++, Pascal, Модула, Smalltalk и в особенности Java - С#, опираясь на практику их использования, исключает некоторые модели, зарекомендовавшие себя как проблематичные при разработке программных систем, например, C# в отличие от C++ не поддерживает множественное наследованиеклассов (между тем допускается множественное наследование интерфейсов).

C# разрабатывался как язык программирования прикладного уровня для CLR и, как таковой, зависит, прежде всего, от возможностей самой CLR. Это касается, прежде всего, системы типов C#, которая отражает BCL. Присутствие или отсутствие тех или иных выразительных особенностей языка диктуется тем, может ли конкретная языковая особенность быть транслирована в соответствующие конструкции CLR. Так, с развитием CLR от версии 1.1 к 2.0 значительно обогатился и сам C#; подобного взаимодействия следует ожидать и в дальнейшем (однако, эта закономерность была нарушена с выходом C# 3.0, представляющего собой расширения языка, не опирающиеся на расширения платформы.net). CLR предоставляет C#, как и всем другим.net-ориентированным языкам, многие возможности, которых лишены "классические" языки программирования. Например, сборка мусора не реализована в самом C#, а производится CLR для программ, написанных на C# точно так же, как это делается для программ наVB.net, J# и др.

2.2.1 Среда для разработки клиентской части

Microsoft Visual Studio - линейка продуктов компании Майкрософт, включающих интегрированную среду разработки программного обеспечения и ряд других инструментальных средств. Данные продукты позволяют разрабатывать как консольные приложения, так и приложения с графическим интерфейсом, в том числе с поддержкой технологии Windows Forms, а также веб-сайты, веб-приложения, веб-службы как в родном, так и в управляемом кодах для всех платформ, поддерживаемых Microsoft Windows, Windows Mobile, Windows CE,.net Framework, Xbox, Windows Phone.net Compact Framework и Microsoft Silverlight.

Visual Studio включает в себя редактор исходного кода с поддержкой технологии IntelliSense и возможностью простейшего рефакторинга кода. Встроенный отладчик может работать как отладчик уровня исходного кода, так и как отладчик машинного уровня. Остальные встраиваемые инструменты включают в себя редактор форм для упрощения создания графического интерфейса приложения, веб-редактор, дизайнер классов и дизайнер схемы базы данных. Visual Studio позволяет создавать и подключать сторонние дополнения (плагины) для расширения функциональности практически на каждом уровне, включая добавление поддержки систем контроля версий исходного кода (как например, Subversion и Visual SourceSafe), добавление новых наборов инструментов (например, для редактирования и визуального проектирования кода на предметно-ориентированных языках программирования или инструментов для прочих аспектов процесса разработки программного обеспечения (например, клиент Team Explorer для работы с Team Foundation Server).

Компоненты

Visual Studio включает один или несколько компонентов из следующих:

· Visual Basic.net, а до его появления - Visual Basic

· Visual C++

· Visual C#

· Visual F# (включён начиная с Visual Studio 2010)

Многие варианты поставки также включают:

· Microsoft SQL Server либо Microsoft SQL Server Express

Visual Studio 2012

Visual Studio 2012 распространяется в тех же редакциях, что и 2010. Изменения коснулись Visual Studio 2012 Express - устанавливаются все языки программирования, а не один как раньше (Visual Basic 2010 Express, Visual C# 2010 Express), а также теперь существует пять версий Visual Studio Express: Visual Studio Express 2012 для Web, Visual Studio Express 2012 для Windows 8, Visual Studio Express 2012 для Windows Desktop, Visual Studio Express 2012 для Windows Phone и Visual Studio Team Foundation Server Express 2012. Все версии распространяются, как отдельные приложения. Visual Studio Express 2012 для Windows 8 позволяет разрабатывать приложения дляWindows Store с Modern-интерфейсом, а Visual Studio Express 2012 для Windows Desktop позволяет разрабатывать "классические" приложения для Рабочего стола. Что касается Visual Studio Team Foundation Server Express 2012, то эта версия поставляется с оболочкой Visual Studio 2012.

Разрабатывать приложения на C++ с помощью Visual Studio 2012 можно только под Windows 7 SP1 и Windows 8. Вышло исправление, позволяющее разрабатывать приложения и под Windows XP, как target и с библиотечными ограничения.

2.2.2 Библиотека WebRequest

WebRequest - базовый класс abstract модели "запрос-ответ" платформы.net Framework для доступа к данным из Интернета. Приложение, использующее эту модель "запрос-ответ", может запрашивать данные из Интернета безотносительно к протоколу, в котором это приложение работает с экземплярами класса WebRequest, в то время как детали этого запроса обрабатывают ориентированные на определенный протокол классы наследники.

Запросы передаются из приложения на определенный URI, такой как веб-страница на сервере. Универсальный код ресурса (URI) определяет правильный вложенный класс, создаваемый на основе списка потомков WebRequest, зарегистрированных для приложения. WebRequest потомки обычно регистрируются для обработки конкретного протокола, например HTTP или FTP, но также могут быть зарегистрированы и для обработки запроса к заданному серверу или пути на сервере.

Класс WebRequest создает WebException в случае возникновения ошибки при доступе к интернет-ресурсам. Свойство Status является одним из значений WebExceptionStatus, которое указывает на источник ошибки. Когда Status равно WebExceptionStatus. ProtocolError, свойство Response содержит WebResponse, принятый из интернет-ресурса.

Так как класс WebRequest является abstract, фактическое поведение экземпляров WebRequest во время выполнения определяется вложенным классом, который возвращается методом Create.

Примечание

Метод Create используется для инициализации новых экземпляров WebRequest. Не используйте конструктор WebRequest.

Работа с WebRequest в.net

Тип WebRequest предоставляет следующие члены.

Конструкторы

Имя

Описание

WebRequest ()

Инициализирует новый экземпляр класса WebRequest.

WebRequest (SerializationInfo, StreamingContext)

Инициализирует новый экземпляр класса WebRequest из указанных экземпляров классов SerializationInfo и StreamingContext.

Свойство

Имя

Описание

AuthenticationLevel

Возвращает или задает значения, указывающие уровень проверки подлинности и олицетворения, используемые для этого запроса.

CachePolicy

Возвращает или задает политику кэширования для этого запроса.

ConnectionGroupName

При переопределении во вложенном классе возвращает или задает имя группы подключения для данного запроса.

ContentLength

При переопределении во вложенный класс возвращает или задает длину содержимого запрошенных к передаче данных.

ContentType

При переопределении во вложенном классе возвращает или задает тип содержимого запрошенных к передаче данных.

CreatorInstance

Устарело. При переопределении в производном классе получает объект фабрики, производный от класса IWebRequestCreate, который служит для создания объекта WebRequest для создания запроса по указанному универсальному коду ресурса (URI).

Credentials

При переопределении во вложенном классе возвращает или задает сетевые учетные данные, используемые для проверки подлинности запроса на интернет-ресурсе.

DefaultCachePolicy

Возвращает или задает политику кэширования для этого запроса.

DefaultWebProxy

Возвращает или устанавливает глобальный прокси-сервер HTTP.

Headers

При переопределении во вложенном классе возвращает или задает коллекцию связанных с данным запросом пар "имя-значение" для заголовка.

ImpersonationLevel

Возвращает или задает уровень олицетворения для текущего запроса.

Method

При переопределении во вложенном классе возвращает или задает метод протокола для использования в данном запросе.

PreAuthenticate

При переопределении во вложенном классе показывает, необходима ли предварительная проверка подлинности данного запроса.

Proxy

При переопределении во вложенном классе возвращает или задает сетевой прокси-сервер, используемый для доступа к данному интернет-ресурсу.

RequestUri

При переопределении во вложенном классе возвращает URI интернет-ресурса, связанного с данным запросом.

Timeout

Возвращает или задает промежуток времени в миллисекундах до истечения срока действия вопроса.

UseDefaultCredentials

При переопределении во вложенном классе возвращает или задает значение Boolean, с помощью которого определяется, следует ли отправлять учетные данные DefaultCredentials вместе с запросами.

Методы

Имя

Описание

Abort

Отменяет запрос

BeginGetRequestStream

При переопределении во вложенном классе предоставляет асинхронную версию метода GetRequestStream.

BeginGetResponse

При переопределении во вложенном классе начинает асинхронный запрос интернет-ресурса

Create (String)

Инициализирует новый экземпляр WebRequest для заданной схемы URI.

Create (Uri)

Инициализирует новый экземпляр WebRequest для заданной схемы URI.

CreateDefault

Инициализирует новый экземпляр WebRequest для заданной схемы URI.

CreateHttp (String)

Инициализирует новый экземпляр HttpWebRequest для заданной строки URI.

CreateHttp (Uri)

Инициализирует новый экземпляр HttpWebRequest для заданного URI.

CreateObjRef

Создает объект, который содержит всю необходимую информацию для создания прокси-сервера, используемого для взаимодействия с удаленным объектом. (Унаследовано от MarshalByRefObject.)

EndGetRequestStream

При переопределении в производном классе возвращает Stream для записи данных в этот интернет-ресурс.

EndGetResponse

При переопределении в производном классе возвращает WebResponse.

Equals (Object)

Определяет, равен ли заданный объект текущему объекту. (Унаследовано от Object.)

Finalize

Позволяет объекту попытаться освободить ресурсы и выполнить другие операции очистки, перед тем как объект будет утилизирован в процессе сборки мусора. (Унаследовано от Object.)

GetHashCode

Служит хэш-функцией по умолчанию. (Унаследовано от Object.)

GetLifetimeService

Извлекает объект обслуживания во время существования, который управляет политикой времени существования данного экземпляра. (Унаследовано от MarshalByRefObject.)

GetObjectData

Инфраструктура. Заполняет объект SerializationInfo

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

GetRequestStream

При переопределении в производном классе возвращает Stream для записи данных в этот интернет-ресурс.

GetRequestStreamAsync

При переопределении во вложенном классе возвращает Stream для записи данных в интернет-ресурс в виде асинхронной операции.

GetResponse

При переопределении во вложенном классе возвращает ответ на интернет-запрос.

GetResponseAsync

При переопределении во вложенном классе возвращает ответ на интернет-запрос в виде асинхронной операции.

GetSystemWebProxy

Возвращает прокси-сервер с уже установленными параметрами Internet Explorer для текущего олицетворенного пользователя.

GetType

Возвращает объект Type для текущего экземпляра. (Унаследовано от Object.)

InitializeLifetimeService

Возвращает объект обслуживания во время существования для управления политикой времени существования данного экземпляра. (Унаследовано от MarshalByRefObject.)

MemberwiseClone ()

Создает неполную копию текущего объекта Object. (Унаследовано от Object.)

MemberwiseClone (Boolean)

Создает неполную копию текущего объекта MarshalByRefObject. (Унаследовано от MarshalByRefObject.)

RegisterPortableWebRequestCreator

Устарело. Регистрация объекта IWebRequestCreate.

RegisterPrefix

Регистрирует потомок WebRequest для заданной схемы URI.

ToString

Возвращает строку, представляющую текущий объект. (Унаследовано от Object.)

2.2.3 Интерфейс управление. WebKit браузер

WebKit - свободный движок для отображения веб-страниц, разработанный на основе кода библиотек KHTML и KJS, используемых в графической среде KDE.

Исходный код открыт на условиях LGPL, то есть любой из компонентов или все компоненты сразу, в неизменном или измененном виде, можно использовать в проектах любого назначения (в том числе коммерческих) с одним условием: библиотеки или их производные должны быть опубликованы с открытым исходным кодом на условиях лицензии LGPL. WebKit входит в состав "публичных" фреймворков (динамических библиотек особой структуры), поставляющихся с каждой копией Mac OS X с июня 2003 года.

Компоненты

WebCore - Отображение и библиотека Document Object Model (DOM) для HTML и SVG.

JavaScriptCore - движок JavaScript. Также здесь находится библиотека WTF (Web Template Framework), предоставляющая вспомогательные функции общего назначения для всего WebKit. JavaScriptCore являетсякроссплатформенным и может использоваться как отдельный компонент без зависимостей от других компонентов WebKit.

В новых версиях WebKit Apple заменит JavaScriptCore более современным и быстрым SquirrelFish.

Drosera - Отладчик ошибок, входящий в состав ночных сборок WebKit.

Глава № 3. Разработка клиентской и серверной части программного обеспечение “KadrNet”

3.1 Разработка интерфейса

Сначала создадим проект на visual studio 2012, для этого нажимаем в меню "Файл":

Файл - > Создать-> Проект - > Visual C# - > Приложение Windows Forms

Далее в поле Имя вводим "KadrNet". Укажем путь расположения файла.

После этого в среде появляется форма.

Открываем свойство формы и меняем значение свойство AutoSize на true. Потом нажимаем в вкладку "Панель элементов", из меню "Стан-дартные элементы управления" выбираем элемент WebKitBrowser.

Далее выбираем координатную точку в форме, не отпуская левую кнопки мышки двигаем курсор по диагонали:

В свойстве элемента меняем значение свойство AutoSize на true.

И после этого поле Url в свойствах элемента вводим адрес нашего локального web cервера: http://localhost/kadrnet/.

Запускаем проект, если всё правильно настроена система перенаправляет нас на страницу авторизации:

3.2 Программная реализация

При написание приложение "KadrNet" мне понадобился создать компонент com_kadrnet на основе Joomla 2.5 с использованием API.

Архитектура MVC (model, view, controller) позволяет сконструировать широкомасштабные проекты обеспечивая надежность и гибкость написания кода. В этом компоненте также предусмотрена эта архитектура и легко можно отделить компонент и использовать на других компьютерах который установлен CMS Joomla 2.5.

Форма с использованием среды MS Visual Studio 2012. Прикрепил браузер Webkit.

Написал скрипт на javascript с использованием библиотеки JQuery, который синхронизирует запросы с локальным сервером используя технологии AJAX.

DLL библиотеку на языке C#. Он обеспечивает синхронизацию с главным сервером.

3.3 Защита приложения

Внедрение программный продукции через интернет портал даёт ряд преимуществ от традиционной установки. Предприятия который хочет получить программный продукт сначала проходит этап регистрации. После этого переходит ознакомительную часть (правила, контактные информация, категорий программных продуктов и т.д.), потом заполняет параметры для продукции, соответственно получает ключ и лицензию.

Глава № 4. Безопасность жизнедеятельности

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


Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.