La palabra inglesa framework define, en términos generales, un conjunto estandarizado de conceptos, prácticas y criterios para enfocar un tipo de problemática particular, que sirve como referencia para enfrentar y resolver nuevos problemas de índole similar.
En el desarrollo de software, un framework es una estructura conceptual y tecnológica de soporte definida, normalmente con artefactos o módulos de software concretos, en base a la cual otro proyecto de software puede ser organizado y desarrollado. Típicamente, puede incluir soporte de programas, bibliotecas y un lenguaje interpretado entre otros programas para ayudar a desarrollar y unir los diferentes componentes de un proyecto.
Representa una arquitectura de software que modela las relaciones generales de las entidades del dominio. Provee una estructura y una metodología de trabajo la cual extiende o utiliza las aplicaciones del dominio.
Son diseñados con la intención de facilitar el desarrollo de software, permitiendo a los diseñadores y programadores pasar más tiempo identificando requerimientos de software que tratando con los tediosos detalles de bajo nivel de proveer un sistema funcional. Por ejemplo, un equipo que usa Apache Struts para desarrollar un sitio web de un banco, puede enfocarse en cómo los retiros de ahorros van a funcionar en lugar de preocuparse de cómo se controla la navegación entre las páginas en una forma libre de errores. Sin embargo, hay quejas comunes acerca de que el uso de frameworks añade código innecesario y que la preponderancia de frameworks competitivos y complementarios significa que el tiempo que se pasaba programando y diseñando ahora se gasta en aprender a usar frameworks.
Fuera de las aplicaciones en la informática, puede ser considerado como el conjunto de procesos y tecnologías usados para resolver un problema complejo. Es el esqueleto sobre el cual varios objetos son integrados para una solución dada.
Después de todo, un Framework no debe ser consciente de todos estos requerimientos sin tener que ser intrusivo con las aplicaciones que permite dentro de sí mismo. A esto le sumamos la capacidad de extenderse sin prejuicios para diversificar la expresión del programa mismo.
Ejemplos
JavaFX
JavaFX es una familia de productos y tecnologías de Sun Microsystems para la creación de Rich Internet Applications (RIAs), esto es, aplicaciones web que tienen las características y capacidades de aplicaciones de escritorio, incluyendo aplicaciones multimedia interactivas. Las tecnologías incluidas bajo la denominación JavaFX son JavaFX Script y JavaFX Mobile, aunque hay más productos JavaFX planeados.
JavaFX fue anunciado en la conferencia de desarrolladores JavaOne en mayo de 2007 y liberado en diciembre de 2008
La intención de Sun Microsystems respecto de JavaFX es competir en el espacio que ya ocupan Flash de Adobe, y Silverlight de Microsoft.
En palabras de James Gosling "La mayoría de los lenguajes de script están orientados a las páginas web; éste está orientado a los interfaces que son altamente animados.
JSF (Java Server Faces)
JavaServer Faces (JSF) es una tecnología y framework para aplicaciones Java basadas en web que simplifica el desarrollo de interfaces de usuario en aplicaciones Java EE. JSF usa JavaServer Pages (JSP) como la tecnología que permite hacer el despliegue de las páginas, pero también se puede acomodar a otras tecnologías como XUL.
JSF incluye:
- Un conjunto de APIs para representar componentes de una interfaz de usuario y administrar su estado, manejar eventos, validar entrada, definir un esquema de navegación de las páginas y dar soporte para internacionalización y accesibilidad.
- Un conjunto por defecto de componentes para la interfaz de usuario.
- Dos bibliotecas de etiquetas personalizadas para JavaServer Pages que permiten expresar una interfaz JavaServer Faces dentro de una página JSP.
- Un modelo de eventos en el lado del servidor.
- Administración de estados.
- Beans administrados.
La especificación de JSF fue desarrollada por la Java Community Process como JSR 127, que definía JSF 1.0 y 1.1, JSR 252 que define JSF 1.2 y JSR 314 para JSF 2.0
Java Persistence API
Java Persistence API, a veces denominado APP, es un lenguaje de programación Java marco que permite a los desarrolladores para gestionar datos relacionales en aplicaciones que usan Java Platform, Standard Edition y Java Platform, Enterprise Edition.
The Java Persistence API originated as part of the work of the JSR 220 Expert Group. Java Persistence API se originó como parte de la labor de los 220 JSR Grupo de Expertos.
Persistence in this context covers three areas: La persistencia en este contexto, abarca tres áreas:
- the API itself, defined in the
javax.persistence
package la API en sí, definida en el paquete dejavax.persistence
- the Java Persistence Query Language (JPQL) la consulta de Java Persistence Idioma (JPQL)
- object/relational metadata objeto / relacional de metadatos
Entidades
A persistence entity is a lightweight Java class whose state is typically persisted to a table in a relational database . Una entidad de persistencia es una clase Java de peso ligero, cuyo estado es típicamente persiste en una tabla en una base de datos relacional. Instances of such an entity correspond to individual rows in the table. Las instancias de esta entidad corresponden a las filas individuales de la tabla. Entities typically have relationships with other entities, and these relationships are expressed through object/relational metadata. Las entidades suelen tener relaciones con otras entidades, y estas relaciones se expresan a través de objetos / relacional de metadatos. Object/relational metadata can be specified directly in the entity class file by using annotations , or in a separate XML descriptor file distributed with the application. Objeto / metadatos relacionales se puede especificar directamente en el archivo de clase de entidad mediante el uso de anotaciones, o en un descriptor XML independiente de archivos distribuidos con la aplicación.
Struts
“Es un framework de la capa de presentación que implementa el patrón
de patrón MVC en Java”
Evidentemente, como todo framework intenta simplificar notablemente la
implementación de una arquitectura según el patrón MVC. El mismo separa muy
bien lo que es la gestión del workflow de la aplicación, del modelo de objetos de
negocio y de la generación de interfaz.
Un framework es la extensión de un lenguaje mediante una o más jerarquías de clases que implementan
una funcionalidad y que (opcionalmente) pueden ser extendidas.
El patrón Modelo – Vista – Controlador
MVC (Modelo-Vista -Controlador) es un patrón de diseño aportado
originariamente por el lenguaje SmallTalk a la Ingeniería del Software. Consiste
principalmente en dividir las aplicaciones en tres partes:
• Controlador
• Modelo
• Vistas.
El controlador es el encargado de redirigir o asignar una aplicación a cada
petición; el controlador debe poseer de algún modo, un "mapa" de
correspondencias entre peticiones y respuestas que se les asignan.
El modelo seria la lógica de negocio a fin de cuentas.
Una vez realizadas las operaciones necesarias el flujo vuelve al controlador y
este devuelve los resultados a una vista asignada.
El siguiente gráfico nos muestra la interacción entre el Modelo la Vista y el
Controlador.
ICEFaces
Permite al programador incluir una serie de tags Ajax en sus JSP o xhtml de tal manera que el Ajax es generado por el framework de manera automática, tal y como hacía el framework Ajax4jsf pero éste framework dispone de todos los componentes y efectos con los que un programador pueda soñar.
El framework está pensado de tal manera que se puedan realizar partes Ajax utilizando los tags de ICEFaces o partes no Ajax utilizando los tags JSF de siempre, de tal manera que se pueda utilizar Ajax sólo donde interese y sólo ahí sin condicionar que toda la página haya de ser Ajax.
0 comentarios:
Publicar un comentario