Todo son problemas Lenguajes dinámicos Frameworks DLR...ntentemos...... i ntentemos...

Slides:



Advertisements
Presentaciones similares
Descripción general de la presentación
Advertisements

Diego Dagum Arquitecto .NET Microsoft Chile
Rogelio Ferreira Escutia Modelo Vista Controlador.
CUPS Configuración y Uso de Paquetes de Software
Framework de.Net Infraestructura sobre la que se reúne todo un conjunto de lenguajes y servicios que simplifican el desarrollo de aplicaciones Entorno.
Estrella 0 - Fundamentos de la Programación
Seminario Técnico sobre Systems Management Server 2003 Germán Díaz Responsable de Marketing, Management Servers Microsoft Ibérica.
Desarrollo de Software empleando el Microsoft Solutions Framework MSF
Nuevas Características de Seguridad en ASP.NET 2.0
BizTalk Server 2006 & Test Driven Development Kabel Sistemas S.L.
3/24/2017 4:00 PM © 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered.
Diseño de Aplicaciones SOA usando Visual Studio Team System
Introducción a Microsoft Operations Manager 2005 Joshua Sáenz G Joshua Sáenz G
3/24/2017 4:02 PM © 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered.
¿Está utilizando todo el potencial de Microsoft SQL Server? Fernando Bocigas SQL Server Product Manager Microsoft Ibérica S.R.L. 16 de Marzo de 2005 Fernando.
BizTalk Server como ESB
Software Testing Héctor Santa María..
Python CI-2200 Programación Avanzada en Sistemas UNIX.
Propuesta Microsoft para las oficinas del futuro
Tablas. Descripción general Introducción a las tablas Creación de tablas Uso de tablas.
Database Mounting Tool (Dsamain.exe) Mediante esta nueva herramienta y una de las mejoras de la nueva versión de Ntdsutil… podemos generar y examinar.
COLEGIO DE BACHILLERES PLANTEL 13 XOCHIMILCO-TEPEPAN MATERIA:TIC EQUIPO:23 PRESENTACION: BASE DE DATOS ALUMNAS: Velazquez Corona Elsa Ponciano Antonio.
Universidad Nacional Autónoma de Honduras
Daniel A. Seara Director Regional MSDN NDSoft
Vendiendo Microsoft Office 2010 Office 2010 Licenciamiento Office 2010 Licenciamiento Pablo Rovira Jefe de Producto Pablo Rovira.
BITLOCKER Fernando Guillot Paulo Dias IT Pro Evangelist Microsoft
ASP.NET MVC 3 Web Camps 2011 twitter: #eswebcamp.
Antonio Gámir Optimized Desktop Specialist Microsoft Ibérica.
Systems Management Server 2003 Santiago Pastor Zaltor Soluciones Informáticas.
Jefe de Producto de SQL Server y Business Intelligence
Agenda Microsoft Partner Program Empower, Acton Pack y Global Startup Program Competencias: ISV y CDS Ventajas de ser un ISV Royalty Program Centro de.
Microsoft ® SharePoint Products and Technologies Developer Tour EMEA 2004 Microsoft ® SharePoint Products and Technologies Developer Tour EMEA 2004.
XI Forum Arquitectos de Software .NET Innovación y Empresa
Service Pack 1 Nuevas posibilidades de virtualización Paulo Dias IT Pro Evangelist Microsoft Fernando.
85 motivos* para Ruby on Rails
Introducción a ASP.NET.
Marzo 2007 Lenguajes Visuales Clase III.
Ing. CIP Fabián Silva Alvarado
1 Herencia en Java Agustín J. González Diseño y Programación Orientados a Objetos.
Desarrollo de aplicaciones web en entorno servidor
Las PyMEs son máquinas de crecimiento PyMEs representan hasta un 75% de todos los empleos en algunas economías (PyMEs) con conocimientos en tecnología.
Ruby on Rails - Javier Espinazo Pagán - Febrero 2005/ Ruby on Rails Desarrollo Web Ágil Javier Espinazo Pagán Convocatoria Febrero 2005/2006.
Diseño de una base de datos Zavaleta Nolasco Karina
Reduciendo el espacio entre Tecnología y Negocio: Arquitecturas de Referencia Carlos Oramas (Microsoft) Alberto Ruiz (IECISA) Julio Bravo (FCC)
A demanda elástica De amplio Acceso Servicios medibles Recursos mancomunados.
ScrumMe Integrantes: Gabriel Centurión Maximiliano Félix.
Lenguajes de programación Web
Hogar y Micro Empresas Pequenas Empresas Medianas Empresas Enterprise 1-4 PCs 50+ PCs PCs PCs OEM Microsoft Open License Microsoft Open Value.
Lenguajes de programación para la web Lenguaje html Lenguaje java script Es un lenguaje estático para el desarrollo de sitios web Ventajas: Sencillo que.
 DirectX 10 (Library) Evolución de la API C++, C# (Manejado)  XNA (Framework) Principio de Hollywood Solo rellenar ○ Método Update ○ Método Draw.
