yaml, una alternativa para XML
yaml es un lenguaje de serialización de datos, una alternativa al lenguaje de marcado XML. Es muy interesante, y es muy útil usarlo por que es más legible para el ojo humano que un archivo XML. Está enfocado a la simplicidad. Vamos a ver un ejemplo tomado de la realidad, así es como luciría un archivo de mapeo de NHibernate si fuera escrito en yaml:

Si usas NHiberante, debes darte cuenta que esto es mucho más fácil de leer. Como se puede apreciar la delimitación es hecha por identación. Si conoces lenguajes como Python esto te resultará muy familiar. Por supuesto, esto no está soportado en NHibernate, pero quien sabe, quizás alguien quiere donar algunas horas al OSS y hacerlo
Quizás una notoria desventaja es que yaml no posee esquema (schema). Y podés darte cuenta de las características que nos estamos perdiendo por esto, la más importante: validación de un documento yaml.
En .Net-landia no es tan popular, de hecho no lo es, pero en lenguajes como Python, Php, Perl, C++ se usa mucho. En el nuevo bebé de Google: Google App Engine, el cual tiene como lenguaje principal a Python (actualmente es el único lenguaje que soporta), usa yaml para los archivos de configuración.
6 Responses to yaml, una alternativa para XML
Leave a Reply Cancel reply
-
Categories
- .NET
- ActiveRecord
- agil
- Alt.Net
- AOP
- Asp.net MVC
- blog
- C#
- codegeneration
- cosas interesantes
- db4o
- db4o-analyzer
- DLR
- enterprise-library
- expresiones regulares
- General
- Hibernate
- IoC
- it
- Java
- LINQ
- Linux
- Lucene
- Mocking
- Mono
- monosms
- MVC
- NAnt
- NHibernate
- NHibernate.Burrow
- NHibernate.Contrib
- NHibernate.Validator
- noticias
- O/R Mapping
- Open Source
- patrones
- personal
- podcast
- programación
- Redes Neuronales
- Refactoring
- regex
- Scrum
- Security
- Shards
- Sin Categoría
- Spring
- SqlServer
- Testing
- tips
- Tool
- tutorial
- Ubuntu
- uNHAddIns
- video
- Virtualización
- Visual Basic.Net
- Visual Studio
- VMWare
- Web
-
Articles
- June 2011
- May 2011
- November 2009
- October 2009
- April 2009
- March 2009
- February 2009
- October 2008
- September 2008
- August 2008
- July 2008
- June 2008
- May 2008
- April 2008
- March 2008
- February 2008
- January 2008
- December 2007
- November 2007
- October 2007
- September 2007
- August 2007
- June 2007
- May 2007
- April 2007
- March 2007
- February 2007
- January 2007
- December 2006
- November 2006
- October 2006
- September 2006
- August 2006
- March 2006
- February 2006
- December 2005
- November 2005
- October 2005
-
Meta





Yo tambien pense que YAML config seria util para NHibernate cuando estaba jugando con google app engine y aprendiendo python.
Yet Another Markup Language?
se parece a json, y boo… (ok boo es .net)
que tan bueno es tener varias formas de hacer casi lo mismo?
Estaria bueno un chart haciendo comparaciones, ademas si es simanticamente compatible con xml se podria usar lo que ya hay para xml pero “verlo” de forma distinta
En el lado de .Net tenemos este parser, pero está muy olvidado:
http://sourceforge.net/projects/yaml-net-parser/
Habria que meterle un poco de mano
Bueno, ahora hice una copia de ese proyecto a mi SVN:
http://darioquintana.googlecode.com/svn/trunk/Yaml.Net/
Hice algunos cambios de namespaces, refactoring, reformateo de codigo, optimizacion para utilzar generics, agregué algunos tests.
Ahora hay que ver que hace falta para seguir. Me gustaría que se puedan crear clases demarcadas con atributos, para despues enlazar los archivos de datos en yaml directamente a esas clases.
Saludos
@GLM: se parece a JSON por que de hecho JSON es un subconjunto de YAML, no es un perfecto subconjunto por que yaml carece de soporte de caracteres. La mayoría de los parsers de Yaml parsean bien los Json-files.
Dario, estoy dando mis primeros pasos con DB4O, pero trabajando con VB .NET. Hasta ahora guardo en la BD y recupero todos los objetos (por ej. para cargar un combo o un grid), pero no estoy pudiendo trabajar con SODA para las consultas. Que me recomendas para hacer consultas con criterios, como lo hariamos con SQL. Probe con QBE pero es mas concreto y sin criterios.
Si tenes algun codigo de ejemplo te lo agradeceria.
Muchas gracias.
Pedro