Ознакомление с концепцией интегрированной среды разработки приложений, ее типовыми возможностями, историей развития интегрированных сред, возможностями наиболее известных из них.
Данный курс познакомит Вас с возможностями новой версии интегрированной среды Visual Studio 2013 и использованием данной среды для облачных вычислений на платформе Microsoft Azure.
Интегрированная среда (integrated development environment - IDE) - набор инструментов для разработки и отладки программ, имеющий общую интерактивную графическую оболочку, поддерживающую выполнение всех основных функций жизненного цикла разработки программы - набор и редактирование исходного текста (кода), компиляцию (сборку), исполнение, отладку, профилирование и др.
Использование интегрированной среды - один из возможных подходов к разработке программ. Альтернативой ему является более ранний, традиционный подход системы UNIX, основанный на использовании набора инструментов (toolkit, toolbox), родственных по тематике и функциональности, но не объединенных в одну интегрированную интерактивную среду и подчас (в ранних версиях системы UNIX) вызываемых в режиме командной строки (command line interface).
Разумеется, использовать интегрированную среду гораздо удобнее для разработчика, чем и объясняется бурное развитие и разнообразие интегрированных сред, начиная с 1980-х годов.
Одной из первых интегрированных сред стала среда Turbo Pascal [1] фирмы Borland, руководителем разработки которой в середине 1980-х гг. стал Филипп Кан, ученик Никлауса Вирта.
Корпорация Microsoft внесла особо выдающийся вклад в развитие интегрированных сред, благодаря созданию и развитию среды Visual Studio, которая является одним из лучших образцов современной интегрированной среды. Ее новую версию, Visual Studio 2013, мы и рассмотрим в данном курсе.
Идея интегрированных сред достигла еще большего развития к середине 1980-х гг., когда появились две группы популярных интегрированных сред:
Следует также упомянуть интегрированную среду тех лет для разработки программ на объектно-ориентированном языке Smalltalk [3] фирмы Xeror PARC - одну из первых интегрированных сред ООП, в которой впервые появилось понятие байт-кода как бинарной постфиксной формы промежуточного представления программы и понятие just-in-time (JIT, динамического) компилятора, выполняющего при первом вызове метода его компиляцию в платформно-зависимый (native) код целевого компьютера.
Турбо-среды фирмы Borland оказали огромное влияние на разработчиков ПО и создателей инструментов разработки ПО. Их характерной чертой стала поддержка непрерывного цикла разработки: набор и редактирование исходного текста - компиляция - анализ и исправление ошибок - завершение компиляции - исполнение и отладка - без выхода из интегрированной среды, причем все эти этапы управлялись простым набором функциональных клавиш и не требовали явного вызова каких-либо отдельных инструментов. Привлекательным качеством Турбо-сред стала также высокая скорость компиляции. Хотя в первых версиях Турбо-Паскаля компиляция осуществлялась до первой ошибки, и для поиска и диагностики всех ошибок приходилось, после исправления предыдущей, запускать компиляцию снова, но это выполнялось мгновенно с помощью функциональных клавиш.
Турбо-среды имели встроенный механизм сборки (build) для полной компиляции всех исходных текстов проекта в бинарный код, а также режим make (F9), аналогичный функциональности классической утилиты make системы UNIX, для повторной компиляции только измененных модулей исходного текста.
Самым важным нововведением в среде Турбо-Паскаль было расширение входного языка объектно-ориентированными концепциями (класс, объект) и конструкцией unit (модуль), воплощающей в себе идею независимой единицы компиляции (compilation unit). Поддержка ООП появилась в версии 5.5. Впоследствии эти идеи были развиты, уже на платформе Windows, в новых версиях интегрированных сред фирмы Borland - Borland Pascal и Delphi (язык программирования фирмы Borland, развивающий идеи Паскаля в сочетании с ООП).
Я со своей группой в начале 1990-х гг. разработал большое число инструментов и приложений на объектно-ориентированном Турбо-Паскале (5.5, 6.0), объемом до нескольких десятков тысяч строк исходного текста (компиляторов, экспертных систем, систем расчета непотопляемости судов, для ВМФ, и др.), используя, по современным понятиям, более чем скромную конфигурацию оборудования - IBM PC с 640 килобайтами памяти под управлением MS DOS. Для размещения в памяти попеременно больших исполняемых модулей использовалась оверлейная структура (overlay). Ограничение в 640 килобайт (максимальный размер исполняемой программы в MS DOS) накладывало весьма серьезные ограничения на размер единицы компиляции, даже если фактически память компьютера имела больший объем, например, 2 МБ. Вследствие ограниченного объема памяти приходилось искусственно разбивать модули (units) на части. Тем не менее, комфортные интегрированные Турбо-среды были для нас просто бальзамом после неуклюжей поддержки основных инструментов на традиционных mainframe-компьютерах, на которых приходилось работать в режиме командной строки. Производительность работы программистов возросла в Турбо-средах просто фантастически, в десятки раз. "И уйду на PC, и утешусь на Турбо-Паскале" - пели мы в нашем программистском фольклоре тех лет.
Суммируем теперь основные возможности интегрированных сред разработки программ. Для каждой из них характерно наличие следующих компонент:
Современные текстовые редакторы в интегрированных средах обеспечивают также режим автоматического завершения кода (code completion), который в них включен по умолчанию и в котором редактор среды подсказывает разработчику кода возможные и синтаксически правильные его продолжения - например, отсутствие закрывающей скобки, отсутствие точки с запятой; возможные варианты имен методов при вызове метода от объекта какого-либо определенного класса, и т.д.
В современных версиях интегрированных сред появились также следующие возможности (компоненты):
units) - методов или процедур - с различными возможными сочетаниями значений аргументов; типичные примеры - инструмент JUnit в интегрированных Java-средах и аналогичный инструмент NUnit в среде Visual Studioildasm (IL disassembler), позволяющая визуализировать единый промежуточный (бинарный) код платформы .NET - Common Intermediate Language - CIL, сгенерированный одним из компиляторов средыПервоначально интегрированные среды разрабатывались для программирования на каком-либо одном исходном языке/ Например, среда Турбо-Паскаль - для программирования на расширении языка Паскаль фирмы Borland.
Однако постепенно проявилась тенденция к превращению таких моноязыковых интегрированных сред в многоязыковые, поскольку для разработки проектов на различных языках используются сходные принципы и механизмы и, кроме того, иногда удобно использовать в большим проекте фрагменты программы, написанные на разных языках. Например, хотелось бы использовать готовый унаследованный код (legacy code), написанный на более раннем языке (например, Си), чтобы не переписывать его заново, например, на C#, с единственной целью включения в проект.
Например, широко известная интегрированная среда NetBeans первоначально создавалась как студенческий проект Карлова университета в Праге для программирования на языке Java. В настоящее время среда NetBeans развилась в мощную многоязыковую интегрированную среду, в которой реализована компонента C / C++ development pack, обеспечивающий поддержку разработки проектов на языках C и C++.
Отметим, что среда Visual Studio.NET с самого начала создавалась как многоязыковая среда. Это принципиальная установка фирмы Microsoft - дать возможность разработчикам выбрать наиболее удобный язык (или языки) для соответствующих частей разработанного проекта, а затем собрать проект из бинарных компонент (сборок - assemblies), полученных путем компиляции с соответствующих языков в единый бинарный промежуточный код CIL. Ниже мы еще раз рассмотрим подробнее эту удобную особенность Visual Studio и поддерживаемый ею набор языков.
Интегрированная среда (integrated development environment - IDE) - набор инструментов для разработки и отладки программ, имеющий общую интерактивную графическую оболочку, поддерживающую выполнение всех основных функций жизненного цикла разработки программы.
Первыми интегрированными средами стали Турбо-среды фирмы Borland, GNU Emacs, среда программирования на языке Smalltalk. Интегрированные среды существенно повысили производительность программистов и обеспечили удобство разработки.
К числу возможностей современных интегрированных сред относятся: текстовый редактор (включая code completion - автоматическое завершение кода), система сборки бинарных кодов из исходных кодов, отладчик, профайлер, генератор unit-тестов, инструменты поддерждки коллективной разработки, инструменты связи с системой управления версиями, обфускатор, средства создания различных видов проектов и их визуализации, средства расширения функциональности и видов проектов (plug-ins); инструменты моделирования архитектуры проектов на языке UML.
Интегрированные среды могут быть моноязыковыми и многоязыковыми. Среда Visual Studio изначально является многоязыковой, а с версии 7 поддерживает платформу Microsoft.NET.
- инструмент для генерации типовых тестов для тестирования модулей (units) - методов или процедур - с различными возможными сочетаниями значений аргументов; типичные примеры - инструмент JUnit в интегрированных Java-средах и аналогичный инструмент NUnit в среде Visual Studio |
|
| - инструменты поддержки этапов жизненного цикла программы (требования и спецификации, проектирование, реализация, тестирование), распределения заданий по разработке среди участников команды программистов, контроля выполнения заданий менеджером проекта. В среде Visual Studio такая компонента называлась сначала Team Foundation Server (TFS), а, начиная с версии Visual Studio 2013, она реализована в виде облачного интерфейса и получила название Visual Studio Online. | |
| - набор инструментов для разработки и отладки программ, имеющий общую интерактивную графическую оболочку, поддерживающую выполнение всех основных функций жизненного цикла разработки программы - набор и редактирование исходного текста (кода), компиляцию (сборку), исполнение, отладку, профилирование и др. | |
| - группа инструментов разработки программ, родственных по тематике и функциональности, но не объединенных в одну интегрированную интерактивную среду и вызываемых в командном режиме | |
| - инструментарий систематических групповых модификаций программ в среде, без принципиальных изменений их функциональности, с целью улучшения кода. К типичным подобным действиям относится, например, изменение имени метода в его определении и во всех использованиях, добавление его аргумента, добавление try-catch - блока для обработки ранее не учтенного исключения и т.п. | |
| - инструментарий для компиляции проектов из исходных кодов, включающая компилятор с исходного реализуемого языка и компоновщик (linker) объектных бинарных кодов в единый исполняемый код (загрузочный модуль); компоновщик используется либо штатный, поставляемый вместо с ОС, либо специфичный для данной среды | |
| - интегрированные среды фирмы Borland для поддержки программирования на конкретных языках, реализованные сначала для операционной системы MS DOS, затем - для Windows | |
| - многоязыковая и многоплатформная интегрированная среда разработки, реализованная для MS DOS, затем для Windows, OpenVMS и для Linux |
Интегрированная среда (integrated development environment - IDE) - набор инструментов для разработки и отладки программ, имеющий общую интерактивную графическую оболочку, поддерживающую выполнение всех основных функций жизненного цикла разработки программы.
Первыми интегрированными средами стали Турбо-среды формы Borland, GNU Emacs, среда программирования на языке Smalltalk. Интегрированные среды существенно повысили производительность программистов и обеспечили удобство разработки.
К числу возможностей современных интегрированных сред относятся: текстовый редактор (включая code completion - автоматическое завершение кода), система сборки бинарных кодов их исходных кодов, отладчик, профайлер, генератор unit-тестов, инструменты поддерждки коллективной разработки, инструменты связи с системой управления версиями, обфускатор, средства создания различных видов проектов и их визуализации, средства расширения функциональности и видов проектов (plug-ins); инструменты моделирования архитектуры проектов на языке UML.
Интегрированные среды могут быть моноязыковыми и многоязыковыми. Среда Visual Studio изначально является многоязыковой, а, начиная с версии 7, поддерживает платформу Microsoft.NET.
Для данной вводной лекции упражнения не предусмотрены.
Презентация данной лекции доступна в файле VS_2013_Course_1.pptx.
Для получения официальных документов о завершении программы дополнительного профессионального образования (удостоверения о повышении квалификации, дипломов о профессиональной переподготовке и MBA) необходимо предоставить:
Внимание! Вы можете не заказывать доставку бумажной версии официального документы, а скачать его в электронном виде и распечатать самостоятельно. Информация о выданном документе в течение 1 месяца загружается в Федеральную информационную систему «Федеральный реестр сведений о документах об образовании и (или) о квалификации, документах об обучении» - ФИС ФРДО.
Доступ на новый сайт осуществляется с использованием адреса электронной почты, который был указан вами при регистрации на "старом". Мы постарались перенести все ваши данные с прежнего ресурса, однако не исключена вероятность потери части информации.
При возникновении проблемы со входом, воспользуйтесь функцией сброса пароля
Если вы обнаружите несоответствия, пожалуйста, сообщите нам.