Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Documento 14
Documento 14
Ezequiel Aranda
Sun Campus Ambassador - UNICEN Ezequiel.Aranda@Sun.com
Agenda
La plataforma Java NetBeans 6.0
Java FX
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++.
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.
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.
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
Java bytecode Scala JRuby, intrprete de Ruby Rhino, intrprete de JavaScript Kawa y SISC, intrpretes de Scheme
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
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
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
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
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.
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.
listeners.
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
Denicin de la clase
Frame con un campo de texto. El titulo y el valor del campo estn vinculados con el atributo de model.
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 == []
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}"); }
demo
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
System
Preguntas?
Muchas Gracias!
Ezequiel Aranda
Sun Campus Ambassador - UNICEN Ezequiel.Aranda@Sun.com blogs.sun.com/argentina_ambassador