Ing. George Navarro
2015
Frameworks y
Entornos de desarrollo
• Programa Informático
• Compuesto por un conjunto de herramientas de
programación
• Es un entorno de programación que ha sido
empaquetado como un programa de aplicación
• Puede dedicarse en exclusiva a un solo lenguaje
de programación o bien puede utilizarse para
varios.
Entorno de Desarrollo Integrado
(Integrated development environment IDE)
Un IDE consiste en:
• Un editor de código
• Un compilador
• Un depurador
• Un constructor de interfaz gráfica (GUI)
Entorno de Desarrollo Integrado (IDE)
Visual Studio  Compatible con múltiples lenguajes de programación (>50)
Soporta dispositivos como móviles Windows Phone, Tablets W8, consolas Xbox
Eclipse Basado en Java. Hecho esencialmente para Java y Android
Plugins para C, C++, Ada, Perl, Python, Ruby, PHP
Netbeans  Basado en Java y para Java
Plugins para C, C++, Ada, Perl, Python, Ruby y PHP
Pycharm  Programación en Python. Se asocia perfectamente con el
framework web Django.
Android Studio  Programación para la plataforma Android (Java).
Sublime Text (Windows/Mac/Linux)
• Uno de los mejores editores que existen
actualmente.
• Destaca por lo ligero y simple que es.
• Aspecto visual sencillo pero elegante.
• Automatismos para realizar cambios de código.
• Sobretodo gran capacidad de personalización.
• Incorpora una gran cantidad de plugins para hacer
prácticamente cualquier cosa.
Sublime Text (Windows/Mac/Linux)
Notepad ++ (Windows)
• Uno de los editores mas usados que existen
actualmente.
• Es ligero, sencillo y eficiente.
• Parte del block de notas clásico de Windows.
• Variadas funcionalidades de tratamiento de textos.
• Presenta un gestor de plugins para ampliar las
funcionalidades .
Notepad ++ (Windows/GPL)
• Un framework o infraestructura digital, es una
estructura conceptual y tecnológica de soporte definido,
normalmente con artefactos o módulos de software
concretos, que puede servir de base para la organización
y desarrollo de software.
• Típicamente, puede incluir soporte de programas,
bibliotecas, y un lenguaje de interpretado, entre otras
herramientas, 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, y
provee una estructura y una especial metodología de
trabajo, la cual extiende o utiliza las aplicaciones del
dominio.
Arquitectura
Framework
modelo MVC
MODELO VISTA
CONTROLADOR
Maneja las operaciones lógicas
Y de gestión de información
Le corresponde dibujar, expresar la ultima
forma de como muestran los datos GUI
que interactúa con el usuario final
Controlar el acceso (todo) a nuestra aplicación
Se puede diversificar el contenido de forma
dinámica y estática a la vez
• Un framework web, es un tipo de
framework, específicamente diseñado para
ayudar a los desarrolladores a construir
aplicaciones web.
• Típicamente proporcionan funcionalidades
básicas y comunes a la mayoría de las
aplicaciones web, como: gestión de usuario
de la sesión, la persistencia de datos, y
sistemas de plantillas.
JAVA
PHP
PYTHON
RUBY
Antes de comenzar con el análisis comparativo de
plataformas, se exponen dos consejos.
1er Consejo: Cualquier informático te dirá que la
plataforma que él maneja es la mejor, pero sólo
porque no conoce otras plataformas.
2do Consejo: Si tu plan de empresa depende
críticamente de las presuntas eficiencias
espectaculares de una determinada plataforma,
entonces es que deberías replantearte algo en tu
plan de empresa.
1º) Grado de madurez.
2º) Tamaño y grado de actividad de la comunidad.
3º) Disponibilidad de librerías y aplicaciones de terceros.
4º) Disponibilidad y coste salarial de los programadores.
5º) Dificultad de la curva de aprendizaje.
6º) Compatibilidad con el resto del ecosistema.
7º) Rendimiento y escalabilidad.
Nota: Podría estar la productividad, pero queda fuera, ya que si se
usan bien las mencionadas, todas ellas ofrecen un grado de
productividad equivalente, o, al menos no lo bastante diferente como
para que debiera ser relevante.
JAVA
PHP
MICROSOFT .NET
PYTHON / DJANGO
RUBY ON RAILS
HTML/CSS o HTML5 / CSS3
JAVASCRIPT / JQUERY / AJAX / DOJO
BOOTSTRAP / LESS / YUI
BACKBONE/ COFFESCRIPT
NODEJS / PHANTOMJS
Ninguna plataforma es óptima para todas las necesidades.
• Si tienes que desarrollar un sitio web para una multinacional, o hacer
integraciones complejas con otras plataformas o realmente vas a crecer
mucho, tanto en tráfico como en número de desarrolladores, entonces
elige Java sobre PostgreSQL.
• Si quieres tener presencia online de forma eficaz y asequible, inclusive
con e-commerce, pero tu website no es el factor crítico exclusivo de tu
negocio, entonces elige LAMP (Linux, Apache, MySQL/MariaDB y
Perl,Php ó Python).
• Si tienes que desarrollar una intranet o un sitio web corporativo
conociendo de que los usuarios tendrán Internet Explorer y tecnologías
Microsoft entonces elige .NET sobre SQL Server
• Si necesitas una web con contenidos dinámicos mantenida por un
equipo compacto y eficiente de programadores entonces elige Django
sobre PostgreSQL o Ruby on Rails sobre MySQL.
IDEs y Frameworks mas utilizados

