SlideShare a Scribd company logo
1 of 14
Mmm…Quélenguagehablan en Oslo? Diego Ferreyra Core Technologies Manager Huddle Group S.A.
Agenda Modelos y Oslo MSchema MGrammar ¿Para qué nos sirve Oslo?  Conclusiones
Modelos de aplicaciones Ejemplo de un modelo: HTML Ya trabajamos orientados a modelos: Configuración de un archivo XML Frameworksdinámicos Abstracción Lenguaje común
Oslo OSLO == Plataforma de modelado Simple, 3 conceptos: Repositorio de modelos Lenguaje de modelado Quadrant, herramienta gráfica para modelado
Arquitectura de Oslo
¿Qué es M? Lenguaje funcional para definir modelos de dominios Definen esquemas y consultas Meta-Meta-Data Lenguaje para definición de DSLs MGrammar Qué NO ES: Lenguaje orientado a Objetos Tecnología de acceso a datos Reemplazo de T-SQL No representa comportamiento, representa MODELO No actualiza datos, pero asume que pueden cambiar externamente
DemoMSchema
Domain SpecificLanguages(DSL) Focalizado en un área o dominio Optimizado para ese dominio Hasta ahora: Dificultad para crear la gramática del lenguaje Parser para ese lenguaje MGrammarapunta resolver esto,  además de brindarherramietnasparatrabajarlo. MGrammarpermite crear DSLs M esun DSL, de hechosugramáticaestádefinida en MGrammar
DemoMGrammar
¿Para qué nos sirve Oslo? Generar lenguajes fácilmente En este momento, no mucho más, pero.. Mentity Mservice Mweb
Conclusiones Oslo es una plataforma de MODELADO M no es un lenguaje más de construcción de aplicaciones Esta en CTP y le falta un toque de horno. Empezar a pensar en modelos
¿Preguntas?
Referencias Oslo Development Center: http://msdn.microsoft.com/en-us/oslo/default.aspx Microsoft "Oslo" - May 2009 CTP: http://tinyurl.com/OsloMayCTP NHModeller: http://nhmodeller.selfip.com/

More Related Content

Viewers also liked

Viewers also liked (20)

El dilema de Podemos
El dilema de PodemosEl dilema de Podemos
El dilema de Podemos
 
¡Viñetassss!
¡Viñetassss!¡Viñetassss!
¡Viñetassss!
 
Las artes de Piranesi
Las artes de PiranesiLas artes de Piranesi
Las artes de Piranesi
 
El Niño, los Cofrades y los Músicos...
El Niño, los Cofrades y los Músicos...El Niño, los Cofrades y los Músicos...
El Niño, los Cofrades y los Músicos...
 
Gatita Rosa ( material reciclado)
Gatita Rosa ( material reciclado)Gatita Rosa ( material reciclado)
Gatita Rosa ( material reciclado)
 
Presentación1
Presentación1Presentación1
Presentación1
 
11M Poèmes
11M Poèmes11M Poèmes
11M Poèmes
 
Rua carnestoltes 2000
Rua carnestoltes 2000Rua carnestoltes 2000
Rua carnestoltes 2000
 
Diccionario Ilustrado de la Democracia Española
Diccionario  Ilustrado de la Democracia EspañolaDiccionario  Ilustrado de la Democracia Española
Diccionario Ilustrado de la Democracia Española
 
Peñacabarga
PeñacabargaPeñacabarga
Peñacabarga
 
Mens sana
Mens sanaMens sana
Mens sana
 
Virtual
VirtualVirtual
Virtual
 
Calas y Caracoles
Calas y CaracolesCalas y Caracoles
Calas y Caracoles
 
El mundial powrpoin
El mundial powrpoinEl mundial powrpoin
El mundial powrpoin
 
1º de Mayo
1º de Mayo1º de Mayo
1º de Mayo
 
Brigitte Bardot cumple 78 años
Brigitte Bardot cumple 78 añosBrigitte Bardot cumple 78 años
Brigitte Bardot cumple 78 años
 
En Rajoy o 'chez' Bertìn
En Rajoy o 'chez' BertìnEn Rajoy o 'chez' Bertìn
En Rajoy o 'chez' Bertìn
 
