La Arquitectura de Netbeans Rafael Andrés Leaño Luis Carlos Beltrán
¿Qué es Netbeans? <ul><li>La Arquitectura de Netbeans </li></ul><ul><li>Contrario a lo que mucha gente cree, es más que só...
RCP <ul><li>La Arquitectura de Netbeans </li></ul><ul><li>Netbeans utiliza una plataforma RCP (Rich-Client Platform). </li...
NetBeans IDE La Arquitectura de Netbeans <ul><li>Netbeans IDE es una aplicación basada en la plataforma Netbeans, con una ...
Módulos <ul><li>La Arquitectura de Netbeans </li></ul><ul><li>RCP se basa en módulos, que básicamente es el término Netbea...
¿Cómo hacer un módulo Netbeans? <ul><li>La Arquitectura de Netbeans </li></ul><ul><li>Un modulo es un conjunto de clases J...
Library Wrapper Modulo <ul><li>La Arquitectura de Netbeans </li></ul><ul><li>Cualquier .jar puede convertirse en un módulo...
Library Wrapper Modulo (Continuacion) <ul><li>La Arquitectura de Netbeans </li></ul><ul><li>Posee un manifiesto donde indi...
Library Wrapper Modulo (project.xml) <ul><li>La Arquitectura de Netbeans </li></ul><ul><li><?xml version=&quot;1.0&quot; e...
Modulo Netbeans <ul><li>La Arquitectura de Netbeans </li></ul><ul><li>Posee un manifest.mf, pero también otra serie de arc...
Modulo Netbeans <ul><li>La Arquitectura de Netbeans </li></ul><ul><li>Muchos de estos archivos son complejos de manejar y ...
Modulo Netbeans (layer.xml) <ul><li>La Arquitectura de Netbeans </li></ul><ul><li><filesystem> </li></ul><ul><li><folder n...
Modulo Netbeans (project.xml) <ul><li>La Arquitectura de Netbeans </li></ul><ul><li><project xmlns=&quot;http://www.netbea...
Modulo Netbeans (…Settings.xml) <ul><li>La Arquitectura de Netbeans </li></ul><ul><li><!DOCTYPE settings PUBLIC &quot;-//N...
Modulo Netbeans (…Wstcref.xml) <ul><li>La Arquitectura de Netbeans </li></ul><ul><li><!DOCTYPE tc-ref PUBLIC </li></ul><ul...
Ventajas <ul><li>La Arquitectura de Netbeans </li></ul><ul><li>La plataforma Netbeans RCP puede ser usada para desarrollar...
Ventajas (Continuación) <ul><li>La Arquitectura de Netbeans </li></ul><ul><li>Los módulos permiten a las aplicaciones una ...
Ejemplos (Programas sobre Netbeans RCP) <ul><li>La Arquitectura de Netbeans </li></ul><ul><li>Poseidon for UML – Herramien...
Upcoming SlideShare
Loading in...5
×

La Arquitectura De Netbeans V2

4,094

Published on

Descripcion breve de la arquitectura de Netbeans

Published in: Technology, Education
0 Comments
6 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
4,094
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
0
Comments
0
Likes
6
Embeds 0
No embeds