FRAMEWORK VS Código fuente
Ivette C. Martínez - Héctor Palacios Java – Modulo 1 Introducción y Fundamentos del lenguaje de programación Java.
Silverlight Pablo Michelis Gerente de Relaciones Académicas Microsoft Cono Sur.
1 Herencia en Java Agustín J. González Diseño y Programación Orientados a Objetos.
Herencia. Introducción La idea básica es poder crear clases basadas en clases ya existentes. Cuando heredamos de una clase existente, estamos re-usando.
COLEGIO DE BACHILLERES PLANTEL 13 XOCHIMILCO-TEPEPAN MATERIA:TIC EQUIPO:21 PRESENTACION: BASE DE DATOS ALUMNAS: Adán Millán Sánchez.
Cristian Fonnegra Marin
INTERFAS DE ACCES DISEÑO DE UNA BASE DE DATOS NOMBRE: OLIVARES MORALES ROGELIO DANIEL BAUTISTA CRUZ GRUPO: 307 EQUIPO: 05.
Isabel Gómez Desarrollo & Plataforma Microsoft Ibérica.
Introducción a .NET Nombre : Ethel García-Simón Matachana
Herencia y Clases Abstractas
 Nicolás Padula Core Technologies Consultant  Maximiliano Stibel Core Technologies Consultant.
Guadalupe Andrade Mociño.  Significa Modelo Vista Controlador  Es un patrón de diseño  Esta compuesto por tres grandes capas: modelo, vista y controlador.
Virtualización en Windows 7 Paulo Dias IT Pro Evangelist Microsoft Fernando Guillot IT Pro Evangelist.
AGUIRRE GARCIA LUIS JOSE ARRIAGA CADENA ELIZABETH CASTILLO DEL VALLE MARIANA CRUZ BAUTISTA JANETH DIEGO PERFECTO RUFINA.
Profesor: Julio Cesar Cano R..  Nombre completo  Algo personal de usted  A que se dedica o que hace además de estudiar  Porque esta en el programa.
© 2012 Microsoft Corporation. All rights reserved. This document is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED,
EXISTEN ACTUALMENTE JAVASCRIPT HTML VENTAJASDESVENTAJAS ES UN LENGUAJE ESTATICO PARA SITIOS WEB PHP LENGUAJE INTERPRETADO NO REQUIERE COMPILACION LENGUAJE.
U niversidad de G uadalajara Centro Universitario de Ciencias Exactas e Ingenierías Ponentes: Muñoz Guzmán Ramón Gallardo Olivares Mario Solís Flores José.
¡Bienvenido a tu nuevo Office!. ¡Instalá tu Office en todos tus dispositivos móviles! Colaboración en línea de tus archivos con todos tus compañeros de.
Transcripción de la presentación:

Todo son problemas Lenguajes dinámicos Frameworks DLR...ntentemos i ntentemos...

