Гнучка система імітаційного дослідження зміни топології комп’ютерної мережі

Створення програмного модуля імітаційного дослідження архітектури комп'ютерних мереж системи "Емулятор мережі" в середовищі Microsoft Visual C # 8.0 Express Edition з використанням технології dotNet. Розробка комплексних лабораторних робіт на її основі.

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

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

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

Размещено на http://www.allbest.ru

Размещено на http://www.allbest.ru

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

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

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

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

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

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

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

Гнучка система імітаційного дослідження зміни топології

комп'ютерної мережі

Кривий Ріг

2010

Анотація

система імітаційна комп'ютерна мережа програмна

Метою даної дипломної роботи є доопрацювання гнучкої комп'ютеризованої системи «Емулятор мережі» та розробка комплексних лабораторних робіт на основі даної системи. Система реалізована в середовищі розробки Microsoft Visual C # 8.0 Express Edition з використанням технології 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. ОГЛЯД МОЖЛИВОСТЕЙ МОВИ ПРОГРАМУВАННЯ Й СЕРЕДИ РОЗРОБКИ MICROSOFT VISUAL STUDIO 2008
    • 3.1 Microsoft Visual Studio 2008
      • 3.1.1 Visual Studio 2008 Express Edition
    • 3.2 Мови програмування .NET
      • 3.2.1 Огляд двійкових файлів.NET
      • 3.3.2 Мова програмування C#
    • 3.3. Мова XML
      • 3.3.1 Короткий огляд синтаксису
  • 4. ОПИС ФУНКЦІОНАЛЬНИХ МОЖЛИВОСТЕЙ ТА ПРОГРАМНОЇ РЕАЛІЗАЦІЇ ПРОЕКТОВАНОЇ СИСТЕМИ
    • 4.1 Функціональне призначення та технологічні особливості розробки
    • 4.2 Розробка логіко-функціональної схема роботи користувача
    • 4.3 Програмна реалізація проектованої системи
    • 4.4 Розроблені лабораторні роботи
  • 5 ЕКОНОМІЧНЕ ОБҐРУНТУВАННЯ ДОЦІЛЬНОСТІ РОЗРОБКИ ПРОГРАМНОГО ПРОДУКТУ
  • 6. ОХОРОНА ПРАЦІ
    • 6.1 Аналіз шкідливих і небезпечних виробничих факторів при роботі на комп'ютері
    • 6.2 Заходи щодо нормалізації шкідливих і небезпечних факторів
    • 6.3 Пожежна безпека
  • ВИСНОВКИ

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

ВСТУП

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

Метою даної розробки є створення програмного модуля системи «Емулятор мережі», призначеного для імітаційного дослідження архітектури комп'ютерних мереж.

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

Сучасні мережі Інтернет об'єднують в єдине ціле багато десятків тисяч локальних мереж по всьому світу, побудованих на базі різноманітних фізичних і логічних протоколів (ethernet, Token Ring, ISDN, X.25, Frame Relay, Arcnet і т.д.). Ці мережі об'єднуються один з одним за допомогою послідовних каналів (протоколи SLIP, PPP), мереж типу FDDI (часто використовується і в локальних мережах), ATM, SDH (Sonet) та багатьох інших. У самих мережах використовуються протоколи TCP / IP (Інтернет), IPX / SPX (Novell), Appletalk, Decnet, Netbios і нескінченна безліч інших, визнаних міжнародними, що є фірмовими і т.д. Картина буде неповною, якщо не відзначити різноманіття мережних програмних продуктів. На наступному рівні представлені різноманітні внутрішні (RIP, IGRP, OSPF) і зовнішні (BGP і т.д.) протоколи маршрутизації і маршрутної політики, конфігурація мережі і завдання величезного числа параметрів, проблеми діагностики та мережевої безпеки. Чималу труднощі може викликати і вибір прикладних програмних засобів (Netscape, MS Internet Explorer тощо). Останнім часом мережі впроваджуються в управління (CAN), сферу розваг, торгівлю, відбувається з'єднання мереж Інтернет та кабельного телебачення.

Протоколи Інтернет (TCP / IP), існують вже близько 30 років. Вимоги до телекомунікаційних каналах і послуг виросли, і цей набір протоколів не задовольняє сучасним вимогам. З'являються нові протоколи Delta-t (для керування з'єднанням), NetBLT (для передачі великих обсягів даних), VMTP (для транзакцій; RFC-1045) і XTP для підвищення ефективності передачі даних (заміна TCP), блоки протоколів для роботи з мультимедіа (RTP , RSVP, PIM, ST-II і пр.), але, безумовно, найбільш революційні перетворення викличе впровадження IPv6. Отже важливою метою є вивчення усіх аспектів комп'ютерних мереж.

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

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

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

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

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

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