Libro Cenicienta
Libro CenicientaLibro Cenicienta
Libro Cenicienta
 
Siluetas de ayer y hoy
Siluetas de ayer y hoySiluetas de ayer y hoy
Siluetas de ayer y hoy
 
Sector primari_Nora_Alba
Sector primari_Nora_AlbaSector primari_Nora_Alba
Sector primari_Nora_Alba
 

Similar to Code Camp 2009 - M Modelling Language

MDA en el contexto de datawarehouse
MDA en el contexto de datawarehouseMDA en el contexto de datawarehouse
MDA en el contexto de datawarehouse
Martin Baez
 
MDD - Andrés Goyes
MDD - Andrés GoyesMDD - Andrés Goyes
MDD - Andrés Goyes
2008PA2Info3
 
Presentacion Pfc
Presentacion PfcPresentacion Pfc
Presentacion Pfc
guest99072d
 
20090723 Presentacion Pfc
20090723 Presentacion Pfc20090723 Presentacion Pfc
20090723 Presentacion Pfc
azubi
 
No más "programación copy&paste". Generación automática de código con MOSKitt
No más "programación copy&paste". Generación automática de código con MOSKittNo más "programación copy&paste". Generación automática de código con MOSKitt
No más "programación copy&paste". Generación automática de código con MOSKitt
Javier Muñoz
 
20090723 Presentacion Pfc
20090723 Presentacion Pfc20090723 Presentacion Pfc
20090723 Presentacion Pfc
azubi
 

Similar to Code Camp 2009 - M Modelling Language (20)

MDA en el contexto de datawarehouse
MDA en el contexto de datawarehouseMDA en el contexto de datawarehouse
MDA en el contexto de datawarehouse
 
MDD - Andrés Goyes
MDD - Andrés GoyesMDD - Andrés Goyes
MDD - Andrés Goyes
 
MDE & DSLs
MDE & DSLsMDE & DSLs
MDE & DSLs
 
Kiwi
KiwiKiwi
Kiwi
 
Presentacion Pfc
Presentacion PfcPresentacion Pfc
Presentacion Pfc
 
introducción tecnologías web
introducción tecnologías webintroducción tecnologías web
introducción tecnologías web
 
Programacion
ProgramacionProgramacion
Programacion
 
MDD - Desarrollo de software dirigido por modelos que funciona (de verdad!)
MDD - Desarrollo de software dirigido por modelos que funciona (de verdad!)MDD - Desarrollo de software dirigido por modelos que funciona (de verdad!)
MDD - Desarrollo de software dirigido por modelos que funciona (de verdad!)
 
Programaciòn
ProgramaciònProgramaciòn
Programaciòn
 
mde-jcabot-110407060603-phpapp01.pptx
mde-jcabot-110407060603-phpapp01.pptxmde-jcabot-110407060603-phpapp01.pptx
mde-jcabot-110407060603-phpapp01.pptx
 
Metamodelos en Arquitecturas dirigidas por Modelos
Metamodelos en Arquitecturas dirigidas por ModelosMetamodelos en Arquitecturas dirigidas por Modelos
Metamodelos en Arquitecturas dirigidas por Modelos
 
C# for Beginners
C# for BeginnersC# for Beginners
C# for Beginners
 
1 eda teo
1 eda teo1 eda teo
1 eda teo
 
Programación Orientada a Objetos Programación Orientada a Objetos
Programación Orientada a Objetos Programación Orientada a ObjetosProgramación Orientada a Objetos Programación Orientada a Objetos
Programación Orientada a Objetos Programación Orientada a Objetos
 
Mda 2
Mda 2Mda 2
Mda 2
 
20090723 Presentacion Pfc
20090723 Presentacion Pfc20090723 Presentacion Pfc
20090723 Presentacion Pfc
 
No más "programación copy&paste". Generación automática de código con MOSKitt
No más "programación copy&paste". Generación automática de código con MOSKittNo más "programación copy&paste". Generación automática de código con MOSKitt
No más "programación copy&paste". Generación automática de código con MOSKitt
 
