Анотація: Бренд .Net. Visual Studio .Net - відкрите середовище розробки. Каркас Framework .Net. Бібліотека класів FCL - статичний компонент каркаса. Загальномовне виконавче середовище CLR - динамічний компонент каркаса. Керований код. Загальномовного специфікації CLS і сумісні модулі.
Не намагаючись охопити все різноманіття мережевої взаємодії, розглянемо реалізацію нових ідей на прикладі Visual Studio .Net - продукту, важливого для розробників.
Visual Studio .Net - відкрите середовище розробки
Середовище розробки Visual Studio .Net - це вже перевірений часом програмний продукт. є сьомою версією Студії. Але новинки цієї версії, пов'язані з ідеєю. Net. дозволяють вважати її принципово новою розробкою, яка визначає новий етап в створенні програмних продуктів. Виділю дві найважливіші, на мій погляд, ідеї:
- відкритість для мов програмування;
- принципово новий підхід до побудови каркаса середовища - Framework .Net.
Відкритість
Середовище розробки тепер є відкритою мовним середовищем. Це означає, що поряд з мовами програмування, включеними в середу фірмою Microsoft - Visual C ++ .Net (з керованими розширеннями), Visual C # .Net. J # .Net. Visual Basic .Net. - в середу можуть додаватися будь-які мови програмування, компілятори яких створюються іншими фірмами-виробниками. Таких розширень середовища Visual Studio зроблено вже досить багато, практично вони існують для всіх відомих мов - Fortran і Cobol. RPG і Component Pascal. Oberon і SmallTalk. Я у себе на комп'ютері включив в середу компілятор одного з кращих об'єктних мов - мови Eiffel.
Відкритість середовища не означає повної свободи. Всі розробники компіляторів при включенні нової мови в середу розробки повинні слідувати певним обмеженням. Головне обмеження, яке можна вважати і головним достоїнством, полягає в тому, що всі мови, що включаються в середу розробки Visual Studio .Net. повинні використовувати єдиний каркас - Framework .Net. Завдяки цьому досягаються багато бажані властивості: легкість використання компонентів, розроблених на різних мовах; можливість розробки кількох частин однієї програми на різних мовах; можливість безшовної налагодження такого додатка; можливість написати клас на одній мові, а його нащадків - на інших мовах. Єдиний каркас призводить до зближення мов програмування, дозволяючи разом з тим зберігати їх індивідуальність і наявні у них гідності. Подолання мовного бар'єру - одна з найважливіших завдань сучасного світу. Завдяки єдиному каркасу, Visual Studio .Net в певній мірі вирішує цю задачу в світі програмістів.
Framework .Net - єдиний каркас середовища розробки
У каркасі Framework .Net можна виділити два основних компоненти:
- статичний - FCL (Framework Class Library) - бібліотеку класів каркаса;
- динамічний - CLR (Common Language Runtime) - загальномовне виконавчу середу.
Бібліотека класів FCL - статичний компонент каркаса
Поняття каркаса додатків - Framework Applications - з'явилося досить давно; принаймні воно широко використовувалося ще в четвертій версії Visual Studio. Десять років тому, коли я з Ильмира писав книгу [В.А. Білліг, І.Х. Мусікаев "Visual C ++, 4-я версія. Книга для програмістів"], для нас це було ще нове поняття. Ми докладно обговорювали роль бібліотеки класів MFC (Microsoft Foundation Classes) як каркаса додатків Visual C. Незважаючи на те, що каркас був представлений тільки статичним компонентом, вже тоді була очевидна його роль в побудові додатків. Уже в той час найважливіше значення в бібліотеці класів MFC мали класи, які визначають архітектуру споруджуваних додатків. Коли розробник вибирав один з можливих типів додатки, наприклад, архітектуру Document-View, то в його додаток автоматично убудовувалися клас Document, що задає структуру документа, і клас View, що задає його візуальне уявлення. Клас Form і класи, які визначають елементи управління, забезпечували єдиний інтерфейс додатків. Вибираючи тип програми, розробник спочатку отримував потрібну йому функціональність, підтримувану класами каркаса. Бібліотека класів підтримувала і більш традиційні для програмістів класи, які визначають розширену систему типів даних, зокрема, динамічні типи даних - списки, дерева, колекції, шаблони.
За минулі 10 років роль каркаса в побудові додатків істотно зросла - перш за все, за рахунок появи його динамічного компонента, про який трохи пізніше поговоримо докладніше. Що ж стосується статичного компонента - бібліотеки класів, то і тут за десять років з'явився ряд важливих нововведень.
єдність каркаса
Каркас став єдиним для всіх мов середовища. Тому, якою б мовою програмування ні велася розробка, вона використовує класи однієї і тієї ж бібліотеки. Багато класів бібліотеки, складові загальне ядро, використовуються всіма мовами. Звідси єдність інтерфейсу додатку, якою б мовою вона не розроблялося, єдність роботи з колекціями та іншими контейнерами даних, єдність зв'язування з різними сховищами даних та інша універсальність.
Вбудовані примітивні типи
Важливою частиною бібліотеки FCL стали класи, які визначають примітивні типи - ті типи, які вважаються вбудованими в мову програмування. Типи каркаса покривають все безліч вбудованих типів. зустрічаються в мовах програмування. Типи мови програмування проектуються на відповідні типи каркаса. Тип, званий в мові Visual Basic - Integer, а в мові C # - int, проектується на один і той же тип каркаса System.Int32. У кожній мові програмування, поряд з "рідними" для мови назвами типів, дозволяється користуватися іменами типів, прийнятими в каркасі. Тому, по суті, всі мови середовища розробки можуть користуватися єдиною системою вбудованих типів. що, звичайно, сприяє полегшенню взаємодії компонентів, написаних на різних мовах.
структурні типи
Частиною бібліотеки стали не тільки прості вбудовані типи. але і структурні типи. задають організацію даних - рядки, масиви, перерахування, структури (записи). Це також сприяє уніфікації і реального зближення мов програмування.
архітектура додатків
Істотно розширився набір можливих архітектурних типів побудови додатків. Крім традиційних Windows- і консольних додатків, з'явилася можливість побудови Web-додатків. Велика увага приділяється можливості створення повторно використовуваних компонентів - дозволяється будувати бібліотеки класів, бібліотеки елементів управління і бібліотеки Web-елементів управління. Популярним архітектурним типом є Web-служби, які стали сьогодні завдяки відкритому стандарту одним з основних видів повторно використовуваних компонентів. Для мов C #, J #, Visual Basic, підтримуваних Microsoft, пропонується однаковий набір з 12 архітектурних типів додатків. Дещо осібно стоїть Visual С ++, який зберігає можливість роботи не тільки з бібліотекою FCL. але і з бібліотеками MFC і ATL, і з побудовою відповідних MFC і ATL-проектів. Компілятори мов, що поставляються іншими фірмами, створюють проекти, які задовольняють загальним вимогам середовища, зберігаючи свою індивідуальність. Так, наприклад, компілятор Eiffel допускає створення проектів, що використовують як бібліотеку FCL. так і власну бібліотеку класів.
модульність
Число класів бібліотеки FCL велике (кілька тисяч). Тому знадобився спосіб їх структуризації. Логічно класи з близької функціональністю об'єднуються в групи, звані простором імен (Namespace). Для динамічного компонента CLR фізичної одиницею, яка об'єднує класи та інші ресурси, є збірка (assembly).
Основним простором імен бібліотеки FCL є простір System, що містить як класи, так і інші вкладені простору імен. Так, вже згадуваний примітивний тип Int32 безпосередньо вкладений в простір імен System і його повне ім'я, яке включає ім'я простору - System.Int32.
В простір System вкладений цілий ряд інших просторів імен. Наприклад, в просторі System.Collections знаходяться класи та інтерфейси, що підтримують роботу з колекціями об'єктів - списками, чергами, словниками. В простір System.Collections. в свою чергу, вкладено простір імен Specialized. що містить класи зі спеціалізацією, наприклад, колекції, елементами яких є тільки рядки. Простір System.Windows.Forms містить класи, використовувані при створенні Windows-додатків. Клас Form з цього простору задає форму - вікно, що заповнюються елементами управління, графікою, що забезпечує інтерактивну взаємодію з користувачем.
По ходу курсу ми будемо знайомитися з багатьма класами, що належать різним просторів імен бібліотеки FCL.