Todo son problemas Lenguajes dinámicos Frameworks DLR...ntentemos i ntentemos...

!Odio los lenguajes dinámicos! lenguajes dinámicos! Cómo jefe de proyecto…..

Mi historia Me gustaban los lenguajes dinámicos Como Administrador adoraba Perl y las shells de Unix Al principio Las Actives Server Pages (ASP) eran fantásticas Proyectos con lenguajes dinámicos Intranet y Oficina sin papeles en Repsol Middleware bancario en Uno-E El problema está en la dimensión De decenas pasaron a centenas de páginas Errores de sintaxis en proyectos en producción Java triunfó como respuesta al los problemas con lenguajes dinámicos

Lenguajes estáticos Un mundo fijo en ejecución IU Lógica DatosNombreApellidoSaldo Rec ID CarlosCampos$56893 LuisAnsa$32829 JoseGarcía$99564 class Usuario { public string Nombre; public string Nombre; public string Apellidos; public string Apellidos; public long Saldo; public long Saldo;} <usuario> Carlos Carlos Campos Campos </usuario>

Lenguajes estáticos Para cambiar hay que recompilar IU Lógica PersistenciaNombreApellidoSaldoE.Civil Rec ID CarlosCampos$56Soltero893 LuisAnsa$32Casado829 JoseGarcía$99Casado564 class Usuario { public string Nombre; public string Nombre; public string Apellidos; public string Apellidos; public long Saldo; public long Saldo; public int EstadoCivil; public int EstadoCivil;} <usuario> Carlos Carlos Campos Campos Casado Casado </usuario> ¡El código fija las Estructuras de Datos! ¡El código fija las Estructuras de Datos!

Control vs flexibilidad Control Java, C# Tipos Estáticos Servicios Web Flexibilidad JScript, Ruby, Python Tipos Dinámicos REST El control fijar las estructuras de datos Resistencia al cambio Recompilar para cambiar ¿Son los lenguajes dinámicos poco maduros? ¿Ofrecen mayor flexibilidad y productividad? VS

Ventajas Tipos Estáticos Anticipan la detección de errores en la utilización de tipos Permite a los compiladores generar código máquina más optimizado El código es más entendible. En el código puedes ver el tipo de las variable, expresiones o funciones

Todo son problemas Lenguajes dinámicos Frameworks DLR...ntentemos i ntentemos...

Think Different.

C# es mejor que VB.NET

VB.NET es mejor que C#!

C++ es mejor porque es más rápido!!!

Nah… lo que importa es el CLR/JVM

Que va, que va…lo que importa son las librerías no el lenguaje

s = Hola + 2

Principales ventajas… Posponer las decisiones y evitar los limites Productividad Agilidad Principales mitos… Inseguro Lento Sin herramientas

¿?

¿ Lenguajes dinámicos ?

JavaScript Perl Python Ruby Smalltalk Lisp

Algunos rubíes de sintaxis

Ruido ArrayList al = new ArrayList(); al.Add(42); int res = (int)al[0];

Ruido ArrayList al = new ArrayList(); al.Add(42); int res = (int)al[0];

Ruido al = ArrayList.new al.Add(42) res = al[0]

Ironruby Sintaxis & Particularidades

Todo son problemas Lenguajes dinámicos Frameworks DLR...ntentemos i ntentemos...

Lenguajes + Frameworks Los lenguajes dinámicos son interesantes Lenguajes + Frameworks impresionan Ruby sin su framework Rails no sería lo mismo Python también tiene dos frameworks: Django y TurboGear Objetivo: Productividad del desarrollo Rompen con muchas convenciones en el desarrollo

Principios de Rails Objetivo concreto: Aplicaciones Web presentando datos en Base de Datos Integración sin Fisuras Convención en lugar de Configuración No te repitas (DRY: dont repeat yourself) Metaprogramación : programas que generan programas. Rails hace que cada línea escrita de código trabaje duro

