Está en la página 1de 52

Un vistazo al desarrollo de aplicaciones en la plataforma Java utilizando NetBeans 6

Ezequiel Aranda
Sun Campus Ambassador - UNICEN Ezequiel.Aranda@Sun.com

Agenda
La plataforma Java NetBeans 6.0
Java FX

Certicaciones - SAI Por dnde empezar?

Qu es Java?
Java es un lenguaje de programacin orientado a objetos desarrollado a principios de los aos 90. El lenguaje en s mismo toma mucha de su sintaxis de C y C++, pero tiene un modelo de objetos ms simple y elimina herramientas de bajo nivel. Es independiente de la plataforma . Las primeras implementaciones de Java rezaban:write once, run anywhere. Posee un sistema de administracin de memoria automtico, el Garbage Collector.

Un poco de historia
Java se cre originalmente como una herramienta de programacin para un proyecto set-top-box conocido como *7.

Fue realizado por un equipo de 13 personas, dirigidas por James Gosling. Los objetivos de Gosling eran implementar una mquina virtual y un lenguaje con una estructura y sintaxis similar a C++.

Un poco de historia (II)


En un principio, el sistema *7 no encontr un lugar en el mercado. Gosling y su equipo se reunieron y notaron que la nueva y popular Internet tenia exactamente el tipo de configuracin de red que ellos haban visionado para la industria de la TV por cable. Con esto en mente, crearon el navegador WebRunner y realizaron un demo que mostraba una molcula animada en una reunin de profesionales de la industria del entretenimiento e Internet. Todos sabemos historia. como termina esta

Porqu Java?
El lenguaje se denomin inicialmente Oak . Luego pas a denominarse Green tras descubrir que Oak era ya una marca comercial registrada. El trmino JAVA fue acuado en una cafetera frecuentada por algunos de los miembros del equipo. No est claro si es un acrnimo o no, algunas hiptesis indican que podra tratarse de las iniciales de sus creadores: James Gosling, Arthur Van Hoff, y Andy Bechtolsheim. Otras abogan por Just Another Vague Acronym.

La plataforma Java
Una plataforma es el ambiente de software o hardware en el que corre un programa. La plataforma Java consta de dos componentes
> La mquina virtual de Java > La API de Java (Application Programming Interface)

La API de Java es una vasta coleccin de componentes de software que proveen un conjunto de funciones tiles.

La plataforma Java (II)

En Java el cdigo fuente se escribe en un archivo de texto plano con extensin .java. Luego, el cdigo es compilado a archivos .class . Un archivo .class no contiene cdigo nativo a un tipo de procesador, en cambio contiene bytecodes . Finalmente, la aplicacin es compilada Just in Time por la maquina virtual de Java, transformando los bytecodes en cdigo nativo en tiempo de ejecucin.

La plataforma Java (III)


El bytecode es lenguaje nativo de cualquier implementacin de la mquina virtual de Java. De esta forma se logra que un programa Java corra en cualquier plataforma que disponga de una JVM.

La plataforma Java (IV)


La mayora de los sistemas operativos modernos proveen grandes cantidades de cdigo reusable. Generalmente, este cdigo es provisto en forma de bibliotecas dinmicas . Dado que la plataforma Java no depende de ningn sistema operativo especifico, las aplicaciones no pueden depender de bibliotecas existentes. En cambio, la plataforma provee un conjunto de bibliotecas de clases estndar .

La plataforma Java (V)


Las bibliotecas de clases Java tienen tres propsitos dentro de la plataforma:
> Proveer un conjunto de funciones para tareas comunes (parsing

de strings, mantener listas, etc) > Proveer interfaces abstractas a tareas que dependen fuertemente del sistema operativo y/o hardware (acceso a redes y archivos, por ejemplo) > Proveer emulacin para caractersticas que no estn presentes en una plataforma, o al menos chequeos que nos permitan saber si una caracterstica esta o no presente

La plataforma Java (VI)


Se han producido otros compiladores para la mquina virtual de Java. Algunos de estos lenguajes existan previamente mientras que otros son extensiones del lenguaje Java. Estos incluyen:
> Groovy > Jython, intrprete Python que incluye jythonc, un compilador Python-a> > > >

Java bytecode Scala JRuby, intrprete de Ruby Rhino, intrprete de JavaScript Kawa y SISC, intrpretes de Scheme

