{"id":915,"date":"2025-02-20T14:28:07","date_gmt":"2025-02-20T14:28:07","guid":{"rendered":"http:\/\/web.soltel.es\/?p=915"},"modified":"2025-02-20T14:28:07","modified_gmt":"2025-02-20T14:28:07","slug":"diseno-agil-dirigido-por-el-dominio","status":"publish","type":"post","link":"https:\/\/www.soltel.es\/en\/diseno-agil-dirigido-por-el-dominio\/","title":{"rendered":"Domain-driven agile design"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-1367 aligncenter\" src=\"http:\/\/web.soltel.es\/wp-content\/uploads\/2016\/12\/openxava-300x151.png\" alt=\"openxava\" width=\"499\" height=\"251\" srcset=\"https:\/\/www.soltel.es\/wp-content\/uploads\/2016\/12\/openxava-300x151.png 300w, https:\/\/www.soltel.es\/wp-content\/uploads\/2016\/12\/openxava.png 598w\" sizes=\"auto, (max-width: 499px) 100vw, 499px\" \/><\/p>\n<p>We will discuss an approach to application design that stems from experience and reflection on how many applications are designed. It is called domain-driven development or design. <i>domain driven design<\/i>Domain-driven programming (DDP), or DDD in English, is a very likely solution if we need to manage clients, countries, or any other master data, or even more complex data. We'll need a screen to search, list results, add, edit, and delete records. DDD offers the possibility of simply designing the structure of our data\u2014the classes\u2014and having DDD generate the tables for storage and the views for all that functionality. The result is the creation of applications in an extremely productive and agile way, without losing the ability to perform complex data processing when necessary.<br \/>\nTo better understand all these concepts, it's best to look at examples, and for this purpose the chosen framework is Openxava.<\/p>\n<h2>Openxava<\/h2>\n<p>It is an interesting product that meets the expected specifications of domain-directed programming, generating high-quality interfaces that can also be customized.<\/p>\n<p>It's also very easy to install; once you download the zip file, it comes with an Eclipse workspace and Tomcat. Creating a new project is done through a task. <i>ant<\/i>, to which you only need to provide the name that the new application will have.<\/p>\n<p>Next, we will build a simple program, writing a minimal amount of code, exploring the great possibilities of layout and data presentation, without resorting to any HTML.<\/p>\n<p>A website will be developed to manage movies. That's all. Conceptually simple, even simpler to code.<\/p>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-1289\" src=\"http:\/\/web.soltel.es\/wp-content\/uploads\/2016\/12\/pelicula-289x300.png\" alt=\"pelicula\" width=\"405\" height=\"420\" srcset=\"https:\/\/www.soltel.es\/wp-content\/uploads\/2016\/12\/pelicula-289x300.png 289w, https:\/\/www.soltel.es\/wp-content\/uploads\/2016\/12\/pelicula.png 427w\" sizes=\"auto, (max-width: 405px) 100vw, 405px\" \/><\/p>\n<p>The most striking feature is the annotations. It's beyond the scope of this document to detail how they all work. Of note <b>@Entity<\/b> This determines that a table with the deduced structure will be created. It will also generate all the logic for creating, modifying, deleting, searching, and generating reports for the entity.<\/p>\n<p>We started Tomcat and upon accessing the web <strong><a href=\"http:\/\/localhost:8080\/CasosUso\/m\/Pelicula\"><i>http:\/\/localhost:8080\/App\/m\/Pelicula<\/i><\/a><\/strong> This is the result:<\/p>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-1288\" src=\"http:\/\/web.soltel.es\/wp-content\/uploads\/2016\/12\/lista_detalle-300x241.png\" alt=\"lista_detalle\" width=\"533\" height=\"428\" srcset=\"https:\/\/www.soltel.es\/wp-content\/uploads\/2016\/12\/lista_detalle-300x241.png 300w, https:\/\/www.soltel.es\/wp-content\/uploads\/2016\/12\/lista_detalle.png 813w\" sizes=\"auto, (max-width: 533px) 100vw, 533px\" \/><\/p>\n<p>Also noteworthy is the annotation <b>@Stereotype<\/b>. It allows you to give the property a special presentation and validation. In the previous application, only the release date had one specified, which caused the calendar component to be generated in the form. But the framework has many more options.<\/p>\n<p>Up to this point, we've described a class that generates a table\u2014an entity class. But it's also possible to create classes whose sole purpose is data presentation, that is, generating views. And this is where OpenXava's great flexibility lies: it can be used to implement any functionality.<\/p>\n<p>We're going to create the Index class, which, as its name suggests, will be the home page of the application we've already started. It will have this simple structure:<\/p>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-1287\" src=\"http:\/\/web.soltel.es\/wp-content\/uploads\/2016\/12\/index-300x92.png\" alt=\"index\" width=\"509\" height=\"156\" srcset=\"https:\/\/www.soltel.es\/wp-content\/uploads\/2016\/12\/index-300x92.png 300w, https:\/\/www.soltel.es\/wp-content\/uploads\/2016\/12\/index.png 603w\" sizes=\"auto, (max-width: 509px) 100vw, 509px\" \/><\/p>\n<p>Next, we will implement the class that will load the previous lists from the Index class. We will call it <i>IndexAction<\/i>:<\/p>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-1286\" src=\"http:\/\/web.soltel.es\/wp-content\/uploads\/2016\/12\/action-300x181.png\" alt=\"action\" width=\"520\" height=\"314\" srcset=\"https:\/\/www.soltel.es\/wp-content\/uploads\/2016\/12\/action-300x181.png 300w, https:\/\/www.soltel.es\/wp-content\/uploads\/2016\/12\/action.png 573w\" sizes=\"auto, (max-width: 520px) 100vw, 520px\" \/><\/p>\n<p>The declaration of this operation must be added to the file <i>controladores.xml<\/i>:<\/p>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-1285\" src=\"http:\/\/web.soltel.es\/wp-content\/uploads\/2016\/12\/cont.xml_-300x47.png\" alt=\"cont-xml\" width=\"504\" height=\"79\" srcset=\"https:\/\/www.soltel.es\/wp-content\/uploads\/2016\/12\/cont.xml_-300x47.png 300w, https:\/\/www.soltel.es\/wp-content\/uploads\/2016\/12\/cont.xml_.png 621w\" sizes=\"auto, (max-width: 504px) 100vw, 504px\" \/><\/p>\n<p>Finally, the declaration of this new module must be added to the file. <i>application.xml<\/i> as follows:<\/p>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-1284\" src=\"http:\/\/web.soltel.es\/wp-content\/uploads\/2016\/12\/mod-300x75.png\" alt=\"mod\" width=\"432\" height=\"108\" srcset=\"https:\/\/www.soltel.es\/wp-content\/uploads\/2016\/12\/mod-300x75.png 300w, https:\/\/www.soltel.es\/wp-content\/uploads\/2016\/12\/mod.png 350w\" sizes=\"auto, (max-width: 432px) 100vw, 432px\" \/><\/p>\n<p>Therefore, this simple application will consist of two screens, or two modules: one for managing movies, and another we've called Index. In the first case, only the entity structure has been defined, and since the functionality is left as default, no further configuration was necessary. In the second case, the custom action of loading information required creating a new module. If it had been desired to override any default functionality, such as saving the entity, or if it had been desired to add more buttons to the screen, a new module would have had to be defined in a similar manner.<\/p>\n<p>The annotation <b>@View<\/b> It determines the arrangement of properties on the screen, that is, the screen layout. In this example, static text acts as a header, and below it, two columns with two lists of movies. The semicolon (;) determines a line break, and the comma (,) indicates that an element will be placed after the first. This is how it will look:<\/p>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-1283\" src=\"http:\/\/web.soltel.es\/wp-content\/uploads\/2016\/12\/vista-300x58.png\" alt=\"vista\" width=\"528\" height=\"102\" srcset=\"https:\/\/www.soltel.es\/wp-content\/uploads\/2016\/12\/vista-300x58.png 300w, https:\/\/www.soltel.es\/wp-content\/uploads\/2016\/12\/vista-1024x197.png 1024w, https:\/\/www.soltel.es\/wp-content\/uploads\/2016\/12\/vista.png 1178w\" sizes=\"auto, (max-width: 528px) 100vw, 528px\" \/><\/p>\n<p>The result is very interesting given that we haven't written any HTML. The static text resource was obtained by adding the property <i>textoCabecera<\/i> to the file a properties file as follows:<\/p>\n<p align=\"center\"><i>Header text = App for managing movies<\/i><\/p>\n<p>There is also the option to internationalize the application.<\/p>\n<p>Further information can be found on the project's official website:<\/p>\n<p><strong><a href=\"http:\/\/www.openxava.org\">http:\/\/www.openxava.org<\/a><\/strong><\/p>\n<p>And the reference guide:<\/p>\n<p><strong><a href=\"http:\/\/openxava.wikispaces.com\/overview_es\">http:\/\/openxava.wikispaces.com\/overview_es<\/a><\/strong><\/p>","protected":false},"excerpt":{"rendered":"<p>We will discuss an approach to application design that stems from experience and reflection on how many applications are designed. It's called domain-driven design, or DDD; most likely, if we have to manage clients, countries, or any other relevant factors\u2026<\/p>","protected":false},"author":1,"featured_media":1367,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[39],"tags":[43,44,45],"class_list":["post-915","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-nuevas-tecnologias","tag-diseno-dirigido-por-el-dominio","tag-openxava","tag-programacion-agil"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Dise\u00f1o \u00e1gil dirigido por el dominio - Soltel Group<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.soltel.es\/en\/diseno-agil-dirigido-por-el-dominio\/\" \/>\n<meta property=\"og:locale\" content=\"en_GB\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Dise\u00f1o \u00e1gil dirigido por el dominio - Soltel Group\" \/>\n<meta property=\"og:description\" content=\"Trataremos una manera de abordar el dise\u00f1o de aplicaciones, que surge de la experiencia y la reflexi\u00f3n de c\u00f3mo se abordan una gran parte de \u00e9stas. Se denomina desarrollo o dise\u00f1o dirigido por el dominio, domain driven design, en ingl\u00e9s, o por su acr\u00f3nimo DDD; muy probablemente si tenemos que gestionar, clientes, pa\u00edses o cualquier...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.soltel.es\/en\/diseno-agil-dirigido-por-el-dominio\/\" \/>\n<meta property=\"og:site_name\" content=\"Soltel Group\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/pages\/Soltel-IT-Solutions\/158795267511286\" \/>\n<meta property=\"article:published_time\" content=\"2025-02-20T14:28:07+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.soltel.es\/wp-content\/uploads\/2016\/12\/openxava.png\" \/>\n\t<meta property=\"og:image:width\" content=\"598\" \/>\n\t<meta property=\"og:image:height\" content=\"300\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"admin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@soltel_it\" \/>\n<meta name=\"twitter:site\" content=\"@soltel_it\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Estimated reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.soltel.es\\\/diseno-agil-dirigido-por-el-dominio\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.soltel.es\\\/diseno-agil-dirigido-por-el-dominio\\\/\"},\"author\":{\"name\":\"admin\",\"@id\":\"https:\\\/\\\/www.soltel.es\\\/#\\\/schema\\\/person\\\/2b85423ae1375d01cbb97adeb7f1388e\"},\"headline\":\"Dise\u00f1o \u00e1gil dirigido por el dominio\",\"datePublished\":\"2025-02-20T14:28:07+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.soltel.es\\\/diseno-agil-dirigido-por-el-dominio\\\/\"},\"wordCount\":873,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.soltel.es\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.soltel.es\\\/diseno-agil-dirigido-por-el-dominio\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.soltel.es\\\/wp-content\\\/uploads\\\/2016\\\/12\\\/openxava.png\",\"keywords\":[\"Dise\u00f1o dirigido por el dominio\",\"Openxava\",\"programaci\u00f3n \u00e1gil\"],\"articleSection\":[\"Nuevas tecnolog\u00edas\"],\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.soltel.es\\\/diseno-agil-dirigido-por-el-dominio\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.soltel.es\\\/diseno-agil-dirigido-por-el-dominio\\\/\",\"url\":\"https:\\\/\\\/www.soltel.es\\\/diseno-agil-dirigido-por-el-dominio\\\/\",\"name\":\"Dise\u00f1o \u00e1gil dirigido por el dominio - Soltel Group\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.soltel.es\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.soltel.es\\\/diseno-agil-dirigido-por-el-dominio\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.soltel.es\\\/diseno-agil-dirigido-por-el-dominio\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.soltel.es\\\/wp-content\\\/uploads\\\/2016\\\/12\\\/openxava.png\",\"datePublished\":\"2025-02-20T14:28:07+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.soltel.es\\\/diseno-agil-dirigido-por-el-dominio\\\/#breadcrumb\"},\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.soltel.es\\\/diseno-agil-dirigido-por-el-dominio\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\\\/\\\/www.soltel.es\\\/diseno-agil-dirigido-por-el-dominio\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.soltel.es\\\/wp-content\\\/uploads\\\/2016\\\/12\\\/openxava.png\",\"contentUrl\":\"https:\\\/\\\/www.soltel.es\\\/wp-content\\\/uploads\\\/2016\\\/12\\\/openxava.png\",\"width\":598,\"height\":300},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.soltel.es\\\/diseno-agil-dirigido-por-el-dominio\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Portada\",\"item\":\"https:\\\/\\\/www.soltel.es\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Dise\u00f1o \u00e1gil dirigido por el dominio\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.soltel.es\\\/#website\",\"url\":\"https:\\\/\\\/www.soltel.es\\\/\",\"name\":\"Soltel Group\",\"description\":\"Soltel IT Solutions, empresa especializada en servicios IT\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.soltel.es\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.soltel.es\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-GB\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.soltel.es\\\/#organization\",\"name\":\"Soltel Group\",\"url\":\"https:\\\/\\\/www.soltel.es\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\\\/\\\/www.soltel.es\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.soltel.es\\\/wp-content\\\/uploads\\\/2023\\\/03\\\/logotipo-soltel.png\",\"contentUrl\":\"https:\\\/\\\/www.soltel.es\\\/wp-content\\\/uploads\\\/2023\\\/03\\\/logotipo-soltel.png\",\"width\":276,\"height\":212,\"caption\":\"Soltel Group\"},\"image\":{\"@id\":\"https:\\\/\\\/www.soltel.es\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/pages\\\/Soltel-IT-Solutions\\\/158795267511286\",\"https:\\\/\\\/x.com\\\/soltel_it\",\"https:\\\/\\\/www.youtube.com\\\/@soltel\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/soltel\",\"https:\\\/\\\/www.instagram.com\\\/soltelgroup\\\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.soltel.es\\\/#\\\/schema\\\/person\\\/2b85423ae1375d01cbb97adeb7f1388e\",\"name\":\"admin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\\\/\\\/www.soltel.es\\\/wp-content\\\/litespeed\\\/avatar\\\/a818881e4f08a360f07d6892ed67deae.jpg?ver=1778592104\",\"url\":\"https:\\\/\\\/www.soltel.es\\\/wp-content\\\/litespeed\\\/avatar\\\/a818881e4f08a360f07d6892ed67deae.jpg?ver=1778592104\",\"contentUrl\":\"https:\\\/\\\/www.soltel.es\\\/wp-content\\\/litespeed\\\/avatar\\\/a818881e4f08a360f07d6892ed67deae.jpg?ver=1778592104\",\"caption\":\"admin\"},\"url\":\"https:\\\/\\\/www.soltel.es\\\/en\\\/author\\\/admin\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Domain-Driven Agile Design - Soltel Group","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.soltel.es\/en\/diseno-agil-dirigido-por-el-dominio\/","og_locale":"en_GB","og_type":"article","og_title":"Dise\u00f1o \u00e1gil dirigido por el dominio - Soltel Group","og_description":"Trataremos una manera de abordar el dise\u00f1o de aplicaciones, que surge de la experiencia y la reflexi\u00f3n de c\u00f3mo se abordan una gran parte de \u00e9stas. Se denomina desarrollo o dise\u00f1o dirigido por el dominio, domain driven design, en ingl\u00e9s, o por su acr\u00f3nimo DDD; muy probablemente si tenemos que gestionar, clientes, pa\u00edses o cualquier...","og_url":"https:\/\/www.soltel.es\/en\/diseno-agil-dirigido-por-el-dominio\/","og_site_name":"Soltel Group","article_publisher":"https:\/\/www.facebook.com\/pages\/Soltel-IT-Solutions\/158795267511286","article_published_time":"2025-02-20T14:28:07+00:00","og_image":[{"width":598,"height":300,"url":"https:\/\/www.soltel.es\/wp-content\/uploads\/2016\/12\/openxava.png","type":"image\/png"}],"author":"admin","twitter_card":"summary_large_image","twitter_creator":"@soltel_it","twitter_site":"@soltel_it","twitter_misc":{"Written by":"admin","Estimated reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.soltel.es\/diseno-agil-dirigido-por-el-dominio\/#article","isPartOf":{"@id":"https:\/\/www.soltel.es\/diseno-agil-dirigido-por-el-dominio\/"},"author":{"name":"admin","@id":"https:\/\/www.soltel.es\/#\/schema\/person\/2b85423ae1375d01cbb97adeb7f1388e"},"headline":"Dise\u00f1o \u00e1gil dirigido por el dominio","datePublished":"2025-02-20T14:28:07+00:00","mainEntityOfPage":{"@id":"https:\/\/www.soltel.es\/diseno-agil-dirigido-por-el-dominio\/"},"wordCount":873,"commentCount":0,"publisher":{"@id":"https:\/\/www.soltel.es\/#organization"},"image":{"@id":"https:\/\/www.soltel.es\/diseno-agil-dirigido-por-el-dominio\/#primaryimage"},"thumbnailUrl":"https:\/\/www.soltel.es\/wp-content\/uploads\/2016\/12\/openxava.png","keywords":["Dise\u00f1o dirigido por el dominio","Openxava","programaci\u00f3n \u00e1gil"],"articleSection":["Nuevas tecnolog\u00edas"],"inLanguage":"en-GB","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.soltel.es\/diseno-agil-dirigido-por-el-dominio\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.soltel.es\/diseno-agil-dirigido-por-el-dominio\/","url":"https:\/\/www.soltel.es\/diseno-agil-dirigido-por-el-dominio\/","name":"Domain-Driven Agile Design - Soltel Group","isPartOf":{"@id":"https:\/\/www.soltel.es\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.soltel.es\/diseno-agil-dirigido-por-el-dominio\/#primaryimage"},"image":{"@id":"https:\/\/www.soltel.es\/diseno-agil-dirigido-por-el-dominio\/#primaryimage"},"thumbnailUrl":"https:\/\/www.soltel.es\/wp-content\/uploads\/2016\/12\/openxava.png","datePublished":"2025-02-20T14:28:07+00:00","breadcrumb":{"@id":"https:\/\/www.soltel.es\/diseno-agil-dirigido-por-el-dominio\/#breadcrumb"},"inLanguage":"en-GB","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.soltel.es\/diseno-agil-dirigido-por-el-dominio\/"]}]},{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/www.soltel.es\/diseno-agil-dirigido-por-el-dominio\/#primaryimage","url":"https:\/\/www.soltel.es\/wp-content\/uploads\/2016\/12\/openxava.png","contentUrl":"https:\/\/www.soltel.es\/wp-content\/uploads\/2016\/12\/openxava.png","width":598,"height":300},{"@type":"BreadcrumbList","@id":"https:\/\/www.soltel.es\/diseno-agil-dirigido-por-el-dominio\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Portada","item":"https:\/\/www.soltel.es\/"},{"@type":"ListItem","position":2,"name":"Dise\u00f1o \u00e1gil dirigido por el dominio"}]},{"@type":"WebSite","@id":"https:\/\/www.soltel.es\/#website","url":"https:\/\/www.soltel.es\/","name":"Soltel Group","description":"Soltel IT Solutions, a company specializing in IT services","publisher":{"@id":"https:\/\/www.soltel.es\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.soltel.es\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-GB"},{"@type":"Organization","@id":"https:\/\/www.soltel.es\/#organization","name":"Soltel Group","url":"https:\/\/www.soltel.es\/","logo":{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/www.soltel.es\/#\/schema\/logo\/image\/","url":"https:\/\/www.soltel.es\/wp-content\/uploads\/2023\/03\/logotipo-soltel.png","contentUrl":"https:\/\/www.soltel.es\/wp-content\/uploads\/2023\/03\/logotipo-soltel.png","width":276,"height":212,"caption":"Soltel Group"},"image":{"@id":"https:\/\/www.soltel.es\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/pages\/Soltel-IT-Solutions\/158795267511286","https:\/\/x.com\/soltel_it","https:\/\/www.youtube.com\/@soltel","https:\/\/www.linkedin.com\/company\/soltel","https:\/\/www.instagram.com\/soltelgroup\/"]},{"@type":"Person","@id":"https:\/\/www.soltel.es\/#\/schema\/person\/2b85423ae1375d01cbb97adeb7f1388e","name":"admin","image":{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/www.soltel.es\/wp-content\/litespeed\/avatar\/a818881e4f08a360f07d6892ed67deae.jpg?ver=1778592104","url":"https:\/\/www.soltel.es\/wp-content\/litespeed\/avatar\/a818881e4f08a360f07d6892ed67deae.jpg?ver=1778592104","contentUrl":"https:\/\/www.soltel.es\/wp-content\/litespeed\/avatar\/a818881e4f08a360f07d6892ed67deae.jpg?ver=1778592104","caption":"admin"},"url":"https:\/\/www.soltel.es\/en\/author\/admin\/"}]}},"_links":{"self":[{"href":"https:\/\/www.soltel.es\/en\/wp-json\/wp\/v2\/posts\/915","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.soltel.es\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.soltel.es\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.soltel.es\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.soltel.es\/en\/wp-json\/wp\/v2\/comments?post=915"}],"version-history":[{"count":5,"href":"https:\/\/www.soltel.es\/en\/wp-json\/wp\/v2\/posts\/915\/revisions"}],"predecessor-version":[{"id":7576,"href":"https:\/\/www.soltel.es\/en\/wp-json\/wp\/v2\/posts\/915\/revisions\/7576"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.soltel.es\/en\/wp-json\/wp\/v2\/media\/1367"}],"wp:attachment":[{"href":"https:\/\/www.soltel.es\/en\/wp-json\/wp\/v2\/media?parent=915"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.soltel.es\/en\/wp-json\/wp\/v2\/categories?post=915"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.soltel.es\/en\/wp-json\/wp\/v2\/tags?post=915"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}