{"id":949,"date":"2021-03-05T17:26:00","date_gmt":"2023-09-07T17:26:40","guid":{"rendered":"https:\/\/www.salesforce.com\/?p=949"},"modified":"2024-10-22T19:12:41","modified_gmt":"2024-10-22T19:12:41","slug":"visual-studio-code","status":"publish","type":"post","link":"https:\/\/www.salesforce.com\/mx\/blog\/visual-studio-code\/","title":{"rendered":"Visual Studio Code: nacimiento, auge y su futuro en MuleSoft"},"content":{"rendered":"\n<p>Desde MuleSoft proveemos software de integraci\u00f3n flexible y robusto que permite conectar aplicaciones, datos y dispositivos. La mayor parte de las aplicaciones MuleSoft se construyen desde nuestra IDE: Anypoint Studio, la cual est\u00e1 basada en Eclipse.<\/p>\n\n\n\n<p>Si bien Studio nos ha rendido sus buenos frutos y lo continuar\u00e1 haciendo, siempre estamos en la mira para evaluar nuevas tendencias en el mundo de las IDEs. Uno de los acontecimientos m\u00e1s importantes en este espacio ha sido el surgimiento de Visual Studio Code. En este breve art\u00edculo repasamos su historia, los desaf\u00edos que enfrentan los desarrolladores de sus extensiones y c\u00f3mo estamos atacando los mismos en el contexto de las herramientas que estamos construyendo en MuleSoft.<\/p>\n\n\n\n<p>En 2011 un tal Erich Gamma se uni\u00f3 a una tal empresa conocida como Microsoft. Erich quiz\u00e1s te suene como uno de los co-autores de EL libro de design patterns: el <a href=\"https:\/\/en.wikipedia.org\/wiki\/Design_Patterns\" target=\"_blank\" adhocenable=\"false\" rel=\"noopener\">\u201cGang of Four\u201d<\/a>. A la empresa quiz\u00e1s la tengas por creaciones como Windows, Office y <a href=\"https:\/\/www.youtube.com\/watch?v=PxcIC7o-Mec&amp;ab_channel=DuranMedine\" target=\"_blank\" adhocenable=\"false\" rel=\"noopener\">Clippo<\/a>.<\/p>\n\n\n\n<p>Al mando de Erich, el equipo de Microsoft en Zurich se puso a repensar las herramientas de desarrollo para la programaci\u00f3n del futuro (?). Por esos tiempos estaban surgiendo nuevos paradigmas de trabajo como los \u00b5Services y nuevas tecnolog\u00edas como por ejemplo Go y Node.js. Con tanto cambio alrededor, \u00bfservir\u00edan a\u00fan las herramientas del siglo XX?<\/p>\n\n\n\n<div class=\"layout-one wp-block-salesforce-blog-offer\">\n\t<div class=\"wp-block-offer__wrapper\">\n\n\t\t<div class=\"wp-block-offer__content\">\n\t\t\t<h2 class=\"wp-block-offer__title\">Integra cualquier sistema a tu negocio<\/h2>\n\t\t\t\t\t\t\t<p class=\"wp-block-offer__description\">Lee nuestro e-book gratuito para saber c\u00f3mo MuleSoft y Salesforce trabajan juntas para crear datos seguros, escalables y flexibles.<\/p>\n\t\t\t\n\t\t\t\n\t\t\t\t\t\t\t<div class=\"wp-block-button\">\n\t\t\t\t\t<a class=\"wp-block-button__link\" target=\"_blank\" href=\"https:\/\/www.mulesoft.com\/mx\/lp\/ebook\/api\/salesforce-integration-customer-360\">Descarga el e-book<\/a>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\n\t\t<div class=\"wp-block-offer__media\">\n\t\t\t\t\t<\/div>\n\t<\/div>\n\n\t\t\t<div class=\"wp-block-offer__graphics wp-block-offer__contour\"><\/div>\n\t\n\t\t\t<!-- Standard Illustration -->\n\t\t<img decoding=\"async\" class=\"wp-block-offer__graphics wp-block-offer__illustration\" src=\"https:\/\/www.salesforce.com\/mx\/blog\/wp-content\/themes\/salesforce-blog\/dist\/images\/offer-block\/offer-illustration-layout-one.png\" alt=\"\">\n\n\t\t<!-- Small Accent Illustration -->\n\t\t\t\t\t<img decoding=\"async\" class=\"wp-block-offer__graphics wp-block-offer__accent\" src=\"https:\/\/www.salesforce.com\/mx\/blog\/wp-content\/themes\/salesforce-blog\/dist\/images\/offer-block\/offer-accent-layout-one.png\" alt=\"\">\n\t\t\n\t\t<!-- Left Side Illustration -->\n\t\t\n\t\t<!-- Cloud Illustration -->\n\t\t\t\t\t<img decoding=\"async\" class=\"wp-block-offer__graphics wp-block-offer__cloud\" src=\"https:\/\/www.salesforce.com\/mx\/blog\/wp-content\/themes\/salesforce-blog\/dist\/images\/offer-block\/offer-cloud-layout-one.png\" alt=\"\">\n\t\t\n\t<\/div>\n\n\n\n<p>Al mismo tiempo, en GitHub estaban desarrollando un editor de texto portable 100% basado en tecnolog\u00edas web: Node.js para el back-end y Chromium como UI. Este editor fue bautizado como <a href=\"https:\/\/atom.io\/\" target=\"_blank\" adhocenable=\"false\" rel=\"noopener\">Atom<\/a>, y su tecnolog\u00eda subyacente como Atom Shell, luego renombrada Electron.<\/p>\n\n\n\n<p>A Erich y su equipo les encant\u00f3 esta idea de tener un editor portable. Al fin y al cabo, si pr\u00e1cticamente todo lo que hacemos en la computadora ya est\u00e1 en la nube, \u00bfpor qu\u00e9 no mover nuestros entornos de desarrollo a la nube tambi\u00e9n?<\/p>\n\n\n\n<p>Pero una IDE (Integrated Development Environment) es mucho m\u00e1s que un editor de texto. Hay que proveer coloreo de sintaxis, autocompletar (\u00a1darle al ctrl-space como un campe\u00f3n!), informaci\u00f3n de contexto al mover el mouse sobre un elemento, compilaci\u00f3n, debugging, \u2026 La lista es pr\u00e1cticamente infinita.<\/p>\n\n\n\n<p>R\u00e1pidamente, este equipo lleg\u00f3 a la conclusi\u00f3n de que ser\u00eda pr\u00e1cticamente imposible resolver todos estos problemas para todos los lenguajes de programaci\u00f3n s\u00f3lo con tecnolog\u00edas web. En otras palabras, implementar un sistema que ofrece opciones para autocompletar un programa Python es algo que es m\u00e1s f\u00e1cil de implementar directamente en Python. Y hacerlo para un programa Java es m\u00e1s f\u00e1cil de implementar en Java mismo.<\/p>\n\n\n\n<p>La forma de resolver esto fue haciendo que cada uno de los \u201csubsistemas\u201d que manejan cada lenguaje sea implementado como un proceso aparte. Al quedar aislados en un proceso separado, cada uno de esos subsistemas puede estar implementado en la tecnolog\u00eda que mejor se adapte a la necesidad de cada lenguaje. As\u00ed, el subsistema que provee opciones para autocompletar Python estar\u00e1 hecho en Python, el de Java en Java, etc.<\/p>\n\n\n\n<p>\u00bfY c\u00f3mo se comunicar\u00eda el proceso principal de la IDE con cada uno de estos subsistemas? Para eso, Gamma y compa\u00f1\u00eda dise\u00f1aron un protocolo llamado <a href=\"https:\/\/microsoft.github.io\/language-server-protocol\/\" target=\"_blank\" adhocenable=\"false\" rel=\"noopener\">LSP: Language Server Protocol<\/a>. Este protocolo permite a un cliente (la IDE) y a un servidor (el subsistema que entiende de un lenguaje) interactuar para resolver pedidos puntuales. Por ejemplo: abro un programa en mi IDE, y esta le avisa al Language Server correspondiente para activarlo y que est\u00e9 listo para resolver pedidos como por ejemplo navegar a la definici\u00f3n de un s\u00edmbolo.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-\"><img decoding=\"async\" src=\"https:\/\/www.salesforce.com\/mx\/blog\/wp-content\/uploads\/sites\/11\/2023\/09\/sp-blog-visual-code-mulesoft-inset-1.jpg?strip=all&#038;quality=95\" alt=\"language server protocol chart\"><\/h2>\n\n\n\n<p>Algo muy interesante es que, al definir un protocolo est\u00e1ndar entre la IDE y el Language Server, esto permite que cada lado se enfoque en resolver UN problema sin tener que conocer al otro. En otras palabras, quien dise\u00f1a la IDE se puede enfocar en tener la mejor soluci\u00f3n posible para navegar hacia la definici\u00f3n de un s\u00edmbolo, sin importar en qu\u00e9 lenguaje sea el programa ni c\u00f3mo identificar c\u00f3mo se resuelve eso para tal lenguaje. Por otro lado, quien dise\u00f1a un Language Server para un lenguaje de programaci\u00f3n espec\u00edfico puede concentrarse en armar una soluci\u00f3n para identificar la definici\u00f3n de un s\u00edmbolo, sin preocuparse por d\u00f3nde o c\u00f3mo se usar\u00e1 tal informaci\u00f3n.<\/p>\n\n\n\n<p>Una consecuencia de esta separaci\u00f3n es que los Language Servers no s\u00f3lo sirven para la IDE dise\u00f1ada por Gamma y su equipo, sino para cualquier otra IDE que tenga implementado un cliente de LSP. Al momento en que escribo estas palabras, LSP est\u00e1 soportado por Visual Studio, Atom, vim y Eclipse, <a href=\"https:\/\/microsoft.github.io\/language-server-protocol\/implementors\/tools\/\" target=\"_blank\" adhocenable=\"false\" rel=\"noopener\">entre otros<\/a>. Efectivamente, el LSP convierte un problema de M x N en un problema M + N.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-\"><img decoding=\"async\" src=\"https:\/\/www.salesforce.com\/mx\/blog\/wp-content\/uploads\/sites\/11\/2023\/09\/sp-blog-visual-code-mulesoft-inset-2.jpg?strip=all&#038;quality=95\" alt=\"illustration showing no LSP and with LSP\"><\/h2>\n\n\n\n<p>Armados con el concepto de LSP y otro protocolo similar para abstraerse del debugger (<a href=\"https:\/\/microsoft.github.io\/debug-adapter-protocol\/\" target=\"_blank\" adhocenable=\"false\" rel=\"noopener\">DAP<\/a>), Microsoft lanz\u00f3 en 2015 su IDE basada en Electron: nace Visual Studio Code. Visual Studio Code es un producto realmente muy vers\u00e1til. Su portabilidad y su extensibilidad hicieron que hacia 2019 se convierta en la IDE m\u00e1s usada del mundo <a href=\"https:\/\/insights.stackoverflow.com\/survey\/2019#development-environments-and-tools\" target=\"_blank\" adhocenable=\"false\" rel=\"noopener\">seg\u00fan la encuesta de StackOverflow<\/a>.<\/p>\n\n\n\n<p>Pero no todo es tan sencillo como parece. Para quienes tenemos experiencia desarrollando extensiones para otras IDEs, hay elementos que a\u00fan est\u00e1n ausentes. Por ejemplo, en IntelliJ hay un \u00edndice central al que todas las extensiones pueden contribuir con s\u00edmbolos y metainformaci\u00f3n, as\u00ed como consultar. En el caso de Visual Studio Code, cada Language Server es responsable de implementar su propio \u00edndice, algo que es ineficiente y complejo.<\/p>\n\n\n\n<p>Otra limitaci\u00f3n es la falta de extensibilidad en las propias extensiones. En Eclipse, por ejemplo, existe el concepto de extension point. El mismo declara la intenci\u00f3n, por parte de una extensi\u00f3n, de que cierto aspecto de la misma sea modificado o extendido a su vez por otras extensiones. Este concepto es clave para tener un \u201c\u00e1rbol\u201d de extensiones rico en donde se favorezca el reuso. Visual Studio Code carece de este concepto y las extensiones tienen que arregl\u00e1rselas para definir sus puntos de extensi\u00f3n. Esto fomenta que haya mucho <a href=\"https:\/\/www.dictionary.com\/e\/slang\/copypasta\/\" target=\"_blank\" adhocenable=\"false\" rel=\"noopener\">copy-pasta<\/a> entre las extensiones.<\/p>\n\n\n\n<p>Finalmente, hay conceptos que est\u00e1n simplemente ausentes en LSP: compilar, testear, manejar dependencias. Para esto se cre\u00f3 otro protocolo llamado <a href=\"https:\/\/build-server-protocol.github.io\/\" target=\"_blank\" adhocenable=\"false\" rel=\"noopener\">Build Server Protocol<\/a>, pero a\u00fan no tiene tanta adopci\u00f3n como para saber si prender\u00e1 en la comunidad.<\/p>\n\n\n\n<p>En MuleSoft estamos resolviendo estos desaf\u00edos, trabajando para desarrollar herramientas livianas, f\u00e1ciles de usar y potentes basadas en LSP y Visual Studio Code (\u00a1ya habr\u00e1 m\u00e1s novedades! ;). Si te interesan estos temas te invito a que visites nuestros sitios sobre <a adhocenable=\"false\" href=\"https:\/\/www.mulesoft.com\/careers\" target=\"_blank\" rel=\"noopener\">ingenier\u00eda en MuleSoft<\/a> y <a adhocenable=\"false\" href=\"https:\/\/www.salesforce.com\/company\/careers\/\" target=\"_blank\" rel=\"noopener\">Salesforce<\/a>.<\/p>\n\n\n\n<div class=\"layout-three wp-block-salesforce-blog-offer\">\n\t<div class=\"wp-block-offer__wrapper\">\n\n\t\t<div class=\"wp-block-offer__content\">\n\t\t\t<h2 class=\"wp-block-offer__title\">Descubre el poder de Customer 360<\/h2>\n\t\t\t\t\t\t\t<p class=\"wp-block-offer__description\">La magia de los datos al alcance de todas las equipos. Re\u00fane los equipos de marketing, ventas, e-commerce, atenci\u00f3n al cliente y TI en torno al cliente y centraliza su operaci\u00f3n en una \u00fanica plataforma. <\/p>\n\t\t\t\n\t\t\t\n\t\t\t\t\t\t\t<div class=\"wp-block-button\">\n\t\t\t\t\t<a class=\"wp-block-button__link\" target=\"_blank\" href=\"https:\/\/www.salesforce.com\/mx\/products\/\">Ver m\u00e1s<\/a>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\n\t\t<div class=\"wp-block-offer__media\">\n\t\t\t\t\t<\/div>\n\t<\/div>\n\n\t\t\t<div class=\"wp-block-offer__graphics wp-block-offer__contour\"><\/div>\n\t\n\t\t\t<!-- Standard Illustration -->\n\t\t<img decoding=\"async\" class=\"wp-block-offer__graphics wp-block-offer__illustration\" src=\"https:\/\/www.salesforce.com\/mx\/blog\/wp-content\/themes\/salesforce-blog\/dist\/images\/offer-block\/offer-illustration-layout-three.png\" alt=\"\">\n\n\t\t<!-- Small Accent Illustration -->\n\t\t\t\t\t<img decoding=\"async\" class=\"wp-block-offer__graphics wp-block-offer__accent\" src=\"https:\/\/www.salesforce.com\/mx\/blog\/wp-content\/themes\/salesforce-blog\/dist\/images\/offer-block\/offer-accent-layout-three.png\" alt=\"\">\n\t\t\n\t\t<!-- Left Side Illustration -->\n\t\t\n\t\t<!-- Cloud Illustration -->\n\t\t\n\t<\/div>\n\n\n\n<p> <span id=\"authorRoot\" path=\"\/content\/blogs\/mx\/es\/authors\/\"><\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Desde MuleSoft proveemos software de integraci\u00f3n flexible y robusto que permite conectar aplicaciones, datos y dispositivos.<\/p>\n","protected":false},"author":1,"featured_media":948,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"sf_justforyou_enable_alt":true,"optimizely_content_id":"","post_meta_title":"","ai_synopsis":"","footnotes":""},"sf_topic":[12,95,451],"sf_content_type":[],"blog":[286,345],"coauthors":[4],"class_list":["post-949","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","sf_topic-digital-transformation","sf_topic-it","sf_topic-mulesoft","blog-digital-transformation","blog-it"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.2 (Yoast SEO v27.2) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Visual Studio Code: nacimiento, auge y su futuro en MuleSoft | Salesforce<\/title>\n<meta name=\"description\" content=\"Desde MuleSoft proveemos software de integraci\u00f3n flexible y robusto que permite conectar aplicaciones, datos y dispositivos.\" \/>\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.salesforce.com\/mx\/blog\/visual-studio-code\/\" \/>\n<meta property=\"og:locale\" content=\"es_MX\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Visual Studio Code: nacimiento, auge y su futuro en MuleSoft | Salesforce\" \/>\n<meta property=\"og:description\" content=\"Desde MuleSoft proveemos software de integraci\u00f3n flexible y robusto que permite conectar aplicaciones, datos y dispositivos.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.salesforce.com\/mx\/blog\/visual-studio-code\/\" \/>\n<meta property=\"og:site_name\" content=\"Salesforce\" \/>\n<meta property=\"article:published_time\" content=\"2023-09-07T17:26:40+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-10-22T19:12:41+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.salesforce.com\/mx\/blog\/wp-content\/uploads\/sites\/11\/2023\/09\/sp-blog-visual-code-mulesoft-inset-2.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"768\" \/>\n\t<meta property=\"og:image:height\" content=\"370\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Salesforce LATAM\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"digital-delivery-operations7076\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutos\" \/>\n\t<meta name=\"twitter:label3\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data3\" content=\"Salesforce LATAM\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.salesforce.com\/mx\/blog\/visual-studio-code\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.salesforce.com\/mx\/blog\/visual-studio-code\/\"},\"author\":[{\"@id\":\"https:\/\/www.salesforce.com\/mx\/blog\/#\/schema\/person\/image\/db53ece7ac036aafdb1246e656d3421d\"}],\"headline\":\"Visual Studio Code: nacimiento, auge y su futuro en MuleSoft\",\"datePublished\":\"2023-09-07T17:26:40+00:00\",\"dateModified\":\"2024-10-22T19:12:41+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.salesforce.com\/mx\/blog\/visual-studio-code\/\"},\"wordCount\":1137,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.salesforce.com\/mx\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.salesforce.com\/mx\/blog\/visual-studio-code\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.salesforce.com\/mx\/blog\/wp-content\/uploads\/sites\/11\/2023\/09\/sp-blog-visual-code-mulesoft-inset-2.jpg\",\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.salesforce.com\/mx\/blog\/visual-studio-code\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.salesforce.com\/mx\/blog\/visual-studio-code\/\",\"url\":\"https:\/\/www.salesforce.com\/mx\/blog\/visual-studio-code\/\",\"name\":\"Visual Studio Code: nacimiento, auge y su futuro en MuleSoft | Salesforce\",\"isPartOf\":{\"@id\":\"https:\/\/www.salesforce.com\/mx\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.salesforce.com\/mx\/blog\/visual-studio-code\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.salesforce.com\/mx\/blog\/visual-studio-code\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.salesforce.com\/mx\/blog\/wp-content\/uploads\/sites\/11\/2023\/09\/sp-blog-visual-code-mulesoft-inset-2.jpg\",\"datePublished\":\"2023-09-07T17:26:40+00:00\",\"dateModified\":\"2024-10-22T19:12:41+00:00\",\"description\":\"Desde MuleSoft proveemos software de integraci\u00f3n flexible y robusto que permite conectar aplicaciones, datos y dispositivos.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.salesforce.com\/mx\/blog\/visual-studio-code\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.salesforce.com\/mx\/blog\/visual-studio-code\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.salesforce.com\/mx\/blog\/visual-studio-code\/#primaryimage\",\"url\":\"https:\/\/www.salesforce.com\/mx\/blog\/wp-content\/uploads\/sites\/11\/2023\/09\/sp-blog-visual-code-mulesoft-inset-2.jpg\",\"contentUrl\":\"https:\/\/www.salesforce.com\/mx\/blog\/wp-content\/uploads\/sites\/11\/2023\/09\/sp-blog-visual-code-mulesoft-inset-2.jpg\",\"width\":768,\"height\":370,\"caption\":\"Visual Studio Code: nacimiento, auge y su futuro en MuleSoft\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.salesforce.com\/mx\/blog\/visual-studio-code\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.salesforce.com\/mx\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Visual Studio Code: nacimiento, auge y su futuro en MuleSoft\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.salesforce.com\/mx\/blog\/#website\",\"url\":\"https:\/\/www.salesforce.com\/mx\/blog\/\",\"name\":\"Salesforce\",\"description\":\"Noticias, consejos e ideas del l\u00edder global en la nube\",\"publisher\":{\"@id\":\"https:\/\/www.salesforce.com\/mx\/blog\/#organization\"},\"alternateName\":\"Salesforce LATAM Blog\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.salesforce.com\/mx\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.salesforce.com\/mx\/blog\/#organization\",\"name\":\"Salesforce\",\"url\":\"https:\/\/www.salesforce.com\/mx\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.salesforce.com\/mx\/blog\/#\/schema\/logo\/image\/\",\"url\":\"\",\"contentUrl\":\"\",\"caption\":\"Salesforce\"},\"image\":{\"@id\":\"https:\/\/www.salesforce.com\/mx\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.salesforce.com\/mx\/blog\/#\/schema\/person\/image\/db53ece7ac036aafdb1246e656d3421d\",\"name\":\"Salesforce LATAM\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.salesforce.com\/mx\/blog\/#\/schema\/person\/image\/6743583b146bf9f6d57d73590f53bef2\",\"url\":\"https:\/\/www.salesforce.com\/mx\/blog\/wp-content\/uploads\/sites\/11\/2023\/09\/salesforce-icon.webp?w=150&h=150&crop=1\",\"contentUrl\":\"https:\/\/www.salesforce.com\/mx\/blog\/wp-content\/uploads\/sites\/11\/2023\/09\/salesforce-icon.webp?w=150&h=150&crop=1\",\"width\":\"150\",\"height\":\"150\",\"caption\":\"Salesforce LATAM\"},\"description\":\"Somos una plataforma de gesti\u00f3n de relaciones con clientes (CRM) basada en la nube, que ayuda a las empresas a administrar sus operaciones de ventas, marketing, atenci\u00f3n al cliente y otras operaciones comerciales en un solo lugar.\",\"url\":\"https:\/\/www.salesforce.com\/mx\/blog\/author\/mexico\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Visual Studio Code: nacimiento, auge y su futuro en MuleSoft | Salesforce","description":"Desde MuleSoft proveemos software de integraci\u00f3n flexible y robusto que permite conectar aplicaciones, datos y dispositivos.","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.salesforce.com\/mx\/blog\/visual-studio-code\/","og_locale":"es_MX","og_type":"article","og_title":"Visual Studio Code: nacimiento, auge y su futuro en MuleSoft | Salesforce","og_description":"Desde MuleSoft proveemos software de integraci\u00f3n flexible y robusto que permite conectar aplicaciones, datos y dispositivos.","og_url":"https:\/\/www.salesforce.com\/mx\/blog\/visual-studio-code\/","og_site_name":"Salesforce","article_published_time":"2023-09-07T17:26:40+00:00","article_modified_time":"2024-10-22T19:12:41+00:00","og_image":[{"width":768,"height":370,"url":"https:\/\/www.salesforce.com\/mx\/blog\/wp-content\/uploads\/sites\/11\/2023\/09\/sp-blog-visual-code-mulesoft-inset-2.jpg","type":"image\/jpeg"}],"author":"Salesforce LATAM","twitter_card":"summary_large_image","twitter_misc":{"Escrito por":"digital-delivery-operations7076","Tiempo de lectura":"6 minutos","Written by":"Salesforce LATAM"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.salesforce.com\/mx\/blog\/visual-studio-code\/#article","isPartOf":{"@id":"https:\/\/www.salesforce.com\/mx\/blog\/visual-studio-code\/"},"author":[{"@id":"https:\/\/www.salesforce.com\/mx\/blog\/#\/schema\/person\/image\/db53ece7ac036aafdb1246e656d3421d"}],"headline":"Visual Studio Code: nacimiento, auge y su futuro en MuleSoft","datePublished":"2023-09-07T17:26:40+00:00","dateModified":"2024-10-22T19:12:41+00:00","mainEntityOfPage":{"@id":"https:\/\/www.salesforce.com\/mx\/blog\/visual-studio-code\/"},"wordCount":1137,"commentCount":0,"publisher":{"@id":"https:\/\/www.salesforce.com\/mx\/blog\/#organization"},"image":{"@id":"https:\/\/www.salesforce.com\/mx\/blog\/visual-studio-code\/#primaryimage"},"thumbnailUrl":"https:\/\/www.salesforce.com\/mx\/blog\/wp-content\/uploads\/sites\/11\/2023\/09\/sp-blog-visual-code-mulesoft-inset-2.jpg","inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.salesforce.com\/mx\/blog\/visual-studio-code\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.salesforce.com\/mx\/blog\/visual-studio-code\/","url":"https:\/\/www.salesforce.com\/mx\/blog\/visual-studio-code\/","name":"Visual Studio Code: nacimiento, auge y su futuro en MuleSoft | Salesforce","isPartOf":{"@id":"https:\/\/www.salesforce.com\/mx\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.salesforce.com\/mx\/blog\/visual-studio-code\/#primaryimage"},"image":{"@id":"https:\/\/www.salesforce.com\/mx\/blog\/visual-studio-code\/#primaryimage"},"thumbnailUrl":"https:\/\/www.salesforce.com\/mx\/blog\/wp-content\/uploads\/sites\/11\/2023\/09\/sp-blog-visual-code-mulesoft-inset-2.jpg","datePublished":"2023-09-07T17:26:40+00:00","dateModified":"2024-10-22T19:12:41+00:00","description":"Desde MuleSoft proveemos software de integraci\u00f3n flexible y robusto que permite conectar aplicaciones, datos y dispositivos.","breadcrumb":{"@id":"https:\/\/www.salesforce.com\/mx\/blog\/visual-studio-code\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.salesforce.com\/mx\/blog\/visual-studio-code\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.salesforce.com\/mx\/blog\/visual-studio-code\/#primaryimage","url":"https:\/\/www.salesforce.com\/mx\/blog\/wp-content\/uploads\/sites\/11\/2023\/09\/sp-blog-visual-code-mulesoft-inset-2.jpg","contentUrl":"https:\/\/www.salesforce.com\/mx\/blog\/wp-content\/uploads\/sites\/11\/2023\/09\/sp-blog-visual-code-mulesoft-inset-2.jpg","width":768,"height":370,"caption":"Visual Studio Code: nacimiento, auge y su futuro en MuleSoft"},{"@type":"BreadcrumbList","@id":"https:\/\/www.salesforce.com\/mx\/blog\/visual-studio-code\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.salesforce.com\/mx\/blog\/"},{"@type":"ListItem","position":2,"name":"Visual Studio Code: nacimiento, auge y su futuro en MuleSoft"}]},{"@type":"WebSite","@id":"https:\/\/www.salesforce.com\/mx\/blog\/#website","url":"https:\/\/www.salesforce.com\/mx\/blog\/","name":"Salesforce","description":"Noticias, consejos e ideas del l\u00edder global en la nube","publisher":{"@id":"https:\/\/www.salesforce.com\/mx\/blog\/#organization"},"alternateName":"Salesforce LATAM Blog","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.salesforce.com\/mx\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Organization","@id":"https:\/\/www.salesforce.com\/mx\/blog\/#organization","name":"Salesforce","url":"https:\/\/www.salesforce.com\/mx\/blog\/","logo":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.salesforce.com\/mx\/blog\/#\/schema\/logo\/image\/","url":"","contentUrl":"","caption":"Salesforce"},"image":{"@id":"https:\/\/www.salesforce.com\/mx\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.salesforce.com\/mx\/blog\/#\/schema\/person\/image\/db53ece7ac036aafdb1246e656d3421d","name":"Salesforce LATAM","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.salesforce.com\/mx\/blog\/#\/schema\/person\/image\/6743583b146bf9f6d57d73590f53bef2","url":"https:\/\/www.salesforce.com\/mx\/blog\/wp-content\/uploads\/sites\/11\/2023\/09\/salesforce-icon.webp?w=150&h=150&crop=1","contentUrl":"https:\/\/www.salesforce.com\/mx\/blog\/wp-content\/uploads\/sites\/11\/2023\/09\/salesforce-icon.webp?w=150&h=150&crop=1","width":"150","height":"150","caption":"Salesforce LATAM"},"description":"Somos una plataforma de gesti\u00f3n de relaciones con clientes (CRM) basada en la nube, que ayuda a las empresas a administrar sus operaciones de ventas, marketing, atenci\u00f3n al cliente y otras operaciones comerciales en un solo lugar.","url":"https:\/\/www.salesforce.com\/mx\/blog\/author\/mexico\/"}]}},"jetpack_featured_media_url":"https:\/\/www.salesforce.com\/mx\/blog\/wp-content\/uploads\/sites\/11\/2023\/09\/sp-blog-visual-code-mulesoft-inset-2.jpg","distributor_meta":false,"distributor_terms":false,"distributor_media":false,"distributor_original_site_name":"Salesforce","distributor_original_site_url":"https:\/\/www.salesforce.com\/mx\/blog","push-errors":false,"_links":{"self":[{"href":"https:\/\/www.salesforce.com\/mx\/blog\/wp-json\/wp\/v2\/posts\/949","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.salesforce.com\/mx\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.salesforce.com\/mx\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.salesforce.com\/mx\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.salesforce.com\/mx\/blog\/wp-json\/wp\/v2\/comments?post=949"}],"version-history":[{"count":4,"href":"https:\/\/www.salesforce.com\/mx\/blog\/wp-json\/wp\/v2\/posts\/949\/revisions"}],"predecessor-version":[{"id":4889,"href":"https:\/\/www.salesforce.com\/mx\/blog\/wp-json\/wp\/v2\/posts\/949\/revisions\/4889"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.salesforce.com\/mx\/blog\/wp-json\/wp\/v2\/media\/948"}],"wp:attachment":[{"href":"https:\/\/www.salesforce.com\/mx\/blog\/wp-json\/wp\/v2\/media?parent=949"}],"wp:term":[{"taxonomy":"sf_topic","embeddable":true,"href":"https:\/\/www.salesforce.com\/mx\/blog\/wp-json\/wp\/v2\/sf_topic?post=949"},{"taxonomy":"sf_content_type","embeddable":true,"href":"https:\/\/www.salesforce.com\/mx\/blog\/wp-json\/wp\/v2\/sf_content_type?post=949"},{"taxonomy":"blog","embeddable":true,"href":"https:\/\/www.salesforce.com\/mx\/blog\/wp-json\/wp\/v2\/blog?post=949"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.salesforce.com\/mx\/blog\/wp-json\/wp\/v2\/coauthors?post=949"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}