-
Ознакомление с технологией ado.Net
ADO.NET — это набор классов, предоставляющих службы доступа к данным программисту, работающему на платформе .NET Framework.ADO.NET имеет богатый набор компонентов для создания распределенных приложений, совместно использующих данные. Это неотъемлемая часть платформы .NET Framework, которая предоставляет доступ к реляционным данным, XML-данным и данным приложений. ADO.NET удовлетворяет различные потребности разработчиков, включая создание клиентских приложений баз данных, а также бизнес-объектов среднего уровня, используемых приложениями, средствами, языками и веб-обозревателями[5].
Программное обеспечение ADO.NET для подсоединения и взаимодействия с физической базой данных называется провайдером данных ADO.NET. Провайдер данных (data provider) — это управляемый код .NET, который эквивалентен провайдеру OLEDB или драйверу ODBC. Провайдер данных состоит из нескольких объектов, которые реализуют необходимую функциональность в соответствии с определениями своих классов и интерфейсов.
-
Разработка модуля ведущего мониторинг параметров пк
Для разработки модуля, ведущего мониторинг параметров ПК было выбран язык C# из-за его возможностей работы с WMI, а для хранения данных средство ADO.NET и базу данных SQL-Server.
Структура базы данных изображена на рисунке 1 в приложении 1. Интерфейс модуля представлен на рисунке 2 приложения 1.
Модуль по средствам WMI опрашивает об именах имеющихся жестких дисков удаленные и локальный компьютеры. Результат опроса заносятся в базу данных и выводятся в выделенные для этого области окна модуля.
Для тестового запуска использовался компьютер без подключения к локальной сети. После опроса модуль выдал в своем окне информацию об имени компьютера и именах жестких дисков, находящиеся на компьютере. Как видно из рисунка 2 в приложении 1, на компьютере находятся два жестких диска, что соответствует реальности. Для отладки опроса по локальной сети необходимы дальнейшие тесты с компьютером подключенным к локальной сети и имеющий в ней права администратора. Листинг модуля в приложении 2.
ЗАКЛЮЧЕНИЕ
В ходе учебно-исследовательской работы было выполнено:
-
анализ существующих автоматизированных систем учета основных средств предприятия;
-
анализ существующих систем мониторинга парка ПК предприятия (с учетом локальной сети);
-
разработано описание систем мониторинга с целями, задачами и функциями;
-
изучение основ программирования на C#;
-
ознакомление с технологией ADO.NET;
-
разработан модуль ведущий мониторинг ряда параметров ПК.
В ходе анализа существующих автоматизированных систем учета основных средств предприятия было выявлено, что больше всего для предприятия подходят «1С:Бухгалтерия» или «ИНФО-Бухгалтер» в зависимости от специфики предприятия. Анализ существующих систем мониторинга парка ПК предприятия дал представление об актуальных на сегодняшний день системах, их достоинствах, недостатках и функциональных возможностях. В процессе разработки описания системы мониторинга были сформированы предварительные цели, задачи и функции, которые система должно иметь. Так же в ходе разработки модуля ведущего мониторинг ряда параметров ПК были изучены основы программирования на языке C#, возможности ADO.NET для подключения базы данных SQL-Server к программному проекту.
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
-
Светлана Мартынычева «СРАВНИТЕЛЬНАЯ ХАРАКТЕРИСТИКА ПРОГРАММ АВТОМАТИЗАЦИИ БУХГАЛТЕРСКОГО УЧЕТА» УДК 681.3-657 М-29
-
Рязанцева Н.А., Рязанцев Д.Н. 1С:Предприятие. Комплексная конфигурация. Секреты работы.- СПб.:БХВ-Петербург, 2009,С.-624
-
Ежемесячный журнал «Системный администратор» №6(103) июнь 2011 издательство ООО «Синдикат 13».
-
C# и платформа .NET., Э. Троелсен. – СПб.; Издательство «Питера Пресс», 2007.
-
Электронная библиотека MSDN [Электронный ресурс]. URL: http://msdn.microsoft.com
-
Microsoft SQL Server 2008: A Beginner`s Guide., Дю Петкович. – СПб.: Издательство «БХВ-Петербург».
-
Евсеева О.Н., Шамшев А.Б. Работа с базами данных на языке C#. Технология АDO.NET: Учебное пособие.
-
Хохлов А. Е. «Автоматизированные системы бухгалтерского учета: Конспект лекций» Изд-во Пенз. гос. ун-та, 2002. – 108с
Приложение 1 «Таблицы и рисунки»
Название программы |
Достоинства |
Недостатки |
1С:Бухгалтерия |
большие функциональные возможности |
сложность освоение |
невысокая цена |
невозможность работы с графикой |
|
|
отсутствие бесплатной демонстративной версии |
|
ИНФО-бухгалтер |
простота в освоении |
трудность адаптации программы к особенностям предприятия |
высокий уровень технической поддержки |
|
|
низкая цена (дешевле, чем 1С:Бухгалтерия) |
|
|
нетребовательна к ресурсам компьютера |
|
|
Парус-бухгалтерия |
способность адаптироваться к особенностям предприятия |
высокая цена |
БЭСТ |
может функционировать как в локальном, так и в сетевом варианте |
высокая цена |
сопровождение компанией-разработчик в процессе эксплуатации |
пользователю запрещено изменять настройки программы |
Таблица 1. Перечень достоинств и недостатков.
Рис. 1 Структура базы данных
Рис. 2 Интерфейс модуля.
Приложение 2. «Листинг модуля ведущего мониторинг параметров ПК»
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.IO;
using System.Windows.Forms;
using System.Management;
using Microsoft.Win32;
using System.Runtime.InteropServices;
namespace УМОС
{
public partial class Form1 : Form
{
private List<string> GetDeviceArray(string ComputerName, string FromWIN32Class, string ClassItemAdd)
{
List<string> result = new List<string>();
ConnectionOptions options =
new ConnectionOptions();
ManagementScope scope = new ManagementScope("\\\\" + ComputerName + "\\root\\cimv2", options);
ObjectQuery query = new ObjectQuery("SELECT * FROM " + FromWIN32Class);
ManagementObjectSearcher searcher =
new ManagementObjectSearcher(scope, query);
try
{
foreach (ManagementObject obj in searcher.Get())
{
result.Add(obj[ClassItemAdd].ToString().Trim());
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
return result;
}
private List<string> GetComputerArray()
{
List<string> res = new List<string>();
for (int i = 6; i < 7; i++)
{
ConnectionOptions options =
new ConnectionOptions();
ManagementScope scope = new ManagementScope("\\\\192.168.0.10" + i.ToString() + "\\root\\cimv2", options);
try
{
scope.Connect();
ObjectQuery query = new ObjectQuery("SELECT * FROM Win32_OperatingSystem");
ManagementObjectSearcher searcher = new ManagementObjectSearcher(scope, query);
ManagementObjectCollection queryCollection = searcher.Get();
foreach (ManagementObject m in queryCollection)
{
res.Add(m["csname"].ToString());
}
}
catch (Exception ex) { res.Add("Ошибка доступа!"); }
}
return res;
}
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
List<string> comp = GetComputerArray();
//dbDataSetTableAdapters.HardDickTableAdapter hIns =
//new УМОС.dbDataSetTableAdapters.HardDickTableAdapter();
dbDataSetTableAdapters.MainTableAdapter dbIns = new УМОС.dbDataSetTableAdapters.MainTableAdapter();
try
{
for (int i = 0; i < comp.Count; i++)
{
if (comp[i] != "Ошибка доступа!")
{
List<string> res = GetDeviceArray(comp[i], "Win32_DiskDrive", "Name");
for (int j = 0; j < res.Count; j++)
mainBindingSource.Add(dbIns.InsertQuery(comp[i],res[j]));
//hardDickBindingSource.Add(hIns.InsertQuery(res[j], comp[i]));
}
else MessageBox.Show("Ошибка доступа!");
}
}
catch (Exception ex) { MessageBox.Show(ex.Message); }
}
private void Form1_Load(object sender, EventArgs e)
{
try
{
// TODO: данная строка кода позволяет загрузить данные в таблицу "dbDataSet.Main". При необходимости она может быть перемещена или удалена.
this.mainTableAdapter.Fill(this.dbDataSet.Main);
// TODO: данная строка кода позволяет загрузить данные в таблицу "dbDataSet.HardDisck". При необходимости она может быть перемещена или удалена.
this.hardDisckTableAdapter.Fill(this.dbDataSet.HardDisck);
// TODO: данная строка кода позволяет загрузить данные в таблицу "dbDataSet.Computer". При необходимости она может быть перемещена или удалена.
this.computerTableAdapter.Fill(this.dbDataSet.Computer);
}
catch (System.Data.SqlClient.SqlException ex) { MessageBox.Show(ex.Message); }