La plataforma Java (VII)


Existen distintas ediciones de la plataforma Java:
> Java ME (Micro Edition) > Java SE (Standard Edition) > Java EE (Enterprise Edition)

Qu es NetBeans?
Un IDE Java completo y modular
> > > >

Soporte Out-of-box para Java SE, Java EE, Java ME Gran conjunto de mlulos de terceros (plug-in's) Desarrollo intuitivo con drag-and-drop Debugger, Profiler, Refactoring, etc...

Gratuito y open-source
> Open source desde Junio de 2000 > Extensa comunidad de usuarios y desarrolladores

Completa plataforma para construir aplicaciones


> Aplicaciones cliente > Framework de ventanas, mens, barras de herramientas, etc

Novedades de NetBeans 6.0


Mejoras al editor de cdigo Soporte para Ruby, JRuby, y Ruby on Rails Sencilla instalacin y actualizacin Data binding en componentes SWING Profiling integrado, puntos de profiling Caractersticas para el desarrollo de aplicaciones web visuales Creador de juegos para dispositivos mviles Mejoras en SOA y UML Mejoras en la plataforma Netbeans

Debugging y Profiling
Debugging visual (breakpoints, watchpoints) Debugging remoto de un proceso Modificacin de cdigo al vuelo Debugging de JSP, Servlets, monitor de trafico HTTP Ver, suspender y resumir threads Monitor de actividad de Threads Datos visuales de tiempo de CPU y llamadas a mtodos Vista centrada en objetos: allocated, live, age Telemetra de JVM: uso de heap, garbage collection

Developer Collaboration
Desarrollo de aplicaciones en forma colaborativa Sistema de mensajes sensible a cambios en el cdigo El ambiente de desarrollo completo es compartido Edicin multi-party Revisiones de cdigo Debugging colaborativo Servidor pblico en share.java.net

Matisse
Problemas que surgen al construir una GUI (sin Matisse):
> Lidiar con APIs Swing > Por ejemplo GridBagLayout > Cambiar de tamao y alinear los elementos > Crear aplicaciones con diferentes locales > Comportamiento dependiendo del SO > Binding de datos a los elementos de GUI

Matisse resuelve estos problemas

Java DB
Distribucin soportada por Sun de Apache Derby Ideal para desarrollo y ejecucin de aplicaciones Java
> basada en estndares: 100% Java, SQL, JDBC, Java SE, EE, ME CDC > Sofisticado: stored procedures, triggers, tipos de datos definidos por el usuario > Pequeo: 2MB! > Seguro: encriptacin on-disk, passwords > Soporte: Soporte 24/7 de Sun

Donde est Java DB?


> En Java Enterprise system, Portal Server, Application Server, Glassfish > Soportado en NetBeans, Java Studio Creator, y Java Studio Enterprise > Java SE 6!

demo

Java EE
La plataforma Java EE esta construida sobre la plataforma Java SE. Provee un API y un ambiente de ejecucin para desarrollar y ejecutar aplicaciones en red de gran magnitud, multi-tiered, escalables, confiables y seguras (comnmente llamadas Enterprise ).

Java EE (II)
En una aplicacin multi-tiered la funcionalidad es dividida en areas funcionales aisladas, llamadas tiers.

Java EE (III)
APIs de Java EE

Java EE en NetBeans 6
Desarrollo de aplicaciones Web Soporte Java EE 5 Debugging, testing, profiling Struts y JavaServer Faces (JSF) JBoss 4, WebLogic 9, WebSphere Desarrollo de web services (cliente + servicio) Desarrollo de aplicaciones AJAX EJB

Java ME
La plataforma Java ME provee una API y una mquina virtual reducidas. La API de Java ME es un subconjunto de la de Java SE junto con bibliotecas especiales tiles para el desarrollo de aplicaciones para dispositivos pequeos Frecuentemente las aplicaciones Java ME son clientes de servicios de aplicaciones Java EE.

Java ME (II)
Java ME se divide en:
> Configuraciones: especificaciones que detallan una VM y un

conjunto de bibliotecas para dispositivos dentro de un determinado rango (CDC y CLDC son las disponibles actualmente). > Perfiles: complementan las configuraciones aadiendo APIs de alto nivel (por ejemplo MIDP profile para telfonos celulares). > Paquetes opcionales: funciones especiales para tecnologas no incluidas originalmente (BD especificas, grficos 3D, etc).

Java ME (III)

CLDC
Connected, Limited Device Configuration El propsito de CLDC es estandarizar una plataforma altamente portable y con un mnimo consumo de memoria para el desarrollo de aplicaciones Java para dispositivos con recursos limitados, pero con capacidades de conexin. Ejemplos: telfonos celulares, pagers, PDAs, set-topboxes para TVs, algunos electrodomesticos, etc...

Mobile Information Device Profile (MIDP) Perfil para dispositivos mviles de datos Una aplicacin MIDP es conocido como MIDlet Trabaja sobre CLDC Se enfoca en:
> Ciclo de vida de la aplicacin > Seguridad > Almacenamiento en red y persistencia > Sonido, temporizadores, UI

Sun Wireless Toolkit for Java


Implementacion de CLDC y MIDP
> incluye... WMA, MMAPI, JTWI, J2ME Web Services, PDAP, Bluetooth

and OBEX, Mobile 3D Graphics

Emulador Soporte OTA Encriptador Ofuscador Pre-verificador

NetBeans Mobility Pack


Usa Sun Wireless Tooklit for Java Creacin de interfaces grficas con Drag-anddrop Soporte para fragmentacin

MIDP 2.0 Gaming APIs


API de alto nivel
> Implementaciones en cdigo nativo > Reduce el tamao de la aplicacin

GameCanvas permite dibujar y consultar estados de las teclas Los Sprites y TiledLayers son los elementos visuales
> Los sprites pueden animarse, transformarse, moverse y detectar

colisiones. > Los TiledLayers son grillas que contienen imgenes. > Los TiledLayers se utilizan para generar grandes reas virtuales (por ejemplo, escenarios con desplazamientos) > Los TiledLayers pueden contener piezas estticas o animadas

demo

JavaFX
JavaFX es una nueva familia de tecnologas Java anunciadas por primera vez en mayo de 2007 Ideadas con el propsito de ser utilizadas para crear Rich Internet Applications (RIAs) Actualmente compuesto por:
> JavaFX MobileJavaFX Script > JavaFX Script

JavaFX Mobile
JavaFX Mobile es un sistema operativo Java para la nueva generacin de dispositivos moviles. Prove implementaciones de Java ME y Java SE corriendo sobre un kernel Linux. Permite:
> Mejorar la portabilidad y performance de las

aplicaciones, proveyendo un middleware y un stack de aplicaciones implementadas en Java. > Funcionalidad on-device mas interesante, comunicando las aplicaciones a travs de interfaces y tecnologias avanzadas. > Personalizar rapidamente los dispositivos a las distintas compaias.

Diferencias entre el modelo tradicional y JavaFX Mobile

Componentes JavaFX Mobile

JavaFX Script
JavaFX Script es un lenguaje de scripting declarativo estticamente tipado para la plataforma Java Provee:
> > > > >

Data-binding automtico Soporte completo para grficos 2D Componentes Swing estndar Animacin declarativa. Como esta construido sobre la plataforma Java, es sencillo utilizar cualquier clase Java en los scripts JavaFX.

JavaFX Script - Porqu?


Escribir GUIs es difcil (y molesto)
> Matisse reduce el trabajo de crear GUis, pero todava hay demasiados

listeners.

Las interfaces por defecto son planas y aburridas


> Un conjunto de cajas grises rectangulares (no solo en Java), no comparables

con otras tecnologas web, como Flash.

Java 2D provee mucho de lo que se necesita


> Pero es complicado de usar para este propsito y no posee un comportamiento

composicional

JavaFX combina widgets de tipo Swing con primitivas Java 2D en una sintaxis declarativa que soporta comportamiento composicional y transformaciones avanzadas como translaciones, rotaciones,clipping, shearing, etc

JFX Script Ejemplos de Cdigo


class HelloWorldModel { attribute saying: String; } var model = HelloWorldModel { saying: "Hello Campus" }; var win = Frame { title: bind "{model.saying} JavaFX" width: 200 content: TextField { value: bind model.saying } visible: true };

Denicin de la clase

Instancia de la clase HelloWorldModel

Frame con un campo de texto. El titulo y el valor del campo estn vinculados con el atributo de model.

JFX Script Ejemplos de Cdigo (II)


var x = [1,2,3]; insert 10 into x; insert 12 before x[1]; delete x[. == 12]; delete x[. >= 3]; insert 5 after x[. == 1]; insert 13 as first into x; delete x;

Inicializacin x == [1, 2, 3, 10] x == [1, 12, 2, 3, 10] x == [1, 2, 3, 10] x == [1, 2] x == [1, 5, 2] x == [13, 1, 5, 2] x == []

function factors(n) { return select i from i in [1..n/2] where n % i == 0; }

Queries para vectores!

JFX Script Ejemplos de Cdigo (III)


class X { attribute nums: Number*; } trigger on new X { insert [3,4] into this.nums; }

Evento de creacin Evento al insertar en vector Evento al cambiar valor

trigger on insert num into X.nums { System.out.println("just inserted {num} into X.nums at position {indexof num}"); } trigger on X.num[oldValue] = newValue { System.out.println("X.num: just replaced {oldValue} with {newValue}"); }

JFX Script Ejemplos de Cdigo (IV)


import javafx.ui.canvas.*; import javafx.ui.*; Canvas { content: Group { transform: [rotate(20,0,0)] content: [Rect { x: 20 y: 20 height: 80 width: 300 ... }, Ellipse { cx: 150 cy: 80 ... }, }] } }