No notes for slide
  • Transcript of "La Arquitectura De Netbeans V2"

    1. 1. La Arquitectura de Netbeans Rafael Andrés Leaño Luis Carlos Beltrán
    2. 2. ¿Qué es Netbeans? <ul><li>La Arquitectura de Netbeans </li></ul><ul><li>Contrario a lo que mucha gente cree, es más que sólo un IDE </li></ul><ul><li>Netbeans es toda una arquitectura de Java, inicialmente desarrollada por Sun Microsystems </li></ul><ul><li>Esta plataforma es open-source </li></ul>NetBeans Platform Open APIs Core NetBeans IDE Nuevos Módulos Nuevos Módulos
    3. 3. RCP <ul><li>La Arquitectura de Netbeans </li></ul><ul><li>Netbeans utiliza una plataforma RCP (Rich-Client Platform). </li></ul><ul><li>Ofrece un conjunto de APIs que pueden ser extendidos. </li></ul><ul><li>Al ejecutarse, carga las extensiones disponibles, manejando su ciclo de vida. </li></ul><ul><li>Tiene un “Generic Desktop Application”, que provee un conjunto de servicios básicos. </li></ul>
    4. 4. NetBeans IDE La Arquitectura de Netbeans <ul><li>Netbeans IDE es una aplicación basada en la plataforma Netbeans, con una serie de módulos específicos para un IDE. </li></ul><ul><li>Funcionalidades desarrolladas en módulos </li></ul>
    5. 5. Módulos <ul><li>La Arquitectura de Netbeans </li></ul><ul><li>RCP se basa en módulos, que básicamente es el término Netbeans para plugin y/o bundle. </li></ul><ul><li>Es un .jar con clases capaces de interactuar con el API abierto de Netbeans. </li></ul><ul><li>Contiene un manifest donde indica su contenido y se identifica como un módulo. </li></ul><ul><li>Pueden ser instalados dinámicamente (durante ejecución) </li></ul>
    6. 6. ¿Cómo hacer un módulo Netbeans? <ul><li>La Arquitectura de Netbeans </li></ul><ul><li>Un modulo es un conjunto de clases Java que proveen a una aplicación (u otros módulos) con un servicios en especial. Estas clases utilizan un manifest.mf para declarar el módulo y un layer.xml de configuración para registrar su funcionalidad en el “System Filesystem” </li></ul><ul><li>El Netbeans IDE provee “wizards” que ayudan bastante con esta labor </li></ul><ul><li>“ System Filesystem” es el registro general de la plataforma Netbeans </li></ul>
    7. 7. Library Wrapper Modulo <ul><li>La Arquitectura de Netbeans </li></ul><ul><li>Cualquier .jar puede convertirse en un módulo de NetBeans por medio de un Library Wrapper Module </li></ul><ul><li>Los Library Wrapper Modules no tienen código, sólo una referencia a un .jar </li></ul><ul><li>Todas la protecciones del classloader de Netbeans se aplican a este modulo y por lo tanto también al .jar. </li></ul>
    8. 8. Library Wrapper Modulo (Continuacion) <ul><li>La Arquitectura de Netbeans </li></ul><ul><li>Posee un manifiesto donde indica: Manifest-Version: 1.0 OpenIDE-Module: net.java.dev.colorchooser </li></ul><ul><li>OpenIDE-Module-Localizing-Bundle: net/java/dev/colorchooser/Bundle.properties </li></ul><ul><li>OpenIDE-Module-Specification-Version: 1.0 </li></ul>
    9. 9. Library Wrapper Modulo (project.xml) <ul><li>La Arquitectura de Netbeans </li></ul><ul><li><?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?> </li></ul><ul><li><project xmlns=&quot;http://www.netbeans.org/ns/project/1&quot;> </li></ul><ul><li> <type>org.netbeans.modules.apisupport.project</type> </li></ul><ul><li> <configuration> </li></ul><ul><li> <data xmlns=&quot;http://www.netbeans.org/ns/...&quot;> </li></ul><ul><li> <code-name-base>net.java.dev.colorchooser</…> </li></ul><ul><li> <suite-component/> </li></ul><ul><li> <module-dependencies/> </li></ul><ul><li> <public-packages> </li></ul><ul><li> <package>net.java.dev.colorchooser</package> </li></ul><ul><li> </public-packages> </li></ul><ul><li> <class-path-extension> </li></ul><ul><li> <runtime-relative-path>ext/colorchooser.jar</…> </li></ul><ul><li> <binary-origin>release/modules/ext/colorchooser.jar</…> </li></ul><ul><li> </class-path-extension> </li></ul>
    10. 10. Modulo Netbeans <ul><li>La Arquitectura de Netbeans </li></ul><ul><li>Posee un manifest.mf, pero también otra serie de archivos de soporte como: </li></ul><ul><ul><li>build.xml : contiene el ant para compilar y ejecutar la aplicación </li></ul></ul><ul><ul><li>bundle.properties : contiene las parejas de (propiedad, valor) como el nombre del módulo en Netbeans </li></ul></ul><ul><ul><li>layer.xml: Registra el módulo en el System Filesystem </li></ul></ul><ul><ul><li>project.xml: Contiene metadata del proyecto, como sus dependencias </li></ul></ul><ul><ul><li><class_name>Settings.xml: Indica las interfaces del módulo </li></ul></ul><ul><ul><li><class_name> Wstcref.xml: específica una referencia al módulo </li></ul></ul>
    11. 11. Modulo Netbeans <ul><li>La Arquitectura de Netbeans </li></ul><ul><li>Muchos de estos archivos son complejos de manejar y para editarlos es necesario entender su schema y el significado de los tags </li></ul><ul><li>Afortunadamente, Netbeans provee wizards que son mucho más explicitos para manejar estos archivos de soporte </li></ul><ul><li>Por esta razón, el Netbeans IDE es casi un requisito para el desarrollo de los modulos sobre esta plataforma </li></ul>
    12. 12. Modulo Netbeans (layer.xml) <ul><li>La Arquitectura de Netbeans </li></ul><ul><li><filesystem> </li></ul><ul><li><folder name=&quot;Actions&quot;> </li></ul><ul><li><folder name=&quot;Edit&quot;> </li></ul><ul><li><file name=&quot;org-netbeans-paint-NewCanvasAction.instance&quot;> </li></ul><ul><li><attr name=&quot;instanceClass&quot; stringvalue=&quot;org.netbeans.paint.NewCanvasAction&quot;/> </li></ul><ul><li></file> </li></ul><ul><li><file name=&quot;org-netbeans-paint-SaveCanvasAction.instance&quot;> </li></ul><ul><li><attr name=&quot;instanceClass&quot; stringvalue=&quot;org.netbeans.paint.SaveCanvasAction&quot;/> </li></ul><ul><li></file> </li></ul><ul><li></folder> </li></ul><ul><li></folder> </li></ul><ul><li> <folder name=&quot;Toolbars&quot;> </li></ul><ul><li><folder name=&quot;File&quot;> </li></ul><ul><li>… </li></ul><ul><li></folder> </li></ul><ul><li></folder> </li></ul><ul><li></filesystem> </li></ul>
    13. 13. Modulo Netbeans (project.xml) <ul><li>La Arquitectura de Netbeans </li></ul><ul><li><project xmlns=&quot;http://www.netbeans.org/ns/project/1&quot;> </li></ul><ul><li><type>org.netbeans.modules.apisupport.project</type> </li></ul><ul><li><configuration> </li></ul><ul><li><data xmlns=&quot;http://www.netbeans.org/ns/nb-module-project/2&quot;> </li></ul><ul><li><code-name-base>org.netbeans.paint</code-name-base> </li></ul><ul><li><suite-component/> </li></ul><ul><li><module-dependencies> </li></ul><ul><li><dependency> </li></ul><ul><li><code-name-base>net.java.dev.colorchooser</…> </li></ul><ul><li><build-prerequisite/> </li></ul><ul><li><compile-dependency/> </li></ul><ul><li><run-dependency> </li></ul><ul><li><specification-version>1.0</…> </li></ul><ul><li></run-dependency> </li></ul><ul><li></dependency> </li></ul><ul><li> </module-dependencies> </li></ul><ul><li><public-packages/> </li></ul><ul><li></data> </li></ul><ul><li></configuration> </li></ul><ul><li></project> </li></ul>
    14. 14. Modulo Netbeans (…Settings.xml) <ul><li>La Arquitectura de Netbeans </li></ul><ul><li><!DOCTYPE settings PUBLIC &quot;-//NetBeans//DTD Session settings 1.0//EN&quot; &quot;http://www.netbeans.org/dtds/sessionsettings-1_0.dtd&quot;> </li></ul><ul><li><settings version=&quot;1.0&quot;> </li></ul><ul><li><module name=&quot;org.myorg.feedreader&quot; spec=&quot;1.0&quot;/> </li></ul><ul><li><instanceof class=&quot;java.awt.MenuContainer&quot;/> </li></ul><ul><li><instanceof class=&quot;org.myorg.feedreader.FeedTopComponent&quot;/> </li></ul><ul><li><instanceof class=&quot;java.lang.Object&quot;/> </li></ul><ul><li><instanceof class=&quot;org.openide.windows.TopComponent&quot;/> </li></ul><ul><li><instanceof class=&quot;java.awt.Container&quot;/> </li></ul><ul><li><instanceof class=&quot;java.io.Serializable&quot;/> </li></ul><ul><li><instanceof class=&quot;javax.swing.JComponent&quot;/> </li></ul><ul><li><instanceof class=&quot;java.awt.Component&quot;/> </li></ul><ul><li><instanceof class=&quot;java.io.Externalizable&quot;/> </li></ul><ul><li><instance class=&quot;org.myorg.feedreader.FeedTopComponent&quot; method=&quot;getDefault&quot;/> </li></ul><ul><li></settings> </li></ul>
    15. 15. Modulo Netbeans (…Wstcref.xml) <ul><li>La Arquitectura de Netbeans </li></ul><ul><li><!DOCTYPE tc-ref PUBLIC </li></ul><ul><li>&quot;-//NetBeans//DTD Top Component in Mode Properties 2.0//EN&quot; </li></ul><ul><li>&quot;http://www.netbeans.org/dtds/tc-ref2_0.dtd&quot;> </li></ul><ul><li><tc-ref version=&quot;2.0&quot; > </li></ul><ul><li><module name=&quot;org.myorg.feedreader&quot; spec=&quot;1.0&quot; /> </li></ul><ul><li><tc-id id=&quot;FeedTopComponent&quot; /> </li></ul><ul><li><state opened=&quot;true&quot; /> </li></ul><ul><li></tc-ref> </li></ul>
    16. 16. Ventajas <ul><li>La Arquitectura de Netbeans </li></ul><ul><li>La plataforma Netbeans RCP puede ser usada para desarrollar cualquier tipo de aplicación, no solamente plugins para Netbeans </li></ul><ul><li>Reutilización de módulos </li></ul><ul><li>Usando el Update Center module, se puede actualizar los módulos existentes de una aplicación o agregar nuevos. </li></ul>
    17. 17. Ventajas (Continuación) <ul><li>La Arquitectura de Netbeans </li></ul><ul><li>Los módulos permiten a las aplicaciones una abstracción muy alta y transparencia. </li></ul><ul><li>El RCP ofrece muchas facilidades al desarrollador. </li></ul><ul><li>En la última versión, se incluyen templates y Wizards que permiten desarrollar plug-ins de manera rápida y fácil </li></ul>
    18. 18. Ejemplos (Programas sobre Netbeans RCP) <ul><li>La Arquitectura de Netbeans </li></ul><ul><li>Poseidon for UML – Herramienta para desarrollar diagramas UML </li></ul><ul><li>Nokia NetAct – Permite desarrollar servicios a usuarios finales en redes móviles </li></ul><ul><li>SysUpTime – Manejador de aplicaciones distribuidas </li></ul><ul><li>DARPA Grand Challenge Vehicle Control – Monitorea el estado de vehículos sin pilotos </li></ul>

    ×