| // |
| // Licensed to the Apache Software Foundation (ASF) under one |
| // or more contributor license agreements. See the NOTICE file |
| // distributed with this work for additional information |
| // regarding copyright ownership. The ASF licenses this file |
| // to you under the Apache License, Version 2.0 (the |
| // "License"); you may not use this file except in compliance |
| // with the License. You may obtain a copy of the License at |
| // |
| // http://www.apache.org/licenses/LICENSE-2.0 |
| // |
| // Unless required by applicable law or agreed to in writing, |
| // software distributed under the License is distributed on an |
| // "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| // KIND, either express or implied. See the License for the |
| // specific language governing permissions and limitations |
| // under the License. |
| // |
| |
| = Режимы удаленной разработки C/C++ в IDE |
| :jbake-type: tutorial |
| :jbake-tags: tutorials |
| :jbake-status: published |
| :icons: font |
| :syntax: true |
| :source-highlighter: pygments |
| :toc: left |
| :toc-title: |
| :description: Режимы удаленной разработки C/C++ в IDE - Apache NetBeans |
| :keywords: Apache NetBeans, Tutorials, Режимы удаленной разработки C/C++ в IDE |
| |
| Март 2014 г. [Номер версии: V8.0-1] |
| |
| В данной статье описываются возможности удаленной разработки, доступные в IDE NetBeans, если модуль C/C++ установлен, а также рекомендации по оптимальному использованию их в среде разработки. |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| == Что такое удаленная разработка |
| |
| Удаленная разработка – это функция IDE NetBeans, позволяющая запускать IDE на компьютере под управлением Microsoft Windows, Mac OS X, Oracle Solaris или Linux, а также создавать, запускать и отлаживать программы на другом компьютере под управлением Oracle Solaris или Linux. |
| |
| |
| == Когда следует использовать удаленную разработку |
| |
| Удаленную разработку рекомендуется использовать в следующих ситуациях. |
| |
| * Ваш настольный компьютер работает под управлением системы, отличной от Oracle Solaris или Linux. |
| |
| * IDE запущена в общей системе Solaris, что иногда приводит к высоким нагрузкам. |
| |
| * Ваш доступ к системам под управлением Oracle Solaris или Linux ограничен Secure Shell (SSH) по соображениям безопасности. |
| |
| * Запуск графических инструментов пользовательского интерфейса в среде Solaris затруднен. |
| |
| * Разрабатываемое программное обеспечение должно быть скомпилировано и запускаться на нескольких платформах, включая Solaris или Linux. |
| |
| |
| == Каковы принципы работы удаленной разработки |
| |
| IDE предоставляет возможности для управления удаленными узлами. Можно настроить удаленный узел для создания, запуска и отладки проектов на C, C++ и Fortran. Удаленный узел должен удовлетворять следующим условиям. |
| |
| * Удаленной операционной системой должна быть Oracle Solaris или Linux. |
| |
| * На удаленном узле необходимо запустить программу-демон SSH `sshd`. |
| |
| * По крайней мере одна коллекция средств (GNU, Oracle Solaris Studio или Sun Studio) должна быть доступна на удаленном узле. |
| |
| * У пользователя должна быть учетная запись пользователя на этом узле. |
| |
| Он может управлять удаленными узлами в окне 'Службы' в IDE. |
| |
| image::images/services_window.png[] |
| |
| После настройки удаленного узла и подключения к нему можно создавать, запускать и отлаживать проекты так же, как это делается на локальном компьютере. Удаленные команды IDE выполняются с более высоким приоритетом по сравнению с SSH. |
| |
| При использовании удаленного узла разработки и локальные, и удаленные узлы должны быть доступны для файлов проекта. Этот доступ может быть предоставлен путем совместного использования файлов или защищенного копирования файлов. Перед тем как в IDE можно будет использовать обмен файлами между локальными и удаленными системами общая файловая система или папка должна быть создана и доступна для обеих систем. Удаленные файлы доступны через SFTP или другой механизм совместного использования файлов, доступных в операционной системе, под управлением которой работает узел (например, Network File System (NFS), Samba или WebDAV). |
| |
| Если совместное использование файлов не представляется возможным, можно использовать автоматическое копирование для копирования файлов на сервер с помощью SSH. |
| |
| |
| == Преимущества удаленной разработки |
| |
| Удаленная разработка обеспечивает следующие преимущества. |
| |
| * Можно использовать одну среду разработки для всех проектов. |
| |
| * Ресурсы системы настольного компьютера используются оптимально. |
| |
| * Сетевой трафик оптимизирован. |
| |
| * Время отклика используемой IDE лучше. |
| |
| * Можно просматривать удаленные файловые системы из IDE. |
| |
| * Можно открыть окно терминала в IDE для удаленного узла. |
| |
| * Можно использовать его только в среде, защищенной SSH. |
| |
| image::images/modes_diagram.png[] |
| |
| В простом режиме файлы исходного кода находятся в основном на локальном компьютере. При создании проекта файлы исходного кода доставляются по требованию к удаленному узлу с помощью протокола SSH File Transfer Protocol (SFTP). |
| |
| В комбинированном или общем режиме файлы исходного кода находятся в местоположении, которое назначено общим для локального и удаленного узла с помощью NFS, Samba, WebDAV или другой системы совместного использования файлов. |
| |
| В полном режиме удаленного доступа файлы исходного кода находятся на удаленном узле. IDE обращается к файлам с помощью SFTP. |
| |
| |
| == Решение о выборе режима удаленной разработки |
| |
| Какой режим разработки лучше всего подходит для данной конкретной ситуации, зависит от среды разработки, в которой вы работаете. В следующих разделах приведены примеры сред разработки, в которых один из режимов обеспечивает наибольшие преимущества. |
| |
| |
| === Простой режим |
| |
| Простой режим может быть наилучшим удаленным режимом для ваших потребностей, если вашу среду разработки описывает следующая диаграмма. |
| |
| image::images/simple_mode_diagram.png[] |
| |
| В этой среде простой режим обеспечивает следующие преимущества. |
| |
| * Можно использовать ту же IDE для локальной и удаленной разработки. |
| |
| * Можно легко переключаться между узлами и платформами в IDE. |
| |
| * Можно использовать IDE в среде, которая поддерживает только SSH. |
| |
| * Ваша мобильность повышается. |
| |
| |
| === Комбинированный (общий) режим |
| |
| Комбинированный или общий режим может быть оптимальным, если среда разработки похожа на показанную на следующем рисунке. |
| |
| image::images/mixed_mode_diagram.png[] |
| |
| Преимущества использования комбинированного режима в этой среде. |
| |
| * Можно легко переключаться между узлами и платформами в IDE. |
| |
| * Нет дублирования (кэширования) файлов, которое происходит в двух других режимах. |
| |
| * Пропускная способность сети будет такой же высокой, какую может обеспечить ваш механизм совместного использования файлов (например, NFS, Samba или WebDAV). |
| |
| |
| === Полный режим |
| |
| Полный режим может быть оптимальным, если ваша среда разработки напоминает показанную на следующем рисунке. |
| |
| image::images/full_mode_diagram.png[] |
| |
| В этой среде преимущества использования полного удаленного режима таковы. |
| |
| * Перенос с использованием перенаправления X-window или VNC практически прозрачен. |
| |
| * Время отклика используемой IDE лучше. |
| |
| * Вы в меньшей степени зависите от ресурсов узла разработки. |
| |
| * Меньшая нагрузка на узел разработки снижает нагрузку на Oracle Solaris. |
| |
| * Можно создавать новые удаленные проекты на основе удаленных двоичных файлов. |
| |
| |
| == Выбор удаленного режима разработки |
| |
| Выбор удаленного режима разработки определяется способом настройки узла удаленной сборки, а также способом получения доступа к проекту в IDE. |
| |
| Для каждого режима необходимо сначала настроить удаленный узел сборки, как описано в документе link:./remotedev-tutorial.html[+Учебное руководство по разработке на C/C+++]и в разделах справки по IDE. |
| |
| Можно выбрать простой или комбинированный режим для удаленного узла в IDE и с помощью диалогового окна свойств узла указать, как файлы проекта должны быть доступны при работе с узлом. |
| |
| Откройте окно 'Службы', разверните узел 'Узлы сборки C/C++', щелкните правой кнопкой мыши удаленный узел и выберите 'Свойства'. |
| |
| image::images/host_properties_dialog.png[] |
| |
| |
| === Простой режим |
| |
| Для простого режима установите для доступа к файлам проекта режим автоматического копирования. |
| |
| Можно щелкнуть правой кнопкой мыши проект, выбрать 'Установить узел сборки' и выбрать удаленный узел, настроенный на доступ к файлам проекта с помощью автоматического копирования. Затем используется простой режим удаленной разработки. При создании проекта файлы проекта будут автоматически скопированы в каталог пользователя NetBeans на удаленном узле. |
| |
| |
| === Комбинированный режим |
| |
| Для комбинированного режима следует установить доступ к файлам проекта на системном уровне обмена файлами. |
| |
| Можно щелкнуть правой кнопкой мыши проект, выбрать 'Задать узел сборки' и выбрать удаленный узел, настроенный на доступ к файлам проекта на системном уровне обмена файлами. Затем будет использован комбинированный режим удаленной разработки. При создании проекта файлы проектов остаются там, где они находятся, поскольку они могут быть доступны с локального компьютера и удаленного узла сборки. |
| |
| |
| === Полный удаленный режим |
| |
| Чтобы использовать полный удаленный режим в IDE, используйте панель инструментов 'Удаленная разработка', описанная в следующем разделе. |
| |
| |
| == Полная удаленная разработка с помощью панели инструментов |
| |
| В полном режиме удаленного доступа можно использовать IDE, запущенную на локальном компьютере для работы над проектами, которые находятся на удаленном компьютере, с помощью панели инструментов удаленной разработки. |
| |
| Панель инструментов показана на следующем рисунке. |
| |
| image::images/RemoteToolbar.gif[] |
| |
| Если панель инструментов в IDE не отображается, ее отображение можно настроить, выбрав 'Вид' > 'Панели инструментов'> 'Удаленные'. |
| |
| Можно использовать панель инструментов удаленной разработки для выбора удаленного компьютера, уже настроенного для работы над проектами и файлами на удаленном компьютере, так же, как если бы они находились на локальном компьютере. |
| |
| Используйте значки, как описано в следующей таблице. |
| |
| |=== |
| |image::images/connected24.gif[] |
| | |
| |
| Состояние подключения. Нажмите на значок, чтобы подключиться к серверу, выбранному в списке рядом со значком. Если вы уже подключены, можно нажать этот значок, чтобы отключиться от сервера. |
| |
| Значок, показывающий состояние соединения, меняет цвет на зеленый при установке соединения и на красный при разрыве соединения. |
| |
| |
| |
| |image::images/newProject24.gif[] |
| | |
| |
| Создание удаленного проекта. Щелкните значок, чтобы создать новый проект на подключенном в данный момент узле. |
| |
| По умолчанию проект создается в каталоге `~/NetBeansProjects` на удаленном узле. |
| |
| |
| |
| |image::images/openProject24.gif[] |
| | |
| |
| Открыть удаленный проект. Щелкните значок, чтобы открыть существующий проект на подключенном в данный момент узле. |
| |
| Можно просмотреть проект в удаленной файловой системе. |
| |
| |
| |
| |image::images/openFile24.gif[] |
| | |
| |
| Открыть удаленный файл. Щелкните значок, чтобы открыть файл на текущем подключенном узле. |
| |
| К этому файлу можно перейти в удаленной файловой системе. |
| |
| |
| |=== |
| |
| |
| == Кэш-память и безопасность |
| |
| Чтобы обеспечить быстрый доступ к удаленным файлам, IDE использует дисковый кэш в локальной системе. Кэш находится в `_userdir_/var/cache/remote-files`, где `_userdir_` является уникальным для пользователя и его местоположение зависит от платформы, на которой запущена IDE. |
| |
| См. описание `_userdir_` и местоположений для каждой платформы в link:http://wiki.netbeans.org/FaqWhatIsUserdir[+http://wiki.netbeans.org/FaqWhatIsUserdir+]. |
| |
| При использовании удаленной разработки в простом и общем режимах только системные заголовки будут доступны через локальный кэш, поэтому угроза безопасности отсутствует. |
| |
| В полном режиме удаленного доступа, хотя файлы находятся на удаленном узле, анализ проекта выполняется на локальном компьютере. По мере обращения к файлам исходного кода для анализа они кэшируются на локальном узле в `_userdir_/var/cache/remote-files` и в конечном итоге все файлы исходного кода помещаются в кэш. |
| |
| На мобильных компьютерах это может рассматриваться как угроза безопасности. Для повышения безопасности каталог кэша может быть зашифрован или может удаляться на регулярной основе. |
| |
| Кэш-память, расположенная в ` ~/.netbeans/remote` на удаленном компьютере, создается при использовании простого режима, и файлы исходного кода копируются автоматически по запросу с локального компьютера на удаленный компьютер при создании проекта. Эти файлы являются такими же безопасными, как любые другие на сервере, так что это не угрожает безопасности. |
| |
| |
| == См. также |
| |
| Подробнее см. в следующих местоположениях. |
| |
| * Меню 'Справка' в IDE обеспечивает доступ к обширной информации об использовании IDE. |
| |
| * В документе link:./remotedev-tutorial.html[+Учебный курс по удаленной разработке на C/C+++] рассказывается, как в пошаговом режиме сделать простую удаленную разработку |
| |
| * link:https://netbeans.org/kb/trails/cnd.html[+Учебные карты C/C+++] содержат несколько статей и учебных руководств по разработке на C/C++ в IDE. |
| |
| |
| link:/about/contact_form.html?to=3&subject=Feedback:%20C/C++%20Remote%20Development%20Modes%20-%20NetBeans%20IDE%20Article[+Мы ждем ваших отзывов+]link:mailto:users@cnd.netbeans.org?subject=Feedback:%20C/C++%20Remote%20Development%20Modes%20-%20NetBeans%20IDE%20Article[+Отправить отзыв на эту статью+] |
| |
| |