Professional Documents
Culture Documents
Cuadro comparativo entre estilo de arquitectura, patrn arquitectnico, arquitectura de referencia y arquitectura de software.
Estilo de arquitectura Contiene componentes, conectores o patrones. La solucin pueda ser usada ms de un milln de veces sin hacerlo siquiera dos veces de la misma forma. Contempla las restricciones. Se encuentran ya probados. Cierto nmero de partes que cooperativamente resuelven el mismo. Determinan ventajas e inconvenientes. Patrn arquitectnico Arquitectura de referencia Arquitectura de software
X X
X X X X X
Estilo de arquitectura
Describe un conjunto de componentes (con sus responsabilidades). Un conjunto de conectores entre componentes (comunicacin, coordinacin, cooperacin, etctera). Restricciones que definen cmo se integran los componentes para formar el sistema. Modelos que permiten comprender las propiedades de un sistema general en funcin de las propiedades conocidas de las partes que lo integran.
Patrn arquitectnico
Cada patrn describe un problema que ocurre una y otra vez en nuestro entorno, para describir despus el ncleo de la solucin a ese problema, de tal manera que esa solucin
pueda ser usada ms de un milln de veces sin hacerlo siquiera dos veces de la misma forma. Los patrones estn ya probados, son reutilizables y son expresivos (cuando un equipo de desarrolladores tiene un vocabulario comn de patrones, se puede comunicar de manera fluida y precisa las ideas fundamentales sobre el diseo de una aplicacin.
Arquitectura de referencia
Un modelo de referencia es una descomposicin de un problema en un cierto nmero de partes que cooperativamente resuelven el mismo. Es un modelo de referencia planeado sobre elementos de software y el flujo de datos entre ellos. Un elemento de software puede implementar parte de una funcin o de varias funciones.
Arquitectura de software
Proporciona cierta informacin: La naturaleza de los elementos. Si los elementos son procesos, programas, objetos, etc. Las funciones de los elementos. El significado de las relaciones entre cada elemento. El significado de la distribucin de los elementos. Por ejemplo. Elementos localizados en diferentes niveles.
Conclusin
Como se puede ver en el cuadro comparativo de acuerdo a la investigacin que se hizo en internet y con apoyo del material en clase se estima que las arquitecturas ms completas serian: Estilo de arquitectura y arquitectura de referencia, cabe destacar que no se tom en cuanta en casos especficos si no que se tom de forma general a donde se aplicaran pues de ser as no se podra cuantificar de manera adecuada pues cada una obtiene su mximo potencial de acuerdo a un problema especfico.
Desde porttiles hasta centros de datos, desde consolas para juegos hasta sper computadoras, desde telfonos mviles hasta Internet, Java est en todas partes.
Logotipo de Java
1,100 millones de escritorios ejecutan Oracle Java 930 millones de descargas de Java Runtime Environment cada ao 3 mil millones de telfonos mviles ejecutan Java Se entregan 31 veces ms al ao telfonos Java que Apple y Android juntos El 100% de los reproductores de Blu-ray ejecutan Java Se fabrican 1400 millones de tarjetas Java cada ao Java se incluye en decodificadores, impresoras, juegos, sistemas de navegacin en vehculos, cajeros automticos, terminales de loteras, dispositivos mdicos, estaciones de pago de aparcamientos y mucho ms.
Escribir software en una plataforma y ejecutarla virtualmente en otra Crear programas que se puedan ejecutar en un explorador y acceder a servicios Web disponibles Desarrollar aplicaciones de servidor para foros en lnea, almacenes, encuestas, procesamiento de formularios HTML y mucho ms Combinar aplicaciones o servicios que utilizan el lenguaje Java para crear aplicaciones o servicios con un gran nivel de personalizacin Escribir aplicaciones potentes y eficaces para telfonos mviles, procesadores remotos, productos de consumo y prcticamente cualquier otro dispositivo electrnico Formas en las que los desarrolladores de software aprenden a utilizar Java Registrarse en JavaOne 2012 Muchas universidades ofrecen cursos de programacin sobre la plataforma Java. Oracle Academy ofrece una completa cartera de software, plan de estudios, tecnologa alojada, formacin de profesorado, soporte y recursos de certificacin para instituciones educativas de primaria y secundaria, escuelas taller y centros de enseanza superior para uso del profesorado, entre otras, una oferta Java con capacidad para cientos de miles de alumnos. Adems, los desarrolladores tambin pueden mejorar sus conocimientos de programacin Java consultando el sitio web de desarrolladores de Java de Oracle, suscribindose a los boletines orientados a la tecnologa Java y Java Magazine, utilizando el tutorial de Java y el centro para nuevos usuarios de programacin Java, adems de suscribirse a cursos web, virtuales o dirigidos por instructores especializados.
Logotipo de OTNOracle Technology Network es la comunidad ms grande del mundo de desarrolladores de aplicacin, administradores del sistema, administradores de bases de datos, desarrolladores/administradores de sistemas y arquitectos que utilizan las tecnologas estndar del sector en combinacin con productos de Oracle. Tambin es donde est java.oracle.com, la fuente ms actualizada, de mayor fiabilidad y completa de informacin tcnica sobre Java. La suscripcin es gratuita, participe ya (En el Perfil, active la casilla Oracle Technology Network que aparece debajo de Miembros de mi comunidad.)
Qu es JavaFX?
JavaFX est basado en Java. La plataforma JavaFX permite a los desarrolladores de la aplicacin crear e implementar fcilmente aplicaciones de Internet enriquecidas (RIA) que se comportan de la misma forma en distintas plataformas. JavaFX ampla la potencia de Java permitiendo a los desarrolladores utilizar cualquier biblioteca de Java en aplicaciones JavaFX. De esta forma, los desarrolladores pueden ampliar sus capacidades en Java y utilizar la tecnologa de presentacin que JavaFX proporciona para crear atractivo visual.
Caractersticas
Independencia de la plataforma
Java funciona con las principales plataformas de hardware y sistemas operativos, o bien con el software JVM directamente desde Oracle, a travs de uno de los muchos partners del ecosistema de Java, o como parte de la comunidad OpenJDK.
Alto rendimiento
HotSpot y JRockit son ejemplos de tecnologas de equipos virtuales de interpretacin dinmica (JIT) y de eficacia probada que hacen de Java uno de los entornos de programacin ms rpidos. Las optimizaciones integradas para entornos multiproceso lo hacen an ms rpido.
Fcil de aprender
Java es el lenguaje de programacin preferido por las universidades y las instituciones de enseanza de todo el mundo.
El modelo de Java para la gestin de la memoria, los procesos mltiples y la gestin de excepciones lo convierte en un lenguaje eficaz para los desarrolladores nuevos y para los ms experimentados.
Basado en estndares
El lenguaje Java y la tecnologa relacionada evolucionan a travs de Java Community Process, un mecanismo que permite desarrollar especificaciones tcnicas para la tecnologa Java.
Prevalencia mundial
Java es la plataforma de aplicaciones ms popular del planeta y proporciona un interesante ecosistema de desarrolladores impulsado por herramientas eficaces, libros, bibliotecas, muestras de cdigo y mucho ms.
Netbeans
Muy interesante y con muchas funcionalidades de un solo click, web services con un solo click, EJB con un solo click muy entretenido de usar y contiene una alta variedad de plug in hechos por la comunidad.
Eclipse
Uno de los mejores ide para java, no por nada es utilizados en Rational de IBM.
Rational
Basado en eclipse pero con el poderoso servidor de websphere, uno de los mas usados en empresas de alto nivel que tienen varia tecnologa IBM, si quieren utilizarlo pueden bajar el trial o utilizar eclipse.
BlueJ
Para los que empiezan, en teora te ayuda para la programacin orientada a objetos y otras buenas practicas de la programacin.
.Net
.NET es un framework de Microsoft que hace un nfasis en la transparencia de redes, con independencia de plataforma de hardware y que permita un rpido desarrollo de aplicaciones. Basado en ella, la empresa intenta desarrollar una estrategia horizontal que integre todos sus productos, desde el sistema operativo hasta las herramientas de mercado. .NET podra considerarse una respuesta de Microsoft al creciente mercado de los negocios en entornos Web, como competencia a la plataforma Java de Oracle Corporation y a los
diversos framework de desarrollo web basados en PHP. Su propuesta es ofrecer una manera rpida y econmica, a la vez que segura y robusta, de desarrollar aplicaciones o como la misma plataforma las denomina, soluciones permitiendo una integracin ms rpida y gil entre empresas y un acceso ms simple y universal a todo tipo de informacin desde cualquier tipo de dispositivo.
Consideraciones
La plataforma .NET de Microsoft es un componente de software que puede ser aadido al sistema operativo Windows. Provee un extenso conjunto de soluciones predefinidas para necesidades generales de la programacin de aplicaciones, y administra la ejecucin de los programas escritos especficamente con la plataforma. Esta solucin es el producto principal en la oferta de Microsoft, y pretende ser utilizada por la mayora de las aplicaciones creadas para la plataforma Windows. .NET Framework se incluye en Windows Server 2008, Windows Vista y Windows 7. De igual manera, la versin actual de dicho componente puede ser instalada en Windows XP, y en la familia de sistemas operativos Windows Server 2003. Una versin "reducida" de .NET Framework est disponible para la plataforma Windows Mobile, incluyendo telfonos inteligentes. La norma (incluido en ECMA-335, ISO/IEC 23271) que define el conjunto de funciones que debe implementar la biblioteca de clases base (BCL por sus siglas en ingls, tal vez el ms importante de los componentes de la plataforma), define un conjunto funcional mnimo que debe implementarse para que el marco de trabajo sea soportado por un sistema operativo. Aunque Microsoft implement esta norma para su sistema operativo Windows, la publicacin de la norma abre la posibilidad de que sea implementada para cualquier otro sistema operativo existente o futuro, permitiendo que las aplicaciones corran sobre la plataforma independientemente del sistema operativo para el cual haya sido implementada. El Proyecto Mono emprendido por Ximian pretende realizar la implementacin de la norma para varios sistemas operativos adicionales bajo el marco del cdigo abierto.
Componentes
Los principales componentes del marco de trabajo son: El conjunto de lenguajes de programacin. La biblioteca de clases base o BCL. El entorno comn de ejecucin para lenguajes, o CLR por sus siglas en ingls. Debido a la publicacin de la norma para la infraestructura comn de lenguajes (CLI por sus siglas en ingls), el desarrollo de lenguajes se facilita, por lo que el marco de trabajo .NET soporta ya ms de 20 lenguajes de programacin y es posible desarrollar cualquiera de los tipos de aplicaciones soportados en la plataforma con cualquiera de ellos, lo que elimina las diferencias que existan entre lo que era posible hacer con uno u otro lenguaje.
Algunos de los lenguajes desarrollados para el marco de trabajo .NET son: C#, Visual Basic .NET, Delphi (Object Pascal), C++, F#, J#, Perl, Python, Fortran, Prolog (existen al menos dos implementaciones, el P#1 y el Prolog.NET2 ), Cobol y PowerBuilder.
Caractersticas
Es el encargado de proveer lo que se llama cdigo administrado, es decir, un entorno que provee servicios automticos al cdigo que se ejecuta. Los servicios son variados: Cargador de clases: permite cargar en memoria las clases. Compilador MSIL a nativo: transforma cdigo intermedio de alto nivel independiente del hardware que lo ejecuta a cdigo de mquina propio del dispositivo que lo ejecuta. Administrador de cdigo: coordina toda la operacin de los distintos subsistemas del Common Language Runtime. Recolector de basura: elimina de memoria objetos no utilizados automticamente. Motor de seguridad: administra la seguridad del cdigo que se ejecuta. Motor de depuracin: permite hacer un seguimiento de la ejecucin del cdigo an cuando se utilicen lenguajes distintos. Verificador de tipos: controla que las variables de la aplicacin usen el rea de memoria que tienen asignado.
Administrador de excepciones: maneja los errores que se producen durante la ejecucin del cdigo. Soporte de multiproceso (hilos): permite desarrollar aplicaciones que ejecuten cdigo en forma paralela. Empaquetador de COM: coordina la comunicacin con los componentes COM para que puedan ser usados por el .NET Framework. Biblioteca de Clases Base que incluye soporte para muchas funcionalidades comunes en las aplicaciones.
Aleatoriedad Generacin de cdigo Manejo de idiomas Auto descripcin de cdigo Interaccin con el API Win32 o Windows API. Compilacin de cdigo Esta funcionalidad se encuentra organizada por medio de espacios de nombres jerrquicos. La Biblioteca de Clases Base se clasifica, en cuatro grupos clave: ASP.NET y Servicios Web XML Windows Forms ADO.NET .NET
Otros editores
Si es cierto que el famoso Notepad es un apoyo para el almacenamiento de informacin almacenada en el clipboard, le falta lo que Notepad++ aporta, es decir una forma de manipular cdigo de forma avanzada.
Para los que usualmente utilizan LINQ, LINQPad se ha convertido en una herramienta tremendamente til a la hora de generar consultas contra todo tipo de proveedores LINQ la cual ofrece, adems, la posibilidad de compilar cdigo y ejecutar las consultas.
Virtualizacin
En el apartado de virtualizacin, adems del cliente de conexin remota que ofrece la plataforma Windows, me gustara destacar a Royal TS, la cual ofrece una versin freeware limitada a 10 conexiones y que ofrece la posibilidad de mantener varias conexiones remotas al mismo tiempo. Una de las caractersticas interesantes tambin es XP Mode de Windows 7 la cual te permite crear una imagen de un Windows XP en cuestin ideal para los test de despliegue, por ejemplo.
Diseo
Mitad IDE de desarrollo mitad software de diseo, Microsoft Expression Blend es una herramienta obligatoria para todos aquellos que desarrollan para Silverlight o WPF, tanto para aplicaciones RIA como para Windows Phone. Cabe destacar la integracin de proyectos con Visual Studio .NET lo cual hace de ambas herramientas un tandem altamente eficaz. Instant EyeDropper es ampliamente utilizado por desarrolladores Web para la captura de colores en pantalla en formatos html, HEX, RGB, HSB. Hablando en esta linea tampoco debemos olvidar tanto a MS Paint como a Paint.NET para manipular imgenes de una forma sencilla si no necesitamos utilizar tcnicas avanzadas de diseo y/o manipulacin de imgenes, claro.
Web
De la misma forma que Expression Blend es un must-have para los desarrolladores de Silverlight, Expression Web lo es para los desarrolladores de Web ofreciendo un conjunto de funcionalidades orientadas especficamente a este entorno de desarrollo. Si lo que queremos es depurar aplicaciones Web, entonces fiddler2. Con esta herramienta podemos sacar un log de todas la peticiones http y https que se generan en nuestro equipo con un potente subsistema de scripting basado en eventos.
Otros
.NET Reflector ha sido considerado durante mucho tiempo el desensamblador por excelencia de binarios en .NET hasta que sus propietarios decidieron cambiar su licencia y pasar a ser de pago. Sin embargo, no ha pasado mucho tiempo hasta que Jetbrains ha lanzado su propia versin de una herramienta llamada dotPeek que adems se integra con otras del mismo fabricante como Resharper o dotTrace. Para los que hemos vivido y sufrido el infierno de las DLL en Visual Basic 6.0 alabamos en su momento a Mark Russinovich por desarrollar Process Explorer el cual nos ofrece toda la informacin de archivos DLL, librerias nativas y subprocesos que se ejecutan dentro de un mismo proceso.
Bibliografa
http://www.genbetadev.com/herramientas/herramientas-imprescindibles-para-undesarrollador-de-net http://es.wikipedia.org/wiki/Microsoft_.NET http://msdn.microsoft.com/es-es/library/ms644566(v=vs.85).aspx http://www.oracle.com/es/technologies/java/resources/index.html http://www.slideshare.net/mstabare/arquitecturas-de-software-parte-2