{"id":4288,"date":"2021-06-30T15:12:44","date_gmt":"2021-06-30T22:12:44","guid":{"rendered":"https:\/\/salesforcedevops.net\/?p=4288"},"modified":"2021-12-06T09:39:09","modified_gmt":"2021-12-06T16:39:09","slug":"salesforce-extension-pack-review-breakthrough-tool-needs-improvement","status":"publish","type":"post","link":"https:\/\/salesforcedevops.net\/index.php\/2021\/06\/30\/salesforce-extension-pack-review-breakthrough-tool-needs-improvement\/","title":{"rendered":"Salesforce Extension Pack Review: Breakthrough Tool Needs Improvement"},"content":{"rendered":"\n<p class=\"has-drop-cap wp-block-paragraph\">Before <a href=\"https:\/\/code.visualstudio.com\/docs\/remote\/remote-overview\">Visual Studio Code<\/a> (VS Code) from Microsoft became the preferred integrated developer environment (IDE) for Salesforce, developers struggled with Java-based Eclipse because it was the only supported IDE. Now, in 2021 this has all changed with VS Code plus Salesforce Extension Pack integrated with command line utilities resulting in much faster Salesforce devops pipelines.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">To help spread the word about this fantastic development, and to chime in with my comments and observations about the current state of the product, here is my detailed review of Salesforce Extension Pack for VS Code. You can check out <a href=\"https:\/\/youtu.be\/sInYK7yCfxU\">my video review here<\/a>.<\/p>\n\n\n\t\t\t\t<div class=\"wp-block-uagb-table-of-contents uagb-toc__align-left uagb-toc__columns-1  uagb-block-f16df6f4      \"\n\t\t\t\t\tdata-scroll= \"1\"\n\t\t\t\t\tdata-offset= \"30\"\n\t\t\t\t\tstyle=\"\"\n\t\t\t\t>\n\t\t\t\t<div class=\"uagb-toc__wrap\">\n\t\t\t\t\t\t<div class=\"uagb-toc__title\">\n\t\t\t\t\t\t\tTable Of Contents\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"uagb-toc__list-wrap \">\n\t\t\t\t\t\t<ol class=\"uagb-toc__list\"><li class=\"uagb-toc__list\"><a href=\"#keenan-vision-scorecard-rating\" class=\"uagb-toc-link__trigger\">Keenan Vision Scorecard Rating<\/a><li class=\"uagb-toc__list\"><a href=\"#salesforce-bridges-the-gap-with-salesforce-extension-pack-and-sfdx-cli\" class=\"uagb-toc-link__trigger\">Salesforce Bridges the Gap with Salesforce Extension Pack and SFDX-CLI<\/a><li class=\"uagb-toc__list\"><a href=\"#salesforce-extension-pack-components\" class=\"uagb-toc-link__trigger\">Salesforce Extension Pack Components<\/a><li class=\"uagb-toc__list\"><a href=\"#hands-on-experiences\" class=\"uagb-toc-link__trigger\">Hands On Experiences<\/a><ul class=\"uagb-toc__list\"><li class=\"uagb-toc__list\"><a href=\"#front-end-development-recently-got-better\" class=\"uagb-toc-link__trigger\">Front-End Development Recently Got Better<\/a><li class=\"uagb-toc__list\"><li class=\"uagb-toc__list\"><a href=\"#using-sfdx-cli-with-nodejs-and-npm\" class=\"uagb-toc-link__trigger\">Using SFDX-CLI with NodeJS and NPM<\/a><li class=\"uagb-toc__list\"><li class=\"uagb-toc__list\"><a href=\"#too-many-version-updates\" class=\"uagb-toc-link__trigger\">Too Many Version Updates<\/a><li class=\"uagb-toc__list\"><li class=\"uagb-toc__list\"><a href=\"#apex-language-server-is-a-pain\" class=\"uagb-toc-link__trigger\">Apex Language Server is a Pain<\/a><li class=\"uagb-toc__list\"><li class=\"uagb-toc__list\"><a href=\"#using-support-for-dx\" class=\"uagb-toc-link__trigger\">Using Support for DX<\/a><li class=\"uagb-toc__list\"><li class=\"uagb-toc__list\"><a href=\"#create-a-new-scratch-org\" class=\"uagb-toc-link__trigger\">Create a New Scratch Org<\/a><li class=\"uagb-toc__list\"><li class=\"uagb-toc__list\"><a href=\"#update-existing-org\" class=\"uagb-toc-link__trigger\">Update Existing Org<\/a><li class=\"uagb-toc__list\"><li class=\"uagb-toc__list\"><a href=\"#use-apex-replay-debugger\" class=\"uagb-toc-link__trigger\">Use Apex Replay Debugger<\/a><\/li><\/ul><\/li><li class=\"uagb-toc__list\"><a href=\"#conclusions\" class=\"uagb-toc-link__trigger\">Conclusions<\/a><\/ul><\/ol>\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\n\n\n<h2 class=\"wp-block-heading\" id=\"h-keenan-vision-scorecard-rating\">Keenan Vision Scorecard Rating<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Salesforce Extension Pack gets a 3.7 <a href=\"https:\/\/origin.salesforcedevops.net\/index.php\/2021\/06\/30\/salesforcedevops-net-launches-keenan-vision-rating\/\">Keenan Vision Rating<\/a> score. Here is how the product scored on each component. Be sure to <a href=\"https:\/\/origin.salesforcedevops.net\/index.php\/2021\/06\/30\/salesforcedevops-net-launches-keenan-vision-rating\/\">check this article<\/a> to see how the components are weighted for the final score.<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Ease of Use: 2<\/li><li>Features: 5<\/li><li>How Much Does Vern Recommend: 5<\/li><li>Value: 3<\/li><li>Support: 2<\/li><\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Keenan Vision Rating: 3.7<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Pros: An essential tool for Salesforce developers, speeds devops pipelines<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Cons: Hard to install, Salesforce support needs improvement<\/strong><\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-salesforce-bridges-the-gap-with-salesforce-extension-pack-and-sfdx-cli\">Salesforce Bridges the Gap with Salesforce Extension Pack and SFDX-CLI<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">SFDX-CLI is the key architectural component that connects simple scripting capabilities with many crucial metadata API and DML functions of Salesforce. Introduced in late 2017, SFDX-CLI plus VS Code integration provides a key touchpoint between the open source devops world and the Salesforce platform.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">SFDX-CLI gives devops engineers a scriptable interface to a Salesforce org, which enables the orchestration of devops pipelines. Now, by marrying SFDX-CLI with the most popular interactive developer environment (IDE), Salesforce Extension Pack delivers a powerful and extensible working environment for Salesforce developers.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-salesforce-extension-pack-components\">Salesforce Extension Pack Components<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The Salesforce Extension Pack is a collection of eight separate VS Code extensions, which should be installed together by first installing the extension pack.<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Apex: The Apex Language Server<\/li><li>Salesforce CLI Integration<\/li><li>Lightning Web Components<\/li><li>Apex Interactive Debugger<\/li><li>Aura Components<\/li><li>SLDS Validator: The Salesforce Lightning Design System Validator<\/li><li>Apex Replay Debugger<\/li><\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">I will cover the most used parts of the Pack for back-end development, which are Apex, SFDX-CLI integration, and the Apex Replay Debugger. One component, the Apex Interactive Debugger, only applies to partners and is not used by most developers.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-hands-on-experiences\">Hands On Experiences<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">In this review of Salesforce Extension Pack, I evaluate my experiences doing these tasks:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Create a scratch org, add metadata components, perform low-code updates, and save in new source code repository<\/li><li>Use SFDX-CLI to update an Apex class in a production org without a sandbox<\/li><li>Debug Apex REST with the Apex Replay Debugger<\/li><\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Before I get into those experiences, there are some general impressions, or frankly complaints, that need to be listed.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-front-end-development-recently-got-better\">Front-End Development Recently Got Better<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">I did not formally test using Salesforce Extension Pack and VS Code for front-end development in this review. But I have set up a local development server for Lightning Web Component (LWC) development. &nbsp;This works by installing the \u201clwc-dev-server\u201d SFDX-CLI plugin, and then running the server in another terminal window with the command \u201csfdx force:lightning:lwc:start\u201d. That starts up a process that will access Salesforce data and render a page on a local HTTP port, while using the local VS Code workspace for source code.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This changes the time between saving and seeing a result from minutes to seconds. Now, when a developer saves a JavaScript, HTML, or CSS file in their project, the screen is quickly updated. By avoiding a metadata upload to the Salesforce, a front-end developer\u2019s time may be used to produce more iterative and pixel-perfect work.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-using-sfdx-cli-with-nodejs-and-npm\">Using SFDX-CLI with NodeJS and NPM<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">I am sure many readers share a complaint I have about using SFDX-CLI. Namely, that I could not get the darn thing to work! I either had a problem with NodeJS or NPM or an issue about permissions. It was maddening and frustrating.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">To solve this problem, I became extremely strict about how I used and installed NPM, and only used <a href=\"https:\/\/github.com\/nvm-sh\/nvm\">Node Version Manager<\/a> to install NodeJS and NPM on Linux implementations. If I wanted to do something else with NPM, like write a React app, then I would use NVM to install a new version of NodeJS\/NPM and switch to that version. Now with my strict use of NVM, I always keep my SFDX-CLI NPM installations separate from other NPM installations.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">I wonder why does Salesforce depend on NodeJS for such a critical function? SFDX-CLI depends on thousands of NPM modules, and who knows when one of those modules becomes infected with a cyberattack vector!<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">My wish is to find a way to preserve the emerging SFDX-CLI ecosystem, but to encapsulate the utility into a single Linux\/Mac\/Windows binary file. I am not sure this can be done and still preserve the innovative plugins that have already emerged. But distributing a single binary file is how more modern CLIs are built nowadays with languages like Go.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-too-many-version-updates\">Too Many Version Updates<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">While I appreciate good security and frequent updates, Salesforce Extension Pack requires too much attention from developers for version management. I constantly see new updates, whether it is a VS Code extension or the SFDX-CLI\u2019s NPM installation. Salesforce Extension Pack\u2019s need for updates greatly outpaces other major extensions, such as the Go language server or Red Hat Java.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Please do everybody a favor and slow down the version releases.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-apex-language-server-is-a-pain\">Apex Language Server is a Pain<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The other installation chore that blocks many would-be Salesforce Extension Pack users is installing Java on the local workstation that runs VS Code. There is an endless variety of Java options available for Mac and Windows users, and there really are not many straightforward ways around an awkward two-step procedure to become Java-compliant.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Also, since the Apex Language Server makes extensive use of Java, which eats up memory and CPU resources, this makes Salesforce Extension Pack run slowly on all be the newest desktop computers.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">I finally got the performance I needed when I got Java off my workstation. This entailed using a VS Code Remote server operating in my current network segment. See an <a href=\"https:\/\/origin.salesforcedevops.net\/index.php\/2021\/06\/18\/how-to-power-up-sfdx-cli-with-vs-code-remote-ssh-and-speed-up-salesforce-development\/\">earlier How-To article<\/a> for more details on using VS Code Remote to speed up VS Code development.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-using-support-for-dx\">Using Support for DX<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">I am afraid that I too have had frustrating experiences with Salesforce support. For me, the most frustrating thing is handling inbound callbacks at their convenience. Or, with myself being a native English speaker, I sometimes cannot understand what the support representative is saying. Sometimes even the VoIP quality just seems bad!<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">I have had an occasion to call Salesforce Support about an issue I was having with the Apex Replay Debugger. I later discovered my problem was metadata synchronization issue of my own making, but that was after spending time with Salesforce support that was not productive.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In general, if a new Salesforce developer is not part of a larger company, a local user group, or other self-help resource, hitting roadblocks and error messages when working with Salesforce Extension Pack can be very frustrating.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-create-a-new-scratch-org\">Create a New Scratch Org<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Creating new scratch orgs worked smoothly with no problem by following examples in the Salesforce documentation. Again, this was accomplished only after following a strict SFDX-CLI and VS Code installation and setup procedure.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The idea behind the Salesforce Scratch Org is to create a Salesforce environment with a very restricted set of metadata behind it. So little, in fact, that any good Salesforce developer should be able to read every file and understand why it is in a metadata update package. That is why Scratch Orgs are ideal for creating 2<sup>nd<\/sup> generation packages and other forms for source-based Salesforce development.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">To get started I created a new SFDX project with no special flags. Next, for me to create a new Scratch Org it must be linked to a Salesforce Dev Hub. If you do not have a Dev Hub you can setup a new one for free using a Salesforce Developer account.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Using my standard SFDX environment, I used the remote device login procedure to authenticate my session for creating scratch orgs. I then used these commands to generate and open a new scratch org:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">sfdx force:org:create -f .\/config\/project-scratch-def.json -a render-dx \u2013setdefaultusername<br>sfdx force:org:open -u render-dx<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">A CTRL-&lt;Click&gt; on the generated URL opened the org in my default browser window. To test my new Scratch Org setup, I created some metadata changes, and then copied some Apex Classes into my development directory. I was able to synchronize my local copy of the project with the scratch org using the \u201csfdx force:source:push\u201d and \u201csfdx force:source:pull\u201d commands.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Finally, I was able to save my work on a new GitHub repository so it may be shared with other developers using the VS Code integrations with GitHub and GIT.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-update-existing-org\">Update Existing Org<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Using SFDX-CLI I downloaded metadata for an existing production org, updated Apex classes, and then deployed the metadata back to the production org directly, invoking Apex tests, without a sandbox.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This technique is a useful way to use Salesforce Extension Pack for org maintenance. For this part of the review, I created a new project with SFDX-CLI that downloads a pre-programmed subset of metadata from an existing org using these commands:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">sfdx force:project:create --projectname=mybranch \u2013manifest<br>cd mybranch<br>sfdx auth:device:login --setdefaultusername --setalias myUser<br>sfdx force:source:retrieve --manifest=manifest\/package.xml<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">I then used VS Code to modify the downloaded metadata and Apex code. Later, I successfully uploaded those changes to my production org using this command:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">sfdx force:source:deploy \u2013testingflag goes here<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-use-apex-replay-debugger\">Use Apex Replay Debugger<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">One of the most frustrating moments in any developer\u2019s workday is when an impossible bug arises. After you have tried writing out log files and other tricks, it is finally time to break out the symbolic debugger to examine the execution of an Apex class step-by-step.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Since regular users cannot gain access to a real, live debugger session in a Salesforce tenant, there is something that replaces it called the Apex Replay Debugger. This is where you can set the Apex debug log to generate enough information that it exactly describes what is happening with every variable and statement in an Apex procedure call stack. Sounds handy, right?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">I was able to use the Apex Replay Debugger in VS Code using a remote SSH server in a gigabit LAN. I used VS Code commands to download debug logs, load them up for a debugging run, set breakpoints in my Apex code, check memory values, and other debugging tasks.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&nbsp;I find the Apex Replay Debugger to be invaluable. This is especially true when tracking down issues with Apex code I use in a REST endpoint.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-conclusions\">Conclusions<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Salesforce Extension Pack delivers on its promise to augment VS Code, which makes it a powerful and productive platform for day-to-day Salesforce developer activities. With Salesforce Extension Pack installed, using VS Code and Salesforce CLI (SFDX-CLI) dramatically increases a developer\u2019s productivity when compared to using Eclipse or the Developer Console.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">There is still plenty to improve upon, such as the awkward installation procedure and other glitches that can turn into showstoppers. I wish that Apex language server were more lightweight, and that Java was not needed as well. And please slow down with all the versions!<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Despite any ratings or other reservations, I wholeheartedly recommend that all new and existing Salesforce developers immediately adopt the best, free Salesforce development system available. Hopefully by seeing how using these tools improve the daily workflow of a Salesforce developer, you and your team members will be inspired to make the leap to the future today.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Before Visual Studio Code (VS Code) from Microsoft became the preferred integrated developer environment (IDE) for Salesforce, developers struggled with Java-based Eclipse because it was the only supported IDE. Now,&hellip;<\/p>\n","protected":false},"author":1,"featured_media":4321,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_uag_custom_page_level_css":"","footnotes":""},"categories":[159],"tags":[162,66],"post_series":[299],"class_list":["post-4288","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-review","tag-salesforce-extension-pack","tag-vs-code","post_series-product-and-service-reviews","entry","has-media"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v28.1 (Yoast SEO v28.2) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Salesforce Extension Pack Review: Breakthrough Tool Needs Improvement - SalesforceDevops.net<\/title>\n<meta name=\"description\" content=\"In this formal review of Salesforce Extension Pack for VS Code the product is graded on usability, customer service, and integration.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/salesforcedevops.net\/index.php\/2021\/06\/30\/salesforce-extension-pack-review-breakthrough-tool-needs-improvement\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Salesforce Extension Pack Review: Breakthrough Tool Needs Improvement - SalesforceDevops.net\" \/>\n<meta property=\"og:description\" content=\"In this formal review of Salesforce Extension Pack for VS Code the product is graded on usability, customer service, and integration.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/salesforcedevops.net\/index.php\/2021\/06\/30\/salesforce-extension-pack-review-breakthrough-tool-needs-improvement\/\" \/>\n<meta property=\"og:site_name\" content=\"SalesforceDevops.net\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/salesforcedevopsnet\" \/>\n<meta property=\"article:published_time\" content=\"2021-06-30T22:12:44+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-12-06T16:39:09+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/salesforcedevops.net\/wp-content\/uploads\/2021\/06\/Extension-Pack-review-VideoCoverPage.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1920\" \/>\n\t<meta property=\"og:image:height\" content=\"1080\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Vernon Keenan\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@salesforcedevop\" \/>\n<meta name=\"twitter:site\" content=\"@salesforcedevop\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Vernon Keenan\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"9 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"TechArticle\",\"@id\":\"https:\\\/\\\/salesforcedevops.net\\\/index.php\\\/2021\\\/06\\\/30\\\/salesforce-extension-pack-review-breakthrough-tool-needs-improvement\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/salesforcedevops.net\\\/index.php\\\/2021\\\/06\\\/30\\\/salesforce-extension-pack-review-breakthrough-tool-needs-improvement\\\/\"},\"author\":{\"name\":\"Vernon Keenan\",\"@id\":\"https:\\\/\\\/salesforcedevops.net\\\/#\\\/schema\\\/person\\\/f681893c994bc40406bb391546cd7ac8\"},\"headline\":\"Salesforce Extension Pack Review: Breakthrough Tool Needs Improvement\",\"datePublished\":\"2021-06-30T22:12:44+00:00\",\"dateModified\":\"2021-12-06T16:39:09+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/salesforcedevops.net\\\/index.php\\\/2021\\\/06\\\/30\\\/salesforce-extension-pack-review-breakthrough-tool-needs-improvement\\\/\"},\"wordCount\":1900,\"publisher\":{\"@id\":\"https:\\\/\\\/salesforcedevops.net\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/salesforcedevops.net\\\/index.php\\\/2021\\\/06\\\/30\\\/salesforce-extension-pack-review-breakthrough-tool-needs-improvement\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/salesforcedevops.net\\\/wp-content\\\/uploads\\\/2021\\\/06\\\/Extension-Pack-review-VideoCoverPage.png\",\"keywords\":[\"Salesforce Extension Pack\",\"VS Code\"],\"articleSection\":[\"Review\"],\"inLanguage\":\"en-US\",\"copyrightYear\":\"2021\",\"copyrightHolder\":{\"@id\":\"https:\\\/\\\/salesforcedevops.net\\\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/salesforcedevops.net\\\/index.php\\\/2021\\\/06\\\/30\\\/salesforce-extension-pack-review-breakthrough-tool-needs-improvement\\\/\",\"url\":\"https:\\\/\\\/salesforcedevops.net\\\/index.php\\\/2021\\\/06\\\/30\\\/salesforce-extension-pack-review-breakthrough-tool-needs-improvement\\\/\",\"name\":\"Salesforce Extension Pack Review: Breakthrough Tool Needs Improvement - SalesforceDevops.net\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/salesforcedevops.net\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/salesforcedevops.net\\\/index.php\\\/2021\\\/06\\\/30\\\/salesforce-extension-pack-review-breakthrough-tool-needs-improvement\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/salesforcedevops.net\\\/index.php\\\/2021\\\/06\\\/30\\\/salesforce-extension-pack-review-breakthrough-tool-needs-improvement\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/salesforcedevops.net\\\/wp-content\\\/uploads\\\/2021\\\/06\\\/Extension-Pack-review-VideoCoverPage.png\",\"datePublished\":\"2021-06-30T22:12:44+00:00\",\"dateModified\":\"2021-12-06T16:39:09+00:00\",\"description\":\"In this formal review of Salesforce Extension Pack for VS Code the product is graded on usability, customer service, and integration.\",\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/salesforcedevops.net\\\/index.php\\\/2021\\\/06\\\/30\\\/salesforce-extension-pack-review-breakthrough-tool-needs-improvement\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/salesforcedevops.net\\\/index.php\\\/2021\\\/06\\\/30\\\/salesforce-extension-pack-review-breakthrough-tool-needs-improvement\\\/#primaryimage\",\"url\":\"https:\\\/\\\/salesforcedevops.net\\\/wp-content\\\/uploads\\\/2021\\\/06\\\/Extension-Pack-review-VideoCoverPage.png\",\"contentUrl\":\"https:\\\/\\\/salesforcedevops.net\\\/wp-content\\\/uploads\\\/2021\\\/06\\\/Extension-Pack-review-VideoCoverPage.png\",\"width\":1920,\"height\":1080,\"caption\":\"Salesforce Extension Pack Review\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/salesforcedevops.net\\\/#website\",\"url\":\"https:\\\/\\\/salesforcedevops.net\\\/\",\"name\":\"SalesforceDevops.net\",\"description\":\"Elevating Salesforce Devops with Insights and Innovation\",\"publisher\":{\"@id\":\"https:\\\/\\\/salesforcedevops.net\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/salesforcedevops.net\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/salesforcedevops.net\\\/#organization\",\"name\":\"SalesforceDevops.net\",\"url\":\"https:\\\/\\\/salesforcedevops.net\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/salesforcedevops.net\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/salesforcedevops.net\\\/wp-content\\\/uploads\\\/2021\\\/03\\\/7760e9c16fc75961659174739887197e-sticker.png\",\"contentUrl\":\"https:\\\/\\\/salesforcedevops.net\\\/wp-content\\\/uploads\\\/2021\\\/03\\\/7760e9c16fc75961659174739887197e-sticker.png\",\"width\":421,\"height\":421,\"caption\":\"SalesforceDevops.net\"},\"image\":{\"@id\":\"https:\\\/\\\/salesforcedevops.net\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/salesforcedevopsnet\",\"https:\\\/\\\/x.com\\\/salesforcedevop\",\"https:\\\/\\\/www.linkedin.com\\\/in\\\/vernonkeenan\",\"https:\\\/\\\/www.youtube.com\\\/channel\\\/UCOgOn9rD5gyXSOmV7-Q0n7g\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/salesforcedevops.net\\\/#\\\/schema\\\/person\\\/f681893c994bc40406bb391546cd7ac8\",\"name\":\"Vernon Keenan\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/f1183f1ebb5c059e052825760f95b25244abc5ef832145327f298f3697f980c7?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/f1183f1ebb5c059e052825760f95b25244abc5ef832145327f298f3697f980c7?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/f1183f1ebb5c059e052825760f95b25244abc5ef832145327f298f3697f980c7?s=96&d=mm&r=g\",\"caption\":\"Vernon Keenan\"},\"description\":\"Vernon Keenan (LinkedIn) works as a senior information technology industry consultant based in Oakland, California. He earned his B.Sc. in Biomedical Engineering at Northwestern University where he programmed a PDP-8 with punched paper tape. In his 34-year-long career he has been a teacher, SPSS programmer, database administrator, clinical researcher, technology journalist, product marketing manager, market researcher, management consultant, and industry analyst. Most recently he is a telecom operator, cloud architect, Go devops engineer and Salesforce Developer\\\/Architect. For inquiries about Salesforce strategy briefings or solution architect work please contact Vern directly at +1-510-679-1900 or vern@vernonkeenan.com.\",\"sameAs\":[\"https:\\\/\\\/ceres-gw.tnxs.net\",\"https:\\\/\\\/linkedin.com\\\/in\\\/vernonkeenan\",\"https:\\\/\\\/x.com\\\/salesforcedevop\"],\"url\":\"https:\\\/\\\/salesforcedevops.net\\\/index.php\\\/author\\\/vern\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Salesforce Extension Pack Review: Breakthrough Tool Needs Improvement - SalesforceDevops.net","description":"In this formal review of Salesforce Extension Pack for VS Code the product is graded on usability, customer service, and integration.","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:\/\/salesforcedevops.net\/index.php\/2021\/06\/30\/salesforce-extension-pack-review-breakthrough-tool-needs-improvement\/","og_locale":"en_US","og_type":"article","og_title":"Salesforce Extension Pack Review: Breakthrough Tool Needs Improvement - SalesforceDevops.net","og_description":"In this formal review of Salesforce Extension Pack for VS Code the product is graded on usability, customer service, and integration.","og_url":"https:\/\/salesforcedevops.net\/index.php\/2021\/06\/30\/salesforce-extension-pack-review-breakthrough-tool-needs-improvement\/","og_site_name":"SalesforceDevops.net","article_publisher":"https:\/\/www.facebook.com\/salesforcedevopsnet","article_published_time":"2021-06-30T22:12:44+00:00","article_modified_time":"2021-12-06T16:39:09+00:00","og_image":[{"width":1920,"height":1080,"url":"https:\/\/salesforcedevops.net\/wp-content\/uploads\/2021\/06\/Extension-Pack-review-VideoCoverPage.png","type":"image\/png"}],"author":"Vernon Keenan","twitter_card":"summary_large_image","twitter_creator":"@salesforcedevop","twitter_site":"@salesforcedevop","twitter_misc":{"Written by":"Vernon Keenan","Est. reading time":"9 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"TechArticle","@id":"https:\/\/salesforcedevops.net\/index.php\/2021\/06\/30\/salesforce-extension-pack-review-breakthrough-tool-needs-improvement\/#article","isPartOf":{"@id":"https:\/\/salesforcedevops.net\/index.php\/2021\/06\/30\/salesforce-extension-pack-review-breakthrough-tool-needs-improvement\/"},"author":{"name":"Vernon Keenan","@id":"https:\/\/salesforcedevops.net\/#\/schema\/person\/f681893c994bc40406bb391546cd7ac8"},"headline":"Salesforce Extension Pack Review: Breakthrough Tool Needs Improvement","datePublished":"2021-06-30T22:12:44+00:00","dateModified":"2021-12-06T16:39:09+00:00","mainEntityOfPage":{"@id":"https:\/\/salesforcedevops.net\/index.php\/2021\/06\/30\/salesforce-extension-pack-review-breakthrough-tool-needs-improvement\/"},"wordCount":1900,"publisher":{"@id":"https:\/\/salesforcedevops.net\/#organization"},"image":{"@id":"https:\/\/salesforcedevops.net\/index.php\/2021\/06\/30\/salesforce-extension-pack-review-breakthrough-tool-needs-improvement\/#primaryimage"},"thumbnailUrl":"https:\/\/salesforcedevops.net\/wp-content\/uploads\/2021\/06\/Extension-Pack-review-VideoCoverPage.png","keywords":["Salesforce Extension Pack","VS Code"],"articleSection":["Review"],"inLanguage":"en-US","copyrightYear":"2021","copyrightHolder":{"@id":"https:\/\/salesforcedevops.net\/#organization"}},{"@type":"WebPage","@id":"https:\/\/salesforcedevops.net\/index.php\/2021\/06\/30\/salesforce-extension-pack-review-breakthrough-tool-needs-improvement\/","url":"https:\/\/salesforcedevops.net\/index.php\/2021\/06\/30\/salesforce-extension-pack-review-breakthrough-tool-needs-improvement\/","name":"Salesforce Extension Pack Review: Breakthrough Tool Needs Improvement - SalesforceDevops.net","isPartOf":{"@id":"https:\/\/salesforcedevops.net\/#website"},"primaryImageOfPage":{"@id":"https:\/\/salesforcedevops.net\/index.php\/2021\/06\/30\/salesforce-extension-pack-review-breakthrough-tool-needs-improvement\/#primaryimage"},"image":{"@id":"https:\/\/salesforcedevops.net\/index.php\/2021\/06\/30\/salesforce-extension-pack-review-breakthrough-tool-needs-improvement\/#primaryimage"},"thumbnailUrl":"https:\/\/salesforcedevops.net\/wp-content\/uploads\/2021\/06\/Extension-Pack-review-VideoCoverPage.png","datePublished":"2021-06-30T22:12:44+00:00","dateModified":"2021-12-06T16:39:09+00:00","description":"In this formal review of Salesforce Extension Pack for VS Code the product is graded on usability, customer service, and integration.","inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/salesforcedevops.net\/index.php\/2021\/06\/30\/salesforce-extension-pack-review-breakthrough-tool-needs-improvement\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/salesforcedevops.net\/index.php\/2021\/06\/30\/salesforce-extension-pack-review-breakthrough-tool-needs-improvement\/#primaryimage","url":"https:\/\/salesforcedevops.net\/wp-content\/uploads\/2021\/06\/Extension-Pack-review-VideoCoverPage.png","contentUrl":"https:\/\/salesforcedevops.net\/wp-content\/uploads\/2021\/06\/Extension-Pack-review-VideoCoverPage.png","width":1920,"height":1080,"caption":"Salesforce Extension Pack Review"},{"@type":"WebSite","@id":"https:\/\/salesforcedevops.net\/#website","url":"https:\/\/salesforcedevops.net\/","name":"SalesforceDevops.net","description":"Elevating Salesforce Devops with Insights and Innovation","publisher":{"@id":"https:\/\/salesforcedevops.net\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/salesforcedevops.net\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/salesforcedevops.net\/#organization","name":"SalesforceDevops.net","url":"https:\/\/salesforcedevops.net\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/salesforcedevops.net\/#\/schema\/logo\/image\/","url":"https:\/\/salesforcedevops.net\/wp-content\/uploads\/2021\/03\/7760e9c16fc75961659174739887197e-sticker.png","contentUrl":"https:\/\/salesforcedevops.net\/wp-content\/uploads\/2021\/03\/7760e9c16fc75961659174739887197e-sticker.png","width":421,"height":421,"caption":"SalesforceDevops.net"},"image":{"@id":"https:\/\/salesforcedevops.net\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/salesforcedevopsnet","https:\/\/x.com\/salesforcedevop","https:\/\/www.linkedin.com\/in\/vernonkeenan","https:\/\/www.youtube.com\/channel\/UCOgOn9rD5gyXSOmV7-Q0n7g"]},{"@type":"Person","@id":"https:\/\/salesforcedevops.net\/#\/schema\/person\/f681893c994bc40406bb391546cd7ac8","name":"Vernon Keenan","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/f1183f1ebb5c059e052825760f95b25244abc5ef832145327f298f3697f980c7?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/f1183f1ebb5c059e052825760f95b25244abc5ef832145327f298f3697f980c7?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/f1183f1ebb5c059e052825760f95b25244abc5ef832145327f298f3697f980c7?s=96&d=mm&r=g","caption":"Vernon Keenan"},"description":"Vernon Keenan (LinkedIn) works as a senior information technology industry consultant based in Oakland, California. He earned his B.Sc. in Biomedical Engineering at Northwestern University where he programmed a PDP-8 with punched paper tape. In his 34-year-long career he has been a teacher, SPSS programmer, database administrator, clinical researcher, technology journalist, product marketing manager, market researcher, management consultant, and industry analyst. Most recently he is a telecom operator, cloud architect, Go devops engineer and Salesforce Developer\/Architect. For inquiries about Salesforce strategy briefings or solution architect work please contact Vern directly at +1-510-679-1900 or vern@vernonkeenan.com.","sameAs":["https:\/\/ceres-gw.tnxs.net","https:\/\/linkedin.com\/in\/vernonkeenan","https:\/\/x.com\/salesforcedevop"],"url":"https:\/\/salesforcedevops.net\/index.php\/author\/vern\/"}]}},"uagb_featured_image_src":{"full":["https:\/\/salesforcedevops.net\/wp-content\/uploads\/2021\/06\/Extension-Pack-review-VideoCoverPage.png",1920,1080,false],"thumbnail":["https:\/\/salesforcedevops.net\/wp-content\/uploads\/2021\/06\/Extension-Pack-review-VideoCoverPage-150x150.png",150,150,true],"medium":["https:\/\/salesforcedevops.net\/wp-content\/uploads\/2021\/06\/Extension-Pack-review-VideoCoverPage-300x169.png",300,169,true],"medium_large":["https:\/\/salesforcedevops.net\/wp-content\/uploads\/2021\/06\/Extension-Pack-review-VideoCoverPage-768x432.png",768,432,true],"large":["https:\/\/salesforcedevops.net\/wp-content\/uploads\/2021\/06\/Extension-Pack-review-VideoCoverPage-1024x576.png",980,551,true],"1536x1536":["https:\/\/salesforcedevops.net\/wp-content\/uploads\/2021\/06\/Extension-Pack-review-VideoCoverPage-1536x864.png",1536,864,true],"2048x2048":["https:\/\/salesforcedevops.net\/wp-content\/uploads\/2021\/06\/Extension-Pack-review-VideoCoverPage.png",1920,1080,false],"lightbox":["https:\/\/salesforcedevops.net\/wp-content\/uploads\/2021\/06\/Extension-Pack-review-VideoCoverPage.png",1500,844,false],"search_results":["https:\/\/salesforcedevops.net\/wp-content\/uploads\/2021\/06\/Extension-Pack-review-VideoCoverPage-125x125.png",125,125,true],"blog_entry":["https:\/\/salesforcedevops.net\/wp-content\/uploads\/2021\/06\/Extension-Pack-review-VideoCoverPage.png",750,422,false],"blog_post":["https:\/\/salesforcedevops.net\/wp-content\/uploads\/2021\/06\/Extension-Pack-review-VideoCoverPage.png",750,422,false],"blog_post_full":["https:\/\/salesforcedevops.net\/wp-content\/uploads\/2021\/06\/Extension-Pack-review-VideoCoverPage.png",1920,1080,false],"blog_related":["https:\/\/salesforcedevops.net\/wp-content\/uploads\/2021\/06\/Extension-Pack-review-VideoCoverPage.png",1920,1080,false],"gallery":["https:\/\/salesforcedevops.net\/wp-content\/uploads\/2021\/06\/Extension-Pack-review-VideoCoverPage.png",1920,1080,false]},"uagb_author_info":{"display_name":"Vernon Keenan","author_link":"https:\/\/salesforcedevops.net\/index.php\/author\/vern\/"},"uagb_comment_info":1,"uagb_excerpt":"Before Visual Studio Code (VS Code) from Microsoft became the preferred integrated developer environment (IDE) for Salesforce, developers struggled with Java-based Eclipse because it was the only supported IDE. Now,&hellip;","_links":{"self":[{"href":"https:\/\/salesforcedevops.net\/index.php\/wp-json\/wp\/v2\/posts\/4288","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/salesforcedevops.net\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/salesforcedevops.net\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/salesforcedevops.net\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/salesforcedevops.net\/index.php\/wp-json\/wp\/v2\/comments?post=4288"}],"version-history":[{"count":0,"href":"https:\/\/salesforcedevops.net\/index.php\/wp-json\/wp\/v2\/posts\/4288\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/salesforcedevops.net\/index.php\/wp-json\/wp\/v2\/media\/4321"}],"wp:attachment":[{"href":"https:\/\/salesforcedevops.net\/index.php\/wp-json\/wp\/v2\/media?parent=4288"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/salesforcedevops.net\/index.php\/wp-json\/wp\/v2\/categories?post=4288"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/salesforcedevops.net\/index.php\/wp-json\/wp\/v2\/tags?post=4288"},{"taxonomy":"post_series","embeddable":true,"href":"https:\/\/salesforcedevops.net\/index.php\/wp-json\/wp\/v2\/post_series?post=4288"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}