// 
//     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.
//

= Интеграция с внешними средствами и службами
:jbake-type: tutorial
:jbake-tags: tutorials 
:jbake-status: published
:icons: font
:syntax: true
:source-highlighter: pygments
:toc: left
:toc-title:
:description: Интеграция с внешними средствами и службами - Apache NetBeans
:keywords: Apache NetBeans, Tutorials, Интеграция с внешними средствами и службами

Чтобы упростить разработку различных типов приложений, в IDE NetBeans реализована интеграция с различными внешними средствами и службами. Перечисленные ниже ресурсы помогут вам узнать, как настроить и использовать такие средства и службы, например, как подключиться к базам данных, управлять исходным кодом с помощью ПО для управления версиями или использовать встроенные средства отслеживания ошибок.

== Учебные курсы и статьи

=== Базы данных

* link:../docs/ide/oracle-db.html[+Соединение с базой данных Oracle из IDE NetBeans+]
* link:../docs/ide/java-db.html[+Работа с базой данных Java DB (Derby)+]
* link:../docs/ide/mysql.html[+Подключение к базе данных MySQL+]
* link:../docs/web/mysql-webapp.html[+Создание простого веб-приложения, использующего базу данных MySQL+]
* link:../docs/ide/install-and-configure-mysql-server.html[+Настройка сервера баз данных MySQL в операционной системе Windows+]

=== Maven

* link:../docs/java/maven-hib-java-se.html[+Создание приложения Maven Swing с использованием Hibernate+]
* link:http://wiki.netbeans.org/MavenBestPractices[+Практические рекомендации по использованию Maven+]

=== Управление исходным кодом

* link:../docs/ide/mercurial-queues.html[+Использование поддержки Mercurial Queues в IDE NetBeans+]
* link:../docs/ide/git.html[+Использование поддержки Git в IDE NetBeans+]
* link:../docs/ide/mercurial.html[+Использование поддержки Mercurial в IDE NetBeans+]
* link:../docs/ide/subversion.html[+Использование поддержки Subversion в IDE NetBeans+]
* link:../docs/ide/cvs.html[+Использование поддержки CVS в IDE NetBeans+]
* link:../docs/ide/clearcase.html[+Использование поддержки ClearCase в IDE NetBeans+]

=== Совместная разработка

* link:../docs/ide/team-servers.html[+Работа с сервером групповой работы в IDE NetBeans+]

=== Оптимизация

* link:../docs/java/profile-loadgenerator.html[+Использование генератора нагрузки в IDE NetBeans+]

== Экранные демонстрации

* link:../docs/ide/github_nb_screencast.html[+Демонстрация: настройка репозитория GitHub при помощи IDE NetBeans+]
* link:../docs/ide/git_nb_ssh_screencast.html[+Демонстрация: клонирование репозитория Git при помощи IDE NetBeans+]
* YouTube: link:http://www.youtube.com/watch?v=mQS-CViDHBU[+FindBugs в IDE NetBeans+] (_Автор: Гиртжан Виленга (Geertjan Wielenga)_)

== Документы от сообщества

* Блог Гиртжана: link:https://blogs.oracle.com/geertjan/entry/git_in_netbeans_ide_7[+Git с перебазированием в IDE NetBeans+]
* link:http://wiki.netbeans.org/TutorialUsingSVNLocalRepository[+ Использование локального хранилища системы управления исходным кодом Subversion (SVN)+]
* link:http://wiki.netbeans.org/AccessMssql[+Доступ к MS Access/MS SQL из среды NetBeans+]

== Другие источники

* link:http://www.oracle.com/pls/topic/lookup?ctx=nb8000&id=NBDAG1790[+Работа с базами данных и подключение к ним+] в документе _Разработка приложений в IDE NetBeans_
* link:http://www.oracle.com/pls/topic/lookup?ctx=nb8000&id=NBDAG620[+Работа с Maven в NetBeans+] в документе _Разработка приложений в IDE NetBeans_
* link:http://www.oracle.com/pls/topic/lookup?ctx=nb8000&id=NBDAG234[+Управление версиями приложений в системах контроля версий+] в документе _Разработка приложений в IDE NetBeans_
* link:http://www.oracle.com/pls/topic/lookup?ctx=nb8000&id=NBDAG348[+Работа в коллективной среде+] в документе _Разработка приложений в IDE NetBeans_
* link:http://wiki.netbeans.org/NetBeansUserFAQ#Version_Control_Systems[+Часто задаваемые вопросы по управлению версиями+]
* link:http://wiki.netbeans.org/NetBeansUserFAQ#Database_Connectivity[+Часто задаваемые вопросы по соединениям с базами данных+]
* link:http://www.mysql.com/why-mysql/java/[+MySQL и Java: материалы+]