Rails: Arquitectura prefijada Estructura de directorios prefijado Scaffolding: generación de código ActionPack: Un Modelo Vista Controlador para crear el Interfaz Web ActiveRecord: un modelo simple de ORM para acceso a base de datos Modelo Ajax incorporado GEMS: Empaquetado y gestión de distribución de módulos

Metaprogramación en Rails Programas que generan programas Generadores Métodos mágicos method_missing const_missing Definiciones dinámicas (define_method)

Alias class String alias :largo :length end puts "hola".largo puts "hola".length class String alias :old_largo :length def length old_length + 2 end puts "hola".length 4 4 6

Send: reflexión simplificada str = Metaprogramacion puts str.upcase puts str.send ( :upcase ) METAPROGRAMACION METAPROGRAMACION [ :upcase, :downcase, :reverse ].each do |m| puts str.send(m) end METAPROGRAMACION METAPROGRAMACION Metaprogramacion Metaprogramacion noicamargorpateM noicamargorpateM

Define_method y def class Prueba def foo metodo foo" metodo foo"end define_method ( :bar ) do metodo bar" metodo bar"endend p = Prueba.new puts p.foo puts p.bar metodo bar metodo bar metodo foo metodo foo

ActiveRecord - 1 ORM propio de Rails cercano al estándar Facilidad de asociación clase-tabla: Clase debe heredar de ActiveRecord::Base Rails asume el nombre de la tabla como el plural del nombre de la clase (método pluralize()). Permite asociación explícita Atributos de la clase se infieren en tiempo de ejecución Manejo automatizado de claves primarias

ActiveRecord - 2 Ejemplo: Creamos una tabla orders de órdenes de compra: create table orders { idintnot null auto_increment, namevarchar(100)not null, varchar(255)not null, addresstextnot null, pay_typechar(10)not null, shipped_atdatetimenull, countryvarchar(70)null; primary key (id) };

ActiveRecord - 3 Ejemplo (sigue): Ahora queremos acceder a un objeto de la tabla orders, para lo que declaramos: class Order < ActiveRecord::Base end Rails resuelve las asociaciones y ya podemos utilizar objetos de la tabla: order = Order.find(123) order.name = Javier Espinazo order.save

ActiveRecord – 4: Funciones Dinámicas Order.find_by_name Qarana Order.find_all_by_pay_type cheque Order.find_by_age 20 Order.find_by_name(Buck, :conditions => {:country = Sweden, :age=> }) Order.find_by_name_and_country Andreas, Spain

Conclusiones Framework Lenguajes Dinámicos + Frameworks Espectacularmente productivos en sitios web pequeños Especialmente si desarrollas en Java con Struts ¿Qué ocurre cuando los proyectos crecen? En realidad, no importa. Ya están influyendo más allá de los lenguajes dinámicos Su libertad e ideas cambiarán tu forma de programar Ejemplos : ironruby y ironpython en.NET, Jruby en Java, fremeworks como Monorail y Microsoft MVC Ya se escuchas las propuestas de sistemas híbridos (tipos estáticos y dinámicos a la vez)

Escenarios Flexibles Arquitecturas Orientadas a Servicios (SOA) y el Versionado Software como Servicio (SaaS) y la Personalización Extrema Arquitecturas Tradicionales y los cambios de requisitos Aplicaciones Multipaís en multinacionales Arquitecturas Aplicaciones ISV

Todo son problemas Lenguajes dinámicos Frameworks DLR...ntentemos i ntentemos...

...Qué hacen 2 de MS hablando de Ruby y lenguajes inámicos...

DLR Dynamic LanguagesVBxJScript IronPythonIronRuby 3rd Party CLR Frameworks Integración VS Tools Scripting Hosts Applications ASP.NETSilverlight

Versión release a Finales del 2008 IronPython IronRuby - RoR? VBx JScript ¿ Los vuestros ?

…links… John Lam Ironpython Team DLR BLOG

© 2007 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS SUMMARY.