Лабораторні роботи ТПЗ 1-8

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
ІКТА
Факультет:
КН
Кафедра:
Електронні обчислювальні машини

Інформація про роботу

Рік:
2012
Тип роботи:
Лабораторна робота
Предмет:
Тестування програмних засобів

Частина тексту файла (без зображень, графіків і формул):

Міністерство освіти і науки України Національний університет „Львівська політехніка” Кафедра ЕОМ Звіт з лабораторної роботи №1 з дисципліни “ Тестування програмних засобів ” Львів 2012 Мета: розглянути фреймворки для автоматизованого тестування програмного забезпечення. Фреймворк (англ. framework, Каркас) - структура програмної системи; програмне забезпечення, що полегшує розробку і об'єднання різних компонентів великого програмного проекту. На відміну від бібліотек, які об'єднують набір підпрограм близькою функціональності, фреймворк містить в собі велику кількість різних за призначенням бібліотек. Вживається також слово «каркас». Про каркасний підхід можна говорити як про підхід до побудови програм, де будь-яка конфігурація програми будується з двох частин: перша, постійна частина - каркас, не змінюваний від конфігурації до конфігурації і несе в собі гнізда, в яких розміщується друга, змінна частина - змінні модулі (або точки розширення). Фреймворк програмної системи – це каркас програмної системи (або підсистеми). Може включати допоміжні програми, бібліотеки коду, мова сценаріїв та інше ПЗ, що полегшує розробку і об'єднання різних компонентів великого програмного проекту. Зазвичай об'єднання відбувається за рахунок використання єдиного API. Приклади: системи управління контентом (CMS), веб-фреймворки Symfony, Django. Відрізняється від бібліотеки тим, що виконує код, написаний для нього, а не виповнюється сам. Приклад програмного фреймворку - CMF (Content Management Framework), а приклад бібліотеки - модуль електронної пошти. Також, на відміну від бібліотеки, яка об'єднує в собі набір близькою функціональності, каркас містить в собі велику кількість різних за тематикою бібліотек. Фреймворк додатка Однією з головних переваг при використанні каркасних додатків є те, що такі додатки мають стандартну структуру. Каркаси додатка стали популярні з появою графічних інтерфейсів користувача, які мали тенденцію до реалізації стандартної структури для додатків. З їх використанням стало набагато простіше створювати засоби для автоматичного створення графічних інтерфейсів, так як структура внутрішньої реалізації коду програми стала відома заздалегідь. Для забезпечення каркаса звичайно використовуються техніки об'єктно-орієнтованого програмування (наприклад, частини додатки можуть успадковуватися від базових класів фреймворка). Одним з перших комерційних фреймворків додатка був MacApp, написаний Apple під Macintosh. Microsoft створила схожий продукт для Windows, який називається «Microsoft Foundation Classes» (MFC). На даний момент основним продуктом Microsoft для розробки ПЗ пропонується. NET Framework. Багатоплатформовими каркасами додатків для операційних систем Linux, Macintosh і Windows є наприклад, widget toolkit, wxWidgets, Qt, MyCore або FOX toolkit. Фреймворк концептуальної моделі Абстрактне поняття структури, яке використовується в дослідженнях для визначення можливих способів вирішення проблеми або подання ідеї. Реалізація фреймворку Фреймворк визначається як безліч конкретних і абстрактних класів, а також визначень способів їх взаємини. Конкретні класи зазвичай реалізують взаємні відносини між класами. Абстрактні класи являють собою точки розширення, в яких каркаси можуть бути використані або адаптовані. Точка розширення - це та частина фреймворку, для якого не приведено реалізація. Відповідно каркас концептуальної моделі складається з концептуальних класів, а каркас програмної системи з класів мови програмування загального призначення. Процес створення фреймворку полягає у виборі підмножини задач проблеми та їх реалізацій. В ході реалізацій загальні засоби вирішення завдань полягають в конкретних класах, а змінні засоби виносяться в точки розширення. Виконання роботи: Selenium – це об’єктно-орієнтований JavaScript додаток, який дозволяє виконувати автоматизоване тестування веб-додатків. Цей фреймворк за допомогою маніпуляції браузером реалізує автоматизоване виконання певних дій і перевірок. Він підтримує більшість популярних браузерів на різних платформах(в тому числі і на мобільних пристроях). За допомогою Selenium можна записувати і відтворювати скрипти, які представляють собою просту HTML сторінку з одною таблицею, де записані певні команди. Розробка сценаріїв під Selenium можлива практично на будь-якій мові програмування. Є можливість організовувати розподілені стенди, які складаються із декількох(або й сотень) машин із різними операційними системами, різними браузерами. Selenium WebDriver - це програмна бібліотека для управління браузерами. Часто вживається також більш коротка назва WebDriver. Іноді кажуть, що це «драйвер браузера», але насправді це ціле сімейство драйверів для різних браузерів, а також набір клієнтських бібліотек на різних мовах, що дозволяють працювати з цими драйверами. Це основний продукт, що розробляється в рамках проекту Selenium. Selenium WebDriver називається також Selenium 2,0 причина цього буде пояснена нижче. Як вже було сказано, WebDriver являє собою сімейство драйверів для різних браузерів плюс набір клієнтських бібліотек для цих драйверів на різних мовах програмування:  Рис 1. Структура проекту Selenium. В рамках проекту Selenium розробляються драйвери для браузерів Firefox, Internet Explorer і Safari, а також драйвери для мобільних браузерів для Android і IOS. Драйвер для браузера Google Chrome розробляється в рамках проекту Chromium, а драйвер для браузера Opera (включаючи мобільні версії) розробляється компанією Opera Software. Тому вони формально не є частиною проекту Selenium, поширюються і підтримуються незалежно. Але логічно, звичайно, можна вважати їх частиною сімейства продуктів Selenium. Аналогічна ситуація і з клієнтськими бібліотеками - в рамках проекту Selenium розробляються бібліотеки для мов Java, Net (C #), Python, Ruby, JavaScript. Всі інші реалізації не мають відношення до проекту Selenium, хоча, можливо, в майбутньому, якісь з них можуть влитися в цей проект. Selenium RC - це попередня версія бібліотеки для роботи з браузерами. Абревіатура RC в назві цього продукту розшифровується як пульт дистанційного керування, тобто це засіб для «віддаленого» управління браузером. Ця версія з функціональної точки зору значно поступається WebDriver. Зараз вона знаходиться в законсервованому стані, не розвивається і навіть відомі баги не виправляються. А всім, хто стикається з обмеженнями Selenium RC, пропонується переходити на використання WebDriver. Іноді Selenium RC називається також Selenium 1,0, тоді як WebDriver називається Selenium 2,0. Хоча насправді дистрибутив версії 2,0 включає в себе одночасно обидві реалізації - і Selenium RC, і WebDriver. А от коли вийде версія 3.0 - в ній залишиться тільки WebDriver. З технічної точки зору WebDriver не є результатом еволюційного розвитку Selenium RC, вони побудовані на абсолютно різних принципах і у них практично немає загального коду. Об'єднує їх лише той факт, що обидві реалізації були зроблені в рамках проекту Selenium. Ну, або якщо бути зовсім точним, WebDriver спочатку був самостійним проектом, але в 2008 році відбулося злиття і зараз WebDriver являє собою основний вектор розвитку проекту Selenium. Selenium Server - це сервер, який дозволяє керувати браузером з віддаленої машини, по мережі. Спочатку на машині, де повинен працювати браузер, встановлюється і запускається сервер. Потім на іншій машині (технічно можна і на тій же самій) запускається програма, яка, використовуючи спеціальний драйвер RemoteWebDriver, з'єднується з сервером і відправляє йому команди. Він в свою чергу запускає браузер і виконує в ньому ці команди, використовуючи драйвер, відповідний цьому браузеру:  Рис 2. Структура Selenium Server. Selenium Server сервер підтримує одночасно два набори команд - для нової версії (WebDriver) і для старої версії (Selenium RC). Selenium Grid - це кластер, що складається з декількох Selenium -серверів. Він призначений для організації розподіленої мережі, що дозволяє паралельно запускати багато браузерів на великій кількості машин. Selenium Grid має топологію «зірка», тобто в його складі є виділений сервер, який носить назву «хаб» або «комутатор», а інші сервера називаються «ноди» або «вузли». Веб сервер веде себе, як хаб. Тест взаємодіє з хабом щоб отримати список запущених екземплярів браузера. Хаб має список екземплярів браузера(вузлів) і запускає тести на них. Це дозволяє запускати тести на паралельних машинах і проводити тестування на різних версіях браузера(на відміну від кожного індивідуального тесту). Мережа може бути гетерогенною, тобто комутатор і вузли можуть працювати під управлінням різних операційних систем, на них можуть бути встановлені різні браузери. Одне із завдань Selenium Grid полягає в тому, щоб «підбирати» підходящий вузол, коли під час старту браузера вказуються вимоги до нього - тип браузера, версія, операційна система, архітектура процесора і ряд інших атрибутів Раніше Selenium Grid був самостійним продуктом. Зараз фізично продукт один - Selenium Server, але у нього є кілька режимів запуску: він може працювати як самостійний сервер, як комутатор кластера, або як вузол кластера, це визначається параметрами запуску. Selenium IDE - плагін до браузера Firefox, який може записувати дії користувача, відтворювати їх, а також генерувати код для WebDriver або Selenium RC, в якому виконуються ті ж самі дії. Загалом, це «Селен-рекордер». Тестувальники, які не вміють (або не хочуть) програмувати, використовують Selenium IDE як самостійний продукт, без перетворення записаних сценаріїв в програмний код. Це, звичайно, не дозволяє розробляти досить складні тестові набори, але деяким вистачає і простих лінійних сценаріїв. Основні функції: запис і відтворення інтелектуальне поле вибору компонентів авто завершення команд вставка точок переривання конвертування тестів в різні формати підтримка доповнень користувача авто тестування заголовків сторінок Selenium Client API - функціонал, що забезпечує можливість написання тестів на інших мовах і їх використання в Selenium. Приклад тесту: @Test public void testLogin() { open("/login"); $(By.name("user.name")).sendKeys("johny"); $("#submitButton").click(); waitUntil(By.id("username"),hasText("Hello, Johny!")); $("#username").shouldHave(cssClass("green-text")); assertThat($("#insuranceDetailsHeader").getText(), equalTo("Страховые полисы")); assertThat($$("#paymentScheduleTable tr").size(), equalTo(7) ); } JUnit – це стандартний фреймворк мови програмування Java для модульного тестування. JUnit використовує перевірену архітектуру тестування. Створений Кентом Беком і Еріком Ґаммою, JUnit є представником родини фреймворків xUnit для різних мов програмування, яка бере початок у SUnit Кента Бека для Smalltalk. JUnit породив екосистему розширень — JMock, EasyMock, DbUnit, HttpUnit,Selenium тощо. Досвід одержаний при роботі з JUnit був важливим у розробці концепцій тестування програмного забезпечення.  Рис 3. Логотип JUnit Сьогодні все більшої популярності набуває Test-Driven Development (TDD), техніка розробки ПЗ, при якій спочатку пишеться тест на певний функціонал, а потім пишеться реалізація цього функціоналу. На практиці все, звичайно ж, не настільки ідеально, але в результаті код не тільки написаний і протестований, але тести як би неявно задають вимоги до функціонала, а також показують приклад використання цього функціоналу. Функціональність: junit.framework.Assert assertEquals assertFalse assertNotNull assertNull assertNotSame assertSame assertTrue junit.framework.TestCase extends junit.framework.Assert run setUp tearDown Функції приймають одне чи два значення (очікуване значення) чи (очікуване значення, розрахункове значення). Окремі тести об’єднуються в пакети тестів для тестування окремих класів користувача. При вкладеності класів один в одного ми тестуємо один клас одним пакетом тестів. При цьому вкладені класи заміняються так-званими mock-класами, які видають тільки правильні результати для тестів. Отже, техніка досить зрозуміла, але постає питання, що використовувати для написання цих самих тестів? Тому тут буде охарактеризовано найбільш використовуваний фреймворк для тестування - JUnit. Використовується він у двох варіантах JUnit 3 і JUnit 4. Розглянемо обидві версії, так як в старих проектах досі використовується 3-я, яка підтримує Java 1.4. JUnit 3 Для створення тесту потрібно успадкувати тест-клас від TestCase, перевизначити методи встановлення та демонтаж якщо треба, ну і найголовніше - створити тестові методи (повинні починатися з @Test). При запуску тесту спочатку створюється екземпляр тест-класу (для кожного тесту в класі окремий екземпляр класу), потім виконується метод установки, запускається сам тест, ну і на завершення виконується метод демонтажу. Якщо який-небудь з методів викидає виключення, тест вважається проваленим. Примітка: тестові методи повинні бути оголошені як public void, можуть бути static. Самі тести складаються з виконання деякого коду і перевірок. Перевірки найчастіше виконуються з допомогою класу Assert хоча іноді використовують ключове слово assert. Розглянемо приклад. Є утиліта для роботи з рядками, є методи для перевірки порожнього рядка і представлення послідовності байт у вигляді 16-річної рядки: public abstract class StringUtils { private static final int HI_BYTE_MASK = 0xf0; private static final int LOW_BYTE_MASK = 0x0f; private static final char[] HEX_SYMBOLS = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f', }; public static boolean isEmpty(final CharSequence sequence) { return sequence == null || sequence.length() <= 0; } public static String toHexString(final byte[] data) { final StringBuffer builder = new StringBuffer(2 * data.length); for (byte item : data) { builder.append(HEX_SYMBOLS[(HI_BYTE_MASK & item) >>> 4]); builder.append(HEX_SYMBOLS[(LOW_BYTE_MASK & item)]); } return builder.toString(); } } Напишемо для неї тести, використовуючи JUnit 3. Зручніше за все, на мій погляд, писати тести, розглядаючи клас як чорний ящик, писати окремий тест на кожен значущий метод в цьому класі, для кожного набору вхідних параметрів якийсь очікуваний результат. Наприклад, тест для методу IsEmpty. public void testIsEmpty() { boolean actual = StringUtils.isEmpty(null); assertTrue(actual); actual = StringUtils.isEmpty(""); assertTrue(actual); actual = StringUtils.isEmpty(" "); assertFalse(actual); actual = StringUtils.isEmpty("some string"); assertFalse(actual); } Можна розділити дані і логіку тесту, перенісши створення даних в метод setUp: public class StringUtilsJUnit3Test extends TestCase { private final Map toHexStringData = new HashMap(); protected void setUp() throws Exception { toHexStringData.put("", new byte[0]); toHexStringData.put("01020d112d7f", new byte[] { 1, 2, 13, 17, 45, 127 }); toHexStringData.put("00fff21180", new byte[] { 0, -1, -14, 17, -128 }); // ... } protected void tearDown() throws Exception { toHexStringData.clear(); } public void testToHexString() { for (Iterator iterator = toHexStringData.keySet().iterator(); iterator .hasNext();) { final String expected = (String) iterator.next(); final byte[] testData = (byte[]) toHexStringData.get(expected); final String actual = StringUtils.toHexString(testData); assertEquals(expected, actual); } } // ... } Крім того, що було описано, є ще кілька додаткових можливостей. Наприклад, можна групувати тести. Для цього потрібно використовувати клас TestSuite: public class StringUtilsJUnit3TestSuite extends TestSuite { public StringUtilsJUnit3TestSuite() { addTestSuite(StringUtilsJUnit3Test.class); addTestSuite(OtherTest1.class); addTestSuite(OtherTest2.class); } } Можна запустити один і той же тест кілька разів. Для цього використовуємо RepeatedTest: public class StringUtilsJUnit3RepeatedTest extends RepeatedTest { public StringUtilsJUnit3RepeatedTest() { super(new StringUtilsJUnit3Test(), 100); } } Наслідуючи тест-клас від ExceptionTestCase, можна перевірити який-небудь клас на генерацію виключення: public class StringUtilsJUnit3ExceptionTest extends ExceptionTestCase { public StringUtilsJUnit3ExceptionTest(final String name) { super(name, NullPointerException.class); } public void testToHexString() { StringUtils.toHexString(null); } } Як видно з прикладів все досить просто, нічого зайвого, мінімум потрібний для тестування JUnit 4 Тут була додана підтримка нових можливостей з Java 5, тести тепер можуть бути оголошені за допомогою анотацій. При цьому існує зворотна сумісність з попередньою версією фреймворку, практично всі розглянуті вище приклади будуть працювати і тут (за винятком RepeatedTest, його немає в новій версії). Розглянемо той же приклад, але вже використовуючи нові можливості: public class StringUtilsJUnit4Test extends Assert { private final Map<String, byte[]> toHexStringData = new HashMap<String, byte[]>(); @Before public static void setUpToHexStringData() { toHexStringData.put("", new byte[0]); toHexStringData.put("01020d112d7f", new byte[] { 1, 2, 13, 17, 45, 127 }); toHexStringData.put("00fff21180", new byte[] { 0, -1, -14, 17, -128 }); //... } @After public static void tearDownToHexStringData() { toHexStringData.clear(); } @Test public void testToHexString() { for (Map.Entry<String, byte[]> entry : toHexStringData.entrySet()) { final byte[] testData = entry.getValue(); final String expected = entry.getKey(); final String actual = StringUtils.toHexString(testData); assertEquals(expected, actual); } } } Що ми тут бачимо? Для спрощення роботи я віддаю перевагу успадковуватися від класу Assert, хоча це необов'язково. Анотація @Before позначає методи, які будуть викликані до виконання тесту, методи повинні бути суспільні сили. Тут зазвичай розміщуються передустановки для тесту, в нашому випадку це генерація тестових даних (метод setUpToHexStringData). Анотація @BeforeClass позначає методи, які будуть викликані до створення екземпляра тест-класу, методи повинні бути public static сили. Має сенс розміщувати передустановки для тесту у випадку, коли клас містить кілька тестів використовують різні передустановки, або коли декілька тестів використовують одні й ті ж дані, щоб не витрачати час на їх створення для кожного тесту. Анотація @After позначає методи, які будуть викликані після виконання тесту, методи повинні бути суспільні сили. Тут розміщуються операції звільнення ресурсів після тесту, в нашому випадку - очищення тестових даних (метод tearDownToHexStringData). Анотація @AfterClass пов'язана за змістом з @BeforeClass, але виконує методи після тесту, як і у випадку з @BeforeClass, методи повинні бути public static void. Анотація тест позначає тестові методи. Як і раніше, ці методи повинні бути суспільні сили. Тут розміщуються самі перевірки. Крім того, у даній анотації є два параметри, очікується - задає очікуваний виняток і тайм-аут - задає час, по закінченню якого тест вважається проваленим. @Test(expected = NullPointerException.class) public void testToHexStringWrong() { StringUtils.toHexString(null); } @Test(timeout = 1000) public void infinity() { while (true); } Якщо який-небудь тест з якоїсь серйозної причини потрібно відключити (наприклад, цей тест постійно валиться, але його виправлення відкладено до світлого майбутнього), його можна закоментувати @Ignore. Також, якщо помістити цю анотацію на клас, то всі тести в цьому класі будуть відключені. @Ignore @Test(timeout = 1000) public void infinity() { while (true); } Історія створення .NET Framework Платформа .NET Framework - це один з компонентів системи Windows. Він дозволяє створювати і використовувати додатки нового покоління. Розробка платформи почалася в 1999 році. Офіційно про розробку нової технології було оголошено 13 січня 2000 року, в день коли Білл Гейтс офіційно оголосив про передачу поста глави Microsoft Стіву Балмеру. У цей день керівництвом корпорації була озвучена нова стратегія компанії, що отримала назву Next Generation Windows Services. Нова стратегія повинна була об'єднати в єдиний набір існуючі та майбутні розробки Microsoft для надання можливості користувачам працювати з Всесвітньою павутиною з бездротових пристроїв, що володіють доступом в Інтернет, як зі стаціонарних комп'ютерів. Презентація розробки відбулась в 2002 році. Вважається, що платформа . NET Framework є відповіддю компанії Microsoft на платформу Java компанії Sun Microsystems. Призначення платформи .NET Framework: Створення цілісної об'єктно-орієнтованого середовища програмування допускає різні варіанти реалізації: код може зберігатися і виконуватися локально; виконуватися локально, а поширюватися через Інтернет; або виконуватися віддалено; надання середовища виконання коду, в якій число конфліктів при розгортанні програмного забезпечення та управлінні версіями буде зведена до мінімуму; забезпечення безпеки виконання коду в середовищі - в тому числі коду, створеного невідомим розробником або розробником з частковим довірою; надання середовища виконання коду, що дозволяє усунути проблеми, пов'язані з продуктивністю середовищ на основі сценаріїв або інтерпретації; уніфікація роботи розробників в абсолютно різних додатках: як у додатках Windows, так і у веб-додатках; використання промислових стандартів у всіх областях обміну даними і, як наслідок, забезпечення сумісності коду, створеного в. NET Framework, з іншими програмами. Будова .NET Framework: Платформа. NET Framework складається з двох основних компонентів: середовища CLR і бібліотеки класів. NET Framework. Середовище CLR - це фундамент платформи. NET Framework. Це своєрідний агент, керуючий кодом під час його виконання, що надає ключові служби, пов'язані з такими процесами, як управління пам'яттю, потоками і віддаленими операціями, а також забезпечує безпеку типів і іншими способами контролюючи правильність коду, гарантуючи безпеку і стабільність додатків. Поняття управління кодом є для середовища основоположним. Код, створений для середовища, називається керованим. Будь-який інший код називається некерованим кодом. Бібліотека класів, другий основний компонент платформи. NET Framework, є обширним об'єктно-орієнтованим набором типів, які можна використовувати для розробки самих різних додатків - від класичних додатків з інтерфейсом командного рядка або графічним інтерфейсом користувача до новітніх додатків на базі технологій ASP.NET, наприклад веб-форм і веб-служб XML. Платформа. NET Framework може розташовуватися на некерованому компоненті, який завантажує середовище CLR у власні процеси і ініціює виконання керованого коду - тим самим створюючи середовище додатків, в якій може виконуватися як керований, так і некерований код. Платформа. NET Framework сама надає кілька хост-додатків і підтримує хост-програми сторонніх розробників. Розглянемо, наприклад, наступну ситуацію: платформа ASP.NET надає масштабовану середовище для керованого коду на стороні сервера. ASP.NET безпосередньо взаємодіє із середовищем, забезпечуючи роботу додатків ASP.NET і веб-служб XML. Оглядач Internet Explorer є прикладом некерованого додатки, в якому розташовується середовище (у вигляді розширення типу MIME). Розміщення середовища в браузері Internet Explorer дозволяє вбудовувати керовані компоненти і елементи управління Windows Forms в документи HTML. Таке розміщення середовища робить можливим використання керованого мобільного коду (схожого з елементами управління Microsoft ActiveX ), надаючи при цьому розширені можливості, характерні виключно для керованого коду, наприклад виконання при частковому довірі або ізольоване зберігання файлів. На малюнку нижче показані зв'язки між середовищем CLR, бібліотекою класів, додатками і всією системою в цілому. Він також дає уявлення про те, як керований код працює в більш великої архітектурі.  Рис.1 Платформа. NET Framework у складі системи Функції середовища CLR Середовище CLR відповідає за управління пам'яттю, роботу потоків, виконання коду, перевірку безпеки коду, компіляцію та інші системні служби. Ці функції включені в керований код, що виконується в середовищі CLR. Середовище відповідає за управління доступом для коду. Крім того, середовище забезпечує стабільність коду за рахунок застосування інфраструктури, що здійснює перевірку коду і типів - так званої системи загальних типів CTS. Система CTS гарантує наявність повного опису в кожному керованому коді. Такий код може споживати інші керовані типи і екземпляри, незмінно зберігаючи правильність і безпеку типів. Керована середовище також допомагає усунути поширені проблеми, пов'язані з програмним забезпеченням. Наприклад, структура об'єктів та посилання на них в середовищі CLR обробляються автоматично і звільняються, коли перестають використовуватися. Таке автоматичне керування пам'яттю дозволяє усунути дві помилки, що найчастіше зустрічаються в додатках: витік пам'яті і недійсні посилання. Крім усього іншого, середа CLR підвищує ефективність розробки. Незалежно від того, якою мовою програміст пише додаток, він повною мірою може використовувати всі функції середовища CLR, бібліотеку класів і компоненти, написані іншими розробниками на інших мовах програмування. Середа розроблялася для додатків нового покоління, однак вона відмінно підтримує існуюче програмне забезпечення. Сумісність керованого і некерованого коду дозволяє розробникам не відмовлятися від необхідних компонентів COM і бібліотек DLL. Нарешті, середовище може розташовуватися на високопродуктивних серверних додатках, таких як Microsoft SQL Server і служби IIS. Бібліотека класів .NET Framework Бібліотека класів. NET Framework - це набір стандартних типів, тісно пов'язаних із середовищем CLR. Бібліотека класів є об'єктно-орієнтованою. У ній містяться типи, на підставі яких ваш керований код може виводити потрібні функції. Це не тільки забезпечує простоту використання типів в. NET Framework, але і скорочує кількість часу, необхідне для вивчення нових можливостей платформи. Крім того, компоненти сторонніх розробників можуть повністю інтегруватися в бібліотеку класів. NET Framework. Оскільки бібліотека класів є об'єктно-орієнтованої, типи в. NET Framework дозволяють виконувати ряд стандартних операцій програмування: управління рядками, збір даних, підключення до баз даних, доступ до файлів. У бібліотеці також є типи, що підтримують найрізноманітніші спеціалізовані ситуації, з якими ви стикаєтесь при розробці додатків. Платформу. NET Framework можна використовувати для створення наступних додатків і служб: консольних додатків; додатків із графічним інтерфейсом користувача для системи Windows (Windows Forms); додатків ASP.NET;. мобільних додатків;. Веб-служб XML; служб Windows. Розробка клієнтських додатків Один з різновидів клієнтських додатків - це традиційні елементи управління ActiveX, що розгортаються через Інтернет у вигляді веб-сторінок. Вони мало чим відрізняються від інших клієнтських додатків: працюють як готові додатки, здійснюють доступ до локальних ресурсів і мають графічний інтерфейс. Раніше такі додатки створювалися або з використанням C або C ++ і класів Microsoft Foundation (MFC), або за допомогою середовища швидкої розробки додатків, наприклад Microsoft Visual Basic. Платформа. NET Framework об'єднала в собі можливості цих продуктів, надавши цілісне середовище розробки, в значній мірі спрощує створення клієнтських додатків. Класи Windows Forms, наявні в .NET Framework, призначені для розробки графічного інтерфейсу користувача. Вони спрощують створення командних вікон, кнопок, меню, панелей інструментів і інших графічних елементів, забезпечуючи гнучкість, необхідну для задоволення мінливих потреб бізнесу. На відміну від елементів управління ActiveX елементи Windows Forms здійснюють доступ до комп'ютера користувача в режимі часткового довіри. Це означає, що бінарний або готовий код до одних ресурсів системи користувача може мати доступ, а до інших не може. Завдяки управлінню доступом для коду багато додатків, які раніше доводилося встановлювати в системі користувача, тепер можна розгортати через Інтернет. Додаток може виконувати функції локальної програми, але при цьому працювати у вигляді веб-сторінки. Розробка серверних додатків Серверні додатки в світі керованого коду реалізуються через хост-додатки. Середа CLR розміщується на некерованому додатку, що дозволяє вашому керованому коду контролювати поведінку сервера. За такої моделі ви можете використовувати всі функції середовища CLR і бібліотеки класів, домагаючись високої продуктивності і масштабованості сервера. ASP.NET є середовищем розміщення, що дозволяє розробникам використовувати. NET Framework для створення веб-додатків. Між тим, ASP.NET відповідає не тільки за розміщення. Це повноцінна архітектура для розробки веб-вузлів і об'єктів, які розповсюджуються через Інтернет, з використанням керованого коду. І веб-форми, і веб-служби XML використовують IIS і ASP.NET в якості механізму публікації для додатків. І ті, й інші мають набір допоміжних класів в. NET Framework. Якщо вам доводилося працювати з більш ранніми версіями технології ASP, ви відразу ж помітите удосконалення, введені в ASP.NET в веб-формах. Наприклад, сторінки веб-форм можна писати на будь-якій мові, якщо він підтримується платформою. NET Framework. Крім того, код не зобов'язаний розташовуватися в одному файлі з текстом HTTP (хоча це не заборонено). Сторінки веб-форм виконуються на машинній мові, оскільки, як і будь-яке інше кероване додаток, вони можуть в повній мірі використовувати переваги середовища CLR. Некеровані сторінки ASP, навпаки, завжди пишуться у вигляді сценарію і інтерпретуються. Сторінки ASP.NET працюють швидше, вони більш функціональні, їх простіше розробляти, ніж некеровані сторінки ASP, оскільки вони взаємодіють із середовищем, як і інші керовані додатки. В платформі. NET Framework також є набір класів і засобів, які допомагають при розробці та використанні веб-служб XML. Веб-служби XML створюються на основі стандартів: SOAP (протокол віддаленого виклику процедур), XML (розширювана формат даних), WSDL (мова опису веб-служб). Платформа. NET Framework спирається на ті ж стандарти, завдяки чому розвиваються можливості взаємодії з рішеннями сторонніх розробників. Переваги .NET Freamwork: Об'єктно-орієнтоване програмування. Середjdbot. Net Framework і C # спочатку повністю базувалися на об'єктно-орієнтованих приципах. Хороший дизайн. Бібліотека базових класів, яка проектувалася "з нуля", виключно інтуїтивно зрозумілим чином. Незалежність від мови. Завдяки. NET, код всіх мов, тобто VB,. NET, C #, J # і керованого C + +, компілюється в спільну мову проміжного рівня - Intermediate Language. Це означає, що всі ці мови мають можливостями взаємодії як колись раніше. Краща підтримка динамічний Web-сторінок. Хоча ASP пропонував високий ступінь гнучкості, він також був не ефективний через своїх інтерпретованих сценарних мов, а не достаток об'єктно-орієнтованого дизайну часто приводив до заплутаного коду ASP. . NET пропонує інтегровану підтримку Web-сторінок із застосуванням нової технології - ASP.NET. У ASP.NET код ваших сторінок компілюється і може бути написаний на мові високого рівня, що підтримує. NET Ефективний доступ до даних. Набір компонентів. NET, відомий під загальною назвою ADO.NET, надає ефективний доступ до реляційних баз даних і широкої різноманітності інших джерел даних. Також є компоненти, що надають доступ до файлової системи і каталогами. Поділ коду. Середовище. NET повністю змінило спосіб поділу коду між додатками, ввівши компіляцію збірки, яка замінила традиційні бібліотеки DLL. Підвищена безпека. Кожна збірка також може містити вбудовану інформацію безпеки, яка в точності описує, кому і яким категоріям користувачам або процесів які методи або класи дозволено викликати. Інсталяція з нульовим впливом. Існуємо два типи збірок: розділювані і приватні. Розділювані збірки - це звичайні бібліотеки, доступні всьому програмному забезпеченню, в той час як приватні збірки призначені для використання абсолютно певними програмами. Підтримка веб-служб. . NET пропонує повністю інтегровану підтримку розробки WEB-служб. Недоліки .NET Freamwork: Як це часто буває, за зручність потрібно платити швидкістю, так і трапилося з. NET. Додатки, написані під платформу. NET працюють повільніше, це факт. У деяких випадках швидкість може впасти на 15%, що іноді є неприйнятним (наприклад, при створенні 3D додатків, де б'ються за кожен FPS). Затримки у виконанні пов'язані з проміжним мовою MSIL, адже для того щоб його скомпілювати в виконуваний файл теж потрібен час. Зрозуміло, що додатки компілюються не всі відразу, а частинами, рівномірно при роботі програми. Не на будь-якій мові можна створювати. NET додатки. Справа в тому, що спочатку. NET "заточувався" під C / JAVA-подібні мови. Це породило деякі труднощі зі створенням. NET компіляторів для інших мов. В результаті цього деякі функції довелося вирішувати нетривіальними способами, що негативно позначилося на продуктивності. Але поступово цей недолік сходить нанівець, тому розробники компіляторів зрозуміли важливість платформи. NET і намагаються зробити для своїх мов гідні інструменти. Приклад: МР3 плеєр: Imports System.Runtime.InteropServices Public Class frmPlayer Inherits System.Windows.Forms.Form Dim strFilePath As String Dim strAlias As String Dim intPlayerStatus As Integer Enum ePlayerStatus NoFile = 0 Ready = 2 Playing = 4 Stopped = 8 Paused = 16 EndOfFile = 32 End Enum #Region " Windows Form Designer generated code " Public Sub New() MyBase.New() 'This call is required by the Windows Form Designer. InitializeComponent() 'Add any initialization after the InitializeComponent() call End Sub 'Form overrides dispose to clean up the component list. Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean) 'To close all media. CloseAllMedia() If disposing Then If Not (components Is Nothing) Then components.Dispose() End If End If MyBase.Dispose(disposing)
Антиботан аватар за замовчуванням

28.03.2013 20:03-

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!
Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!