Toare case ponencia_final_redcolsi2_2010_
Toare case ponencia_final_redcolsi2_2010_Toare case ponencia_final_redcolsi2_2010_
Toare case ponencia_final_redcolsi2_2010_
 
20090723 Presentacion Pfc
20090723 Presentacion Pfc20090723 Presentacion Pfc
20090723 Presentacion Pfc
 
Ingeniería del Software dirigida por modelos -Versión para incrédulos
Ingeniería del Software dirigida por modelos -Versión para incrédulosIngeniería del Software dirigida por modelos -Versión para incrédulos
Ingeniería del Software dirigida por modelos -Versión para incrédulos
 

More from Diego Ferreyra

Code camp 2011 - Creando aplicaciones a la velocidad de la luz
Code camp 2011 - Creando aplicaciones a la velocidad de la luzCode camp 2011 - Creando aplicaciones a la velocidad de la luz
Code camp 2011 - Creando aplicaciones a la velocidad de la luz
Diego Ferreyra
 

More from Diego Ferreyra (9)

Implementación de tfs 2010 en entornos complejos (cómo y por qué) v03
Implementación de tfs 2010 en entornos complejos (cómo y por qué) v03Implementación de tfs 2010 en entornos complejos (cómo y por qué) v03
Implementación de tfs 2010 en entornos complejos (cómo y por qué) v03
 
Code camp 2011 - Creando aplicaciones a la velocidad de la luz
Code camp 2011 - Creando aplicaciones a la velocidad de la luzCode camp 2011 - Creando aplicaciones a la velocidad de la luz
Code camp 2011 - Creando aplicaciones a la velocidad de la luz
 
Scrum y kanban mas allas de software
Scrum y kanban mas allas de softwareScrum y kanban mas allas de software
Scrum y kanban mas allas de software
 
Cessi Iso9001 Y Metodos Agiles
Cessi Iso9001 Y Metodos AgilesCessi Iso9001 Y Metodos Agiles
Cessi Iso9001 Y Metodos Agiles
 
Run Reloaded 2009 Ba Office Development
Run Reloaded 2009 Ba   Office DevelopmentRun Reloaded 2009 Ba   Office Development
Run Reloaded 2009 Ba Office Development
 
Agiles 2009 Equipos Dsitribuidos Desde Las Trincheras
Agiles 2009   Equipos Dsitribuidos Desde Las TrincherasAgiles 2009   Equipos Dsitribuidos Desde Las Trincheras
Agiles 2009 Equipos Dsitribuidos Desde Las Trincheras
 
MAD 2009 - VSTS Desde Las Trincheras
MAD 2009 - VSTS Desde Las TrincherasMAD 2009 - VSTS Desde Las Trincheras
MAD 2009 - VSTS Desde Las Trincheras
 
Testing Con Visual Studio Team System 2008
Testing Con Visual Studio Team System 2008Testing Con Visual Studio Team System 2008
Testing Con Visual Studio Team System 2008
 
Calidad De Codigo
Calidad De CodigoCalidad De Codigo
Calidad De Codigo
 

Recently uploaded

redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
nicho110
 

Recently uploaded (12)

investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXI
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptx
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 

