{"id":1961,"date":"2015-12-16T19:29:35","date_gmt":"2015-12-16T19:29:35","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=1961"},"modified":"2025-06-13T21:02:11","modified_gmt":"2025-06-14T04:02:11","slug":"leveraging-the-power-of-couchbase-in-classic-asp-applications","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/es\/leveraging-the-power-of-couchbase-in-classic-asp-applications\/","title":{"rendered":"Post invitado de Concur: Aprovechamiento de la potencia de Couchbase en aplicaciones ASP cl\u00e1sicas"},"content":{"rendered":"<p><strong>Nota: este art\u00edculo ha sido escrito por Vojta Jakubec, de <a href=\"https:\/\/www.concur.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">Tecnolog\u00edas Concur<\/a>, una empresa de gesti\u00f3n de gastos de viaje que presta servicios de gesti\u00f3n de viajes y gastos a empresas.<\/strong><\/p>\n<p>En Concur tenemos m\u00e1s de 15 a\u00f1os de experiencia en la creaci\u00f3n de software como servicio. Con 93 millones de pasajeros de aerol\u00edneas que reservaron a trav\u00e9s de nuestro producto Travel &amp; Expense en el \u00faltimo a\u00f1o, lideramos el mercado de viajes de negocios. Para poner esto en perspectiva, cualquier avi\u00f3n comercial en el mundo tendr\u00eda en promedio m\u00e1s de 3 pasajeros que reservaron el boleto a trav\u00e9s de nuestro software.<\/p>\n<p>Sin embargo, gestionar con \u00e9xito un producto SaaS durante m\u00e1s de una d\u00e9cada tambi\u00e9n tiene algunos inconvenientes. Nos encontramos en una situaci\u00f3n en la que tuvimos que ampliar la vida \u00fatil de nuestra interfaz de usuario mucho m\u00e1s all\u00e1 de las expectativas originales. Una parte significativa sigue estando en ASP cl\u00e1sico, que era la pila tecnol\u00f3gica de Microsoft antes de que apareciera .NET. Para estar a la altura de las exigencias de nuestros clientes, hemos tomado varias medidas t\u00e9cnicas para modernizar el entorno.<\/p>\n<h2>Almacenamiento de datos en cach\u00e9 en ASP cl\u00e1sico<\/h2>\n<p>Una de las iniciativas que hemos tomado ha sido introducir el almacenamiento de datos en cach\u00e9 en la capa ASP. Cada llamada entre la interfaz de usuario y la capa intermedia tarda varios milisegundos. El problema es que el motor de renderizado ASP cl\u00e1sico no ofrece ninguna forma de paralelizar estas llamadas, por lo que el tiempo total de ejecuci\u00f3n de la p\u00e1gina sigue sumando. En algunos casos puede llegar a varios cientos de milisegundos. Por esta raz\u00f3n, necesitamos mantener el tiempo de obtenci\u00f3n de datos de nivel medio al m\u00ednimo.<\/p>\n<p>Nuestra soluci\u00f3n fue alojar una cach\u00e9 de datos en Couchbase. En lugar de realizar una costosa llamada de 30 ms al nivel intermedio, la interfaz de usuario puede obtener los mismos datos en menos de 1 ms de la cach\u00e9 de Couchbase. La llamada al nivel intermedio s\u00f3lo es necesaria cuando no hay datos en cach\u00e9.<\/p>\n<p>Para minimizar el tiempo de acceso a los datos, tuvimos que acceder a los datos de Couchbase de forma nativa desde ASP cl\u00e1sico. El enrutamiento a trav\u00e9s de una capa de servicio adicional s\u00f3lo aumentar\u00eda la latencia y obstaculizar\u00eda nuestros esfuerzos de almacenamiento en cach\u00e9. Por esta raz\u00f3n creamos un <a href=\"https:\/\/github.com\/concur\/couchbase-interop\" target=\"_blank\" rel=\"noopener noreferrer\">envoltorio COM de c\u00f3digo abierto <\/a>en torno al SDK .NET para Couchbase. Permite a cualquier aplicaci\u00f3n capaz de trabajar con objetos COM trabajar de forma nativa con servidores Couchbase.<\/p>\n<h2>Despliegue del SDK COM<\/h2>\n<p>El escenario de despliegue m\u00e1s sencillo consiste en copiar los archivos del SDK COM de Couchbase en el servidor y registrar las clases COM con el comando <a href=\"https:\/\/msdn.microsoft.com\/en-us\/library\/tzat5yw6%28v=vs.110%29.aspx\" target=\"_blank\" rel=\"noopener noreferrer\">Regasm<\/a> herramienta. Puede obtener los binarios de la \u00faltima <a href=\"https:\/\/github.com\/concur\/couchbase-interop\/releases\" target=\"_blank\" rel=\"noopener noreferrer\">Publicaci\u00f3n en GitHub<\/a> o cree el proyecto usted mismo. La herramienta Regasm forma parte de la instalaci\u00f3n de .NET Framework y ya deber\u00eda estar presente en su servidor.<\/p>\n<p>En este punto el SDK COM de Couchbase deber\u00eda estar disponible para tus aplicaciones.<\/p>\n<h2>Configuraci\u00f3n del SDK COM<\/h2>\n<p>Mapear las clases de configuraci\u00f3n .NET en objetos COM supondr\u00eda un importante esfuerzo a largo plazo para mantener ambos sincronizados. Por suerte, el SDK de .NET nos dio la opci\u00f3n de utilizar archivos de configuraci\u00f3n externos. En la pr\u00e1ctica es como trabajar con archivos App.Config o Web.config en cualquier aplicaci\u00f3n .NET. Para m\u00e1s detalles, consulte <a href=\"https:\/\/docs.couchbase.com\/dotnet-sdk\/current\/ref\/client-settings.html\" target=\"_blank\" rel=\"noopener noreferrer\">Documentaci\u00f3n del SDK de .NET<\/a>.<\/p>\n<p>Ejemplo de configuraci\u00f3n del SDK COM en c\u00f3digo ASP:<\/p>\n<p>El ejemplo anterior abrir\u00e1 un archivo de configuraci\u00f3n desde la ruta especificada, buscar\u00e1 la secci\u00f3n de configuraci\u00f3n llamada \"aspCacheConfigSection\" y configurar\u00e1 el SDK .NET subyacente con ella. Se trata de una operaci\u00f3n \u00fanica que puede realizarse en global.asa al iniciar la aplicaci\u00f3n.<\/p>\n<h2>Optimizar el uso de los recursos<\/h2>\n<p>En ASP, los usuarios suelen crear y destruir objetos COM con bastante rapidez. Al separar la vida \u00fatil de los objetos SDK .NET subyacentes de sus envoltorios de objetos COM, pudimos optimizar este caso de uso sin afectar negativamente al uso de recursos ni al rendimiento. Todos los objetos COM SDK bucket que representan un bucket de Couchbase utilizan en realidad un objeto .NET SDK bucket singleton subyacente.<\/p>\n<h2>Ejemplo de cach\u00e9 ASP sencilla<\/h2>\n<p>El siguiente ejemplo asume que ya has configurado el SDK para conectarte a un cluster de Couchbase que tiene un bucket llamado \"default\" en \u00e9l.<\/p>\n<p>Siempre empezamos creando una clase factor\u00eda, desde la que solicitamos un objeto que nos permita trabajar con un bucket con nombre (\"default\" en este ejemplo). Usando la operaci\u00f3n Get, encontramos y usamos inmediatamente los datos almacenados en cach\u00e9, o emitimos una petici\u00f3n de nivel medio y almacenamos el resultado en Couchbase. N\u00f3tese que la operaci\u00f3n Upsert para almacenar datos toma un par\u00e1metro adicional especificando la expiraci\u00f3n, en este caso 60 segundos.<\/p>\n<h2>Conclusi\u00f3n<\/h2>\n<p>Con esta sencilla envoltura COM alrededor del SDK .NET de Couchbase, obtenemos toda la potencia que Couchbase puede ofrecer de forma nativa en aplicaciones ASP cl\u00e1sicas. Esto nos permiti\u00f3 escalar f\u00e1cilmente nuestra interfaz de usuario ASP con s\u00f3lo unos pocos ajustes de c\u00f3digo. La creaci\u00f3n del SDK COM tambi\u00e9n llev\u00f3 a varias contribuciones para mejorar el SDK .NET y empujar los l\u00edmites de c\u00f3mo puede ser usado.<\/p>","protected":false},"excerpt":{"rendered":"<p>Note: this is a guest post by Vojta Jakubec of Concur Technologies, a travel management expense company that provides travel and expense management services to businesses. At Concur, we have experience building software as a service for over 15 years. [&hellip;]<\/p>","protected":false},"author":21,"featured_media":13873,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[1811,1814,2201],"tags":[1452],"ppma_author":[8970],"class_list":["post-1961","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-dotnet","category-application-design","category-tools-sdks","tag-asp"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.1 (Yoast SEO v26.1.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Guest post from Concur: Leveraging the power of Couchbase in classic ASP applications - The Couchbase Blog<\/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.couchbase.com\/blog\/es\/leveraging-the-power-of-couchbase-in-classic-asp-applications\/\" \/>\n<meta property=\"og:locale\" content=\"es_MX\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Guest post from Concur: Leveraging the power of Couchbase in classic ASP applications\" \/>\n<meta property=\"og:description\" content=\"Note: this is a guest post by Vojta Jakubec of Concur Technologies, a travel management expense company that provides travel and expense management services to businesses. At Concur, we have experience building software as a service for over 15 years. [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/es\/leveraging-the-power-of-couchbase-in-classic-asp-applications\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2015-12-16T19:29:35+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-14T04:02:11+00:00\" \/>\n<meta name=\"author\" content=\"Jeff Morris, Senior Software Engineer, Couchbase\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@jeffrysmorris\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Jeff Morris, Senior Software Engineer, Couchbase\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/leveraging-the-power-of-couchbase-in-classic-asp-applications\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/leveraging-the-power-of-couchbase-in-classic-asp-applications\/\"},\"author\":{\"name\":\"Jeff Morris, Senior Software Engineer, Couchbase\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/b678bdd9f7b21a33d43ea965865a3341\"},\"headline\":\"Guest post from Concur: Leveraging the power of Couchbase in classic ASP applications\",\"datePublished\":\"2015-12-16T19:29:35+00:00\",\"dateModified\":\"2025-06-14T04:02:11+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/leveraging-the-power-of-couchbase-in-classic-asp-applications\/\"},\"wordCount\":783,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/leveraging-the-power-of-couchbase-in-classic-asp-applications\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"keywords\":[\"asp\"],\"articleSection\":[\".NET\",\"Application Design\",\"Tools &amp; SDKs\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/leveraging-the-power-of-couchbase-in-classic-asp-applications\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/leveraging-the-power-of-couchbase-in-classic-asp-applications\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/leveraging-the-power-of-couchbase-in-classic-asp-applications\/\",\"name\":\"Guest post from Concur: Leveraging the power of Couchbase in classic ASP applications - The Couchbase Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/leveraging-the-power-of-couchbase-in-classic-asp-applications\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/leveraging-the-power-of-couchbase-in-classic-asp-applications\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"datePublished\":\"2015-12-16T19:29:35+00:00\",\"dateModified\":\"2025-06-14T04:02:11+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/leveraging-the-power-of-couchbase-in-classic-asp-applications\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/leveraging-the-power-of-couchbase-in-classic-asp-applications\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/leveraging-the-power-of-couchbase-in-classic-asp-applications\/#primaryimage\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"width\":1800,\"height\":630},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/leveraging-the-power-of-couchbase-in-classic-asp-applications\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Guest post from Concur: Leveraging the power of Couchbase in classic ASP applications\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"name\":\"The Couchbase Blog\",\"description\":\"Couchbase, the NoSQL Database\",\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\",\"name\":\"The Couchbase Blog\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"width\":218,\"height\":34,\"caption\":\"The Couchbase Blog\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/b678bdd9f7b21a33d43ea965865a3341\",\"name\":\"Jeff Morris, Senior Software Engineer, Couchbase\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/73188ee2831025d81740e12e1ed80812\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/5f910befdbd58de8bac85293df7f544680843061ecc921ba7d293d6d52076ab3?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/5f910befdbd58de8bac85293df7f544680843061ecc921ba7d293d6d52076ab3?s=96&d=mm&r=g\",\"caption\":\"Jeff Morris, Senior Software Engineer, Couchbase\"},\"description\":\"Jeff Morris is a Senior Software Engineer at Couchbase. Prior to joining Couchbase, Jeff spent six years at Source Interlink as an Enterprise Web Architect. Jeff is responsible for the development of Couchbase SDKs and how to integrate with N1QL (query language).\",\"sameAs\":[\"https:\/\/x.com\/jeffrysmorris\"],\"url\":\"https:\/\/www.couchbase.com\/blog\/es\/author\/jeff-morris\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Guest post from Concur: Leveraging the power of Couchbase in classic ASP applications - The Couchbase Blog","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.couchbase.com\/blog\/es\/leveraging-the-power-of-couchbase-in-classic-asp-applications\/","og_locale":"es_MX","og_type":"article","og_title":"Guest post from Concur: Leveraging the power of Couchbase in classic ASP applications","og_description":"Note: this is a guest post by Vojta Jakubec of Concur Technologies, a travel management expense company that provides travel and expense management services to businesses. At Concur, we have experience building software as a service for over 15 years. [&hellip;]","og_url":"https:\/\/www.couchbase.com\/blog\/es\/leveraging-the-power-of-couchbase-in-classic-asp-applications\/","og_site_name":"The Couchbase Blog","article_published_time":"2015-12-16T19:29:35+00:00","article_modified_time":"2025-06-14T04:02:11+00:00","author":"Jeff Morris, Senior Software Engineer, Couchbase","twitter_card":"summary_large_image","twitter_creator":"@jeffrysmorris","twitter_misc":{"Written by":"Jeff Morris, Senior Software Engineer, Couchbase","Est. reading time":"4 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/leveraging-the-power-of-couchbase-in-classic-asp-applications\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/leveraging-the-power-of-couchbase-in-classic-asp-applications\/"},"author":{"name":"Jeff Morris, Senior Software Engineer, Couchbase","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/b678bdd9f7b21a33d43ea965865a3341"},"headline":"Guest post from Concur: Leveraging the power of Couchbase in classic ASP applications","datePublished":"2015-12-16T19:29:35+00:00","dateModified":"2025-06-14T04:02:11+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/leveraging-the-power-of-couchbase-in-classic-asp-applications\/"},"wordCount":783,"commentCount":0,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/leveraging-the-power-of-couchbase-in-classic-asp-applications\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","keywords":["asp"],"articleSection":[".NET","Application Design","Tools &amp; SDKs"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/leveraging-the-power-of-couchbase-in-classic-asp-applications\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/leveraging-the-power-of-couchbase-in-classic-asp-applications\/","url":"https:\/\/www.couchbase.com\/blog\/leveraging-the-power-of-couchbase-in-classic-asp-applications\/","name":"Guest post from Concur: Leveraging the power of Couchbase in classic ASP applications - The Couchbase Blog","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/leveraging-the-power-of-couchbase-in-classic-asp-applications\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/leveraging-the-power-of-couchbase-in-classic-asp-applications\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","datePublished":"2015-12-16T19:29:35+00:00","dateModified":"2025-06-14T04:02:11+00:00","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/leveraging-the-power-of-couchbase-in-classic-asp-applications\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/leveraging-the-power-of-couchbase-in-classic-asp-applications\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.couchbase.com\/blog\/leveraging-the-power-of-couchbase-in-classic-asp-applications\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","width":1800,"height":630},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/leveraging-the-power-of-couchbase-in-classic-asp-applications\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Guest post from Concur: Leveraging the power of Couchbase in classic ASP applications"}]},{"@type":"WebSite","@id":"https:\/\/www.couchbase.com\/blog\/#website","url":"https:\/\/www.couchbase.com\/blog\/","name":"El blog de Couchbase","description":"Couchbase, la base de datos NoSQL","publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Organization","@id":"https:\/\/www.couchbase.com\/blog\/#organization","name":"El blog de Couchbase","url":"https:\/\/www.couchbase.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","width":218,"height":34,"caption":"The Couchbase Blog"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/b678bdd9f7b21a33d43ea965865a3341","name":"Jeff Morris, Ingeniero Superior de Software, Couchbase","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/73188ee2831025d81740e12e1ed80812","url":"https:\/\/secure.gravatar.com\/avatar\/5f910befdbd58de8bac85293df7f544680843061ecc921ba7d293d6d52076ab3?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/5f910befdbd58de8bac85293df7f544680843061ecc921ba7d293d6d52076ab3?s=96&d=mm&r=g","caption":"Jeff Morris, Senior Software Engineer, Couchbase"},"description":"Jeff Morris es Ingeniero de Software Senior en Couchbase. Antes de unirse a Couchbase, Jeff pas\u00f3 seis a\u00f1os en Source Interlink como Arquitecto Web Empresarial. Jeff es responsable del desarrollo de los SDK de Couchbase y de c\u00f3mo integrarse con N1QL (lenguaje de consulta).","sameAs":["https:\/\/x.com\/jeffrysmorris"],"url":"https:\/\/www.couchbase.com\/blog\/es\/author\/jeff-morris\/"}]}},"authors":[{"term_id":8970,"user_id":21,"is_guest":0,"slug":"jeff-morris","display_name":"Jeff Morris, Senior Software Engineer, Couchbase","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/5f910befdbd58de8bac85293df7f544680843061ecc921ba7d293d6d52076ab3?s=96&d=mm&r=g","author_category":"","last_name":"Jeff Morris, Senior Software Engineer, Couchbase","first_name":"Jeff","job_title":"","user_url":"","description":"Jeff Morris es Ingeniero de Software Senior en Couchbase. Antes de unirse a Couchbase, Jeff pas\u00f3 seis a\u00f1os en Source Interlink como Arquitecto Web Empresarial. Jeff es responsable del desarrollo de los SDK de Couchbase y de c\u00f3mo integrarse con N1QL (lenguaje de consulta)."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts\/1961","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/users\/21"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/comments?post=1961"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts\/1961\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/media\/13873"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/media?parent=1961"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/categories?post=1961"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/tags?post=1961"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/ppma_author?post=1961"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}