Windows 7, XP

IDE компании Cygnal. IDE - интегрированные среды разработки программ Универсальная среда разработки

IDE компании Cygnal. IDE - интегрированные среды разработки программ Универсальная среда разработки

    Программный комплекс, предназначенный для продуктивной разработки прикладных систем и состоящий: из редакторов исходных текстов и ресурсов; из компилятора; из отладчика; из средств управления проектом и оперативной помощи; + включающий… … Финансовый словарь

    - (Интегрированная) среда разработки программного обеспечения (англ. IDE, Integrated development environment) система программных средств, используемая программистами для разработки программного обеспечения. Обычно среда разработки включает в себя… … Википедия

    среда разработки ПО - 3.62 среда разработки ПО: Интегрированная система, включающая в себя аппаратные средства, ПО, программно аппаратные средства, процедуры и документы, необходимые для разработки ПО. Источник: ГОСТ Р 51904 2002: Программное обеспечение встроенных… …

    У этого термина существуют и другие значения, см. Eclipse. Eclipse … Википедия

    У этого термина существуют и другие значения, см. Delphi. Embarcadero Delphi … Википедия

    среда - 3.3.3 среда (environment): Связь между синтаксисом и семантикой. Примечание В контексте настоящего стандарта объект environment привязывает к объекту generic variable (синтаксису) соответствующее ему значение (семантику), представленное объектом… … Словарь-справочник терминов нормативно-технической документации

    среда верификации/тестирования ПО - 3.63 среда верификации/тестирования ПО: Интегрированная система, включающая в себя аппаратные средства, ПО, программно аппаратные средства, процедуры и документы, необходимые для выполнения верификации/тестирования ПО. Элементами данной среды… … Словарь-справочник терминов нормативно-технической документации

    У этого термина существуют и другие значения, см. Turbo. Turbo Pascal Среда разработки Turbo Pascal 7.1 Тип … Википедия

    Эта статья предлагается к удалению. Пояснение причин и соответствующее обсуждение вы можете найти на странице Википедия:К удалению/28 сентября 2012. Пока процесс обсуждения не завершён, статью мож … Википедия

Книги

  • , И. И. Попов , О. Л. Голицына , Рассмотрены основные принципы программирования на языках высокого уровня: основные управляющие структуры программирования; стандартные типы данных; структуры данных; процедуры и функции;… Категория: Пособия и справочники Серия: Лазерная техника и технология Издатель: Форум , Производитель: Форум ,
  • Программирование на языках высокого уровня: Учебное пособие , Голицына О.Л. , Рассмотрены основные принципы программирования на языках высокого уровня: основные управляющие структуры программирования; стандартные типы данных; структуры данных; процедуры и функции;… Категория:

Простейший он потому, что не предоставляет таких удобств, как контекстные подсказки по типу intelliSence , в нем нет полноценного отладчика, нет профайлера и других полезных инструментов. Возможности текстового редактора весьма и весьма скромные. Проекты с многофайловой структурой напрямую также не поддерживаются. Собственно, этого всего не нужно, поскольку для профессиональной разработки сложных программных продуктов такой инструмент малопригоден. Для подобных целей стоит использовать полноценную интегрированную среду разработки , которая, помимо перечисленных мною возможностей, предоставляет еще массу различных сервисов, в том числе инфраструктуру для совместной разработки программных решений (Team Foundation Server, TFS ).

Что может эта программа , и с какой целью я здесь выкладываю ее исходный код? Возможности программы следующие: пользователь может писать текст программ на C# или VB.NET, запускать его и выполнять простейшие действия по отладке (программа сообщает об ошибках и указывает их местонахождение), создавать запускаемые модули (exe) или динамически подключаемые библиотеки (dll), подключать другие программные компоненты и сохранять исходный код и параметры сборки в текстовых файлах.

Кому может быть полезен такой инструмент программирования? Ну, во-первых, его можно использовать в рамках учебных курсов по программированию, поскольку он является бесплатным, а его возможностей для целей обучения основам программирования и алгоритмизации вполне хватает. На сайте эта программа как раз и предлагается в качестве курса . Имея исходный код проекта на C#, можно “докрутить” его функциональность под требования конкретного процесса обучения, к примеру, подключить библиотеки с базовыми алгоритмами, встроить автоматизированную подсистему проверки результатов заданий и выставления оценок и т.п. Во-вторых, часть исходного программного кода этого проекта можно использовать при разработке прикладных подсистем, в задачи которых входит интерпретация различного рода бизнес - сценариев, исполнения внешних хранимых процедур и т.д. Более подробно про задачу разработки архитектуры написано .