Code Camp 2009 - M Modelling Language

  • 1. Mmm…Quélenguagehablan en Oslo? Diego Ferreyra Core Technologies Manager Huddle Group S.A.
  • 2. Agenda Modelos y Oslo MSchema MGrammar ¿Para qué nos sirve Oslo? Conclusiones
  • 3. Modelos de aplicaciones Ejemplo de un modelo: HTML Ya trabajamos orientados a modelos: Configuración de un archivo XML Frameworksdinámicos Abstracción Lenguaje común
  • 4. Oslo OSLO == Plataforma de modelado Simple, 3 conceptos: Repositorio de modelos Lenguaje de modelado Quadrant, herramienta gráfica para modelado
  • 6. ¿Qué es M? Lenguaje funcional para definir modelos de dominios Definen esquemas y consultas Meta-Meta-Data Lenguaje para definición de DSLs MGrammar Qué NO ES: Lenguaje orientado a Objetos Tecnología de acceso a datos Reemplazo de T-SQL No representa comportamiento, representa MODELO No actualiza datos, pero asume que pueden cambiar externamente
  • 8. Domain SpecificLanguages(DSL) Focalizado en un área o dominio Optimizado para ese dominio Hasta ahora: Dificultad para crear la gramática del lenguaje Parser para ese lenguaje MGrammarapunta resolver esto, además de brindarherramietnasparatrabajarlo. MGrammarpermite crear DSLs M esun DSL, de hechosugramáticaestádefinida en MGrammar
  • 10. ¿Para qué nos sirve Oslo? Generar lenguajes fácilmente En este momento, no mucho más, pero.. Mentity Mservice Mweb
  • 11. Conclusiones Oslo es una plataforma de MODELADO M no es un lenguaje más de construcción de aplicaciones Esta en CTP y le falta un toque de horno. Empezar a pensar en modelos
  • 13. Referencias Oslo Development Center: http://msdn.microsoft.com/en-us/oslo/default.aspx Microsoft "Oslo" - May 2009 CTP: http://tinyurl.com/OsloMayCTP NHModeller: http://nhmodeller.selfip.com/
  • 14.
  • 15.
  • 16. M es un lenguaje de Modelado (2 min)
  • 18. Sobre el modelo, existe un lenguaje (3 min)
  • 21. Esto no es algo aislado, es parte de Oslo (5 min)
  • 23. Donde aplica, ejemplos de uso (5 min)
  • 24.