Початок робіт: 31.10.09. Закінчення робіт: 01.06.10.

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

Гнучка комп'ютеризована система «Емулятор мережі» була реалізована в середовищі розробки Microsoft Visual C # 2008 Express Edition з використанням технології dotNet.

Склад розробленої системи:

· Network Emulator.exe - виконуваний файл розробленої системи;

· Network Emulator.exe.config - конфігураційний файл програми;

· Example.nep - файл прикладу проекту;

· help.hlp - файл довідки.

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

Метою даної дипломної роботи є доопрацювання гнучкої комп'ютеризованої системи «Емулятор мережі» та розробка комплексних лабораторних робіт на основі даної системи. Система реалізована в середовищі розробки Microsoft Visual C # 8.0 Express Edition з використанням технології dotNet. Система призначена для розробки архітектури комп'ютерних мереж і перевірки їх на працездатність.

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

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

· Робота в середовищі операційних систем Windows 98, Windows Server 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition, Windows Vista, Windows Server 2003 SP1;

· Microsoft. NET Framework 2.0 і вище;

· Відсутність додаткових вимог до розміщення здійснимих файлів;

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

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

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

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

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

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

загальний опис технології процесу;

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

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

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

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

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

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

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

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

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

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

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

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

2.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. Проте це зробити дуже важко.

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 для клієнта СОМ:

Dim с as New MyCOMClass. Місцезнаходження класу визначається через AppID c.DoSomeWork.

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

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

2.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. ОГЛЯД МОЖЛИВОСТЕЙ МОВИ ПРОГРАМУВАННЯ Й СЕРЕДИ РОЗРОБКИ MICROSOFT VISUAL STUDIO 2008

3.1 Microsoft Visual Studio 2008

Існує величезна кількість версій продукту 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 - це серверний продукт, який надає засоби для контролю, тестування і автоматизації процесів (рис. 3.1).

Рис. 3.1 Головне вікно Microsoft Visual Studio 2008