Canvas para dibujar Agrupamiento de controles Grupo transformadas Declaracin de grco 2D

Opciones para ejecutar cdigo JFX Script


Corrindolo con Java Web Start:
Java Web Start es la implementacin de referencia de la especificacin JNLP (Java Networking Launching Protocol) Permite arrancar aplicaciones Java que estn en un servidor web de aplicaciones comprobando previamente si el cliente tiene la versin actualizada de dicha aplicacin (JRE) El arranque de dichas aplicaciones puede ser efectuado mediante enlaces en una pgina web o bien a travs de enlaces en el escritorio cliente. Se asegura que una aplicacin es distribuida siempre en su ltima versin.

Opciones para ejecutar cdigo JFX Script (II)


Ejecutndolo desde un programa Java:
public class FxScriptLauncher2 { public static void main(String[] args) { try { // set up script: ScriptEngineManager manager = new ScriptEngineManager(); ScriptEngine engine = manager.getEngineByExtension("fx"); engine.put("now:java.util.Date", new Date()); InputStreamReader reader = new InputStreamReader(FxScriptLauncher2.class.getResourceAsStream("HelloWorld.fx")); engine.eval(reader); } catch (Exception e) { e.printStackTrace(); } } } import java.io.InputStreamReader; import java.util.Date; import javax.script.ScriptEngine; import javax.script.ScriptEngineManager;

demo

Netbeans 6.0: Por dnde empezar?

Bajar Netbeans 6.0 Unirse al proyecto Netbeans.org Crear una cuenta de desarrollo colaborativo Hacer los tutoriales Participar en los foros Escribir una aplicacin de escritorio Probar el mdulo de colaboracin con tus amigos

http://www.netbeans.org

Bajar Java FX y el plug-in para Netbeans o Eclipse Unirse al proyecto OpenJFX en Java.net Hacer los tutoriales Participar en los foros de JavaFX Comenzar a adentrarse en las posibilidades de JavaFX

Java FX

Qu puedo Hacer?

http://openjfx.dev.java.net

Acelera tu carrera profesional con SAI Entrenamiento GRATIS va web de JavaTM, SolarisTM y mas.
> Pgina de la iniciativa: http://ar.sun.com/training/sai/index.jsp > Cursos en: http://learningconnection.sun.com

Company name: SAI-Universidad de La Punta Company ID: CUS-0000116543

Acelera tu carrera profesional con SAI (II)


Increment tu potencial de obtener salarios mayores con certificaciones Sun
> Sun Certified Associate/Programmer for the Java 2 Platform SE > Sun Certified Web Component Developer for Java EE > Sun Certified Mobile Application Developer for Java ME > Sun Certified System/Network Admin for Solaris Operating

System

Exmenes de entrenamiento gratis Exmenes oficiales rebajados de U$S 120-200 a U$S 40

Preguntas?

Muchas Gracias!

Ezequiel Aranda
Sun Campus Ambassador - UNICEN Ezequiel.Aranda@Sun.com blogs.sun.com/argentina_ambassador

También podría gustarte