Editor's Notes

  1. 135 = 1 minutoLa agenda no apunta a que sean programadores expertos de M cuando salgan de acá. Con que hayan comprendido mas o menos qué es Oslo, a donde apunta y qué componentes tiene, me doy por satisfecho. Esto lo digo porque hay mucha gente que sigue con muchísimas dudas de qué es lo que se busca y cómo planean lograrlo, incluso yo Por lo tanto, vamos a comenzar charlando de porqué la palabra Modelo se usa tanto y cómo la planea usar Oslo. Después vamos a ver 2 demos, de las principales características del lenguaje M en las que veremos como interactúan las herramientas que hay en el CTP. Y por último, voy a contarles algunas de los usos en los que está pensando Microsoft y que quizás a nosotros se nos ocurran algunos adicionales.
  2. 264 = 2 minutosQué es un modelo y para qué sirve? Básicamente, es la descripción de un escenario o dominio específico. Por ejemplo, los autos tienen modelos, pero si uno los quiere con aire acondicionado, negros o con levanta vidrios eléctricos, es el mismo modelo pero con pequeñas diferencias generadas en el momento que se compra. Esto no podría decirse que es básicamente lo que pasa con las aplicaciones, que actúan en runtime según un modelo especificado en la configuración, y que en base a ésta actúan de manera distinta?Laaplicación de modelos a aplicaciones no es algo nuevo. Quién tuvo alguna vez que generar un framework que leyera un XML y generar estructuras que luego procesara? O quién usa un browser para navegar en internet? El HTML es un modelo, que el browser interpreta para generar lo que se ve. De hecho, HTML es un lenguaje específico para la descripción de contenido web. Ya el uso de los viejos archivos .ini en aplicaciones visual basic, ya era un concepto de modelado. La aplicación actuaba en runtime, acorde a la instancia del modelo existente. Esto cada vez se ha ido incrementando, por ejemplo, con el uso de XAML para tecnologías como Silverlight o WPF, donde además de indicar qué controles y su apariencia se utilizan, se pueden bindear con estructuras de datos generadas en runtime.Los modelos básicamente buscan agregar un nivel mayor de abstracción a una problemática determinada. A su vez, es posible que se pueda definir un lenguaje específico para tratarlo, brindando mayor objetividad en los conceptos y un mayor entendimiento con menos palabras.
  3. 201 = 2 minutosOslo es la futura plataforma de modelado que Microsoft está construyendo. Apunta a ser la base de muchas tecnologías, teniendo como objetivo principal lograr una ganancia de la productividad de 10x. Esto plantea hacerlo al reducir considerablemente la cantidad de código escrito al utilizar lenguajes más específicos para ciertas tareas, como así también simplificando la creación de estos lenguajes.Esto es visible, si consideramos el ejemplo del framework de UI. En este se definía un lenguaje, o sea, la estructura del XML que leia. Luego se generaban diversas instancias de ese modelo, o sea, cada formulario con sus campos a mapear. Todo esto se analizaba y era generado en runtime, sin necesidad de codificación adicional. Por otro lado, la definición del XML es mucho menos costosa que la escritura del código necesario. Esto muestra fácilmente cómo se incrementa la productividad.Oslo se basa en 3 conceptos básicos: el repositorio, donde se guardan los modelos generado, el lenguaje usado para generar estos modelos y los lenguajes necesarios para generarlos, y una herramienta gráfica que simplifica esta tarea. En esta charla no la vamos a ver, somos desarrolladores por naturaleza y eso de programar con cajitas y lineas es para los diseñadores ;-)
  4. 176 = 1.5 minutosComo les comentaba recién, Oslo se basa en 3 componentes: repositorio, lenguaje de modelado y una herramienta gráfica. Con esto busca lograr lo necesario para que luego sea consumido por los runtimes que lo usarán.Aquí me voy a centrar en el framework de lenguaje M. El lenguaje en realidad es un conjunto de lenguajes. En primera instancia tenemos Mschema, que se encarga de definir la forma que tendrán los modelos. Nos permite definir los tipos de datos y sus relaciones, como así también los diversos repositorios en que se persistirán. Luego tenemos Mgrammar, que nos permite definir lenguajes que generarán en definitiva, modelos pausibles de ser contenidos en el repositorio. Este lenguaje tiene un parser de tipo GLR, por lo que posibilita la interpretación de lenguajes naturales. La salida que se genera a partir de un texto de entrada, es un gráfico que define cómo se albergará esa información en el repositorio.El repositorio es hoy por hoy SQL 2008. La idea es que M sea agnóstico del repostorio, pero bueno, ver para creer 
  5. Abrir intellipadCrear móduloCrear tipo LibroAgregar IdentityAgregar un campo nulleable (Paginas)Agregar el extent de Autores y agregar una property a LibroCrear el extent de LibrosMostrar la generación del SQL en modo T-SQL PreviewAgregar un campo enum al tipo (idioma) y una función LibrosEnCastellano()CompilarCargar el modelo a la DBMostrar los datos en la tabla y la vista
  6. 149 = 1.5 minutosBueno, qué es un DSL? Ya lo habrán sentido nombrar más de vez. No son más que lenguajes que se usan en un dominio específico, pudiendo ser tan simples como los viejos archivos .INI que definían configuración, como un modelo de clases en VS que luego se convierte en las clases correspondientes.Alguien alguna vez armó un framework para mapear controles de UI a entidades, definiendo, por ejemplo, un XML?O alguien usó Nhibernate? O Linq2SQL o Entity Framework?Bueno, todos estos son ejemplos de DSLs. Son lenguajes específicos que definen un comportamiento en base al modelo descripto en el XML.Oslo plantea simplificar la tarea de construcción de estos lenguajes. Para esto provee una plataforma para la generación de estos DSLs, que luego podrán generar los modelos necesarios que se guardarán en el repositorio.Esto está basado en Mgrammar, parte del stack de M que habíamos visto anteriormente.
  7. 1) Abrir Intellipad y mostrar las ventanas de Grammar, input y output2) Generar el lenguaje base que tiene sólo una sintaxis3) Generar tokens y sintaxis del lenguaje con el lenguaje mínimo4) Agregar el soporte de multiples nombres5) Agregar el soporte de nombres con espacios y Comillas6) Permitir más de 1 instancia7) Generar proyecciones8) Compilar la gramática9) aplicar la gramática a los datos10) compilar el M11) instalar en el repositorio
  8. 80 = 0.5 minutosComo decía antes, muchos problemas para la generación de estos lenguajes estaba en la complejidad de definir un lenguaje, su parser y su interrelación con la plataforma. Oslo plantea colaborar en disminuir esta diferencia.Cómosigue esto? Recién empieza, en mi opinión. WCF, WPF, WF, EF, ASP.NET, todos tienen un DSL propio que define el modelo que usan para generar la aplicación en runtime. Todo esto es traducible a un DSL por medio de Mgrammar, definiendo un modelo con Mschema.