IDEs y Frameworks mas utilizados

  • 1.
    Ing. George Navarro 2015 Frameworksy Entornos de desarrollo
  • 2.
    • Programa Informático •Compuesto por un conjunto de herramientas de programación • Es un entorno de programación que ha sido empaquetado como un programa de aplicación • Puede dedicarse en exclusiva a un solo lenguaje de programación o bien puede utilizarse para varios. Entorno de Desarrollo Integrado (Integrated development environment IDE)
  • 3.
    Un IDE consisteen: • Un editor de código • Un compilador • Un depurador • Un constructor de interfaz gráfica (GUI) Entorno de Desarrollo Integrado (IDE)
  • 4.
    Visual Studio Compatible con múltiples lenguajes de programación (>50) Soporta dispositivos como móviles Windows Phone, Tablets W8, consolas Xbox
  • 5.
    Eclipse Basado enJava. Hecho esencialmente para Java y Android Plugins para C, C++, Ada, Perl, Python, Ruby, PHP
  • 6.
    Netbeans  Basadoen Java y para Java Plugins para C, C++, Ada, Perl, Python, Ruby y PHP
  • 7.
    Pycharm  Programaciónen Python. Se asocia perfectamente con el framework web Django.
  • 8.
    Android Studio Programación para la plataforma Android (Java).
  • 9.
    Sublime Text (Windows/Mac/Linux) •Uno de los mejores editores que existen actualmente. • Destaca por lo ligero y simple que es. • Aspecto visual sencillo pero elegante. • Automatismos para realizar cambios de código. • Sobretodo gran capacidad de personalización. • Incorpora una gran cantidad de plugins para hacer prácticamente cualquier cosa.
  • 10.
  • 11.
    Notepad ++ (Windows) •Uno de los editores mas usados que existen actualmente. • Es ligero, sencillo y eficiente. • Parte del block de notas clásico de Windows. • Variadas funcionalidades de tratamiento de textos. • Presenta un gestor de plugins para ampliar las funcionalidades .
  • 12.
  • 13.
    • Un frameworko infraestructura digital, es una estructura conceptual y tecnológica de soporte definido, normalmente con artefactos o módulos de software concretos, que puede servir de base para la organización y desarrollo de software. • Típicamente, puede incluir soporte de programas, bibliotecas, y un lenguaje de interpretado, entre otras herramientas, 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, y provee una estructura y una especial metodología de trabajo, la cual extiende o utiliza las aplicaciones del dominio.
  • 14.
    Arquitectura Framework modelo MVC MODELO VISTA CONTROLADOR Manejalas operaciones lógicas Y de gestión de información Le corresponde dibujar, expresar la ultima forma de como muestran los datos GUI que interactúa con el usuario final Controlar el acceso (todo) a nuestra aplicación Se puede diversificar el contenido de forma dinámica y estática a la vez
  • 15.
    • Un frameworkweb, es un tipo de framework, específicamente diseñado para ayudar a los desarrolladores a construir aplicaciones web. • Típicamente proporcionan funcionalidades básicas y comunes a la mayoría de las aplicaciones web, como: gestión de usuario de la sesión, la persistencia de datos, y sistemas de plantillas.
  • 16.
  • 17.
  • 18.
  • 19.
  • 21.
    Antes de comenzarcon el análisis comparativo de plataformas, se exponen dos consejos. 1er Consejo: Cualquier informático te dirá que la plataforma que él maneja es la mejor, pero sólo porque no conoce otras plataformas. 2do Consejo: Si tu plan de empresa depende críticamente de las presuntas eficiencias espectaculares de una determinada plataforma, entonces es que deberías replantearte algo en tu plan de empresa.
  • 22.
    1º) Grado demadurez. 2º) Tamaño y grado de actividad de la comunidad. 3º) Disponibilidad de librerías y aplicaciones de terceros. 4º) Disponibilidad y coste salarial de los programadores. 5º) Dificultad de la curva de aprendizaje. 6º) Compatibilidad con el resto del ecosistema. 7º) Rendimiento y escalabilidad. Nota: Podría estar la productividad, pero queda fuera, ya que si se usan bien las mencionadas, todas ellas ofrecen un grado de productividad equivalente, o, al menos no lo bastante diferente como para que debiera ser relevante.
  • 23.
  • 24.
    HTML/CSS o HTML5/ CSS3 JAVASCRIPT / JQUERY / AJAX / DOJO BOOTSTRAP / LESS / YUI BACKBONE/ COFFESCRIPT NODEJS / PHANTOMJS
  • 25.
    Ninguna plataforma esóptima para todas las necesidades. • Si tienes que desarrollar un sitio web para una multinacional, o hacer integraciones complejas con otras plataformas o realmente vas a crecer mucho, tanto en tráfico como en número de desarrolladores, entonces elige Java sobre PostgreSQL. • Si quieres tener presencia online de forma eficaz y asequible, inclusive con e-commerce, pero tu website no es el factor crítico exclusivo de tu negocio, entonces elige LAMP (Linux, Apache, MySQL/MariaDB y Perl,Php ó Python). • Si tienes que desarrollar una intranet o un sitio web corporativo conociendo de que los usuarios tendrán Internet Explorer y tecnologías Microsoft entonces elige .NET sobre SQL Server • Si necesitas una web con contenidos dinámicos mantenida por un equipo compacto y eficiente de programadores entonces elige Django sobre PostgreSQL o Ruby on Rails sobre MySQL.