<?php
/**
 * Copyright (c) 2018 Eclipse Foundation and others.
 *
 * This program and the accompanying materials are made
 * available under the terms of the Eclipse Public License 2.0
 * which is available at https://www.eclipse.org/legal/epl-2.0/
 *
 * Contributors:
 *    Christopher Guindon (Eclipse Foundation) - initial API and implementation
 *
 * SPDX-License-Identifier: EPL-2.0
 */
?>
<h1>Developing with RCP</h1>
<p>The Developing with RCP course will help you understand how to implement your own application
  based on Eclipse RCP. It will explain the core frameworks in Eclipse, the plug-in architecture,
  extension points, and scenarios for building on the common configurations of Eclipse technology.
  Participants will begin working with simple examples, which will become more complex as the course
  progresses.
<ul>
  <li><b>Format:</b> Four-day instructor-led class with at least 50% hands-on labs and tutorials</li>
  <li><b>Audience:</b> Software developers and architects</li>
  <li><b>Prerequisites:</b> Experience with Eclipse, strong knowledge of Java and design patterns, GUI development experience and XML knowledge</li>
  <li><a href="http://www.eclipse.org/community/training/Developing_RCP_Course.pdf" target="blank">Course Outline</a></li>
</ul>
<br/>
<a name="basicclass"/></a>
<table class="table">
  <tr>
    <td width="10">&nbsp;</td>
    <td width="100"><b>Start Date</b></td>
    <td width="150"><b>City</b></td>
    <td width="125"><b>Language</b></td>
    <td width="150"><b>Organizer</b></td>
    <td width="125"><b>Link</b></td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>Oct 21</td>
    <td>Rome</td>
    <td>Italian</td>
    <td>RCP Vision</td>
    <td><a href="http://www.rcp-vision.com/?page_id=6001&lang=en" target="blank">Register</a></td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>Oct 22</td>
    <td>Milan</td>
    <td>Italian</td>
    <td>RCP Vision</td>
    <td><a href="http://www.rcp-vision.com/?page_id=6001&lang=en" target="blank">Register</a></td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>Nov 11</td>
    <td>Virtual</td>
    <td>English</td>
    <td>EclipseSource</td>
    <td><a href="http://eclipsesource.com/en/services/training/training-details/eclipse-rcp-development/" target="blank">Register</a></td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>Nov 11</td>
    <td>Sevilla</td>
    <td>Spanish</td>
    <td>Opcoach</td>
    <td><a href="http://www.opcoach.com/es/2013/06/formacion-eclipse-rcp-3-8-sevilla-noviembre-2013/" target="blank">Register</a></td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>Nov 25</td>
    <td>Madrid</td>
    <td>Spanish</td>
    <td>Opcoach</td>
    <td><a href="http://www.opcoach.com/es/2013/06/formacion-eclipse-rcp-3-8-madrid-noviembre-2013/" target="blank">Register</a></td>
  </tr>
</table>
</p>
<br>