Посеред цього сімейства продуктів знаходяться версії Standard і Professional і більшість автономних продуктів (Visual Basic, Visual C#, Visual C++ и Visual J++).

3.1.1 Visual Studio 2008 Express Edition

Тепер багато студентів і викладачі зможуть купити стандартну і професійну версії продуктів Visual Studio (як Visual Basic 2008 або весь комплект). Нові ж версії 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 2005, яка називається SQL Server 2005 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. Дешеві і доступні продукти допоможуть початківцям і студентам підвищити свою кваліфікацію в простому і зручному середовищі".

3.2 Мови програмування .NET

Під час анонса платформи .NET на конференції 2008 Professional Developers Conference (PDC) доповідачі називали фірми, що працюють над створенням .NET-версій своїх компіляторів. На даний момент компілятори для створення .NET-версій додатків розроблялися більш ніж для 30 різних мов. Окрім чотирьох мов, що поставляються з Visual Studio.NET (C#, Visual Basic.NET, «Managed C » і Jscript.NET), очікуються .NET-версії Smalltalk, COBOL. Pascal, Python, Perl і безліч останніх відомих мов програмування. Спільна картина представлена на рис. 3.2.

Рис. 3.2 Компілятори для створення .NET-версій додатків

Двійкові файли .NET, для яких використовуються стандартні розширення DLL і ЕХЕ, по своєму внутрішньому вмісту не мають абсолютно нічого спільного із звичайними виконуваними файлами. Наприклад, файли DLL не надають свої методи в розпорядження додатків на комп'ютері. На відміну від компонентів СОМ двійкові файли .Net не описуються за допомогою коду IDL і реєструються в системному реєстрі. Проте, мабуть, найважливіша відзнака полягає в тому, що двійкові файли NET не містять залежних від платформи команд. Вміст двійкових файлів .NET -- це платформено-незалежний «проміжна мова», яка офіційно називається Microsoft Intermediate Language (MSIL, проміжна мова Microsoft), або просто IL.

3.2.1 Огляд двійкових файлів.NET

Коли за допомогою компілятора для платформи .NET створюється модуль DLL або ЕХЕ, вміст цього модуля -- це так звана збірка (assembly) на мові IL. Зборка містить код на «проміжній мові» -- IL. Призначення IL концептуально аналогічно байт-коду Java -- він компілюється в платформено-специфічні інструкції, лише коли це абсолютно необхідно. «Абсолютна необхідність» виникає тоді, коли до блоку інструкцій IL (наприклад, реалізації методу) звертається для використання середа виконання .NET.

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

У багатьох відношеннях метадані .NET є значним удосконаленням в порівнянні з класичною інформацією про типів в СОМ. Класичні двійкові файли СОМ зазвичай описуються за допомогою асоційованої бібліотеки типів (яка дуже схожа на двійкову версію коду IDL). Проблема з інформацією про типів в СОМ полягає в тому, що ніхто не може гарантувати, що ця інформація виявиться повною. Код IDL може створити повний каталог зовнішніх серверів, які можуть бути необхідні для нормальної роботи тих, що містяться в модулі СОМ класів. Існування метадані .NET, навпаки, забезпечується тим, що метадані автоматично генеруються компілятором, що створює додаток .NET.

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

3.3.2 Мова програмування C#

Спеціально для платформи .NET Microsoft була розроблена нова мова програмування С#. С# -- це мова програмування, синтаксис якої дуже схожий на синтаксис Java (але не ідентичний йому). Наприклад, в С# (як в Java) визначення класу складається з одного файлу (*.cs), на відміну від C, де визначення класу розбите на заголовок (*.h) і реалізацію (*.срр). Проте називати С# клоном Java було б невірно. Як С#, так і Java засновані на синтаксичних конструкціях C . Якщо Java у багатьох відношеннях можна назвати очищеною версією С, то С# можна охарактеризувати як очищену версію Java.

Синтаксичні конструкції С# успадковані не лише від C, але і від Visual Basic. Наприклад, в С#, як і в Visual Basic, використовуються властивості класів. Як C, С# дозволяє проводити перевантаження операторів для створених вами типів (Java не підтримує ні ту, ні іншу можливість). С# -- це фактично гібрид різних мов. При цьому С# синтаксично не менш (якщо не більш) чистий, чим Java, також простий, як Visual Basic, і володіє практично тією ж потужністю і гнучкістю, що і C . Основні особливості С#:

Покажчики більше не потрібні! У програмах на С#, як правило, немає необхідності в роботі з ними, проте, якщо є необхідність в їх використанні, то С# надає для цього всі необхідні засоби.

Управління пам'яттю проводиться автоматично.

У С# передбачені вбудовані синтаксичні конструкції для роботи з перерахуваннями, структурами і властивостями класів.

У С# залишилася можливість перенавантажувати операторів, успадкованих від C . При цьому значна частина складнощів, що виникали при цьому, ліквідована.

Передбачена повна підтримка використання програмних інтерфейсів. Проте на відміну від класичного СОМ вживання інтерфейсів -- це не єдиний спосіб роботи з типами, використовуючи різні двійкові модулі. .NET дозволяє передавати об'єкти (як заслання або як значення) через кордони програмних модулів.

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

Можливо, найважливіше, що необхідно сказати про мову С#, -- це те, що він генерує код, призначений для виконання лише в середі виконання .NET. Наприклад, немає можливості використовувати С# для створення класичного Сом-сервера. Згідно термінології Microsoft код, призначений для роботи в середі виконання .NET, -- це керований код (managed code). Двійковий файл, який містить керований файл, називається збіркою (assembly).

Версія 1.0

Проект C# був початий в грудні 1998 і отримав кодову назву COOL (C-style Object Oriented Language). Версія 1.0 була анонсована разом з платформою .NET у червні 2000 року, тоді ж з'явилася і перша загальнодоступна бета-версия; C# 1.0 остаточно вийшов разом з Microsoft Visual Studio .NET у лютому 2002 року.

Перша версія C# нагадувала по своїх можливостях Java 1.4, декілька їх розширюючи: так, в C# були властивості (що виглядають в коді як поля об'єкту, але що на ділі викликають при зверненні до них методи класу), індексатори (подібні до властивостей, але що приймають параметр як індекс масиву), події, делегати, цикли foreach, структури, що передаються за значенням, автоматичне перетворення вбудованих типів в об'єкти при необхідності (boxing), атрибути, вбудовані засоби взаємодії з неуправляємим кодом (DLL, COM) і інше.

Крім того, в C# вирішено було перенести деякі можливості C, відсутні в Java: беззнакові типи, перевизначення операцій (з деякими обмеженнями, на відміну від C ), передача параметрів в метод по засланню, методи із змінним числом параметрів, оператор goto. Також в C# залишили обмежену можливість роботи з покажчиками -- в місцях коду, спеціально позначених словом unsafe і при вказівці спеціальній опції компілятору.

Версія 2.0

Проект специфікації C# 2.0 вперше був викладений Microsoft в жовтні 2003 року; у 2004 році виходили бета-версиі (проект з кодовою назвою Whidbey), C# 2.0 остаточно вийшов 7 листопада 2005 року разом з Visual Studio 2005 і .NET 2.0.

Нові можливості в версії 2.0

Часткові типи (розділення реалізації класу більш ніж на один файл). Узагальнені, або типи, що параметризуються (generics). На відміну від шаблонів C, вони підтримують деякі додаткові можливості і працюють на рівні віртуальної машини. В той же час, параметрами узагальненого типа не можуть бути вирази.

Нова форма ітегратора, що дозволяє створювати співпрограми за допомогою ключового слова yield, подібно Python і Руби.

Анонімні методи замикання, що забезпечують функціональність.

Оператор '??': return obj1 ?? obj2; означає (в нотації C# 1.0) return obj1!=null ? obj1 : obj2;.

Типи-значення (що позначаються знаком питання, наприклад, int? i = null;), що обнуляються ('nullable'), є ті ж самі типи-значення, лише можуть набувати також значення null. Такі типи дозволяють поліпшити взаємодію з базами даних через мову SQL.

Версія 3.0

У червні 2004 року Андерс Хейлсберг вперше розповів на сайті Microsoft про плановані розширення мови в C#3.0. У вересні 2005 року вийшли проект специфікації C# 3.0 і бета-версия C# 3.0, що встановлюється у вигляді доповнення до існуючих Visual Studio 2005 і .NET 2.0.

Нові можливості у версії 3.0В C# 3.0 з'явилися наступні радикальні додавання до мови:

Ключові слова select, from, where, що дозволяють робити запр си з SQL, XML, колекцій і тому подібне (запит, інтегрований в мову, LINQ)

Ініціалізація об'єкту разом з його властивостями:

Customer c = new Customer(); c.Name = "James";

перетвориться в

Customer c = new Customer { Name = "James" };

Ламбда-висловлення:

listOfFoo.Where(delegate(Foo x) { return x.size > 10; });

перетвориться в

listOfFoo.Where(x => x.size > 10);

Тип локальної змінної, що мається на увазі: var x = "hello"; замість string x ="hello";

Безіменні типи: var x = new { Name = "James" };

Методи-розширення -- додавання методу в існуючий клас за допомогою ключового слова this при першому параметрі статичної функції.

C# 3.0 буде сумісний з C# 2.0 по Msil-коду, що генерується; поліпшення в мові -- чисто синтаксичні і реалізуються на етапі компіляції. Наприклад, багато з інтегрованих запитів LINQ можна вже зараз здійснити, використовуючи безіменні делегати у поєднанні з предикативними методами над контейнерами начеб List.FindAll и List.RemoveAll.


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

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

    реферат [158,1 K], добавлен 27.09.2012

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

    дипломная работа [6,2 M], добавлен 15.06.2014

  • Фізичне та логічне представлення топології мереж, кабельна система. Вибір мережевого устаткування. Імітаційне моделювання корпоративної комп’ютерної мережі в NetCracker 4.0. Представлення локальної мережі в Microsoft Visio 2013, економічне обґрунтування.

    курсовая работа [993,5 K], добавлен 17.05.2015

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

    дипломная работа [5,9 M], добавлен 24.04.2014

  • Загальна характеристика підприємства "Focus". Огляд програмного забезпечення для створення комп’ютерної мережі. Вибір мережевої служби та протоколів, архітектури, кабелю. Розрахунок обсягу даних, мінімальної конфігурації для серверів та робочих станцій.

    курсовая работа [600,9 K], добавлен 20.05.2015

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

    реферат [20,8 K], добавлен 13.11.2013

  • Технологічні процеси складання, монтажу, налагодження і тестування комп'ютерних мереж між двома чи більше комп'ютерами. Функціонування локальної обчислювальної мережі. Офісні програмні продукти з пакету MS Office. Топологія мережі підприємства "зірка".

    отчет по практике [1,5 M], добавлен 28.08.2014

  • Поняття та завдання комп'ютерних мереж. Розгляд проекту реалізації корпоративної мережі Ethernet шляхом створення моделі бездротового зв’язку головного офісу, бухгалтерії, філій підприємства. Налаштування доступу інтернет та перевірка працездатності.

    курсовая работа [2,2 M], добавлен 20.03.2014

  • Поняття локальної комп'ютерної мережі як об'єднання певного числа комп'ютерів на відносно невеликій території. Вибір мережевої технології та топології мережі. Вибір активного та пасивного мережевого обладнання. Монтаж кабельної системи, вибір підключення.

    курсовая работа [3,3 M], добавлен 09.06.2014

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

    курсовая работа [2,7 M], добавлен 15.06.2015

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