Розробка елементів гнучкої інтегрованої системи віддаленого доступу до каталогу відеофайлів

  • Вид работы:
    Дипломная (ВКР)
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Украинский
    ,
    Формат файла:
    MS Word
    2,52 Мб
  • Опубликовано:
    2012-09-18
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Розробка елементів гнучкої інтегрованої системи віддаленого доступу до каталогу відеофайлів

Міністерство освіти та науки України

Криворізький інститут

Кременчуцького університету економіки, інформаційних технологій та управління

Кафедра Технічної кібернетики








ДИПЛОМНА РОБОТА

зі спеціальності

Гнучкі комп’ютеризовані системи та робототехніка

Розробка елементів гнучкої інтегрованої системи віддаленого доступу

до каталогу відеофайлів

Студента групи

Прилуцької Галини Анатоліївни



Кривий Ріг

Анотація

інтегрована автоматизована система каталог

Метою роботи є створення системи, яка дозволить автоматизувати доступ до каталогу навчальних відеофільмів в мультимедійних класах Криворізького металургійного факультету Національної металургійної академії України.

Також в роботі було розглянуто теоретичні аспекти проектування додатків на базі платформи dotNET.

Розділів, схем та малюнків, таблиць, бібліографічних посилань, загальний обсяг .

ЗМІСТ

ВСТУП

1. ПОСТАНОВКА ЗАВДАННЯ

1.1 Найменування та галузь застосування

1.2 Підстава для створення

1.3 Характеристика розробленого програмного забезпечення

1.4 Мета й призначення

1.5 Загальні вимоги до розробки

1.6 Джерела розробки

2. ТЕОРЕТИЧНІ ДОСЛІДЖЕННЯ ТА ПОРІВНЯЛЬНИЙ АНАЛІЗ ТЕХНОЛОГІЙ РОЗРОБКИ WINDOWS ДОДАТКІВ

2.1. Огляд основних технологій розробки Windows додатків

2.1.1 Програмування з використанням Win32/C

2.1.2 Програмування з використанням C++/MFC

2.1.3 Програмування з використанням Visual Basic

2.1.4 Програмування з використанням Java

2.1.5 Програмування з використанням СОМ

2.1.6 Програмування з використанням Windows DNA

2.2. Рішення .NET

2.2.1 Основи CLS

2.2.2 Основи CLR

2.2.3 Стандартна система типів CTS

2.2.4 Простори імен

2.2.5 Основи MSIL

2.2.6 Поняття збірки і виконувані модулі

3. СТВОРЕННЯ WINDOWS-ДОДАТКІВ НА ОСНОВІ VISUAL C#

3.1 Основи роботи з Visual Studio .NET

3.2 Форми

3.3 Вікно «Провідник проекту»

3.4 Вікно Class View

3.5 Вікно Properties Window

3.6 Вікно панелі інструментів

3.7 Режими дизайну і коду

3.8 Властивості проекту

3.9 Компіляція програми

4. ПРОГРАМНА РЕАЛІЗАЦІЯ ПРОЕКТОВАНОЇ СИСТЕМИ

4.1 Мінімальні системні вимоги і технічна характеристика

4.2 Опис логіко-функціональної структури та алгоритмів роботи системи

4.3 Опис інтерфейсу користувача системи

4.4 Програмна реалізація та опис основних процедур і функцій розробленої системи

5. ЕКОНОМІЧНЕ ОБҐРУНТУВАННЯ ДОЦІЛЬНОСТІ РОЗРОБКИ ПРОГРАМНОГО ПРОДУКТУ

5.1 Організаційно-економічна частина

5.2     Економічне обґрунтування необхідності розробки

6. Охорона праці

6.1 Аналіз шкідливих і небезпечних виробничих факторів при роботі на комп’ютері

6.2 Заходи щодо нормалізації шкідливих і небезпечних факторів

6.3 Пожежна безпека

ВИСНОВКИ

СПИСОК ЛІТЕРАТУРИ

ДОДАТОК А - Вихідний текст файлів системи

ВСТУП


Як мова програмування для реалізації поставленого завдання була вибрана мова програмування С#, як середа розробки Microsoft Visual Studio 2008. Варто відзначити, що середа розробки Microsoft Visual Studio 2008 є абсолютно безкоштовною, але не дивлячись на безкоштовність, надає безліч зручних засобів для створення складних програмних продуктів.

Якщо сказати, що мова С# і пов'язана з ним середа .NET Framework є однією з найважливіших технологій для розробників за багато років, це не буде перебільшенням. .NET спроектована як нова середа, в рамках якої можна розробити практично будь-який додаток для Windows, тоді як С# - нова мова програмування, призначена спеціально для роботи з .NET. За допомогою С# можливо, наприклад, створити динамічну Web-страніцу, Web-службу XML, компонент розподіленого додатку, компонент доступу до бази даних, класичний настільний додаток Windows або навіть інтелектуальне клієнтське програмне забеспечення, що має засоби онлайнової і автономної роботи.

Переваги .NET:

·          Об'єктно-орієнтоване програмування - і середа .NET Framework, і С# спочатку повністю базувалися на об'єктно-орієнтованих принципах.

·        Добрий дизайн - бібліотека базових класів, яка спроектована "з нуля", виключно інтуїтивно зрозумілим чином.

·        Незалежність від мови - з .NET код всіх мов, тобто Visual Basic .NET, С#, J# і керованого C, компілюється в спільну мову проміжного рівня - Intermediate .Language. Це означає, що всі ці мови володіють можливостями взаємодії, як ніколи раніше.

·        Краща підтримка динамічних Web-страніц - хоча ASP пропонував високий ступінь гнучкості, він також був і неефективним через свої сценарні мови, що інтерпретувалися, а недолік об'єктно-орієнтованого дизайну часто приводив до заплутаного коду ASP. .NET пропонує інтегровану підтримку Web-страніц із застосуванням нової технології - ASP.NET. У ASP.NET код сторінок компілюється і може бути написаний на мові високого рівня, що підтримує .NET - такому як С#, J# або Visual Basic 2005.

·        Ефективний доступ до даних - набір компонентів .NET, відомий під спільною назвою ADO.NET, надає ефективний доступ до реляційних баз даних і широкої різноманітності інших джерел даних. Також доступні компоненти, що надають доступ до файлової системи і каталогів. Зокрема, підтримка XML вбудована в .NET, що дозволяє маніпулювати даними, які можуть бути імпортовані з інших, не-Windows платформ, і експортовані в них

·        Розділення коду - .NET повністю змінила спосіб розділення коду між додатками, ввівши концепцію збірки (assembly), яка замінила традиційні бібліотеки DLL.

·        Підвищена безпека - кожна збірка також може містити вбудовану інформацію безпеки, яка в точності описує, кому і яким категоріям користувачів або процесів, які методи яких класів дозволено викликати.

·        Підтримка Web-служб - .NET пропонує повністю інтегровану підтримку розробки Web-служб.

1. ПОСТАНОВКА ЗАВДАННЯ

 

.1 Найменування та галузь застосування


Найменування розробки: елементи гнучкої інтегрованої системи віддаленого доступу до каталогу відеофайлів. Розроблена система призначена для автоматизації доступу до каталогу навчальних відеофільмів в мультимедійних класах Криворізького металургійного факультету Національної металургійної академії України.

1.2 Підстава для створення


Підставою для розробки є наказ № 62С-01 від 29 жовтня 2008 р. по Криворізькому інституту КУЕІТУ.

Початок робіт: 31.10.08. Закінчення робіт: 01.06.09.

1.3 Характеристика розробленого програмного забезпечення


Система розроблена в середовищі Microsoft Visual Studio 2008 Express Edition.

Склад розробленого програмного комплексу:

·        VideoCatalog.exe: клієнтьска частина программи каталогу відео файлів;

·        Interop.WMPLib.dll: бібліотека віддаленої взаємодії клієнтської частини програми та інтегрованого плеєра.

·        AxInterop.WMPLib.dll: клієнтська бібліотека віддаленої взаємодії.

1.4 Мета й призначення


Метою роботи є створення системи, яка дозволить автоматизувати доступ до каталогу навчальних відеофільмів в мультимедійних класах Криворізького металургійного факультету Національної металургійної академії України. Також в роботі було розглянуто теоретичні аспекти проектування додатків на базі платформи dotNET.

1.5 Загальні вимоги до розробки


Вимоги до програмного забезпечення:

·        Робота в середовищі операційних систем Windows 2000/XP;

·        Простота й зрозумілість інтерфейсу.

Мінімальні вимоги до апаратного забезпечення:

·        IBM-сумісний комп'ютер, не нижче Pentium IІI, RAM-256Mb, SVGA-800*600*16bit;

·        Вільний простір на жорсткому диску не менш 800 Мб;

·        Додаткове програмне забезпечення: Microsoft Framework .NET v2.0

 

.6 Джерела розробки


Джерелами розробки дипломної роботи є:

·        довідкова література;

·        наукова література;

·        технічна література;

·        програмна документація.

2. ТЕОРЕТИЧНІ ДОСЛІДЖЕННЯ ТА ПОРІВНЯЛЬНИЙ АНАЛІЗ ТЕХНОЛОГІЙ РОЗРОБКИ WINDOWS ДОДАТКІВ


2.1 Огляд основних технологій розробки Windows додатків

 

.1.1 Програмування з використанням Win32/C

Спочатку під програмуванням під Windows малося на увазі програмування з використанням Windows Application Programming Interface (інтерфейсом прикладного програмування Windows, в 32-разрядних версіях Windows - Win32 API). З використанням цієї технології було створено безліч цілком гідних додатків, проте навряд чи хто-небудь сперечатиметься з тим, що написання додатка з використанням лише Windows API - це дуже трудомістке завдання.

Ще одна проблема полягає в тому, що С - досить сувора по відношенню до програміста мова. Тим, хто створює додатки цією мовою програмування, доводиться уручну займатися управлінням пам'яттю, виконати розрахунки при використанні покажчиків і працювати з абсолютно неприродними з точки зору людської мови синтаксичними конструкціями. Крім того, в С недостатньо можливостей для об'єктно-орієнтованого програмування.

 

.1.2 Програмування з використанням C++/MFC