Описание проекта

Весь проект можно условно разделить на две части: сервисы документа программы и элементы его окружения . Сервисы документа выделены в отдельное пространство имен Document . Основным типом пространства имен Document является сам документ программы – класс CSSDocument , который инкапсулирует в себе пользовательский программный код, различного рода настройки, ссылки на внешние программные компоненты и результаты компиляции. К основным задачам класса CSSDocument относятся: динамическая компиляция, чтение и сохранения программного кода и настроек программы в текстовых файлах, формирование exe и dll модулей и выполнение программы в режиме отладки. Все остальные части Coding Craft Studio – это элементы окружения документа, главной задачей которого является организация взаимодействия с пользователем посредством . Как я уже сказал, проект написан на языке программирования C#. Исходный код сопровождается комментариями, которые при наличии желания помогут разобраться в его работе.

В основе программы используется технология отражения (reflection) , которая предоставляет интерфейсы для доступа к элементам загруженной или динамически сформированной программной сборки (Assembly). Технология отражения построена на базе сервисов чтения и обработки сборки , более подробно про которые можно узнать в материалах, посвященных виртуальной машине и ее окружению. Если кратко описать алгоритм работы программы, то выглядит это следующим образом. Сначала создаем и инициализируем сервис динамической компиляции (CodeDomProvider). Выполняем динамическую компиляцию, вызывая соответствующий метод (CompileAssemblyFromSource) и передавая в качестве параметров экземпляр класса настроек (CompilerParameters) и сам программный код. Если компиляция прошла без ошибок, то ее результатом является сформированная в памяти сборка. Далее, средствами отражения ищем в полученной сборке тип приложения (класс Application), ищем с помощью все того же отражения у этого типа точку входа (метод Main). Потом создаем экземпляр типа приложения и запускаем его, вызывая метод точки входа. В процессе постоянно контролируем возникновение и должным образом их обрабатываем. Все довольно просто, и в подтверждение этих слов ниже приведена часть исходного кода класса CSSDocument , содержащая методы компиляции и запуска программы: Compile() и Run() .

namespace CodingCraftStudio { //Основые сервисы Coding Craft Studio namespace Document { //Поддерживаемые языки программирования public enum CCSLanguage { CSharp = 0 , VisualBasic = 1 } //Документ приложения (исходный код, список библиотек) public class CCSDocument { //Динамическая компиляция программного кода private void Compile (CompilerParameters _CompilerParameters, ref CompilerResults _CompilerResults) { _CompilerParameters. CompilerOptions = this . CompilerOptions; foreach (CCSString _Reference in m_References) _CompilerParameters. ReferencedAssemblies. Add (_Reference. Value); CodeDomProvider _Provider = null ; switch (this . Language) { case CCSLanguage. CSharp: { _Provider = new CSharpCodeProvider (); break ; } case CCSLanguage. VisualBasic: { _Provider = new VBCodeProvider (); break ; } } if (_CompilerParameters. GenerateExecutable) if (_Provider. Supports (GeneratorSupport. EntryPointMethod)) _CompilerParameters. MainClass = this . NameSpace + "." + this . ApplicationTypeName; _CompilerResults = _Provider. CompileAssemblyFromSource (_CompilerParameters, this . Code); if (_CompilerResults. Errors. Count > 0 ) throw new CCSRunTimeException ("Ошибки компиляции!" ); } //Динамическая сборка [ System. ComponentModel. Browsable (false )] public Assembly CompiledAssembly { get { if (m_CompilerResults == null ) return null ; return m_CompilerResults. CompiledAssembly; } } //Получение типа динамической сборки по имени [ System. ComponentModel. Browsable (false )] public Type CompiledType (string _Name) { if (m_CompilerResults == null ) return null ; if (_Name == string . Empty) return null ; return m_CompilerResults. CompiledAssembly. GetType (_Name); } //Создание экземпляра типа public object CreateInstance (Type _Type) { return _Type. GetConstructor (Type. EmptyTypes). Invoke (null ); } //Запуск приложения public void Run () { if (string . IsNullOrEmpty (this . ApplicationTypeName)) throw new CCSSettingsException ("Не задан класс приложения: ApplicationTypeName!" ); this . Compile (); Type _type; _type = this . CompiledType (this . NameSpace + "." + this . ApplicationTypeName); if (_type == null ) throw new CCSRunTimeException ("Класс " + this . ApplicationTypeName + " не определен!" ); MethodInfo _entryPoint; _entryPoint = this . CompiledAssembly. EntryPoint; if (_entryPoint == null ) throw new CCSRunTimeException ("Не определена точка входа!" ); object _object; _object = this . CreateInstance (_type); if (_object == null ) throw new CCSRunTimeException ("Не удалось создать экземпляр " + this . ApplicationTypeName + "!" ); try { _type. InvokeMember (_entryPoint. Name, BindingFlags. InvokeMethod, null , _object, null ); } catch (Exception ex) { throw new CCSRunTimeException ("Не удалось вызвать метод точки входа " + _entryPoint. Name + " приложения " + this . ApplicationTypeName + "! " + ex. Message, ex); } } ...часть исходного кода пропущена... } } }

Если интерес к предмету остался, то скачивайте

Давно хотелось рассказать о том как делать сложные проекты с проектирования до выпуска. Считается, что IDE - это довольно сложные системы. Это очень хорошо. Есть простор для проектирования, применения паттернов, построения иерархии классов.

Примеры успешных IDE:

  • Visual Studio
  • Eclipse
Мне уже не терпится начать…

Проектирование

Если мы хотим довести проект до конца - его необходимо спроектировать. Зачем?
  1. Чтобы заранее продумать проект, его структуру и не допустить критических ошибок еще на ранних стадиях.
  2. Чтобы видеть весь объем работы и не делать в будущем больше чем задумано (так умирают интересные проекты).
  3. Чтобы проект был согласованным.
Проектирование не обязательно имеет письменную форму. Все программисты проектируют код в мыслях по мере его написания. Таким образом, они проектируют на низком уровне. Чтобы упростить и улучшить низкоуровневое проектирование надо подготовить почву - высокоуровневую часть.

Этапы проектирования:

  1. Определение цели
  2. Выработка требований
  3. Определение архитектуры
  4. Написание высокоуровневого проекта
Каждый следующий этап опирается на результаты предыдущего и уточняет их.

Проектируем IDE

Цель

Научиться проектировать и разрабатывать сложные проекты.
Спроектировать и разработать IDE для вэб-разработки.

Требования

Общие
Кроссплатформенность (+ использование нативного интерфейса в каждой из выбранных операционных систем)
Мультиязычность
Расширяемость

Редактор
Подсветка синтаксиса (+ указание ошибок синтаксиса)
Всплывающие подсказки при наведении на сущности в коде
Автоматическое дополнение кода (Code Completion)
Сниппеты
Работа с несколькими документами одновременно

Поддерживаемые языки программирования/разметки
HTML
Выбор стандарта для подсказок
CSS
Использование стандартов CSS2, CSS3 (на выбор) для подсказок
JavaScript
Использование JsDoc для подсказок

Архитектура

Очень интересная часть проектирования. По ее оформлению нет четких требований. Очень часто она содержит различные диаграммы.

Язык программирования: C# (соответствует требованиям и я его знаю достаточно хорошо)
Среда исполнения: .net (Windows), mono (Mac OS X, *nix)

Целевые платформы:

  • Mac OS X (начиная с версии 10.5.0)
  • *nix (следует уточнить список дистрибьютивов в будущем)
  • Windows (начиная с версии 2000)
Распространение:
  • Mac OS X - dmg
  • *nix - в пакетах, специфичных для каждого дистрибьютива
  • Windows - в виде инсталлятора
Структура проекта:
  • Редактор
    • Подсветчик синтаксиса (с легко расширяемым списком языков)
    • Анализаторы структуры документа: HTML, CSS, JavaScript
    • Менеджер сниппетов
  • Среда
    • Менеджер настроек
    • Менеджер горячих клавиш
    • Менеджер интерфейса
      • Панели инструментов
      • Области данных (файловая структура, объектная модель документа, ...)
  • Расширяемость
    • Расширения в виде полноценных библиотек
    • Расширения в виде скриптов на JavaScript
  • Интерфейс
    • Реализации
      • WinForms (Windows)
      • Gtk# (*nix)
      • Cocoa# (Mac OS X)

Вот такой вот получился первый шаг в проектировании. Дальше будет намного более сложный этап - составление высокоуровневого проекта. В скором времени я постараюсь написать статью и по этой теме. Спасибо за внимание. 34.8K

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

Чем IDE отличается от текстового редактора?

IDE — это не просто текстовый редактор. В то время как текстовые редакторы для кода, такие как Sublime или Atom , предлагают множество удобных функций, таких как подсветка синтаксиса, настраиваемый интерфейс и расширенные средства навигации, они позволяют только писать код. Для создания функционирующих приложений как минимум нужен компилятор и отладчик.

IDE включает в себя эти компоненты, как и ряд других. Некоторые из них поставляются с дополнительными инструментами для автоматизации, тестирования и визуализации процесса разработки. Термин «интегрированная среда разработки» означает, что предоставляется все необходимое для превращения кода в функционирующие приложения.

Ознакомьтесь с приведенным ниже списком функций и недостатков каждой из 10 лучших IDE .

1. Microsoft Visual Studio

Microsoft Visual Studio — это интегрированная среда разработки , цена которой варьируется от $699 до $2900 . Множество версий этой IDE способны создавать все типы программ, начиная от веб-приложений и заканчивая мобильными приложениями, видеоиграми. Эта линейка программного обеспечения включает в себя множество инструментов для тестирования совместимости. Благодаря своей гибкости Visual Studio является отличным инструментом для студентов и профессионалов.

Поддерживаемые языки: Ajax, ASP.NET, DHTML, JavaScript, JScript, Visual Basic, Visual C#, Visual C++, Visual F#, XAML и другие .

Особенности:

  • Огромная библиотека расширений, которая постоянно увеличивается;
  • IntelliSense ;
  • Настраиваемая панель и закрепляемые окна;
  • Простой рабочий процесс и файловая иерархия;
  • Статистика мониторинга производительности в режиме реального времени;
  • Инструменты автоматизации;
  • Легкий рефакторинг и вставка фрагментов кода;
  • Поддержка разделенного экрана;
  • Список ошибок, который упрощает отладку;
  • Проверка утверждения при развертывании приложений с помощью ClickOnce , Windows Installer или Publish Wizard.

Недостатки : поскольку Visual Studio является супертяжелой IDE , для открытия и запуска приложений требуются значительные ресурсы. Поэтому на некоторых устройствах внесение простых изменений может занять много времени. Для простых задач целесообразно использовать компактный редактор или средство разработки PHP .

2. NetBeans

Бесплатная среда разработки с открытым исходным кодом. Подходит для редактирования существующих проектов или создания новых. NetBeans предлагает простой drag-and-drop интерфейс, который поставляется с большим количеством удобных шаблонов проектов. Среда в основном используется для разработки Java приложений, но можно устанавливать пакеты, поддерживающие другие языки.

Поддерживаемые языки программирования: C, C++, C++ 11, Fortan, HTML 5, Java, PHP и другие .

Особенности:

  • Интуитивный drag-and-drop интерфейс;
  • Динамические и статические библиотеки;
  • Интеграция нескольких сессий GNU-отладчика с поддержкой кода;
  • Возможность осуществлять удаленное развертывание;
  • Совместимость с платформами Windows, Linux, OS X и Solaris;
  • Поддержка Qt Toolkit;
  • Поддержка Fortan и Assembler;
  • Поддержка целого ряда компиляторов, включая CLang / LLVM, Cygwin, GNU, MinGW и Oracle Solaris Studio.

Недостатки: эта бесплатная среда разработки потребляет много памяти, поэтому может работать медленно на некоторых ПК.

3. PyCharm

PyCharm разработан командой Jet Brains . Пользователям предоставляется бесплатная версия Community Edition , 30-дневная бесплатная ознакомительная версия Professional Edition и годовая подписка за $213 — $690 на версию Professional Edition . Комплексная поддержка кода и анализ делают PyCharm лучшей IDE для Python-программистов .

Поддерживаемые языки: AngularJS, Coffee Script, CSS, Cython, HTML, JavaScript, Node.js, Python, TypeScript.

Особенности:

  • Совместимость с операционными системами Windows, Linux и Mac OS;
  • Поставляется с Django IDE;
  • Легко интегрируется с Git, Mercurial и SVN;
  • Настраиваемый интерфейс с эмуляцией VIM;
  • Отладчики JavaScript, Python и Django;
  • Поддержка Google App Engine.

Недостатки: пользователи жалуются, что эта среда разработки Python содержит некоторые ошибки, такие как периодически не работающая функция автоматического заполнения, что может доставить определенные неудобства.

4. IntelliJ IDEA

Еще одна IDE , разработанная Jet Brains . Она предлагает пользователям бесплатную версию Community Edition , 30-дневную бесплатную ознакомительную версию Ultimate Edition и годовую подписку на версию Ultimate Edition за $533 — $693 . IntelliJ IDEA поддерживает Java 8 и Java EE 7 , обладает обширным инструментарием для разработки мобильных приложений и корпоративных технологий для различных платформ. Если говорить о цене, IntelliJ является прекрасным вариантом из-за огромного списка функций.

Поддерживаемые языки программирования: AngularJS, CoffeeScript, HTML, JavaScript, LESS, Node JS, PHP, Python, Ruby, Sass, TypeScript и другие.

Особенности:

  • Расширенный редактор баз данных и дизайнер UML ;
  • Поддержка нескольких систем сборки;
  • Пользовательский интерфейс тестового запуска приложений;
  • Интеграция с Git ;
  • Поддержка Google App Engine , Grails , GWT , Hibernate , Java EE , OSGi , Play , Spring , Struts и других;
  • Встроенные средства развертывания и отладки для большинства серверов приложений;
  • Интеллектуальные текстовые редакторы для HTML , CSS и Java ;
  • Интегрированный контроль версий;
  • AIR Mobile с поддержкой Android и iOS .

Недостатки: эта среда разработки JavaScript требует времени и усилий на изучение, поэтому может оказаться не лучшим вариантом для начинающих. В ней есть много сочетаний горячих клавиш, которые нужно просто запомнить. Некоторые пользователи жалуются на неуклюжий интерфейс.

5. Eclipse

Бесплатный и гибкий редактор с открытым исходным кодом. Он может оказаться полезен, как для новичков, так и для профессионалов. Первоначально создаваемый как среда для Java-разработки сегодня Eclipse имеет широкий диапазон возможностей благодаря большому количеству плагинов и расширений. Помимо средств отладки и поддержки Git / CVS , стандартная версия Eclipse поставляется с инструментами Java и Plugin Development Tooling . Если вам этого недостаточно, доступно много других пакетов: инструменты для построения диаграмм, моделирования, составления отчетов, тестирования и создания графических интерфейсов. Клиент Marketplace Eclipse открывает пользователям доступ к хранилищу плагинов и информации.

Поддерживаемые языки: C, C++, Java, Perl, PHP, Python, Ruby и другие.

Особенности:

  • Множество пакетных решений, обеспечивающих многоязычную поддержку;
  • Улучшения Java IDE , такие как иерархические представления вложенных проектов;
  • Интерфейс, ориентированный на задачи, включая уведомления в системном трее;
  • Автоматическое создание отчетов об ошибках;
  • Параметры инструментария для проектов JEE ;
  • Интеграция с JUnit .

Недостатки: многие параметры этой среды разработки могут запугать новичков. Eclipse не обладает всеми теми функциями, что и IntelliJ IDEA , но является IDE с открытым исходным кодом.

6. Code::Blocks

Еще один популярный инструмент с открытым исходным кодом. Гибкая IDE , которая стабильно работает на всех платформах, поэтому она отлично подходит для разработчиков, которые часто переключаются между рабочими пространствами. Встроенный фреймворк позволяет настраивать эту IDE под свои потребности.

Поддерживаемые языки: C, C++, Fortran .

Особенности:

  • Простой интерфейс с вкладками открытых файлов;
  • Совместимость с Linux , Mac и Windows ;
  • Написана на C++ ;
  • Не требует интерпретируемых или проприетарных языков программирования;
  • Множество встроенных и настраиваемых плагинов;
  • Поддерживает несколько компиляторов, включая GCC, MSVC ++ , clang и другие;
  • Отладчик с поддержкой контрольных точек;
  • Текстовый редактор с подсветкой синтаксиса и функцией автоматического заполнения;
  • Настраиваемые внешние инструменты;
  • Простые средства управления задачами, идеально подходящие для совместной работы.

Недостатки: относительно компактная среда разработки Си , поэтому она не подходит для крупных проектов. Это отличный инструмент для новичков, но продвинутые программисты могут быть разочарованы ее ограничениями.

7. Aptana Studio 3

Самая мощная из IDE с открытым исходным кодом. Aptana Studio 3 значительно улучшена по сравнению с предыдущими версиями. Поддерживает большинство спецификаций браузеров. Поэтому пользователи этой IDE могут с ее помощью быстро разрабатывать, тестировать и развертывать веб-приложения.

Поддерживаемые языки: HTML5, CSS3, JavaScript, Ruby, Rails, PHP и Python .

Особенности:

  • Подсказки для CSS , HTML , JavaScript , PHP и Ruby ;
  • Мастер развертывания с простой настройкой и несколькими протоколами, включая Capistrano , FTP , FTPS и SFTP ;
  • Возможность автоматической установки созданных приложений Ruby и Rails на серверы хостинга;
  • Интегрированные отладчики для Ruby и Rails и JavaScript ;
  • Интеграция с Git ;
  • Простой доступ к терминалу командной строки с сотнями команд;
  • Строковые пользовательские команды для расширения возможностей.

Недостатки: есть проблемы со стабильностью, и она работает медленно. Поэтому профессиональные разработчики могут предпочесть более мощную HTML среду разработки.

8. Komodo

Предлагает бесплатную 21-дневную ознакомительную версию, полная версия стоит $99 – $1615 в зависимости от редакции и лицензии. Komodo поддерживает большинство основных языков программирования. Удобный интерфейс позволяет осуществлять расширенное редактирование, а небольшие полезные функции, такие как проверка синтаксиса и одноступенчатая отладка, делают Komodo одной из самых популярных IDE для веб и мобильной разработки.

Поддерживаемые языки: CSS, Go, JavaScript, HTML, NodeJS, Perl, PHP, Python, Ruby, Tcl и другие.

Особенности:

  • Настраиваемый многооконный интерфейс;
  • Интеграция контроля версий для Bazaar , CVS , Git , Mercurial , Perforce и Subversion ;
  • Профилирование кода Python и PHP ;
  • Возможность развертывания в облаке благодаря Stackato PaaS ;
  • Графическая отладка для NodeJS , Perl , PHP , Python , Ruby и Tcl ;
  • Автоматическое заполнение и рефакторинг;
  • Стабильная производительность на платформах Mac , Linux и Windows

Недостатки: бесплатная версия среды разработки программного обеспечения не включает в себя все функции. В то же время премиум версия явно стоит своих денег.

9. RubyMine

Еще одна премиум IDE , разработанная компанией Jet Brains . Предлагается 30-дневная бесплатная ознакомительная версия, полная версия стоит $210 — $687 в год. Удобная навигация, логичная организация рабочего процесса и совместимость с большинством платформ делают RubyMine одним из популярных инструментов для разработчиков.

Поддерживаемые языки: CoffeeScript, CSS, HAML, HTML, JavaScript, LESS, Ruby и Rails, Ruby и SASS.

Особенности:

  • Сниппеты кода, автоматическое заполнение и автоматический рефакторинг;
  • Дерево проектов, которое позволяет быстро анализировать код;
  • Схема модели Rails ;
  • Просмотр проекта Rails ;
  • RubyMotion поддерживает разработку под iOS ;
  • Поддержка стека включает в себя Bundler , pik , rbenv , RVM и другие;
  • Отладчики JavaScript , CoffeeScript и Ruby ;
  • Интеграция с CVS , Git , Mercurial , Perforce и Subversion .

Недостатки среды разработки: чтобы RubyMine работала бесперебойно, компьютеру требуется не менее 4 ГБ оперативной памяти. Некоторые пользователи также жалуются на отсутствие опций настройки GUI .

10. Xcode

Набор инструментов для создания приложений под iPad , iPhone и Mac . Интеграция с Cocoa Touch делает работу в среде Apple простой, вы можете включать такие сервисы, как Game Center или Passbook , одним кликом мыши. Встроенная интеграция с сайтом разработчика помогает создавать полнофункциональные приложения «на лету ».

Поддерживаемые языки: AppleScript, C, C++, Java, Objective-C.

Особенности:

  • Элементы пользовательского интерфейса можно легко связать с кодом реализации;
  • Компилятор Apple LLVM сканирует код и предоставляет рекомендации по решению проблем производительности;
  • Панель навигации обеспечивает быстрое перемещение между разделами;
  • Interface Builder позволяет создавать прототипы без написания кода;
  • Пользовательский интерфейс и исходный код можно подключить к сложным прототипам интерфейсов всего за несколько минут;
  • Редактор версий включает в себя файлы журнала и хронологии;
  • Распределение и объединение процессов удобно при командной работе;
  • Test Navigator позволяет быстро тестировать приложения в любой момент разработки;
  • Автоматически создает, анализирует, тестирует и архивирует проекты благодаря интеграции с сервером OX X ;
  • Рабочий процесс настраивается с помощью вкладок, поведения и фрагментов;
  • Библиотека инструментов и каталог ресурсов.

Недостатки инструментальной среды разработки: для запуска Xcode нужен компьютер от компании Apple . А для загрузки создаваемых приложений в Apple Store — лицензия разработчика.

Выбор подходящей IDE

Какая IDE окажется лучшей именно для вас зависит от используемой операционной системы, языка программирования и тех платформ, которые вы хотите развивать.

Пропустили ли мы какие-нибудь важные IDE ? Напишите об этом в комментариях.

Данная публикация представляет собой перевод статьи «Best IDE Software – a List of the Top 10 » , подготовленной дружной командой проекта

[Дополнительная информация]

Ifs Kit help или DDK help: Driver Writers Guide\Driver Development Environment

[Л. 1] Chapter 18. Buildind and debugging drivers

[Л. 2] Chapter 8. Device Driver Structure; Chapter 9. Debugging a Device Driver

В этом разделе мы рассмотрим следующие вопросы:

    Необходимое ПО

    Установка и настройка

Необходимое ПО:

    Операционная система, Service Pack и отладочная информация

    Компилятор

    Средства отладки и вспомогательные средства

Операционная система имеет 2 варианта поставки:

    Checked build (Debug build)

    Free build (Retail build)

Free build – обычная поставка. Включена полная оптимизация и отсутствует специализированные отладочные возможности.

Checked build – специально разработана для использования разработчиками драйверов. Оптимизации почти нет, что способствует лучшему пониманию кода при работе под отладчиком. Специализированный отладочный код встроен во многие функции для проверки правильности параметров и перехвата ошибочных ситуаций. Поставляется только в составе подписки MSDN.

В комплекте с ОС нам понадобится отладочная информация (файлы с расширением.dbgи.pdb). Она содержит сопоставление адресов внутри конкретного исполняемого файла с символическими именами функций и переменных и может быть использована отладчиками.

Необходимо подчеркнуть, что символьная информация различна для checkedи freeверсий системы.

После установки ОС необходимо установить последнюю версию SP. Надо помнить, что SP заменяет почти все системные файлы, и поэтому для них необходима новая символьная информация.

Для checkedи freeверсий системы необходимы отдельные версии SP. Кроме того, ОС и SP могут различаться по поддержке криптоалгоритмов (40-128 бит), что может влиять на возможность установки SP.

Компилятор . Хотя принципиально могут использоваться компиляторы различных производителей, структура заголовочных файлов и переменных окружения, поставляемых Microsoft для создания драйверов оптимизирована для использования компилятораMicrosoft Visual C. Версия компилятора должна быть не ниже 4.1, однако реально необходимая версия будет зависеть от двух других компонентов – SDKи DDK.

MSDN Library . При установке Developer Studio запрашивается установка MSDN Library –продукт, предоставляющий информацию о разработке ПО на всех поддерживаемых платформах Microsoft.

SDK . В ранних версиях комплект назывался Win32 SDK , сейчас – Platform SDK . Это необязятельный, но желательный для разработки драйверов компонент. Содержит заголовочные файлы, lib-файлы, документацию и примеры программирования на пользовательском уровне с использованием подсистемы Win32.

DDK . Существуют DDKдля Windows 95, Windows 98, Windows NT 4.0и Windows 2000. DDKдолжен соответствовать платформе, для которой предполагается создание драйвера, но не обязательно – на которой производится создание. Мы будем пользоваться DDKдля Windows NT 4.0. DDKсодержит заголовочные файлы, документацию и примеры написания драйверов, за исключением драйверов файловой системы.

IFS Kit . Пакет для создания драйверов файловой системы. Поставляется как отдельный от подписки MSDNпродукт. Существуют версии для Windows 98, Windows NT 4.0и Windows 2000. Последние версии включают в себя DDK, но с другим набором примеров. Более ранние версии требовали предварительной установки DDK.

Между перечисленным набором компонентов существует взаимосвязь:

Первым ставится компилятор. Как уже говорилось, хотя существует возможность использования компиляторов других фирм, SDKи DDK предполагают наличие именно Visual C, причем в зависимости от времени выхода SDKи DDK предполагаются различные версии компилятора (при линковке будут указаны библиотеки от различных версий – этим грешит SDK, либо будут некорректно запускаться командные файлы инициализации переменных окружения – этим грешит DDK). Кроме того, ранние версии DDK требовали обязательного наличия установленного SDK. Из возможных проблем еще стоит указать то, что при использовании ОС Windows NT Workstation могут не устанавливаться системные переменные окружения.

Расположение командных файлов для установки переменных окружения:

    VC98\bin\vcvars32.bat

    Mstools\setenv.bat

    Ddk\bin\setenv.bat

При наличии версии DDK, требующей наличия SDK, из файла Ddk\bin\setenv.bat должны быть исключены строки проверки наличия SDK и запуска его файла setenv.bat, и прописан вызов vcvars32.bat, как это сделано на рабочих местах, где будут проходить л/р.

Средства отладки и вспомогательные средства.

Выбор средства отладки – важный момент, который может влиять на набор необходимых аппаратных средств.

Вместе с продуктами Microsoft поставляются 4 отладчика:

KD ,консольная программа для отладки драйверов режима ядра, находится в директории bin пакета DDK для NT4и Win2000. (i386kd.exe, ia64kd.exe, alphakd.exe, mipskd.exe)

NTSD ,консольная программа для отладки программ и драйверов пользовательского режима,находится в директории system32 ОСWindows 2000.

CDB ,вариант NTSD,содержится в директории bin пакетаDDK для Windows 2000.

WinDbg ,графический отладчик для отладки кода как пользовательского режима, так и режима ядра, содержится в директории bin пакетаDDK для Win2000 и Platform SDK.

Из всех перечисленных вариантов упоминания достоин только отладчик WinDbg. Он предоставляет удобный пользовательский интерфейс, однако очень неустойчив в работе, плохо документирован и не имеет поддержки от Microsoft. Для использования этого продукта для отладки драйверов необходимы 2 компьютера – Development Рlatformи Test Platform. Отладчик доступен для всех поддерживаемых платформ, при этом возможна кроссплатформенная отладка. Поддерживается работа на мультипроцессорных системах.

Лучшим отладчиком для отладки ОС и драйверов многие разработчики с полным основанием считают SoftICEфирмы NuMega. Стабильный в работе, хорошо документированный, поддержка от фирмы. Отладка осуществляется на том же компьютере, на котором проводилась разработка, однако возможна и удаленная отладка посредством dos-программы serial.exe. Недостатком можно считать пользовательский интерфейс, однако это дело привычки. Более серьезными недостатками является ограничение поддержки процессоров только платформой intel, а также отсутствие поддержки мультипроцессорных систем (однако система все еще активно развивается).

На рабочих местах для выполнения л/р установлен SoftIce в составе пакета NuMega Driver Studio v 2.0. Имеется полная документация в формате pdf.

На рабочих местах имеется также ряд вспомогательных средств для удобства в исследовании ОС и поведения драйверов. Часть этих средств снабжена исходными текстами, и все они могут являться хорошим наглядным пособием для написания драйверов. Перечислим эти средства:

    Monitor – просмотр трассировочной информации, выводимой драйверами и прикладными программами.

    Winobj – просмотр пространства имен диспетчера объектов

    Handleex – информация о запущенных процессах, всех открытых ими описателях и подгруженных модулях dll.

    Filemon – просмотр активности файловых систем, в том числе mailslotи npfs

    Regmon – отслеживание обращений к реестру, в том числе на этапе загрузки системы

    Portmon – отслеживание обращений к последовательным и параллельным портам

    Tdimon – отслеживание запросов TDI.

    Tokenmon – отслеживание работы системы, касающихся srm.