| <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> |
| <html> |
| <head> |
| <title>Удаленные режимы разработки C/C++</title> |
| <meta name="DESCRIPTION" content="A short guide to using C/C++ remote development in NetBeans IDE |
| and Oracle Solaris Studio IDE."> |
| <meta name="keywords" content="NetBeans, IDE, Oracle Solaris Studio, integrated development environment, |
| tutorial, guide, user, documentation, open source, remote development, C, C++"> |
| |
| <link rel="stylesheet" type="text/css" href="../../../netbeans.css"> |
| <link rel="stylesheet" type="text/css" href="../../../print.css" media="print"> |
| <link rel="stylesheet" type="text/css" href="../../../lytebox.css" media="screen"> |
| <script type="text/javascript" src="../../../images_www/js/lytebox-compressed.js"></script> |
| <meta HTTP-EQUIV="Content-Type" Content="text/html; charset=UTF-8"></head> |
| <body> |
| |
| |
| <img alt="Содержимое на этой странице применимо к IDE NetBeans 7.3, 7.4 и 8.0" class="stamp" src="../../../images_www/articles/73/netbeans-stamp-80-74-73.png" title="Содержимое этой страницы применимо к IDE NetBeans 7.3, 7.4 и 8.0"> |
| |
| <h1>Режимы удаленной разработки C/C++ в IDE</h1> |
| <div class="articledate" style="margin-left: 0px;font-style:italic;"> |
| Март 2014 г. [Номер версии: V8.0-1]</div> |
| <p>В данной статье описываются возможности удаленной разработки, доступные в IDE NetBeans, если модуль C/C++ установлен, а также рекомендации по оптимальному использованию их в среде разработки.</p> |
| <p><b>Содержание</b></p> |
| <ul class="toc"> |
| <li><p><a href="#glxfe">Что такое удаленная разработка</a></p> |
| |
| </li> |
| <li><p><a href="#glxir">Когда следует использовать удаленную разработку</a></p> |
| |
| </li> |
| <li><p><a href="#glxiu">Каковы принципы работы удаленной разработки</a></p> |
| |
| </li> |
| <li><p><a href="#glxie">Преимущества удаленной разработки</a></p> |
| |
| </li> |
| <li><p><a href="#glxhr">Режимы удаленной разработки</a></p> |
| |
| </li> |
| <li><p><a href="#glxhu">Решение о выборе режима удаленной разработки</a></p> |
| |
| </li> |
| <li><p><a href="#glxjy">Выбор удаленного режима разработки</a></p> |
| |
| </li> |
| <li><p><a href="#gmvfz">Полная удаленная разработка с помощью панели инструментов</a></p> |
| |
| </li> |
| <li><p><a href="#glyqe">Кэш-память и безопасность</a></p> |
| |
| </li> |
| <li><p><a href="#gmbed">См. также</a></p> |
| |
| </li></ul> |
| |
| |
| <a name="glxfe"></a> |
| |
| <h2>Что такое удаленная разработка</h2> |
| <p>Удаленная разработка – это функция IDE NetBeans, позволяющая запускать IDE на компьютере под управлением Microsoft Windows, Mac OS X, Oracle Solaris или Linux, а также создавать, запускать и отлаживать программы на другом компьютере под управлением Oracle Solaris или Linux.</p> |
| |
| |
| |
| <a name="glxir"></a> |
| |
| <h2>Когда следует использовать удаленную разработку</h2> |
| <p>Удаленную разработку рекомендуется использовать в следующих ситуациях.</p> |
| |
| |
| <ul> |
| <li><p>Ваш настольный компьютер работает под управлением системы, отличной от Oracle Solaris или Linux.</p> |
| |
| </li> |
| <li><p>IDE запущена в общей системе Solaris, что иногда приводит к высоким нагрузкам.</p> |
| |
| </li> |
| <li><p>Ваш доступ к системам под управлением Oracle Solaris или Linux ограничен Secure Shell (SSH) по соображениям безопасности.</p> |
| |
| </li> |
| <li><p>Запуск графических инструментов пользовательского интерфейса в среде Solaris затруднен.</p> |
| |
| </li> |
| <li><p>Разрабатываемое программное обеспечение должно быть скомпилировано и запускаться на нескольких платформах, включая Solaris или Linux.</p> |
| |
| </li></ul> |
| |
| |
| <a name="glxiu"></a> |
| |
| <h2>Каковы принципы работы удаленной разработки</h2> |
| <p>IDE предоставляет возможности для управления удаленными узлами. Можно настроить удаленный узел для создания, запуска и отладки проектов на C, C++ и Fortran. Удаленный узел должен удовлетворять следующим условиям.</p> |
| |
| |
| <ul><li><p>Удаленной операционной системой должна быть Oracle Solaris или Linux.</p> |
| |
| </li> |
| <li><p>На удаленном узле необходимо запустить программу-демон SSH <code>sshd</code>.</p> |
| |
| </li> |
| <li><p>По крайней мере одна коллекция средств (GNU, Oracle Solaris Studio или Sun Studio) должна быть доступна на удаленном узле.</p> |
| |
| </li> |
| <li><p>У пользователя должна быть учетная запись пользователя на этом узле.</p> |
| |
| </li></ul> |
| <p>Он может управлять удаленными узлами в окне 'Службы' в IDE.</p> |
| |
| <img alt="Окно 'Службы'" height="336" src="../../../images_www/articles/73/cnd/remote-modes/services_window.png" width="353"> |
| <p>После настройки удаленного узла и подключения к нему можно создавать, запускать и отлаживать проекты так же, как это делается на локальном компьютере. Удаленные команды IDE выполняются с более высоким приоритетом по сравнению с SSH. </p> |
| |
| <p>При использовании удаленного узла разработки и локальные, и удаленные узлы должны быть доступны для файлов проекта. Этот доступ может быть предоставлен путем совместного использования файлов или защищенного копирования файлов. Перед тем как в IDE можно будет использовать обмен файлами между локальными и удаленными системами общая файловая система или папка должна быть создана и доступна для обеих систем. Удаленные файлы доступны через SFTP или другой механизм совместного использования файлов, доступных в операционной системе, под управлением которой работает узел (например, Network File System (NFS), Samba или WebDAV).</p> |
| |
| <p>Если совместное использование файлов не представляется возможным, можно использовать автоматическое копирование для копирования файлов на сервер с помощью SSH.</p> |
| |
| |
| |
| <a name="glxie"></a> |
| |
| <h2>Преимущества удаленной разработки</h2> |
| <p>Удаленная разработка обеспечивает следующие преимущества.</p> |
| |
| |
| <ul><li><p>Можно использовать одну среду разработки для всех проектов.</p> |
| |
| </li> |
| <li><p>Ресурсы системы настольного компьютера используются оптимально.</p> |
| |
| </li> |
| <li><p>Сетевой трафик оптимизирован.</p> |
| |
| </li> |
| <li><p>Время отклика используемой IDE лучше.</p> |
| |
| </li> |
| <li><p>Можно просматривать удаленные файловые системы из IDE.</p> |
| |
| </li> |
| <li><p>Можно открыть окно терминала в IDE для удаленного узла.</p> |
| |
| </li> |
| <li><p>Можно использовать его только в среде, защищенной SSH.</p> |
| |
| </li></ul> |
| |
| |
| <a name="glxhr"></a> <img alt="Схема местоположения исходных файлов и доступа к ним в каждом режиме" height="354" src="../../../images_www/articles/73/cnd/remote-modes/modes_diagram.png" width="589"> |
| <p>В простом режиме файлы исходного кода находятся в основном на локальном компьютере. При создании проекта файлы исходного кода доставляются по требованию к удаленному узлу с помощью протокола SSH File Transfer Protocol (SFTP).</p> |
| |
| <p>В комбинированном или общем режиме файлы исходного кода находятся в местоположении, которое назначено общим для локального и удаленного узла с помощью NFS, Samba, WebDAV или другой системы совместного использования файлов.</p> |
| |
| <p>В полном режиме удаленного доступа файлы исходного кода находятся на удаленном узле. IDE обращается к файлам с помощью SFTP.</p> |
| |
| |
| |
| <a name="glxhu"></a> |
| |
| <h2>Решение о выборе режима удаленной разработки</h2> |
| <p>Какой режим разработки лучше всего подходит для данной конкретной ситуации, зависит от среды разработки, в которой вы работаете. В следующих разделах приведены примеры сред разработки, в которых один из режимов обеспечивает наибольшие преимущества.</p> |
| |
| |
| |
| <a name="glxod"></a><h3>Простой режим</h3> |
| <p>Простой режим может быть наилучшим удаленным режимом для ваших потребностей, если вашу среду разработки описывает следующая диаграмма.</p> |
| |
| <img alt="Диаграмма, на которой показана среда разработки, где файлы исходного кода хранятся локально и разработчик работает с ними локально для нескольких удаленных целевых платформ" height="371" src="../../../images_www/articles/73/cnd/remote-modes/simple_mode_diagram.png" width="637"> |
| <p>В этой среде простой режим обеспечивает следующие преимущества.</p> |
| |
| |
| <ul><li><p>Можно использовать ту же IDE для локальной и удаленной разработки.</p> |
| |
| </li> |
| <li><p>Можно легко переключаться между узлами и платформами в IDE.</p> |
| |
| </li> |
| <li><p>Можно использовать IDE в среде, которая поддерживает только SSH.</p> |
| |
| </li> |
| <li><p>Ваша мобильность повышается.</p> |
| |
| </li></ul> |
| |
| |
| <a name="glxjk"></a><h3>Комбинированный (общий) режим</h3> |
| <p>Комбинированный или общий режим может быть оптимальным, если среда разработки похожа на показанную на следующем рисунке.</p> |
| |
| <img alt="На диаграмме показана среда разработки с высоким уровнем использования NFS с файлами исходного кода, расположенными на серверах в сети" height="318" src="../../../images_www/articles/73/cnd/remote-modes/mixed_mode_diagram.png" width="627"> |
| <p>Преимущества использования комбинированного режима в этой среде.</p> |
| |
| |
| <ul><li><p>Можно легко переключаться между узлами и платформами в IDE.</p> |
| |
| </li> |
| <li><p>Нет дублирования (кэширования) файлов, которое происходит в двух других режимах.</p> |
| |
| </li> |
| <li><p>Пропускная способность сети будет такой же высокой, какую может обеспечить ваш механизм совместного использования файлов (например, NFS, Samba или WebDAV).</p> |
| |
| </li></ul> |
| |
| |
| <a name="glxlz"></a><h3>Полный режим</h3> |
| <p>Полный режим может быть оптимальным, если ваша среда разработки напоминает показанную на следующем рисунке.</p> |
| |
| <img alt="На диаграмме показана среда разработки в среде совместного использования с тяжелой нагрузкой на серверы, для доступа к которым используются X-windows и VNC" height="312" src="../../../images_www/articles/73/cnd/remote-modes/full_mode_diagram.png" width="606"><p>В этой среде преимущества использования полного удаленного режима таковы.</p> |
| |
| |
| <ul><li><p>Перенос с использованием перенаправления X-window или VNC практически прозрачен.</p> |
| |
| </li> |
| <li><p>Время отклика используемой IDE лучше. </p> |
| |
| </li> |
| <li><p>Вы в меньшей степени зависите от ресурсов узла разработки.</p> |
| |
| </li> |
| <li><p>Меньшая нагрузка на узел разработки снижает нагрузку на Oracle Solaris.</p> |
| |
| </li> |
| <li><p>Можно создавать новые удаленные проекты на основе удаленных двоичных файлов.</p> |
| |
| </li></ul> |
| |
| |
| <a name="glxjy"></a> |
| |
| <h2>Выбор удаленного режима разработки</h2> |
| <p>Выбор удаленного режима разработки определяется способом настройки узла удаленной сборки, а также способом получения доступа к проекту в IDE.</p> |
| |
| <p>Для каждого режима необходимо сначала настроить удаленный узел сборки, как описано в документе <a href="./remotedev-tutorial.html">Учебное руководство по разработке на C/C++</a>и в разделах справки по IDE.</p> |
| |
| <p>Можно выбрать простой или комбинированный режим для удаленного узла в IDE и с помощью диалогового окна свойств узла указать, как файлы проекта должны быть доступны при работе с узлом.</p> |
| |
| <p>Откройте окно 'Службы', разверните узел 'Узлы сборки C/C++', щелкните правой кнопкой мыши удаленный узел и выберите 'Свойства'.</p> |
| |
| <img alt="Диалоговое окно 'Свойства узла'" height="399" src="../../../images_www/articles/73/cnd/remote-modes/host_properties_dialog.png" width="506"><br> |
| <h3>Простой режим</h3> |
| <p>Для простого режима установите для доступа к файлам проекта режим автоматического копирования.</p> |
| |
| <p>Можно щелкнуть правой кнопкой мыши проект, выбрать 'Установить узел сборки' и выбрать удаленный узел, настроенный на доступ к файлам проекта с помощью автоматического копирования. Затем используется простой режим удаленной разработки. При создании проекта файлы проекта будут автоматически скопированы в каталог пользователя NetBeans на удаленном узле.</p> |
| |
| <h3>Комбинированный режим</h3> |
| <p>Для комбинированного режима следует установить доступ к файлам проекта на системном уровне обмена файлами.</p> |
| |
| <p>Можно щелкнуть правой кнопкой мыши проект, выбрать 'Задать узел сборки' и выбрать удаленный узел, настроенный на доступ к файлам проекта на системном уровне обмена файлами. Затем будет использован комбинированный режим удаленной разработки. При создании проекта файлы проектов остаются там, где они находятся, поскольку они могут быть доступны с локального компьютера и удаленного узла сборки.</p> |
| |
| <h3>Полный удаленный режим</h3> |
| <p>Чтобы использовать полный удаленный режим в IDE, используйте панель инструментов 'Удаленная разработка', описанная в следующем разделе.</p> |
| |
| |
| |
| <a name="gmvfz"></a> |
| |
| <h2>Полная удаленная разработка с помощью панели инструментов</h2> |
| <p>В полном режиме удаленного доступа можно использовать IDE, запущенную на локальном компьютере для работы над проектами, которые находятся на удаленном компьютере, с помощью панели инструментов удаленной разработки.</p> |
| |
| <p>Панель инструментов показана на следующем рисунке.</p> |
| |
| <img alt="Изображение панели инструментов удаленной разработки" height="37" src="../../../images_www/articles/73/cnd/remote-modes/RemoteToolbar.gif" width="299"> <br><p>Если панель инструментов в IDE не отображается, ее отображение можно настроить, выбрав 'Вид' > 'Панели инструментов'> 'Удаленные'.</p> |
| |
| <p>Можно использовать панель инструментов удаленной разработки для выбора удаленного компьютера, уже настроенного для работы над проектами и файлами на удаленном компьютере, так же, как если бы они находились на локальном компьютере.</p> |
| |
| <p>Используйте значки, как описано в следующей таблице.</p> |
| |
| <table><col width="8%"><col width="91%"><tr><td align="left" valign="top" scope="row"><img alt="Значок 'Состояние подключения'" height="24" src="../../../images_www/articles/73/cnd/remote-modes/connected24.gif" width="24"><br></td> |
| <td align="left" valign="top" scope="row"><p>Состояние подключения. Нажмите на значок, чтобы подключиться к серверу, выбранному в списке рядом со значком. Если вы уже подключены, можно нажать этот значок, чтобы отключиться от сервера.</p> |
| |
| <p>Значок, показывающий состояние соединения, меняет цвет на зеленый при установке соединения и на красный при разрыве соединения.</p> |
| |
| </td> |
| </tr> |
| <tr><td align="left" valign="top" scope="row"><img alt="Значок 'Создание удаленного проекта'" height="24" src="../../../images_www/articles/73/cnd/remote-modes/newProject24.gif" width="24"><br></td> |
| <td align="left" valign="top" scope="row"><p>Создание удаленного проекта. Щелкните значок, чтобы создать новый проект на подключенном в данный момент узле.</p> |
| |
| <p>По умолчанию проект создается в каталоге <code>~/NetBeansProjects</code> на удаленном узле.</p> |
| |
| </td> |
| </tr> |
| <tr><td align="left" valign="top" scope="row"><img alt="Значок 'Открыть удаленный проект'" height="24" src="../../../images_www/articles/73/cnd/remote-modes/openProject24.gif" width="24"><br></td> |
| <td align="left" valign="top" scope="row"><p>Открыть удаленный проект. Щелкните значок, чтобы открыть существующий проект на подключенном в данный момент узле.</p> |
| |
| <p>Можно просмотреть проект в удаленной файловой системе.</p> |
| |
| </td> |
| </tr> |
| <tr><td align="left" valign="top" scope="row"><img alt="Значок 'Открыть удаленный файл'" height="24" src="../../../images_www/articles/73/cnd/remote-modes/openFile24.gif" width="24"><br></td> |
| <td align="left" valign="top" scope="row"><p>Открыть удаленный файл. Щелкните значок, чтобы открыть файл на текущем подключенном узле.</p> |
| |
| <p>К этому файлу можно перейти в удаленной файловой системе.</p> |
| |
| </td> |
| </tr> |
| </table> |
| |
| <a name="glyqe"></a> |
| |
| <h2>Кэш-память и безопасность</h2> |
| <p>Чтобы обеспечить быстрый доступ к удаленным файлам, IDE использует дисковый кэш в локальной системе. Кэш находится в <code><em>userdir</em>/var/cache/remote-files</code>, где <code><em>userdir</em></code> является уникальным для пользователя и его местоположение зависит от платформы, на которой запущена IDE. </p> |
| <p class='tips"'>См. описание <code><em>userdir</em></code> и местоположений для каждой платформы в <a href="http://wiki.netbeans.org/FaqWhatIsUserdir">http://wiki.netbeans.org/FaqWhatIsUserdir</a>.</p> |
| <p> |
| При использовании удаленной разработки в простом и общем режимах только системные заголовки будут доступны через локальный кэш, поэтому угроза безопасности отсутствует.</p> |
| <p> |
| В полном режиме удаленного доступа, хотя файлы находятся на удаленном узле, анализ проекта выполняется на локальном компьютере. По мере обращения к файлам исходного кода для анализа они кэшируются на локальном узле в <code><em>userdir</em>/var/cache/remote-files</code> и в конечном итоге все файлы исходного кода помещаются в кэш. </p> |
| <p>На мобильных компьютерах это может рассматриваться как угроза безопасности. Для повышения безопасности каталог кэша может быть зашифрован или может удаляться на регулярной основе.</p> |
| <p class="notes">Кэш-память, расположенная в <code> ~/.netbeans/remote</code> на удаленном компьютере, создается при использовании простого режима, и файлы исходного кода копируются автоматически по запросу с локального компьютера на удаленный компьютер при создании проекта. Эти файлы являются такими же безопасными, как любые другие на сервере, так что это не угрожает безопасности. |
| </p> |
| |
| |
| <a name="gmbed"></a> |
| |
| <h2>См. также</h2> |
| <p>Подробнее см. в следующих местоположениях.</p> |
| |
| |
| <ul><li><p>Меню 'Справка' в IDE обеспечивает доступ к обширной информации об использовании IDE.</p> |
| |
| </li> |
| <li><p>В документе <a href="./remotedev-tutorial.html">Учебный курс по удаленной разработке на C/C++</a> рассказывается, как в пошаговом режиме сделать простую удаленную разработку</p></li> |
| <li><p><a href="https://netbeans.org/kb/trails/cnd.html">Учебные карты C/C++</a> содержат несколько статей и учебных руководств по разработке на C/C++ в IDE.</p> |
| |
| </li></ul> |
| |
| |
| |
| |
| <br> |
| <div class="feedback-box" ><a href="/about/contact_form.html?to=3&subject=Feedback:%20C/C++%20Remote%20Development%20Modes%20-%20NetBeans%20IDE%20Article">Мы ждем ваших отзывов</a></div> |
| <div class="feedback-box"><a href="mailto:users@cnd.netbeans.org?subject=Feedback:%20C/C++%20Remote%20Development%20Modes%20-%20NetBeans%20IDE%20Article">Отправить отзыв на эту статью</a></div> |
| <br style="clear:both;"> |
| |
| </body> |
| </html> |