C++ - це величезний крок вперед відносно нових можливостей в порівнянні з початковою мовою С. Во багатьох ситуаціях C++ цілком допустимо представити як об'єктно-орієнтовану надбудову над С. Така надбудова дозволяє використовувати переваги «стовпів об'єктно-орієнтованого програмування - інкапсуляції, поліморфізму і спадкоємства. Проте програмісти, використовуючі C++, залишаються незахищеними від багатьох і часто небезпечних особливостей С++ (тими ж самими низькорівневими можливостями роботи з пам'яттю і важкими для сприйняття синтаксичними конструкціями).

Існує безліч бібліотек для C++, основне призначення яких - полегшити написання додатків під Windows, надавши для цієї мети вже готові класи. Одна з найбільш поширених бібліотек - це MFC (Microsoft Foundation Classes). MFC - це додатковий рівень над Win32 API, який значно спрощує роботу програміста за рахунок використання готових класів, макросів і майстрів. Проте MFC - це лише часткове вирішення проблеми. Навіть при використанні MFC програмістові доводиться працювати з складним для читання кодом, вельми небезпечним з точки зору можливих помилок.

 

.1.3 Програмування з використанням Visual Basic

Люди завжди прагнуть зробити своє життя простішим. Підкоряючись цьому прагненню багато програмістів на C++ обернули свої погляди до набагато простішої і доброзичливішої мови, якою є Visual Basic (VB). Visual Basic дозволяє працювати з досить складними елементами інтерфейсу користувача, бібліотеками коду (наприклад, Сом-серверами) і засобами доступу до даних при мінімальних витратах часу і сил. Visual Basic в набагато більшому ступені, чим MFC, ховає від користувача виклики Win32 API і надає великий набір інтегрованих засобів швидкої розробки.

Проте в Visual Basic є і недоліки. Головний з них - це набагато менші можливості, які надає ця мова, в порівнянні з C++ (це твердження справедливе, принаймні, для версій раніших, ніж VB.NET). Visual Basic - це мова «для роботи з об'єктами», а не об'єктно-орієнтована мова в звичайному розумінні цього слова. У Visual Basic немає класичного спадкоємства, немає підтримки створення класів, що параметризуються, немає власних засобів створення багатопоточних додатків - і цей список можна продовжувати ще довго.

2.1.4 Програмування з використанням Java

Мова програмування Java - це повністю об'єктно-орієнтована мова, яка відносно синтаксису багато що успадкувала від C++ . Звичайно, переваги Java далеко не вичерпуються міжплатформеностю. Мова Java в синтаксичному відношенні простіша і логічніша, ніж C++. Java як платформа надає в розпорядження програмістів велику кількість бібліотек (пакетів), в яких міститься велика кількість описів класів і інтерфейсів на всі випадки життя. З їх допомогою можна створювати стовідсоткові додатки Java з можливістю звернення до баз даних, підтримкою передачі поштових повідомлень, з клієнтською частиною, якою необхідний лише web-браузер, або на зворот, з клієнтською частиною, що володіє витонченим інтерфейсом.- це дуже елегантна і красива мова. Проте при його використанні проблем також уникнути не вдається. Одна з серйозних проблем полягає в тому, що при створенні складного додатку на Java нам доведеться використовувати лише цю мову для створення всіх частин цього додатку. У Java передбачено не так вже багато засобів для міжмовної взаємодії (що зрозуміло, зважаючи на призначення Java бути єдиною багатоцільовою мовою програмування). Але в реальному світі існують мільйони рядків готового коду, які хотілося б інтегрувати з новими додатками на Java. Проте це зробити дуже важко.- це далеко не ідеальна мова в багатьох ситуаціях. Простий приклад - якщо ми спробуємо створити лише Java додаток, що активно працює з 3d-графікой, швидше за все, працювати такий додаток буде не дуже швидко. Для роботи з 3d-графікой краще використовувати код, написаний на мові з розвиненішими низькорівневими можливостями (наприклад, на C++). Проте інтегрувати такий код з кодом на Java буде дуже складно. Оскільки можливості для звернення до API компонентів, створених на інших мовах, в Java дуже обмежені, говорити про реальну міжмовну взаємодію на основі Java не доводиться.

2.1.5 Програмування з використанням СОМ

Сучасний стан справ такий, що якщо програміст не будуєте Java-додатки, то велика вірогідність, що програміст освоює технологію Microsoft Component Object Model (COM). Сом-технологія проголошує: «Якщо ви створюєте класи в точній відповідності з вимогами СОМ, то у вас вийде блок повторно використовуваного програмного коду».

Краса двійкового СОМ - сервера полягає в тому, що до нього можна звертатися з будь-якої мови. Наприклад, програмісти, використовуючи C++, можуть створювати класи, які можна буде використовувати з додатка на Vbasic. Програмісти, використовуючи Delphi, можуть використовувати класи, створені на С++ и т.д. Проте в міжмовній взаємодії СОМ є свої обмеження. Наприклад, немає можливості провести нового типа СОМ від того, що існує. Для повторного використання існуючих типів СОМ доведеться використовувати інші, набагато менш надійні і ефективні засоби.

Велика перевага СОМ полягає в тому, що програміст може не піклуватися про фізичне місцезнаходження компонентів. Такі засоби, як Application Identifiers (Appids, ідентифікатори додатків), стаби (stubs), проксі, середа виконання СОМ, дозволяють уникати при зверненні до компонентів по мережі необхідності поміщати в додаток код для роботи з сокетами, викликами RPC і іншими низькорівневими механізмами. Досить поглянути на такий код на Visual Basic 6.0 для клієнта СОМ:с as New MyCOMClass. Місцезнаходження класу визначається через AppID c.DoSomeWork.

Об'єктна модель СОМ використовується дуже широко. Проте внутрішній устрій компонентів вельми складний. Щоб навчитися знатися на нім доведеться витратити принаймні декілька місяців. Написання додатків з використанням Сом-компонентів можна спростити, використовуючи стандартні бібліотеки, наприклад біблітеку Active Template Library (ATL) зі своїм набором готових класів, шаблонів і макросів.

Деякі мови (наприклад, Visual Basic) також дозволяють приховати складність інфраструктури СОМ. Проте всіх складнощів уникнути все одно не вдається. Наприклад, навіть якщо працювати з відносно простим і підтримуючим COM Visual Basic, доведеться вирішувати не завжди прості питання, пов'язані з реєстрацією компонентів на комп'ютері і розгортанням додатків.

 

.1.6 Програмування з використанням Windows DNA

Картина буде неповною, якщо не взяти до уваги як Інтернет. За декілька останніх років Microsoft додала в свої операційні системи велику кількість засобів для роботи з цією середою, у тому числі і засоби, покликані допомогти в створенні Інтернет-додатків. Проте, побудова закінченого web-додатки з використанням технології Windows DNA (Distributed internet Architecture - розподілена міжмережева архітектура) до цих пір залишається вельми складним завданням.

Значна частина складнощів виникає тому, що Windows DNA вимагає використання різнорідних технологій і мов (ASP, HTML, XML, Javascript, Vbscript, COM ( ), ADO і т. д.). Одна з проблем полягає в тому, що синтаксично всі ці мови і технології дуже мало схожі один на одного. Наприклад, синтаксис JavaScript більше схожий на синтаксис С++, тоді як VbScript є підмножиною Visual Basic. Сом-сервери, призначені для роботи в середі виконання СОМ, створені на основі здійснений інших підходів, ніж Asp-сторінки, які до них звертаються. Кінцевим результатом є лякаюче змішення технологій. Окрім всього іншого, в кожній мові, яка входить до складу Windows DNА, передбачена своя система типів, що також не є джерелом великої радості для програмістів. Наприклад, тип даних іnt у JavaScript - це не те ж саме, що іnt у С++, який, у свою чергу, відмінний від іnteger у Visual Basic.

2.2 Рішення .NET


Один з головних принципів .NET звучить так: «Змінюйте все, що хочете, звідки вам завгодно». .NET - це абсолютно нова модель для створення додатків під Windows (а в майбутньому, мабуть, і під іншими операційними системами). Ось коротке перерахування основних можливостей .NET:

·        Повні можливості взаємодії з існуючим кодом.

·        Повна і абсолютна міжмовна взаємодія. На відміну від класичного СОМ, в .NET підтримуються міжмовне спадкоємство, міжмовна обробка виключень і міжмовна відладка.

·        Спільна середа виконання для будь-яких додатків .NET, незалежно від того, на яких мовах вони були створені. Один з важливих моментів при цьому - те, що для всіх мов використовується один і той же набір вбудованих типів даних.

·        Бібліотека базових класів, яка забезпечує приховування всіх складнощів, пов'язаних з безпосереднім використанням викликів API, і пропонує цілісну об'єктну модель для всіх мов програмування, що підтримують .NET,

·        Спрощення процесу розгортання додатка. У .NET немає необхідності реєструвати подвійні типи в системному реєстрі. Більш того .NET дозволяє різним версіям одного і того ж модуля DLL мирно співіснувати на одному комп'ютері.

2.2.1 Основи CLS

CLS (Common Language Specification) - загальна специфікація мов програмування. Це набір конструкцій і обмежень, які є керівництвом для творців бібліотек і компіляторів в середовищі .NET Framework. Бібліотеки, побудовані відповідно до CLS, можуть бути використані з будь-якої мови програмування, підтримуючого CLS. Мови, відповідні CLS (до їх числа відносяться мови Visual C# 2.0, Visual Basic, Visual C++), можуть інтегруватися один з одним. CLS - це основа міжмовної взаємодії в рамках платформи Microsoft .NET.

Немає необхідності доводити, що одні і ті ж програмні конструкції в різних мовах виглядають абсолютно по-різному. Наприклад, в С# і Delphi об'єднання рядків (конкатенація) проводиться за допомогою оператора плюс "+", а в Visual Basic для цієї мети використовується амперсант "&". Для середовища виконання .NET така різниця в синтаксисі абсолютно байдужа: все одно відповідні компілятори створять однаковий код IL. Проте мови програмування відрізняються не тільки синтаксисом, але і можливостями. Наприклад, в одних мовах програмування дозволено перевантаження операторів, а в інших - ні. Одні мови можуть використовувати беззнакові типи даних, в інших такі типи даних не передбачені. Тому потрібні деякі єдині правила для всіх мов .NET. Якщо їм слідувати, то програмні модулі, написані на різних мовах, нормально взаємодіятимуть один з одним. Такий набір правил визначений в універсальній специфікації мови (CLS).

Набір правив CLS не тільки гарантує нормальну взаємодію блоків коду, створених на різних мовах, але і визначає мінімальні вимоги, які пред'являються до будь-якого компілятора .NET. Необхідно пам'ятати, що CLS - це лише частина тих можливостей, які визначені в CTS. Правилам CLS повинні задовольняти і інструментальні засоби середовища розробки - якщо ми хочемо забезпечити міжмовну взаємодію, вони повинні генерувати тільки такий код, який відповідає вимогам CLS. У кожного правила CLS є назва (наприклад, CLS Rule 6). Ось приклад один з найважливіших правил - правило номер 1.

Правило 1. Правила CLS відносяться тільки до частин типу, призначених для взаємодії за межами збірки, в якій вони визначені.

З цього правила виходить, що при реалізації якого-небудь типу можна скільки завгодно порушувати правила CLS - це ні на що не вплине. Наприклад, можна створити додаток .NET, який взаємодіє із зовнішнім світом за допомогою трьох класів, і в кожному з цих класів тільки одна функція. Правилам CLS в цьому випадку повинні задовольняти тільки три цих функції (область видимості, угоди про іменування, типи параметрів і т.д.). У внутрішній реалізації цих функцій, класів або додатку в цілому може бути скільки завгодно відступів від правил CLS.

2.2.2 Основи CLR

CLR (Common Language Runtime) - Середовище Часу Виконання або Віртуальна Машина. Забезпечує виконання збірки. Основний компонент .NET Framework. Під Віртуальною Машиною розуміють абстракцію інкапсульованої (відособленої) керованої операційної системи високого рівня, яка забезпечує виконання (керованого) програмного коду.

Керований код - програмний код, який при своєму виконанні здатний використовувати служби, що надаються CLR.

Відповідно, некерований код подібною здатністю не володіє. Про особливості керованого коду можна судити по переліку завдань, рішення яких покладається на CLR:

·        Управління кодом (завантаження і виконання).

·        Управління пам'яттю при розміщенні об'єктів.

·        Ізоляція пам'яті додатків.

·        Перевірка безпеки коду.

·        Перетворення проміжної мови в машинний код.

·        Доступ до метаданих (розширена інформація про типи).

·        Обробка виключень, включаючи міжмовні виключення.

·        Взаємодія між керованим і некерованим кодами (у тому числі і COM-об'єктами).

·        Підтримка сервісів для розробки (профілізація, відладка і т.д.).

Коротше, CLR - це набір служб, необхідних для виконання керованого коду

Сама CLR складається з двох головних компонентів: ядра (mscoree.dll) і бібліотеки базових класів (mscorlib.dll). Наявність цих файлів на диску - вірна ознака того, що на комп'ютері, принаймні, була зроблена спроба установки платформи .NET.

Ядро середовища виконання реалізоване у вигляді бібліотеки mscoree.dll. При компоновці збірки в неї вбудовується спеціальна інформація, яка при запуску додатку (EXE) або при завантаженні бібліотеки (звернення до DLL з некерованого модуля - виклик функції LoadLibrary для завантаження керованої збірки) приводить до завантаження і ініціалізації CLR. Після завантаження CLR в адресний простір процесу, ядро середовища виконання проводить наступні дії:

·        знаходить розташування збірки;

·        завантажує збірку в пам'ять;

·        проводить аналіз вмісту збірки (виявляє класи, структури, інтерфейси);

·        проводить аналіз метаданих;

·        забезпечує компіляцію коду на проміжній мові (IL) в платформозалежні інструкції (асемблерний код);

·        виконує перевірки, пов'язані із забезпеченням безпеки;

·        використовуючи основний потік додатку, передає управління перетвореному в команди процесора фрагменту коду збірки.

·        FCL (.NET Framework Class Library) - відповідна CLS-специфікації об'єктно-орієнтована бібліотека класів,

·        інтерфейсів і системи типів (типів-значень), які включаються до складу платформи Microsoft .NET.

Ця бібліотека забезпечує доступ до функціональних можливостей системи і призначена служити основою при розробці .NET- додатків, компонент, елементів управління.

. NET бібліотека класів є другим компонентом CLR.

. NET FCL можуть використовувати ВСЕ .NET-приложения, незалежно від призначення архітектури використовуваного при розробці мови програмування, і зокрема:

·        вбудовані (елементарні) типи, представлені у вигляді класів (на платформі .NET все побудовано на структурах або класах);

·        класи для розробки графічного призначеного для користувача інтерфейсу (Windows Form);

·        класи для розробки web-додатків і web-служб на основі технології ASP.NET (Web Forms);

·        класи для розробки XML і Internet-протоколів (FTP, HTTP, SMTP, SOAP);

·        класи для розробки додатків, що працюють з базами даних (ADO .NET) і багато що інше.

Рис. 2.1 Послідовність виконання програм в середовищі CRL

2.2.3 Стандартна система типів CTS

Стандартна система типів (CTS) - це всеосяжна специфікація, яка визначає, яким чином який-небудь тип (клас, структура, інтерфейс, вбудований тип даних і т.д.) повинен бути сформований для його правильного сприйняття середовищем виконання .NET. Система CTS описує синтаксичні конструкції (наприклад, перевантаження операторів), які можуть підтримуватися, а можуть і не підтримуватися конкретною мовою програмування .NET. Якщо необхідно створювати сбірки, які повинні використовуватися всіма мовами програмування .NET, то при створенні типів доведеться слідувати правилам стандартної системи типів.

Концепція класів - наріжний камінь будь-якого об'єктно-орієнтованого програмування. Вона підтримується всіма мовами програмування .NET. Клас - це необмежений набір полий, властивостей, методів і подій, складових єдине ціле. У CTS передбачені абстрактні члени класів, що забезпечує можливість застосування поліморфізму в похідних класах. Множинне спадкоємство в CTS заборонене. Клас відповідає всім вимогам об'єктно-орієнтованого програмування і може бути абстрактним, мати область видимості, використовувати інтерфейси, а також може бути закритим для створення похідних класів.

Крім класів в CTS також представлені і структури. У першому наближенні структури можна розглядати як спрощені різновиди класів. Структури CTS можуть мати будь-яку кількість конструкторів з параметрами (конструктор без параметрів зарезервований). За допомогою конструкторів з параметрами можна встановити значення будь-якого поля структури у момент створення цього об'єкту. Всі структури CTS проведені від єдиного базового класу System.ValueType.

Цей базовий клас визначає структуру як тип даних для роботи тільки із значеннями, але не з посиланнями. У структурі може бути будь-яка кількість інтерфейсів.

Проте структури не можуть бути успадковані від решти типів даних і вони завжди є закритими - іншими словами, вони не можуть виступати як базові з метою їх спадкоємства.

Члени типів CTS

Раніше було відмічено, що класи і структури можуть мати будь-яку кількість членів. Член - це або метод, або властивість, або поле, або подія. Для кожного члена в .NET існує набір характеристик. Наприклад, будь-який член в .NET характеризується своєю областю видимості (public, private, protected і т.д.). Член можна оголосити як абстрактний, щоб скористатися можливостями поліморфізму при роботі з похідними класами. Члени можуть бути статичними (такі члени можуть спільно використовуватися всіма об'єктами даного класу) і звичайними - що належать тільки одному об'єкту даного класу.

Перерахування CTS

Перерахування - це зручна програмна конструкція, яка дозволяє об'єднувати пари "ім'я-значення" в групи, до яких потім можна звернутися на ім'я груп.

У CTS всі перерахування є похідними від єдиного базового класу System.Enum. Цей базовий клас містить безліч корисних членів, які допоможуть в роботі з парами "ім'я-значення".

Делегати CTS

Делегати в світі .NET - це безпечні для типів вказівники на функції. Але на відміну від інших мов програмування, делегат .NET це вже не просто адреса в оперативній пам'яті, а клас, похідний від базового класу Multicast-Delegate. Делегати дуже корисні в тих ситуаціях, коли потрібно, щоб одна суть передала виклик іншої суті. Делегати - це наріжний камінь в технології обробки подій в середовищі.NET.

Вбудовані типи даних CTS

У середовищі .NET передбачений багатий набір вбудованих типів даних, причому цей набір використовується всіма мовами програмування .NET. Назви типів даних в різних мовах .NET можуть виглядати по-різному, але ці назви всього лише псевдоніми для вбудованих системних типів даних .NET, визначених в бібліотеці базових типів.

2.2.4 Простори імен

Після знайомства із загальниймовним виконуючим середовищем .NET звернемося до особливостей бібліотеки базових класів .NET. Важливість бібліотек коду очевидна.

Наприклад, бібліотека MFC визначає набір класів C++ для створення форм, діалогових вікон, меню, панелей управління і т.д. В результаті програмісти можуть не займатися створенням того, що вже давно зроблене, а зосередитися на унікальних аспектах застосування, що розробляється ними. Аналогічні засоби існують в Delphi, Visual Basic, Java і в решті всіх мов програмування.

Проте на відміну від цих мов програмування, в мовах для середовища .NET не існує бібліотеки базових класів тільки для однієї мови. Натомість розробники використовують бібліотеку базових типів для всього середовища .NET, а для організації типів усередині цієї бібліотеки використовується концепція просторів імен.

Ефективність роботи програміста, що використовує .NET, безпосередньо залежить від того, наскільки добре він знайомий з тим безліччю типів, які визначені в просторах імен бібліотеки базових класів. Найважливіший простір імен називається System. У нім визначені класи, які забезпечують найважливіші функції, і жодне застосування не обходиться без використання цього простору імен.

Простір імен - це спосіб організації типів (класів, перерахувань, інтерфейсів, делегатів і структур) в єдину групу. У одному просторі імен зазвичай об'єднуються взаємозв'язані типи. Наприклад, в просторі імен System.Drawing міститься набір типів, які покликані допомогти в організації виведення зображень на графічний пристрій. У .NET передбачені простори імен для організації типів, розрахованих на роботу з базами даних, мережею, багатопотоковістю, захистом даних і безлічі інших завдань.

2.2.5 Основи MSIL

(Microsoft Intermediate Language) - проміжна мова платформи Microsoft .NET. Початкові тексти програм для .NET-приложений пишуться на мовах програмування, відповідних специфікації CLS. Для таких мов може бути побудований перетворювач в MSIL. Таким чином, програми на цих мовах можуть транслюватися в проміжний код на MSIL.

Завдяки відповідності CLS, в результаті трансляції програмного коду, написаного на різних мовах, виходить сумісний IL-код.

Фактично MSIL є асемблером віртуального процесора.

МЕТАДАНІ - при перетворенні програмного коду в MSIL також формується блок метаданих, який містить інформацію про даних, використовуваних в програмі. Фактично це набори таблиць, які включають інформацію про типи даних, визначуваних в модулі (про типи даних, на які посилається даний модуль). Раніше така інформація зберігалася окремо. Наприклад, додаток міг включати інформацію про інтерфейси, яка описувалася на Interface Definition Language (IDL). Тепер метадані є частиною керованого модуля.

Зокрема, метадані використовуються для:

·        збереження інформації про типи. При компіляції тепер не потрібні заголовні і бібліотечні файли. Всю необхідну інформацію компілятор читає безпосередньо з керованих модулів;

·        верифікації коду в процесі виконання модуля;

·        управління динамічною пам'яттю (звільнення пам'яті) в процесі виконання модуля;

·        забезпечення динамічної підказки (IntelliSence) при розробці програми стандартними інструментальними засобами (Microsoft Visual Studio .NET) на основі метаданих.

Мови, для яких реалізований переклад на MSIL:

·        Visual Basic,

·        Visual C++,

·        Visual C# 2.0,

·        і ще багато інших мов.

2.2.6 Поняття збірки і виконувані модулі

Виконуваний модуль - незалежно від компілятора (і вхідної мови) результатом трансляції .NET-додатку є керований виконуваний модуль (керований модуль). Це стандартний переносимий виконуваний (PE - Portable Executable) файл Windows.

Однією з особливостей керованого коду є наявність механізмів, які дозволяють працювати з керованими даними. Керовані дані - об'єкти, які в ході виконання коду модуля розміщуються в керованій пам'яті (у керованій купі) і знищуються складальником сміття CLR. Дані C#, Visual Basic і JScript .NET є керованими за замовчанням. Виконуваний модуль - незалежно від компілятора (і вхідної мови) результатом трансляції .NET-додатку є керований виконуваний модуль (керований модуль). Це стандартний переносимий виконуваний (PE - Portable Executable) файл Windows. Однією з особливостей керованого коду є наявність механізмів, які дозволяють працювати з керованими даними.

Керовані дані - об'єкти, які в ході виконання коду модуля розміщуються в керованій пам'яті (у керованій купі) і знищуються прибиральником сміття CLR. Дані C#, Visual Basic і JScript .NET є керованими за замовчанням.

Дані C# також можуть бути помічені як некеровані.

Збірка (Assembly) - базовий будівельний блок додатку в .NET Framework. Керовані модулі об'єднуються в складки. Збірка є логічним угрупуванням одного або декількох керованих модулів або файлів ресурсів. Керовані модулі у складі складок виконуються в Середовищі Часу Виконання (CLR). Збірка може бути або виконуваним застосуванням (при цьому вона розміщується у файлі з розширенням .exe), або бібліотечним модулем (у файлі з розширенням .dll). При цьому нічого спільного із звичайними (старого зразка!) виконуваними застосуваннями і бібліотечними модулями збірка не має.

Декларація збірки (Manifest) - складова частина збірки. Це ще один набір таблиць метаданих, який:

ідентифікує збірку у вигляді текстового імені, її версію, культуру і цифрову сигнатуру (якщо збірка розподіляється серед додатків);

визначає вхідні в склад файли (по імені і хешу);

указує типи і ресурси, що існують в збірці, включаючи опис тих, які експортуються із збірки;

перераховує залежності від інших складок;

указує набір має рацію, необхідних збірці для коректної роботи.

Ця інформація використовується в період виконання для підтримки коректної роботи додатку.

3. СТВОРЕННЯ WINDOWS-ДОДАТКІВ НА ОСНОВІ VISUAL C#

 

.1 Основи роботи з Visual Studio .NET


Існує величезна кількість версій продукту Visual Studio, причому до появи цієї нової версії видавалося, що в Microsoft забули про підтримку ентузіастів, які власне і зробили продукти для розробників найпопулярнішими. Не має сенсу говорити про те, що відчували користувачі, коли Microsoft намагалася зрушити їх від Visual Basic 6.0 до .NET-версії продукту, досить сказати, що деякі просто відмовлялися розуміти, що все змінилося.

У квітні 2008 року Microsoft випустила попередню версію Visual Studio, перероблену Visual Studio .NET 2008. Цей продукт був прив'язаний до випуску Windows 2008 і вважався невеликим оновленням. Випуск Visual Studio .NET 2008 мав на увазі глибоку інтеграцію з широкими новими можливостями Windows Server 2008, наприклад, UDDI, Web-службами і .NET Framework. Windows Server 2003 була першою версією Windows, що поставлялася з інтегрованою середою .NET Framework.

В даний час Visual Studio 2008 є високоефективною середою професійного розробника, яка вільно сполучає декілька технологій, що надають розробникам безпрецедентні можливості для створення додатків Windows, Web-служб, Web-додатків, сайтів і так далі. Звичайно, це зажадало від Microsoft набагато більше часу, чим планувалося для розробки даного комплекту продуктів. На думку фахівців Microsoft, це обумовлено тим, що рівень інтеграції, який вони пропонують у всіх продуктах Visual Studio і SQL Server, має особливий характер. Ось що сказав Девід Кемпбелл, генеральний менеджер SQL Server в Microsoft:

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

У Visual Studio 2008 на самому нижньому рівні знаходяться нові Express-версії (Express Edition) для Visual Basic, Visual C#, Visual C і Visual J, а також новий продукт, званий Visual Web Developer, який коштуватиме дуже дешево. Цей продукт призначається для ентузіастів, незалежних розробників і студентів.

На верхньому сегменті ринку в Microsoft тепер є три нові версії Visual Studio: Team Edition for Software Architects, Team Edition for Software Developers і Team Edition for Software Testers - відповідно, версії для команд архітекторів, розробників і випробувачів програмного забезпечення. Додатково до цього розроблена версія Team Foundation Server - це серверний продукт, який надає засоби для контролю, тестування і автоматизації процесів.

Нові ж версії Express надають унікальну можливість навчання розробці програмного забезпечення або Web-сторінок. Ці продукти призначені для початкуючих користувачів, студентів і для представників малого бізнесу. Вони містять доступніші і стислі версії основних продуктів Visual Studio і відрізняються від повних комплектів продуктів. По суті, продукту Visual Studio 2008 Express Edition немає. Ви просто вибираєте комплекти Express Edition з Visual Basic, Visual C#, Visual C і Visual J . Plus і, додатково, новий Visual Web Developer, про яке я раніше згадував, і вільну версію SQL Server 2008, яка називається SQL Server 2008 Express Edition.

Кожен з цих продуктів включає декілька наборів для початківців - Starter Kit. Вони є заздалегідь побудованими додатками, які можуть вивчати початкуючі розробники. Проте додатки Start Kit служать не лише для демонстрації: вони повністю працездатні і надзвичайно корисні як реальні застосування. У Microsoft передбачають, що скоро з'явиться широкий спектр пропозицій безкоштовного і умовно безкоштовного програмного забезпечення, яке буде побудовано за допомогою Starter Kit. Наприклад, Visual Basic 2008 Express Edition і Visual C# 2008 Express Edition включають в Starter Kit приклади для побудови охоронця екрану і створення додатка для монтажу фільмів.

Кожна Express-редакція включає набір підручників, документацію для початківців і посилання на загальнодоступні ресурси, на зразок тематичних конференцій і форумів. Під час установки можна по вибору завантажити і встановити MSDN 2008 Express Edition Library, яка включає повний набір документації по кожному продукту серії Express. Вона призначається в основному для навчання розробників, це не зовсім традиційна документація MSDN Library. Частина цієї документації навіть посилається на відеоматеріали і презентації на сайті MSDN, що вельми коштовно.

Продукт Visual Web Developer 2008 Express Edition особливо хороший. Visual Web Developer 2008 Express має дві істотні переваги перед Frontpage: перше - можна відкривати і приховувати сегменти кодів, залишаючи відкритими лише ті частини коду, які потрібні для роботи; друге - для створення локального Web-сайта не потрібний Web-сервер Microsoft IIS. Так, Visual Web Developer 2008 Express Edition працює з сайтами IIS, FTP і Windows Sharepoint Services, але також можна створити повнофункціональний Web-сайт з порожньої Web-папки.

Обмеження існують в Express версіях: відсутній доступ до видалених даних; ці версії використовують лише локально встановлене джерело даних (включаючи безкоштовний продукт SQL Server 2008 Express Edition). Розробляти додатки для мобільних пристроїв в VB Express, Visual C# Express або Visual C Express не можна; необхідно буде відновити їх до Visual Studio 2008 Standard Edition, щоб дістати такі можливості. Звичайно, відсутні всі професійні можливості версій Visual Studio Team System, наприклад, моделювання додатків і кодів, перевірка модулів, статичний аналіз коду і т.д.

Продукти Express Edition уроздріб коштують всього 49 дол. за редакцію. Це вигідно для будь-якого розробника-початківця. Microsoft не чекає величезної прямої прибули від цих продуктів, добиваючись того, щоб вони стали відкритими для ширшої аудиторії. Ерік Раддер, віце-президент Microsoft, пояснив: "Це дійсно веде до розширення бази користувачів. Ми намагаємося розширити комерційну екосистему Microsoft. Дешеві і доступні продукти допоможуть початківцям і студентам підвищити свою кваліфікацію в простому і зручному середовищі".

Microsoft Visual Studio .NET - це інтегроване середовище розробки (Integrated Development Environment (IDE)) для створення, документування, запуску і відладки програм, написаних на мовах .NET. Це могутній інструмент професійної розробки складних додатків. Набір його функцій надзвичайно великий, розглянемо його основні елементи.

Коли ми запускаємо Visual Studio .NET, то бачимо наступне вікно:

Рис. 3.1 Головне вікно середовища розробки

Початкова сторінка (Start Page) містить наступні вкладки: Projects, Online Resources і My Profile. За умовчанням ми знаходимося на вкладці Projects, на якій розташований список недавніх проектів. Ми можемо перейти по гіперпосиланню від назви проекту і відразу продовжити роботу над ним. На цій же вкладці розташовані кнопки New Project і Open Project, по натисненню на які ми запустимо діалогові вікна створення нового або відкриття існуючого документа відповідно.

На вкладці Online Resources відображаються групи новин, заголовки і посилання ресурсів розробників. Ця опція доступна, коли комп'ютер підключений до Інтернету.

Вкладка My Profile дозволяє налаштувати інтерфейс Visual Studio .NET по своєму смаку. Якщо є досвід роботи з іншими пакетам розробки, то можна вибрати звичну розкладку клавіатури, розташування вікон в цій категорії. Тут же можна задати дію при запуску, наприклад, відкриття діалогового вікна створення проекту.

Рис. 3.2 Визначення дії при запуску програми

Панелі, що ховаються, розташовані з боків вікна, - такі як зображені на рис. 3.1 Server Explorer або Toolbox, - можна висунути, просто клацнувши на них. Ми можемо закріпити їх на екрані, натиснувши на значок, або зовсім прибрати з екрану, а потім знову відобразити, використовуючи відповідний пункт меню View (або еквівалентне поєднання клавіш).

Головне вікно Visual Studio.NET, подібно до інших додатків Windows, містить рядок меню, що включає наступні категорії (коли ми знаходимося на Start Page, частина категорій не видно - вона з'явиться пізніше, коли буде створений проект):

Рис. 3.3 Рядок меню Visual Studio.NET

У цих категоріях розташовані наступні команди:- відкриття, створення, додавання, закривання, друк і інш.- стандартні команди правки: копіювання, вставка, вирізування і інш.- команди для утаєння і відображення всіх вікон і панелей інструментів.- команди для роботи з проектом: додавання елементів, форм, посилань і інш.- команди компіляції програми.- команди для відладки програми.- команди для роботи з даними.- команди форматування елементів, що розташовуються (вирівнювання, інтервал і інш.).- команди додаткових інструментів і настройки Visual Studio .NET.- управління розташуванням вікон.- довідка.

3.2 Форми


Всякий раз, коли ми працюємо з якою-небудь програмою, ми бачимо на екрані прямокутне вікно. У цьому вікні і розташовується вся інформація, яка нам потрібна. Форми можуть мати стандартний вигляд, такий, наприклад, як у програми Microsoft Word. Отже, форма - це екранний об'єкт, що забезпечує функціональність програми.

Запускаємо Visual Studio .NET, вибираємо File/New/Project - з'являється діалогове вікно (Ctrl+Shift+N приводить до того ж результату), в якому вибираємо Visual C# Project і Windows Application.

Рис. 3.4 Створення нового проекту

У полі Name задаємо ім'я проекту - FirstForm і зберігаємо його в теку, визначувану полем Location. Одержану теку ви зможете згодом перемістити на інший комп'ютер і продовжити роботу - в ній знаходитимуться всі створювані нами файли цього проекту. На екрані з'явилася порожня Windows-форма. Після того, як ми створили новий проект, можна побачити основні частини середовища розробки (Рис. 3.5).

Рис. 3.5 Головне вікно програми в режимі розробки

 

.3 Вікно «Провідник проекту»


Вікно Solution Explorer (провідник проекту, View -> Solution Explorer, або поєднання клавіш Ctrl+Alt +L) містить компоненти, що входять до складу проекту. Пункти контекстного меню цього вікна (що викликається натисненням правої кнопки миші) дозволяють змінювати вміст проекту, а також додавати нові компоненти.

Рис. 3.6 Контекстне меню вікна Solution Explorer

При створенні нового проекту Solution Explorer містить компоненти, створені шаблоном.

Рис. 3.7 Компоненти, що входять до складу нового додатку

Каталог References містить посилання на класи, використовувані в проекті за умовчанням. Подвійне клацання миші на підкаталогах References запускає вікно Object Browser (провідник об'єктів, View -> Object Browser, або поєднання клавіш Ctrl+Alt+J). Вікно Object Browser, у свою чергу, є вичерпним засобом отримання інформації про властивості об'єктів. Так абстрактний клас brush успадковується від класу System.MarshalByRefObject і містить методи Clone, Dispose(bool), Dispose і Finalize.

Рис. 3.8 Вікно Object Browser

Можна одержувати короткий опис будь-якого методу, класу або властивості, просто клацнувши на ньому, - на інформаційній панелі негайно відобразиться коротка довідка. Для досвідченого розробника Object Browser - незамінний помічник в роботі, набагато зручніший, ніж довідка.

Файл App.ico містить зображення іконки, яке на формі розташоване у верхньому лівому кутку. Файл AssemblyInfo.cs містить інформацію про наш додаток. При створенні дистрибутива в цей файл поміщається інформація програми, використовувана в технічних цілях, а також цифровий ключ.

 

.4 Вікно Class View


Вікно Class View - (огляд класів, View -> Class View, або поєднання клавіш Ctrl+Shift+C), дозволяє переміщатися в коді по вибраному об'єкту; містить методи, класи, дані всього лістингу проекту. Для переходу, наприклад, в метод Main клацаємо на відповідній назві у вікні Class View.

Рис. 3.9 Вікно Class View. Дозволяє швидко переміщатися за кодом всього проекту

 

.5 Вікно Properties Window


Вікно властивостей Properties - основний інструмент настройки форми і її компонентів. Вміст цього вікна є всім списком властивостей вибраного в даний момент компоненту або форми. Викликається це вікно декількома способами - в меню View вибираємо пункт Properties Window (або використовуємо клавішу F4), на вибраному об'єкті клацаємо правою кнопкою миші і в контекстному меню пункт Properties вибираємо об'єкт і натискаємо F4 або просто вибираємо об'єкт і переходимо у вікно Properties. Коли ми тільки створили проект, у вікні Properties відображаються властивості самої форми.

Рис. 3.10 Вікно властивостей Properties

 

.6 Вікно панелі інструментів


Вікно Toolbox (панель інструментів, View -> Toolbox, або поєднання клавіш Ctrl+Alt+X) містить компоненти Windows-форм, звані також елементами управління, які розміщуються на формі. Воно складається з декількох закладок: My User Controls, Components, Data, Windows Forms і General:

Рис. 3.11 Вікно Toolbox

Закладкою, що найбільш часто вживається, є Windows Forms. Для розміщення потрібного елементу управління досить просто клацнути на ньому у вікні Toolbox або, схопивши, перетягнути його на форму. Перемикання виду значків дозволяє розмістити їх без смуги прокрутки.

Рис. 3.12 Представлення елементів у вигляді списку

Рис. 3.13 Представлення елементів у вигляді значків

У вікні Toolbox доступно відображення всіх закладок.

Рис. 3.14 Встановлюємо галочку "Показати всі закладки"

Рис. 3.15 Повний список закладок

Закладка My User Controls дозволяє зберігати власні списки елементів управління:

Рис. 3.16 Додавання закладки

Рис. 3.17 Власна закладка "Моя закладка для First Form"

Рис. 3.18 Відновлення значень за умовчанням

Створені таким чином закладки можна перейменувати або видалити, вибравши в контекстному меню пункти Rename Tab і Delete Tab відповідно.

Якщо в результаті всіх експериментів ми побачимо, що поточний вид вікна Toolbox сильно відрізняється від первинного, для відновлення значень за умовчанням виберіть в контекстному меню будь-якої закладки пункт Add/Remove Items. У вікні, що з'явилося, натисніть на кнопку Reset. З'являється вікно попередження - "Настройки Toolbox будуть відновлені. Всі призначені для користувача закладки будуть видалені. Продовжувати?" Погодившись з попередженням, ви побачите вид Toolbox за умовчанням.

Всі закладки, окрім Clipboard Ring і General, містять компоненти, які можна перетягнути на форму. Закладка Clipboard Ring є аналогом буфера обміну в Microsoft Office 2003, буфера, що відображає вміст, за декілька операцій копіювання або вирізування. Для вставки фрагмента достатньо двічі клацнути по ньому. Продуктивність розробки додатку багато в чому залежить від зручності настройки призначеного для користувача середовища. Одним з ергономічних варіантів вважається загальне розташування вікон, що ховаються, що не захаращує головну частину проекту.

Рис. 3.19 Ергономічне розташування вікон, що максимально звільняє робочу область

3.7 Режими дизайну і коду


При створенні нового проекту запускається режим дизайну - форма є основою для розташування елементів управління. Для роботи з програмою слід перейти в режим коду. Це можна зробити декільком способами: клацнути правою кнопкою миші в будь-якій частині форми і в меню, що з'явилося, вибрати View Code, у вікні Solution Explorer зробити те ж саме на компоненті Form 1.cs або просто двічі клацнути на формі - при цьому згенерується метод Form1_Load. Після хоч би одноразового переходу в режим коду в цьому проекті з'явиться вкладка Form1.cs*, натискаючи на яку, теж можна переходити в режим коду. Для переходу в режим коду також можна використовувати клавішу F7, а для повернення в режим дизайну - поєднання Shift+F7.

Перемкнемося в режим коду і розглянемо деякі блоки.

Даний блок визначає, які простори імен використовуються в цьому проекті:System;System.Drawing;System.Collections;System.ComponentModel;System.Windows.Forms;System.Data;

Для проглядання інформації про вміст кожного з цих просторів можна скористатися вікном Object Browser.

Далі визначається власний простір імен, ім'я якого співпадає з назвою проекту:FirstForm

При необхідності цю назву можна міняти.

Клас форми Form1, успадкований від System.Windows.Forms.Form, містить в собі майже весь код:class Form1 : System.Windows.Forms.Form

{

... }

Усередині цього класу знаходиться конструктор форми:Form1()

{

//

// Required for Windows Form Designer support

//

InitializeComponent();

//

// TODO: Add any constructor code after InitializeComponent call

//

}

Подія Initiliaze відбувається у момент запуску додатку; код, що додається після InitializeComponent, може змінювати вміст форми або елементи управління у момент запуску.

Область Windows Form Designer generated code містить код графічного інтерфейсу елементів управління і форми, що автоматично генерується середовищем. Порожня форма містить опис розмірів і заголовка. Клацнемо на знак (+) для перегляду це області:

#region Windows Form Designer generated code

/// <summary>

/// Required method for Designer support - do not modify

/// the contents of this method with the code editor.

/// </summary>void InitializeComponent()

{

this.components = new System.ComponentModel.Container(); .Size = new System.Drawing.Size(300,300); // розмір форми в пікселях.Text = "Form1";// заголовок форми.

}

#endregion

Можна міняти значення параметрів, що створюються середовищем, і тоді зміни негайно відіб'ються на графічному інтерфейсі. Концепція області Windows Form Designer generated code схожа з концепцією WYSIWYG 1) редакторів HTML-коду, де можна розміщувати компоненти перетяганням, а середовище само генерує HTML-код.

Метод Main реалізує головну точку входу в програму - тобто місце, звідки починається виконання написаного нами коду:void Main()

{

Application.Run(new Form1());

}

При відладці великих програм зручно використовувати нумерацію рядків, яку можна включити в пункті меню Tools/Options./Text Editor/C# - на формі Display - перемикач Line Numbers.

Рис. 3.20 Відображення нумерації рядків коду

При довгій роботі над кодом контрастні чорні букви на білому фоні викликають втому, тому бажано як фоновий колір встановити інший - наприклад, сірий. Це можна зробити в Options на вкладці Environments/Font and Colors.

Рис. 3.21 Вкладка Environments/Font and Colors. Тут же можна змінити шрифт коду - наприклад, встановити Times New Roman

В результаті режим коду приймає наступний вигляд:

Рис. 3.22 Ергономічний вид режиму коду

 

.8 Властивості проекту


Розглянемо властивості проекту. У вікні Solution Explorer виділяємо назву проекту - FirstForm, клацаємо правою кнопкою миші і вибираємо в меню пункт Properties. У вікні, що з'явилося, містяться всі властивості поточного проекту.

Рис. 3.23 Вікно Common Properties / General

У вікні властивостей міститься досить багато параметрів. Розглянемо деякі, найбільш вживані.

Вкладка Common Properties / General включає наступні властивості:Name - назва збірки.Type - тип компільованого додатку. За умовчанням для Windows-додатків стоїть Windows Application.Namespace - назва простору імен в коді. За умовчанням співпадає з ім'ям проекту.Object - назва класу, що містить точку входу в програму - метод Main.Icon - шлях до файлу з іконкою додатку.File - ім'я файлу з інформацією про проект. Знаходиться усередині каталогу з проектом;Folder - шлях до файлу з проектом.File - назва файлу, що створюється при компіляції, - вихідного файлу. Співпадає з ім'ям проекту.

На вкладці Configuration Properties / Build розглянемо деякі властивості.

Рис. 3.24 Вікно Configuration Properties / Build

Code - оптимізація програми, значення цієї властивості true може значно збільшити продуктивність додатку.Unsafe Code Blocks - вирішити використання ключового слова unsafe в коді проекту.Level - рівень попереджень, що відображаються при компіляції програми.Warnings As Errors - сприймати всі попередження як помилки. Якщо оголосити змінну в коді, але ніде не використовувати її, при значенні цієї властивості False додаток скомпілюється, при значенні True - ні.Path - шлях, де формується вихідний файл. Тека bin знаходиться усередині теки проекту.Debugging Information - виводити інформацію при відладці. Ця властивість повинна бути включена: саме ці повідомлення допомагають виправляти код.

 

.9 Компіляція програми


Для перевірки програми використовуються два способи відладки. Перший спосіб - Build Solution, який перевіряє код і компілює програму, не запускаючи її. Це дуже зручно, коли ви працюєте над окремим модулем великої розробки, і немає можливості перевіряти весь продукт в цілому. Для запуску цього способу вибираємо в головному меню пункт Build -> Build Solution (або поєднання клавіш Ctrl+Shift+B).

Рис. 3.25 Пункт головного меню Build

При цьому з'являється вікно Output, в якому виводиться інформація про всі стадії компіляції.

Рис. 3.26 Вікно Output, додаток не містить помилок

Якщо в коді є помилки, вікно Output виведе повідомлення про помилки, потім з'явиться їх список, причому для відладки достатньо двічі клацнути на відповідній помилці для переходу до потрібної ділянки коду:

Рис. 3.27 Вікно Output, в коді не вистачає фігурної дужки

Інший спосіб компіляції програми - Debug, при якому перевіряється код, компілюється програма і формується призначений для користувача інтерфейс.

Рис. 3.28 Пункт головного меню Debug

Для запуску цього способу натискаємо клавішу F5. На екрані знову з'являється вікно Output, що інформує нас про хід компіляції. Якщо додаток не містить помилок, то на екрані з'явиться готова форма:

Рис. 3.29 Додаток запущено

При запуску додатку в каталозі bin\Debug усередині каталогку проекту виникає файл FirstForm.exe і файли, необхідні для відладки. Файл FirstForm.exe і є готовий додаток. Готовий додаток для розповсюдження необхідно скомпілювати в режимі Release - тоді з'явиться каталог bin\Release, яка міститиме тільки FirstForm.exe. Ми можемо просто скопіювати його на інший комп'ютер, і якщо там є .NET Framework, все працюватиме.

У меню Debug також розташовані всі засоби для покрокової відладки коду, які ми вже зустрічали при роботі з консольними додатками.

Яка різниця між компіляціями Build і Debug? Припустимо, що ми розробляємо додаток, який підключатиметься до бази даних на видаленому комп'ютері, недоступному у момент розробки. Додаток одержуватиме дані відразу ж при запуску. Для відладки коду програми зручніше використовувати режим Build, оскільки відладка в режимі Debug супроводжуватиметься повідомленнями про помилки, що виникають із-за неможливості підключення до іншого комп'ютера. Саме підключення також займатиме якийсь час.

Якщо ж ми розробляємо локальний додаток, режим відладки Debug є зручнішим. Далі, коли ми запускатимемо додатки, матися на увазі буде саме цей режим.

Як мова програмування для реалізації поставленого завдання була обрана C#. Склад розробленого програмного комплексу:

·        VideoCatalog.exe: клієнтьска частина программи каталогу відео файлів;

·        Interop.WMPLib.dll: бібліотека видаленої взаємодії клієнтської частини програми та інтегрованого плеєра.

·        AxInterop.WMPLib.dll: клієнтська бібліотека видаленої взаємодії.

Мінімальні системні вимоги:

·        IBM-сумісний комп'ютер, не нижче Pentium I-200ММХ, RAM-32Mb, SVGA-800*600*16bit

·        Операційна система Windows 98/ME/2000/XP;

·        Вільний простір на жорсткому диску не менше 5Мб.

Технічні характеристики програми:

·        програма не вимагає інсталяції;

·        програму можна запускати з будь-якого зручного користувачу каталога, оскільки при запуску програма робить каталог, в якому знаходиться, поточним;

4.2 Опис логіко-функціональної структури та алгоритмів роботи системи


Зберігання відеофайлів і доступ до них здійснюється по наступній схемі:

Рис. 4.1 Схема доступу до каталогу відеофільмів

Тут представлена схема видаленого доступу до каталогу учбових фільмів, яка використовується в мультимедійних класах.

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

Система передбачає пошук файлів з тематики і назви. При цьому тематика і короткий опис фільму міститься в супровідному файлі, який розташований в тому ж каталозі, що і відеофайл, має таку ж назву і розширення inf.

Структура каталогу, де зберігаються відеофайли має наступний вигляд:

Рис. 4.2 Структура каталогу, де зберігаються відеофайли

Як ми бачимо, кожному навчальному фільму привласнений свій номер в реєстрі. Назва теки і файлів, які вона містить, співпадають з цим номером.

Пошук відеофайлів по ключовому слову в описі здійснюється по наступному алгоритму:

Рис. 4.3 Алгоритм пошуку файлу по ключовому слову

 

.3 Опис інтерфейсу користувача системи


При старті програми на екрані з'являється робоче вікно програми (рис 4.4):

Рис 4.4 Робоче вікно програми

Програма має стандартний інтерфейс Windows. У лівій частині робочого вікна розташовано дерево каталогів відео-файлів доступних для перегляду. Весь каталог відсортований за абеткою (рис 4.5).

Рис 4.5 Дерево каталогу відео-файлів

У правій нижній частині головного вікна програми розташований блок опису виділеного файлу (рис 4.6):

Рис 4.6 Блок опису виділеного файлу

У випадку якщо необхідно швидко знайти який-небудь файл по його імені або опису в програмі передбачений пошук (рис 4.7)

Рис 4.7 Блок пошуку

Всі файли що задовольняють параметрам пошуку будуть відображені в каталозі «Знайдено» в дереві каталога (рис 4.8)

Рис 4.8 Відображення результатів пошуку

По подвійному кліку на вибраному файлі розташований в центральній частині головного вікна програми відеоплеєр, почне відтворення даного файлу (рис 4.9)

Рис 4.9 Вбудований відеоплеєр

При бажанні можна розвернути зображення на весь екран.

4.4 Програмна реалізація та опис основних процедур і функцій розробленої системи

При старті програми формується дерево каталога відео-файлів першого рівня, тобто без формування вкладених каталогів, при цьому виконується наступний код:

private void Form1_Load(object sender, EventArgs e)

{.BeginUpdate();node = new TreeNode("Знайдено");.Tag = "dir";.ImageIndex = 0;.SelectedImageIndex = 1;.Nodes.Add(node);

{diRoot;= new DirectoryInfo(root);[] dirs = diRoot.GetDirectories();(DirectoryInfo dir in dirs)

{subNode = new TreeNode(dir.Name);.Tag = "dir";.ImageIndex = 0;.SelectedImageIndex = 1;.Nodes.Add(subNode);

}

}{ ;    .EndUpdate();.Text = "Ready";

}

При переміщенні курсора по директоріях каталогу відбувається наповнення вмістом виділеного каталога. Даний метод дозволяє нам заощадити час на завантаженні повного дерева каталога і при цьому ми завжди можемо побачити только-то додані файли.

private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)

{(treeView1.SelectedNode.Tag.ToString() == "dir")

{(e.Node);(e.Node.Nodes.Count > 0)

{.Node.Expand();

}

}

.Text = "";

{str;path = treeView1.SelectedNode.FullPath.ToString() + ".inf";(treeView1.SelectedNode.Parent.Text == "Знайдено")

{= new StreamReader(treeView1.SelectedNode.Tag.ToString() + ".inf");

}{ str = new StreamReader(root + path); }.Text = str.ReadToEnd();.Close();

}{ ;   

}

В тому разі якщо виділений блок не є каталогом, а є файлом відбувається заповнення блоку опису виділеного файлу.

private void AddDirectories(TreeNode tnSubNode)

{.BeginUpdate();

{diRoot;= new DirectoryInfo(root + tnSubNode.FullPath);[] dirs = diRoot.GetDirectories();[] theFiles = diRoot.GetFiles("*.asf");.Nodes.Clear();(DirectoryInfo dir in dirs)

{subNode = new TreeNode(dir.Name);.Tag = "dir";.ImageIndex = 0;.SelectedImageIndex = 1;.Nodes.Add(subNode);

}(FileInfo theFile in theFiles)

{subFileNode = new TreeNode(theFile.Name);.Tag = "file";.ImageIndex = 2;.SelectedImageIndex = 2;.Nodes.Add(subFileNode);

}

}{ ;    .EndUpdate();

}

При подвійному кліці на вибраному файлі відбувається передача його адреси у відеоплеєр і подальше програвання.

private void treeView1_DoubleClick(object sender, EventArgs e)

{(treeView1.SelectedNode.Tag.ToString() != "dir")

{(treeView1.SelectedNode.Parent.Text == "Знайдено"){.URL = treeView1.SelectedNode.Tag.ToString();

}else{.URL = root + treeView1.SelectedNode.FullPath.ToString();

}

.Text = treeView1.SelectedNode.FullPath.ToString();

}

}

При використанні пошуку алгоритм роботи його діє таким чином: спочатку перевіряє збіг на ім'я файлу

private void textBox1_TextChanged(object sender, EventArgs e)

{(textBox1.Text.Length > 0)

{

{.Nodes[0].Nodes.Clear();diRoot;= new DirectoryInfo(root);[] dirs = diRoot.GetDirectories();(DirectoryInfo dir in dirs)

{_dir(root + "" + dir.Name + "\");

}(treeView1.Nodes[0].Nodes.Count > 0)

{.Nodes[0].Expand();

}

}{ ;   

}

{.Nodes[0].Nodes.Clear();.Nodes[0].Collapse();

}

А потім проводить пошук в змісті файлу опису, і якщо був збіг додає знайдений файл в каталог «Знайдено»

private void get_dir(string path)

{diRoot;= new DirectoryInfo(path);[] dirs = diRoot.GetDirectories();[] theFiles = diRoot.GetFiles("*.asf");(FileInfo theFile in theFiles)

{r = new Regex(textBox1.Text);m = r.Match(theFile.Name);add = false;(m.Success)

{= true;

}

{

{str = new StreamReader(theFile.FullName + ".inf");intoTheFile = str.ReadToEnd();= r.Match(intoTheFile);(m.Success)

{= true;

}

}{ }

}(add)

{subFileNode = new TreeNode(theFile.Name);.Tag = theFile.FullName;.ImageIndex = 2;.SelectedImageIndex = 2;.Nodes[0].Nodes.Add(subFileNode);

}

}(DirectoryInfo dir in dirs)

{_dir(path + "" + dir.Name + "\");

}

}

5. ЕКОНОМІЧНЕ ОБҐРУНТУВАННЯ ДОЦІЛЬНОСТІ РОЗРОБКИ ПРОГРАМНОГО ПРОДУКТУ


5.1 Організаційно-економічна частина


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

Основним моментом для розробника, з економічної точки зору, є процес формування ціни. Програмні продукти є вельми специфічним товаром з безліччю властивих ним особливостей. Багато їх особливостей виявляються і в методах розрахунків ціни на них. При розробці програмного продукту середньої складності потрібні вельми незначні засоби. Але при цьому він може дати економічний ефект, що значно буде значно перевищувати ефект від використання достатньо дорогих систем.

Слід зазначити, що у програмних продуктів практично відсутній процес фізичного зносу і старіння . Для них основні витрати йдуть на розробку зразка, тоді як процес тиражування є, зазвичай, порівняно нескладну і недорогу процедуру копіювання магнітних носіїв і супроводжуючої документації. Таким чином, цей товар володіє ринковою вартістю, що формується на базі попиту і пропозиції на дану продукцію.

5.2 Економічне обґрунтування необхідності розробки


Економічна доцільність розробки полягає в економії трудовитрат в порівнянні з ручною обробкою і отриманні достовірнішої інформації за коротший час.

Для роботи конфігурації необхідно:

Персональний комп’ютер на базі Intel процесору з частотою не менше 2.4 Ггц, з ОЗУ рівним 512Мб, оснащена SVGA - відеоадаптером і монітором 17 дюймів.

Таблиця 5.1 Вартість устаткування

№п/п

Найменування

Марка

К-ть

Ціна

Сума

1

ЕОМ (зі встановленою операційною системою Windows XP)


1

3700.15

3700.15

2

Джерело безперебійного живлення

APC Back-Bk500 EI

1

343.00

343.00


Разом:

4043,15


Система була реалізована в середовищі Microsoft Visual Studio 2008 на мові програмування C#. Використане при розробці середовище програмування є безкоштовним.

Таблиця 5.2 Матеріали для роботи

№ п/п

Найменування

Норма витрати на виріб

Ціна

Сума

1

Компакт диски

5

3

15

2

Література

1

1

127,2


Разом:



142.2


Вартість устаткування збільшується на вартість транспортування - 10% і вартість монтажа- 15%. Разом вартість устаткування складе:

Соб = 4043,15+404,32+606,47=5053,94

Амортизація комп'ютера складає 15% в квартал від залишкової вартості, тобто А = Фост × Н, де Фост - залишкова вартість відповідно групи ОФ на початок кварталу. На - норма амортизації. квартал 5053,94 х 0.15 = 758,09

II квартал (5053,94 -758,09) х 0.15 = 644,37

III квартал (5053,94 -758,09 - 644,37) х 0.15 = 547,72

IV квартал (5053,94 -758,09 - 644,37 - 547,72) х 0.15 =465,56

Разом річна амортизація складе: 2415,74

Матеріали для роботи списуються у міру витрат.

Витрати на електроенергію:

Е = N х В х t,

де N - споживана об'єктом потужність від мережі (кВт/час) - Тариф на електроенергію- Регламентований час роботи об'єкту протягом року. ч/год.

В= кількість робочих днів в році х 8 годин =251 х 8 = 2008 (годин)

Е = 0,30 х 2008 х 0,24 = 144,58 грн./год.

Нормативне споживання електроенергії комп'ютером - 300 вт/година або 0,3 квт/час. Вартість 1 кВт електроенергії для підприємства 24 копійки або 0,24 грн.

Розрахунок заробітної плати:

Для розробки, тестування, впровадження і супроводу системи програмістові необхідні 15 робочих днів в році.

Таблиця 5.3 Співробітники

№п/п

Найменування посад

Посадовий оклад грн./місяць

Трудомісткість виконання

Сума зарплати

1.

Інженер - програміст

1800

15 днів

900


Кількість робочих днів в році визначається по формулі:

Тт = Тр -(Твн)

де Тн - кількість святкових днів в році;

Тр - кількість днів в році;

Тт - кількість днів в тиждень;

Тв - кількість вихідних днів в році;

Тт =365 - ( 104+10) =251

Кількість робочих днів в місяць: 21.

Розрахунок заробітної плати:

Середня денна заробітна платня = 1800 : 21 = 86 грн., за виконання завдання виплачується премія у розмірі 50%

Сума премії = Зп. Х П% =900 х 0,5 = 450

Разом зарплата інженера програміста: 900 + 450 =1350

Нарахування на зарплату складають:

,2% - пенсійний фонд;

,4% - соціальне страхування;

.6% - відрахування до державного фонду зайнятості на випадок безробіття;

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

Разом нарахування на соціальні потреби: 37,2%, що дорівнює 1350*37,2/100=502,2

Зарплата інженера - програміста з нарахуваннями на соціальні потреби.

Зп. відр = 1350 + 502,2= 1852,2

Раніше роботу виконували 2 лаборанта. Було звільнено 1 лаборанта, таким чином залишився працювати 1 робітник.

Таблиця 5.4 Економія заробітної плати


Кількість робітників

Місячна з/пл грн.

Премія 20%

Разом за рік

Заробітна плата

1

800

200

14400

Нарахування на соціальні потреби (37,2 %)

1



5356,8

РАЗОМ:

19756,8


Економія за рахунок зниження трудомісткості виконуваної роботи =

,8- 1852,2 =17904,6;

а річний ефект рівний:

,6 - річна амортизація - поточні витрати на матеріали - споживана електроенергія.

Е річн.еф. = 17904,6 - 2415,74 -142,2- 144,58 = 15202,08 грн.

де К- капітальні витрати, рівні 4043,15

= 0,3 року.

- це термін окупності витрат.

Таким чином, впровадження розробленого програмного продукту є економічно доцільним.

6. Охорона праці


Охорона праці - система законодавчих актів, постанов, організаційних, санітарних, технічних мір, що забезпечують безпечні для здоров'я умови праці на робочому місці. Науково-технічний прогрес вніс зміни в умови виробничої діяльності працівників розумової праці. Їхня праця стала більш інтенсивною, напруженою, потребуює витрат розумової, емоційної й фізичної енергії.

Це має пряме відношення до фахівців, пов'язаних із проектуванням, розробкою, експлуатацією, супроводом і модернізацією автоматизованих систем керування різного призначення.

На робочому місці користувача повинні бути створені умови для високопродуктивної праці. У цьому розділі будуть розглянуті основні фактори, що на ці умови мають вплив та необхідні заходи, згідно законодавства, направлені на поліпшення умов праці. У цей час все більше застосування знаходять автоматизовані робочі місця, які оснащуються персональною ЕОМ і графічним дисплеєм, клавіатурою і принтером, тому охорона праці у цій галузі має свої особливості.

Законодавство України про охорону праці базується на:

Конституція України, яка гарантує права громадян на працю, відпочинок, охорону здоров’я, медичну допомогу і страхування;

Закон України „Про охорону праці”, де вказано, що державна політика в області охорони праці базується на пріоритеті життя і здоров’я людей в умовах їх трудової діяльності. Відповідальність за створення нормальних і безпечних умов труда несе роботодавець незалежно від форми власності підприємства чи установи які здійснюють розробку виробництва та застосування ПЕОМ і ПК;

Норми штучного та природного освітлення визначені СНіП;

Закон України „Про забезпечення санітарного та епідемічного благополуччя населення” де вказані основні вимоги гігієни та санітарії;

Параметри мікроклімату на робочих місцях регламентовані Держстандартом і ДСН;

Категорія робіт по величині загальних енерговитрат встановлена ДСН;

Закон України „Про загальнообов’язкове державне соціальне страхування від нещасного випадку на виробництві та професійного захворювання, які спричинили втрату працездатності”, який гарантує право трудящих на соціальний захист і компенсацію постраждалим матеріальних втрат при травмуванні і професійного захворювання;

Кодекс законів про працю (КЗпП) де викладені окремі вимоги охорони праці;

Пожежна безпека викладена в законі України „Про пожежну безпеку” і „Правила про пожежну безпеку в Україні”

Крім того є ряд Державних стандартів, правил, норм, інструкцій та інших нормативних документів, регламентуючих питання охорони праці.

6.1 Аналіз шкідливих і небезпечних виробничих факторів при роботі на комп’ютері


Фактори виробничого середовища впливають на функціональний стан і працездатність оператора. Наразі загальноприйнятою є класифікація небезпечних і шкідливих чинників, які згідно ДОСТ 12.0.003-74 по характерним видам дій на організм людини, підрозділяються на фізичні, хімічні, біологічні і психофізіологічні.

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

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

До психофізичних небезпечних і шкідливих виробничих факторів можна віднести: фізичні перевантаження (статичні й динамічні), нервово-психічні перевантаження (розумова напруга й перенапруга, монотонність праці, емоційні перевантаження, стомлення, емоційний стрес, емоційне перевантаження).

Значним фізичним фактором є мікроклімат робочої зони, особливо температура й вологість повітря.

Згідно з інструкцією по проектуванню будівель і приміщень для електронно-обчислювальних СН 512-78 будівлі і приміщення для ЕОМ повинні бути обладнані системами центрального опалювання, кондиціонування повітря, протипожежного водопроводу, гарячого водопостачання, каналізації.

Мікроклімат на робочому місці характеризується: температурою, відносною вологістю, швидкість руху повітря на робочому місці, інтенсивністю теплового випромінювання, барометричним тиском.

Відповідно до ДОСТ 12.1.005-88 нормовані параметри мікроклімату підрозділяються на оптимальні і допустимі.

Оптимальні параметри мікроклімату - таке поєднання температури, відносної вологості і швидкості повітря, яке при тривалій і систематичній дії не викликає відхилень в стані людини.

Допустимі параметри мікроклімату - таке поєднання параметрів мікроклімату, яке при тривалій дії викликає тимчасові зміни в стані людини.

Норми мікроклімату зазначені у санітарних нормах мікроклімату виробничих приміщень ДСН 3.3.6.042-99.

Шум - це безладне поєднання звуків різної частоти і інтенсивності. Шум виникає при механічних коливаннях в твердих, рідких і газоподібних середовищах. Механічні коливання з частотами 20 - 20 000 Гц сприймаються слуховим апаратом у вигляді чутного звуку. Коливання з частотою нижче 20 і вище 20 000 Гц не викликають слухових відчуттів, але надають шкідливу біологічну дію на організм людини. Шум погіршує умови праці, впливаючи на організм людини. При тривалому впливі шуму на організм людини відбуваються небажані явища: знижується гострота зору, слуху, підвищується кров'яній тиск, знижується увага. Сильний тривалий шум може бути причиною функціональних змін серцево-судинної й нервової систем, що приводить до захворювань серця й підвищеної нервозності.

Раціональне освітлення є одним з найважливіших чинників попередження травматизму і професійних захворювань. Правильно організоване освітлення створює сприятливі умови праці, підвищує працездатність і продуктивність праці. Освітленість виробничих, службових і допоміжних приміщень регламентується будівельними нормами і правилами (СНіП II-4-79) і галузевими нормами.

Освітлення на робочому місці повинне бути таким, щоб працівник міг без напруги зору виконувати свою роботу. Стомлюваність органів зору залежить від ряду причин - недостатність освітленості, надмірна освітленість, неправильний напрям світла.

Недостатність освітлення приводить до напруги зору, ослабляє увагу, наступає передчасна втома. Яскраве надмірне освітлення викликає засліплення, роздратування і різь в очах. Неправильний напрям світла на робоче місце може створювати різкі тіні, відблиски і дезорієнтувати. Всі ці причини можуть привести до нещасного випадку і профзахворювань.

Для штучного освітлення використовуються електричні лампи накалу і люмінесцентні лампи. Люмінесцентні лампи в порівнянні з лампами накалу мають істотні переваги: по спектральному складу світла вони близькі до природного денного освітлення, мають вище ККД, підвищений термін служби.

Шкідливий вплив на людину має електромагнітне поле. Електромагнітне поле великої інтенсивності призводить до перегріву тканин, впливає на органи зору і органи статевої сфери.

Нормованим параметром електромагнітного поля в діапазоні частот 60 КГц - 300 МГц, згідно з ДОСТ 12.1.006-84, є граничне допустиме значення складових напруг електричних і магнітних полів.

Перевищення цих значень призводить до виникнення депресії, стресового стану, головного болю, безсоння, подразнення шкіри, хвороби суглобів і розвиток синдрому "хронічної втоми". Тривале знаходження людини в полі системного блоку комп'ютера негативно впливає на його психіку. Рівень цих полів зазвичай перевищує біологічно безпечний, причому їх випромінювання впливає на людину на відстані до 2,5 м від передньої панелі системного блоку.

Спектр випромінювання комп'ютерного монітора містить у собі рентгенівську, ультрафіолетову й інфрачервону області, а також широкий діапазон електромагнітних хвиль інших частот. Електромагнітні хвилі мають незвичайну властивість: небезпека їхнього впливу зовсім не обов'язково зменшується при зниженні інтенсивності опромінення, певні електромагнітні поля діють на клітини лише при малих интенсивностях випромінювання або на конкретних частотах.

Дози ультрафіолету не можуть викликати катаракту навіть при дії на протязі всього життя. Після тривалої роботи з комп'ютером можуть виникати такі неприємні відчуття, як "роздратування" очей (червоність, сльозотеча або сухість рогівки), стомлення (загальна втома, біль і тяжкість в очах і голові), труднощі при фокусуванні зору. Можливі також болі в спині і м'язові спазми.

Зорове навантаження зростає через необхідність постійного переміщення погляду з екрану на клавіатуру і паперовий текст.

Людина дистанційно не може визначити, чи знаходиться установка під напругою чи ні. Можливість отримання електротравм має місце не тільки при дотику, але і через напругу кроку і через електричну дугу.

Електричний струм, проходячи через тіло людини надає термічну дію, яка приводить до набряків (від почервоніння, до обвуглювання), електролітичних(хімічне), механічних, які можуть призвести до розриву тканин і м'язів; тому всі електротравми діляться на місцеві і загальні.

Крайній випадок - стан клінічної смерті (зупинка роботи серця і порушення постачання киснем клітин мозку). В стані клінічної смерті знаходяться до 6-8 хв.

Причини поразки електричним струмом (напруга дотику і крокова напруга): дотик до частин, що знаходяться під напругою; дотик до відключених частин, на яких напруга може мати місце у разі залишковому заряді, у разі помилкового включення електричної установки або неузгоджених дій обслуговуючого персоналу, у разі розряду блискавки в електричну установку або поблизу. Також може бути поразка напругою кроку або перебування людини в полі розтікання електричного струму, у разі замикання на землю, поразка через електричну дугу при напрузі електричної установки вище 1кВ, при наближенні на неприпустимо-малу відстань, дія атмосферної електрики при газових розрядах, звільнення людини, що знаходиться під напругою.

Напруга дотику - це різниця потенціалів точок електричного ланцюга, яких людина торкається одночасно, зазвичай в точках розташування рук і ніг.

Напруга кроку - це різниця потенціалів j1 і j2 в полі розтікання струму по поверхні землі між місцями, розташованими на відстані кроку (» 0,8 м).

Спеціальні засоби захисту: заземлення, занулення, захисне відключення.

Захисне заземлення слід виконувати відповідно до ПУЕ і СНіП 3.05.06-85 («Електротехнічні пристрої»).

Ергономічна безпека комп'ютера оцінюється за двома вимогами: до візуальних параметрів дисплеїв (з урахуванням світлового клімату робочого місця) і до емісійних параметрів - випромінювань дисплеїв і ПК.

Вимоги до візуальних параметрів повинні гарантувати комфортність роботи користувача, тобто мінімальне зорове стомлення при заданій точності, швидкості і надійності сприйняття інформації. Саме через особливості зорового сприйняття візуальні вимоги розділені на дві групи:

У першу виділено чотири параметри: яскравість, освітленість, кутовий розмір знаку і кут спостереження, нормування яких в цілях забезпечення ергономічної безпеки комп'ютера взаємозалежно.

Друга - нерівномірність яскравості, відблиски, мигтіння, тремтіння, геометричні і нелінійні спотворення і т.д. (всього більше 20 параметрів) незалежні, і кожен з них може бути окремо заміряний.

Оскільки електромагнітне випромінювання виходить від всіх частин монітора (багато вимірювань показали, що рівень випромінювання з боків і позаду монітора вище, ніж спереду), найбезпечніше встановити комп'ютер в кутку кімнати або в такому місці, де ті, хто на нім не працює, не виявлялися б збоку або ззаду від машини.

Не можна залишати комп'ютер або монітор надовго увімкненим. Якщо комп'ютер не використовується, його слід вимкнути. Це може бути не дуже зручно (і може навіть зробити деякий вплив на термін служби комп'ютера), але все таки це не дуже велика плата за захист від потенційної небезпеки електромагнітного поля.

Діти і вагітні жінки повинні проводити за комп'ютером не більше декількох годин в день. Рекомендації більшості лікарів зводяться в основному до обмеження часу роботи за комп'ютером, обов'язкові паузи під час роботи та інше.

Нерівномірність і складна форма розподілу змінних електромагнітних полів у ряді випадків може представляти велику небезпеку опромінювання для сусідів по робочому приміщенню, ніж для користувача даного ПК.

Монітори комп'ютерів є джерелом рентгенівського, бета - і гамма-випромінювань. Рентгенівське випромінювання присутнє тільки при роботі монітора. Для зменшення шкідливої дії іонізуючих випромінювань в моніторах було понижено анодну напругу, а в скло моніторів доданий свинець. Небезпечні або не небезпечні іонізуючі випромінювання, що випускаються моніторами комп'ютерів, - все залежить від рівнів іонізуючих випромінювань, що потрапляють в очі користувачів комп'ютера. Безпека рівнів іонізуючих випромінювань комп'ютерних моніторів регламентується ДОСТ Р50948-96 і нормами НРБ-99. ДОСТ Р50948-96 обмежує потужність дози рентгенівського випромінювання величиною 100 мкР/час на відстані 5 см від поверхні екрану монітора, а НРБ-99 установлює для населення межу річної еквівалентної дози випромінювань на кришталик ока - 15 мкР/час.

 

.2 Заходи щодо нормалізації шкідливих і небезпечних факторів


Норми мікроклімату зазначені у санітарних нормах мікроклімату виробничих приміщень ДСН 3.3.6.042-99.

Температура повітря може відрізнятися від норм залежно від пори року та інших умов. Щоб уникнути небажаних відхилень потрібно встановлювати допоміжні засоби регулювання мікроклімату: кондиціонери, обігрівачі тощо.

Найбільш прийнятними методами захисту від шуму є використання акустичних екранів і звукопоглинальних облицювань.

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

Звукопоглинальне облицювання поверхонь похідних приміщень зменшує інтенсивність відбитих звукових хвиль. Використання звукопоглинальних конструкцій дозволяє понизити УЗ в зоні відбитого звуку на 4-8 дб.

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

Застосування окулярів з такими покриттями у інтенсивних користувачів ПК дало зниження зорового стомлення і поліпшення показників акомодації в порівнянні із звичайними окулярами у 85% працівників.

Для зменшення шкідливого впливу слід вдаватися до таких заходів: зменшення складових напруг електричного і магнітного полів в зоні індукції, в зоні випромінювання - зменшення щільності потоку енергії, якщо дозволяє даний технологічний процес або устаткування; при захисті від зовнішнього випромінювання основні зусилля повинні бути спрямовані на попередження переопромінення персоналу шляхом збільшення відстані між оператором і джерелом, скорочення тривалості роботи в полі випромінювання, екранування джерела випромінювання; раціональне планування робочого місця щодо дійсного випромінювання електромагнітного поля, застосування засобів попереджувальної сигналізації. Застосування засобів індивідуального захисту.

Ергономічна безпека праці досягається за допомогою нескладних правил. Спина людини повинна бути нахилена назад під кутом в декілька градусів для збільшення кута між тулубом і стегнами, посилення кровообігу і зменшення тиску на хребет. Руки розслаблені і вільно опущені уздовж боків, передпліччя і кисті розташовані паралельно підлозі. Стегна знаходяться під прямим кутом до тулуба. Коліна - під прямим кутом до стегон.

Спинка стільця повторює лінію вигину нижньої частини спини. Сидіння злегка нахилене вперед для перенесення тиску з хребта на стегна і ноги. Край подушки сидіння заломлений вниз для ослаблення тиску на стегна.

Максимальний час безперервної роботи за комп'ютером не повинен перевищувати 4-х годин в день. Через кожні 7 хвилин потрібно робити коротку перерву на 10-15 секунд. Можна подивитися у вікно (у далечінь) або на картину з приємним для очей пейзажем, яку необхідно повісити за комп'ютером. У картині повинні переважати неяскраві, заспокійливі зір кольори, такі, наприклад, як зелені, блакитні. Також потрібно робити декілька простих вправ для очей.

Монітор повинен стояти так, щоб прямі сонячні відблиски з вікна і люмінесцентне світло денних ламп не падали на екран і безпосередньо на око. Якщо моніторів в кабінеті багато, то відстань між ними повинна бути не менш ніж два метри, щоб не підсилювати впливу шкідливих полів і бічним зором не бачити інший екран. Важливе правильне локальне і загальне освітлення навколо монітора. Розміщувати монітор потрібно трохи вище за рівень очей. Це дозволить розслабити ті групи м'язів, які напружені при звичайному погляді вниз і вперед. Відстань від очей до монітора повинна бути близько 70-80 см.

Тіло повинне бути достатньо розслаблене, руки вільно лежати на опорі. Тому в кріслі оператора ЕОМ повинні бути передбачені окремі підлопаткові і поперекові опори. Спинка крісла і підлокітники повинні регулюватися по висоті і розташуванню в площині, глибину крісла треба теж встановлювати індивідуально. Але як би зручно ви не влаштувалися за своїм комп'ютером, робочий день перед екраном не повинен перевищувати шести годин. Через кожні дві години принаймні, а то і частіше, необхідно робити перерви і короткі фізкультурні паузи - наприклад, обертання очима, повороти голови, розминка рук.

Захисне заземлення слід виконувати відповідно до ПУЕ і Сніп 3.05.06-85 («Електротехнічні пристрої»).

Стійкі, металеві кронштейни з ізоляторами, антенні пристрої ТБ, а також металеві частини шаф, кросів, пультів і інші металоконструкції устаткування, на яких встановлено електроустаткування напругою вище 42В змінного струму, повинні мати захисне занулення шляхом з'єднання з нульовою жилою електричної мережі напругою 380/220 В.

Величина опору заземлення устаткування повинна відповідати ГОСТ 464-79. Опір заземлення загалом не повинен перевищувати значення 2 Ом у будь-який час року.

Робоче заземлення устаткування зв'язку, сигналізації і диспетчеризації слід виконувати згідно технічним вимогам на це устаткування. Розрахунок заземлення наведено нижче.

Все устаткування будівлі під’єднано до трифазної мережі, напругою 380В з ізольованою нейтралю. Загальна потужність джерел живлення мережі перевищує 100 кВА. Будівлю має залізобетонний фундамент на глинистому ґрунті. Площа, обмежена периметром будівлі 852000 м2.

Оскільки живляча мережа не перевищує 1000В, має ізольовану нейтраль і потужність джерел живлення більшу 100 кВА, як нормативний опір заземлення беремо Rн = 4 Ом.

Як природне заземлення використовуємо фундамент будівлі. Для нашого випадку опір ґрунту (глина) r = 40 Ом * м; коефіцієнти сезонності, залежні від кліматичної зони СНД в = 1,5 - 1,8 при розрахунку вертикальних електродів і г = 3,5 - 4,5 при розрахунку опору горизонтальних електродів, приймаємо рівними: в = 1,65 г = 4.

Питомий електричний опір ґрунту в зоні розміщення заземлення визначається по формулі:

 = r * г = 40 * 4 = 160 Ом * м

Опір природного заземлення для залізобетонного фундаменту:

Re = 0,5 S1/2 = 0,5 *160/2001/2 = 5,66 Ом,

що перевищує Rн = 4 Ом.

Отже необхідний штучне заземлення, підключене паралельно природному, з допустимим опором:

Rн.доп. = Re * Rн /(Re - Rн) = 5б7 *4 /(5,7 - 4) = 13,4 Ом.

Штучне заземлення розташовуємо на зниженій і зволоженій ділянці території підприємства на відстані 30 м від будівлі. Заземлення виконуємо як систему розташованих в ряд вертикальних електродів у вигляді стрижнів довжиною l = 2,6м з кутової сталі з шириною b = 0,05м, верхні кінці яких лежать на глибині t0 = 0,7м і сполучені смугою зв'язку із сталі, перетином 5 х 40 мм.

Для вертикальних електродів, питомий опір ґрунту в зоні розміщення заземлення:

= в * в = 40 * 1,65 = 66 Ом * м

Опір одиночного вертикального електроду визначимо:

RЕ = 0,366 * lg 2l/d + 0,5lg (4t+l)/(4t-l = 20,32 Ом

де l>>d; t = 0,5l = t0; l, d відповідно довжина і діаметр електроду;

для електроду із сталі значення d = 0,95b.

Визначаємо кількість вертикальних електродів:

Е* n = RЕ /Rн.доп. = 1,52

Задавшись відстанню  між електродами у вигляді співвідношення /l, знаходимо n (для /l = 2; n = 2).

Знаходимо довжину L горизонтального провідника, що сполучає вертикальні електроди. При розташуванні в ряд:

L = 1,05 * (n-1)*  = 1,05*(2-1)*5,2 = 5,46 м

при розташуванні по контуру

L = 1,05 * n*  = 1,05*2*5,2 = 10,92м

Опір горизонтальної смуги якщо L>>4 t0 >>c,

Rn = (0,366 L)lg 2L2/c* t0 = 17,39 Ом.

де с - ширина смуги, рівна діаметру вертикального електроду.

При /l = 2 і n = 2 знаходимо э=0,91 і n=0,94. Тоді результуючий опір штучного заземлення:

Rи = Rэ * Rn /(RЕ * Е + Rn * n *n) = 6,96 Ом.

Набутого значення не перевищує допустимого опору Rн.доп=13,4 Ом.

Оскільки штучне заземлення достатньо віддалене від природного, можна нехтувати впливом їх полів розтікання струму. Тоді загальний опір всього комплексу заземлення, що складається з природного і штучного заземлення:

Rз = Rи * RЕ /(Rи + RЕ) = 3,12 Ом, що менше Rн = 4 Ом.

6.3 Пожежна безпека


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

Горіння - хімічна реакція, яка супроводжується виділенням тепла і світла.

Класифікація приміщень і будівель за ступенем рівнем пожежної безпеки ОНТП 24-85.

Основні причини пожеж: коротке замикання, перевантаження проводів, утворення перехідних опорів.

Режим короткого замикання - поява в результаті різкого зростання сили струму, електричних іскор, частинок розплавленого металу, електричної дуги, відкритого вогню, ізоляції, що запалала.

Причини виникнення короткого замикання: помилки при проектуванні, старіння ізоляції, зволоження ізоляції, механічні перевантаження.

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

При 1,5 кратному перевищенні потужності резистори нагріваються до 200-300˚ С.

Пожежна небезпека перехідних опорів - можливість займання ізоляції або інших довколишніх горючих матеріалів від тепла, що виникає в місці аварійного опору (у перехідних клемах, перемикачах і ін.).

Пожежна небезпека перенапруження - нагрівання за рахунок збільшення струмів, що проходять через них, за рахунок збільшення перенапруження між окремими елементами електроустановок. Виникає при виході з ладу або зміни параметрів окремих елементів.

Пожежна небезпека струмів витоку - локальний нагрів ізоляції між окремими елементами і заземленими конструкціями.

Заходи по пожежній профілактиці: будівельно-планувальні, технічні, способи і засоби гасіння пожеж, організаційні.

Будівельно-планувальні визначаються вогнестійкістю будівель і споруд (вибір матеріалів конструкцій: що згорають, не згорають, важко згорають) і межа вогнестійкості - це кількість часу в перебігу якого під впливом вогню не порушується несуча здатність будівельних конструкцій аж до появи першої тріщини.

Всі будівельні конструкції по межі вогнестійкості підрозділяються на 8 ступенів від 1/7 години до 2 годин.

Для приміщень ОЦ використовують матеріали з межею стійкості від 1 до 5 ступенів. Залежно від ступеня вогнестійкості визначають найбільші додаткові відстані від виходів для евакуації при пожежах (5 ступінь - 50 хвилин).

Організаційні заходи - проведення навчання по пожежній безпеці, дотримання заходів по пожежній безпеці.

Засоби вогнегасіння:

Ручні: вогнегасники хімічної піни, вогнегасник пінний, вогнегасник порошковий, вогнегасник вуглекислотний, бром етиловий. Протипожежні системи: система водопостачання, піногенератор. Система автоматичного пожежогасіння з використанням засобів автоматичної сигналізації: пожежний оповіщувач (тепловий, світловий, димовий, радіаційний), для ОЦ використовуються теплові датчики-оповіщувачі, димові, радіоізотопні. Система пожежогасінні ручної дії (кнопковий оповіщувач).

Для ОЦ використовуються вогнегасники вуглекислотні і системи автоматичного газового пожежогасіння, в яких використовується хладон або фреон як вогнегасний засіб.

Будинок, де встановлені комп'ютери, можна віднести до категорії Д пожежної небезпеки із третім ступенем вогнестійкості - будинку з несучими конструкціями, що обгороджують із природних або штучних матеріалів, бетону або залізобетону.

Пожежі на обчислювальних центрах становлять особливу небезпеку. Як відомо, пожежа може виникнути при взаємодії пальних речовин, окислювача й джерела запалювання. У приміщеннях обчислювальних центрів присутні всі три фактори, необхідні для виникнення пожежі.

Виникнення пожежі в розглянутому приміщенні найбільше імовірно із причин несправності електроустаткування, до яких ставляться: іскріння у місцях з'єднання електропроводки, короткі замикання, перевантаження проводів і обмоток трансформаторів, перегрів джерел безперебійного живлення й інші фактори. Тому підключення комп'ютерів до мережі необхідно робити через розподільні щити, що дозволяють робити автоматичне відключення навантаження при аварії.

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

Надійна робота окремих елементів і електронних схем у цілому забезпечується тільки в певних інтервалах температури, вологості й при заданих електричних параметрах.

Серйозну небезпеку становлять різні електроізоляційні матеріали. Материнські плати електронних пристроїв, а також плати всіх додаткових пристроїв ЕОМ виготовляють із гетинаксу або стеклотекстоліту. Пожежна небезпека цих ізоляційних матеріалів невелика, ставляться до групи важкопальних і можуть запалитися тільки при тривалому впливі вогню й високої температури.

Оскільки в розглянутому випадку при загоряннях електропристрої можуть перебувати під напругою, то використати воду й піну для гасіння пожежі неприпустимо, оскільки це може привести до травм. Іншою причиною, по якій небажане використання води є те, що на деякі елементи ЕОМ неприпустиме потрапляння вологи. Тому для гасіння пожеж у розглянутому приміщенні можна використати або порошкові склади, або установки вуглекислотного гасіння. Але оскільки останні призначені тільки для гасіння невеликих вогнищ загоряння, то область їхнього застосування обмежена. Тому для гасіння пожеж у цьому випадку застосовуються порошкові склади, тому що вони мають наступні властивості: діелектрики, практично не токсичні, не роблять корозійного впливу на метали, не руйнують діелектричні лаки.

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

Для профілактики пожежної безпеки організується навчання виробничого персоналу (обов'язковий інструктаж із правил пожежної безпеки не рідше одного разу на рік), видання необхідних інструкцій з доведенням їх до кожного працівника установи, випуск і вивіска плакатів із правилами пожежної безпеки й правилами поведінки при пожежі. Також необхідна наявність плакатів, що інформують людей про розташування аварійних виходів з будинку у випадку виникнення пожежі, плану евакуації людей в аварійних ситуаціях.

 

ВИСНОВКИ


Результатом виконання даної дипломної роботи є створення системи, яка дозволить автоматизувати доступ до каталогу навчальних відеофільмів в мультимедійних класах Криворізького металургійного факультету Національної металургійної академії України. Також в роботі було розглянуто теоретичні аспекти проектування додатків на базі платформи dotNET.

Як мова програмування для реалізації поставленого завдання була обрана С#, як середовище розробки Microsoft Visual C# 8.0 Express Edition. Visual Studio .NET - це інтегроване середовище розробки (Integrated Development Environment (IDE)) для створення, документування, запуску і відладки програм, написаних на мовах .NET. Це могутній інструмент професійної розробки складних додатків.

Середовище розробки Microsoft Visual C# 8.0 Express Edition, не дивлячись на безкоштовність, надає всі необхідні засоби для розробки запланованого функціонала, при цьому спростивши створення як інтерфейсу користувача, так і реалізацію функціонально-інструментальної частини програми. Використані при розробці програмні продукти є безкоштовними і тому впровадження розробленого програмного продукту є економічно ефективним.

Якщо сказати, що мова С# і пов'язана з ним середа .NET Framework є одній з найважливіших технологій для розробників за багато років, це не буде перебільшенням. .NET спроектована як нова середа, в рамках якої можна розробити практично будь-яке застосування для Windows, тоді як С# - нова мова програмування, призначена спеціально для роботи з .NET. За допомогою С# можливо, наприклад, створити динамічну Web-сторінку, Web-службу XML, компонент розподіленого застосування, компонент доступу до бази даних, класичний настільний додаток Windows або навіть інтелектуальне клієнтське програмне забезпечення, що має засоби онлайнової і автономної роботи.

СПИСОК ЛІТЕРАТУРИ


1.       Алексей В. Технология XSLT. - BHV - Санкт-Петербург, 2005

2.       Арчер Т.. Основы С#. - М.: Русская Редакция, 2002

.        Гарнаев А.Ю. Самоучитель Visual Studio .NET 2003. - СПб.: БХВ-Петербург, 2003.

.        Грэхем И. Объектно ориентированные методы. - М.: Издательский дом "Вильямс", 2004

.        Гуннерсон Э. Введение в C#. - Питер, 2001

6.       Дубовцев А. Microsoft .Net в подлинеке. - БВХ-Петербург, 2008

.        Жарков В.А. Компьютерная графика, мультимедиа и игры на Visual C# 2005. - М.: Жарков Пресс, 2005

.        5.Жарков В.А. Самоучитель Жаркова по анимации и мультипликации в Visual С# .NET 2003. - М.: Жарков Пресс, 2003.

.        Жарков В,А. Самоучитель Жаркова по анимации и мультипликации в Visual С++. - М /. Жарков Пресс, 2003.

.        Кариев Ч.А. Разработка Windows-приложений на основе Visual C# . БИНОМ. Лаборатория знаний, Интернет-университет информационных технологий - ИНТУИТ.ру, 2007

.        Кент Бек. Экстремальное программировнаие. - Питер, 2002

.        Мартин Ф. Архитектура корпоративных программных приложений. - М.: Издательский дом "Вильямс", 2004

.        Нейлгел К., Ивьен Б., Глинн Дж. С# 2008 для профессионалов. -М.: Издательский дом "Вильямс", 2008

.        Прайс Дж., Гандерлой М. Visual C# .NET : Пер. с англ. - К.: ВЕК+, 2005

.        Рихтер Дж.. Программирование на платформе Microsoft .Net Framework. - М: Русская Редакция, 2007

16.     Робинсон С., Корнес О., Глинн Дж. С# для профессионалов. - М: Лори, 2008

.        Троелсен Э. Язык программирования С# 2005 и платформа .Net 2.0. - М.: Издательский дом "Вильямс", 2007

.        Чакработи А., Кранти Ю., Сандху Р. Microsoft .NET Framework: разработка профессиональных проектов: Пер. с англ. СПб.: БХВ-Петербург, 2006

19.     Zharkov V.A. Theory and Practice of Deep Drawing. - London, Mechanical Engineering Publications Limited, 1995.

20.     j@alba.ua - адрес автора

21.     http://algolist.manual.ru // Исходные коды и книги по алгоритмам

.        http://www.intuit.ru // Интернет-университет информационных технологий

.        http://ru.wikipedia.org // Свободная Интернет-энциклопедия

24.     http://www.rsdn.ru

25.     http://www. citforum.ru

26.     http://www.msdn.microsoft.com

27.     http://www.opennet.ru

.        http://www.gotdotnet.ru

ДОДАТОК А

Лістинг 1

using System;System.Collections.Generic;System.ComponentModel;System.Data;System.Drawing;System.Text;System.Windows.Forms;

catalog;

WindowsFormsApplication1

{partial class Form1 : Form

{.catalog cat = new catalog.catalog();folders;

Form1()

{();();

}

int _cur_disc = 0;

void load()

{<Dictionary<string, string>> discs = cat.GetRootFolders();.Items.Clear();.Nodes.Clear();.Items.Clear();(int i = 0; i < discs.Count; i++ )

{.Items.Add(discs[i]["name"]).Tag = discs[i]["id"];.Items[i].ImageIndex = 0;.Items[i].SubItems.Add((Math.Round ((float) (Convert.ToInt32(discs[i]["size"]))/1024, 2) ).ToString() + " Mb");.Items[i].SubItems.Add(discs[i]["files"]);.Items[i].SubItems.Add(discs[i]["folders"]);.Items[i].SubItems.Add(discs[i]["comment"]);

}

}

void splitContainer1_Panel2_Paint(object sender, PaintEventArgs e)

{

}

void CreateTreeView()

{node = new TreeNode();.Text = folders.name;.Tag = folders.id.ToString();

_CreateTreeView(folders.Childs, node); .Nodes.Add(node);

}void _CreateTreeView(List<Folders> f, TreeNode node)

{(Folders el in f)

{new_node = new TreeNode();_node.Text = el.name;_node.Tag = el.id.ToString();

_CreateTreeView(el.Childs, new_node);.Nodes.Add(new_node);

}

}

void listView2_ItemActivate(object sender, EventArgs e)

{lv = (ListView)sender;

_cur_disc = Convert.ToInt32(lv.SelectedItems[0].Tag);_tree_prepare();

}

void folder_tree_prepare()

{ <Dictionary<string, string>> file_list = cat.getFileList(_cur_disc);.Nodes.Clear();= cat.getFoldersStruct(_cur_disc);();.Nodes[0].ImageIndex = 3;.Nodes[0].Expand();.SelectedNode = treeView1.Nodes[0];

}void treeView1_BeforeExpand(object sender, TreeViewCancelEventArgs e)

{

}

void treeView1_AfterSelect(object sender, TreeViewEventArgs e)

{(treeView1.SelectedNode == treeView1.Nodes[0])

{.SelectedImageIndex = 3;.Nodes[0].Expand();

}

{.SelectedImageIndex = 0;

}();

}

void ubdFiles()

{<Dictionary<string, string>> file_list = cat.getFileList(Convert.ToInt32(treeView1.SelectedNode.Tag));.Items.Clear();(int i = 0; i < file_list.Count; i++)

{.Items.Add(file_list[i]["name"]).Tag = file_list[i]["id"];.Items[i].ImageIndex = 1;.Items[i].SubItems.Add((Math.Round((float)(Convert.ToInt32(file_list[i]["size"])) / 1024, 2)).ToString() + " Kb");.Items[i].SubItems.Add(file_list[i]["comment"]);

}

}

void eDITToolStripMenuItem_Click(object sender, EventArgs e)

{.FocusedItem.BeginEdit();

}

void aDDCOMMENTToolStripMenuItem_Click(object sender, EventArgs e)

{ed = new Form2(Convert.ToInt32(listView2.FocusedItem.Tag), 1, listView2.FocusedItem.SubItems[4].Text);.ShowDialog();();

}

void listView2_AfterLabelEdit(object sender, LabelEditEventArgs e)

{id = Convert.ToInt32(listView2.Items[e.Item].Tag.ToString());

name = e.Label;(name != null)

{.nameChange(id, name);

}(id == _cur_disc)

{_tree_prepare();

}

}

void aDDCommentToolStripMenuItem1_Click(object sender, EventArgs e)

{ed = new Form2(Convert.ToInt32(listView1.FocusedItem.Tag), 0, listView1.FocusedItem.SubItems[2].Text);.ShowDialog();();

}

void dELETEToolStripMenuItem_Click(object sender, EventArgs e)

{.Show("Вы действительно хотите удалить выбранную запись?", "Внимание!", MessageBoxButtons.YesNo, MessageBoxIcon.Question);.delete(Convert.ToInt32(listView2.FocusedItem.Tag));();

}

void aDDToolStripMenuItem_Click(object sender, EventArgs e)

{add = new Form3();.ShowDialog();();

}

void toolStripButton1_Click(object sender, EventArgs e)

{(toolStripTextBox1.Text.Length > 0)

{search = new Form4(toolStripTextBox1.Text);.Show();

}

}

}

}

Лістинг 2

using System;System.Collections.Generic;System.Text;

System.IO;System.Data;System.Data.SQLite;

catalog

{class catalog

{connectionString;catalog() { connectionString = "Data Source=catalog.db;Version=3;"; }

int folders_count = 0;int files_count = 0;double size = 0;int root_id = 0;

string _disc_name = "";

void scan_disc(string path,string name, string comment)

{

_disc_name = name;(SQLiteConnection cn = new SQLiteConnection(connectionString))

{(SQLiteCommand cmd = cn.CreateCommand())

{.CommandText = "INSERT INTO catalog (name, path, size, folders, files,parrent_id,comment) VALUES ('" + name + "', '" + path + "', '0', '0', '0','0',\""+comment+"\")";.CommandType = CommandType.Text;.Open();.ExecuteNonQuery();.Close();

}

}cur_id = get_last_cat_id();_id = cur_id;(path, cur_id);(SQLiteConnection cn = new SQLiteConnection(connectionString))

{(SQLiteCommand cmd = cn.CreateCommand())

{.CommandText = "UPDATE catalog SET folders='" + folders_count + "', files='"+files_count+"', size='"+size+"' WHERE id='"+root_id+"'";.CommandType = CommandType.Text;.Open();.ExecuteNonQuery();.Close();

}

}

}

void getDiscDir(string path, int parrent_id)

{

{[] childs_dirs = Directory.GetDirectories(path);_count += childs_dirs.Length;[] files = Directory.GetFiles(path);_count += files.Length;(int i = 0; i < files.Length; i++)

{

.IO.FileInfo fi = new FileInfo(files[i]);f_size = (int)fi.Length;+= (f_size / 1024);

f_name = Path.GetFileName(files[i]);

(SQLiteConnection cn = new SQLiteConnection(connectionString))

{(SQLiteCommand cmd = cn.CreateCommand())

{new_path = files[i].Substring(1, (files[i].Length - 1)); .CommandText = "INSERT INTO files (path, name, size, catalog_id, disc_name) VALUES ('" + new_path + "', '" + f_name + "', '" + f_size + "', '" + parrent_id + "', '"+_disc_name+"')";.CommandType = CommandType.Text;.Open();.ExecuteNonQuery();.Close();

}

}

}(int i = 0; i < childs_dirs.Length; i++)

{ch_name = Path.GetFileName(childs_dirs[i]);(SQLiteConnection cn = new SQLiteConnection(connectionString))

{(SQLiteCommand cmd = cn.CreateCommand())

{.CommandText = "INSERT INTO catalog (name, path, size, folders, files, parrent_id) VALUES ('" + ch_name + "', '" + childs_dirs[i] + "', '0', '0', '0','" + parrent_id + "')";.CommandType = CommandType.Text;.Open();.ExecuteNonQuery();.Close();

}

}ch_id = get_last_cat_id();(childs_dirs[i], ch_id);

}

}(Exception x)

{t = 0;

}

}

int get_last_cat_id()

{id = 0;(SQLiteConnection cn = new SQLiteConnection(connectionString))

{(SQLiteCommand cmd = cn.CreateCommand())

{.CommandText = "SELECT MAX(id) from catalog";.CommandType = CommandType.Text;.Open();= Convert.ToInt32(cmd.ExecuteScalar().ToString());

}

}id;

}

List<Dictionary<string, string>> GetRootFolders()

{<Dictionary<string, string>> root_folder_list = new List<Dictionary<string, string>>();(SQLiteConnection cn = new SQLiteConnection(connectionString))

{(SQLiteCommand cmd = cn.CreateCommand())

{.CommandText = "SELECT * from catalog where parrent_id='0' and deleted='0'";.CommandType = CommandType.Text;.Open();dr = (SQLiteDataReader)cmd.ExecuteReader();(dr.Read())

{<string, string> folder = new Dictionary<string, string>();.Add("id", dr["id"].ToString());.Add("name", dr["name"].ToString());.Add("path", dr["path"].ToString());.Add("folders", dr["folders"].ToString());.Add("files", dr["files"].ToString());.Add("size", dr["size"].ToString());.Add("comment", dr["comment"].ToString());_folder_list.Add(folder);

}.Close();

}

}root_folder_list;

}

List<Folders> _getFoldersStruct(int id)

{<Folders> folder_struct = new List<Folders>();(SQLiteConnection cn = new SQLiteConnection(connectionString))

{(SQLiteCommand cmd = cn.CreateCommand())

{.CommandText = "SELECT * from catalog where parrent_id='" + id + "'";.CommandType = CommandType.Text;.Open();dr = (SQLiteDataReader)cmd.ExecuteReader();(dr.Read())

{folder = new Folders();.name = dr["name"].ToString();new_id = Convert.ToInt32(dr["id"].ToString());.id = new_id;.Childs = _getFoldersStruct(new_id);_struct.Add(folder);

}.Close();

}

}folder_struct;

}

Folders getFoldersStruct(int disc_id)

{folder_struct = new Folders();(SQLiteConnection cn = new SQLiteConnection(connectionString))

{(SQLiteCommand cmd = cn.CreateCommand())

{.CommandText = "SELECT * from catalog where id='"+disc_id+"'";.CommandType = CommandType.Text;.Open();dr = (SQLiteDataReader)cmd.ExecuteReader();(dr.Read())

{_struct.name = dr["name"].ToString();new_id = Convert.ToInt32(dr["id"].ToString());_struct.id = new_id;_struct.Childs = _getFoldersStruct(new_id);

}.Close();

}

}folder_struct;

}

List<Dictionary<string, string>> getFileList(int catalog_id)

{<Dictionary<string, string>> file_list = new List<Dictionary<string, string>>();(SQLiteConnection cn = new SQLiteConnection(connectionString))

{(SQLiteCommand cmd = cn.CreateCommand())

{.CommandText = "SELECT * from files where catalog_id='" + catalog_id + "'";.CommandType = CommandType.Text;.Open();dr = (SQLiteDataReader)cmd.ExecuteReader();(dr.Read())

{<string, string> file = new Dictionary<string, string>();.Add("id", dr["id"].ToString());.Add("path", dr["path"].ToString());.Add("name", dr["name"].ToString());.Add("comment", dr["comment"].ToString());.Add("size", dr["size"].ToString());_list.Add(file);

}.Close();

}

}file_list;

}

void nameChange(int id, string name)

{(SQLiteConnection cn = new SQLiteConnection(connectionString))

{(SQLiteCommand cmd = cn.CreateCommand())

{.CommandText = "Select name FROM catalog where id='" + id + "'";.CommandType = CommandType.Text;.Open();old_name = (string)cmd.ExecuteScalar();cmd2 = cn.CreateCommand();.CommandText = "UPDATE catalog set name='"+name+"' where id='" + id + "'";.CommandType = CommandType.Text;.ExecuteNonQuery();cmd3 = cn.CreateCommand();.CommandText = "UPDATE files set disc_name='"+name+"' where disc_name='" + old_name + "'";.CommandType = CommandType.Text;.ExecuteNonQuery();

}.Close();

}

}

void commentDiscChange(int id, string comment)

{(SQLiteConnection cn = new SQLiteConnection(connectionString))

{(SQLiteCommand cmd = cn.CreateCommand())

{.CommandText = "UPDATE catalog set comment='" + comment + "' where id='" + id + "'";.CommandType = CommandType.Text;.Open();.ExecuteNonQuery();

}.Close();

}

}

void commentFileChange(int id, string comment)

{(SQLiteConnection cn = new SQLiteConnection(connectionString))

{(SQLiteCommand cmd = cn.CreateCommand())

{.CommandText = "UPDATE files set comment='" + comment + "' where id='" + id + "'";.CommandType = CommandType.Text;.Open();.ExecuteNonQuery();

}.Close();

}

}

void delete(int id)

{(SQLiteConnection cn = new SQLiteConnection(connectionString))

{(SQLiteCommand cmd = cn.CreateCommand())

{.CommandText = "update catalog set deleted='1' where id='" + id + "'";.CommandType = CommandType.Text;.Open();.ExecuteNonQuery();

}.Close();

}

}

List<Dictionary<string, string>> do_search(string search_str)

{<Dictionary<string, string>> result= new List<Dictionary<string, string>>();_str = clean_words(search_str);[] search_text;[] separator = { " " };tag = search_str;_text = tag.Split(separator, StringSplitOptions.RemoveEmptyEntries);select = "SELECT * FROM files WHERE ";added_q = "";(int i = 0; i < search_text.Length; i++)

{(search_text[i].Length > 2)

{(added_q.Length == 0)

{_q += " (name like '%" + search_text[i] + "%' OR comment like '%" + search_text[i] + "%')";

}

{_q += " OR (name like '%" + search_text[i] + "%' OR comment like '%" + search_text[i] + "%')";

}

}

}+= added_q + " ORDER by id ASC;";(SQLiteConnection cn = new SQLiteConnection(connectionString))

{(SQLiteCommand cmd = cn.CreateCommand())

{.CommandText = select;.CommandType = CommandType.Text;.Open();dr = (SQLiteDataReader)cmd.ExecuteReader();(dr.Read())

{<string, string> file = new Dictionary<string, string>();.Add("name", dr["name"].ToString());.Add("id", dr["id"].ToString());.Add("catalog_id", dr["catalog_id"].ToString());.Add("path", dr["path"].ToString());.Add("comment", dr["comment"].ToString());.Add("size", dr["size"].ToString());.Add("disc_name", dr["disc_name"].ToString());.Add(file);

}

}

}result;

}

string clean_words(string value)

{[] drop_char = { "^", "$", "&", "(", ")", "<", ">", "`", "\\", "\"", "|", ",", "@", "_", "?", "%", "-", "~", "+", ".", "[", "]", "{", "}", ":", "\\", "/", "=", "#", "\"", ";", "!" };[] drop_words = { "a", "the", "of", "and", "or", "for", "this" };(int i = 0; i < drop_char.Length; i++)

{= value.Replace(drop_char[i], "");

}value;

}

}

struct Folders

{string name;int id;List<Folders> Childs;

}

}

Похожие работы на - Розробка елементів гнучкої інтегрованої системи віддаленого доступу до каталогу відеофайлів

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!