{"id":12335,"date":"2017-05-25T09:00:56","date_gmt":"2017-05-25T16:00:56","guid":{"rendered":"https:\/\/blogs.msdn.microsoft.com\/visualstudio\/?p=12335"},"modified":"2019-02-14T15:27:10","modified_gmt":"2019-02-14T23:27:10","slug":"whats-new-and-improved-with-the-slowcheetah-extension","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/visualstudio\/whats-new-and-improved-with-the-slowcheetah-extension\/","title":{"rendered":"What&#8217;s New and Improved with the SlowCheetah Extension"},"content":{"rendered":"<p>We are delighted to announce the latest release of the SlowCheetah extension for Visual Studio. For those who are new to SlowCheetah, it\u2019s an extension that lets you easily add transforms that enable different app settings, connection strings and more for different build configurations. You can read more <a href=\"https:\/\/visualstudio.microsoft.com\">here<\/a>. In this release, we\u2019ve made several improvements we\u2019re excited to share with you.<\/p>\n<h2>Released from the Microsoft Repository<\/h2>\n<p>For the first time, SlowCheetah is being released from the Microsoft repository and all future updates will be coming from <a href=\"https:\/\/github.com\/Microsoft\/slow-cheetah\">this repository<\/a>. If you have any issues or suggestions, please file them in the Issues tab of this repository.<\/p>\n<h2>Added JSON Transforms and Support<\/h2>\n<p>In this latest update, we\u2019ve added the ability to add JSON transforms, as this is a popular format for config files that weren\u2019t yet supported in SlowCheetah. In Visual Studio 2015 and Visual Studio 2017, you\u2019ll now be able to add both XML and JSON transforms to your projects. Additionally, SlowCheetah supports all project types that support NuGet.<\/p>\n<h2>Automatic NuGet Installation<\/h2>\n<p>Tired of having to install your NuGet packages manually to get SlowCheetah to work? We\u2019ve added automatic NuGet installation to help streamline your process. All you need to install is the latest extension and SlowCheetah will take care of the rest. When you use SlowCheetah for the first time in a project, it will prompt you to install or update NuGet packages. Agree and you\u2019re ready to go!<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/4\/2019\/06\/Install-SlowCheetah-NuGet-Package1.png\"><img decoding=\"async\" width=\"419\" height=\"170\" title=\"clip_image002\" alt=\"clip_image002\" src=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/4\/2019\/06\/Install-SlowCheetah-NuGet-Package1.png\" border=\"0\" class=\"\" \/><\/a><\/p>\n<h2>JSON Document Transforms<\/h2>\n<p>In adding JSON Transforms to SlowCheetah, we found that many existing processes to transform JSON files required learning a new syntax and new keywords, as well as creating a transformation file that looks quite different from your source file. To combat this, we decided to create our own process in the form of JSON Document Transforms or JDT. With JDT, you\u2019ll use the same properties as your source file. Your transformation file will look like your source file, making it easy for you to add JSON transforms even if it\u2019s the first time you\u2019re trying it! Currently, JDT supports Rename, Remove, Merge, and Replace. However, it is possible to use JDT without any knowledge of its syntax, as it will use a default transformation of merging the two files if no advanced keywords are used.<\/p>\n<p>Below, you\u2019ll find an example using the default transformation, as well as Rename.<\/p>\n<h4>Default Merge<\/h4>\n<p><b>Source:<\/b><\/p>\n<pre><code>\n{\n    \u00a0\u00a0\"Version\": 1,\n    \u00a0\u00a0\"Settings\": {\n    \u00a0\u00a0    \u00a0\u00a0\"Setting01\" : \"Default01\",\n    \u00a0\u00a0    \u00a0\u00a0\"Setting02\" : \"Default02\"\n    \u00a0\u00a0},\n    \u00a0\u00a0\"SupportedVersions\" : [1, 2, 3]\n}\n<\/code><\/pre>\n<p><b>Transform:<\/b><\/p>\n<pre><code>\n{\n    \u00a0\u00a0\"Version\": 2,\n    \u00a0\u00a0\"Settings\": {\n    \u00a0\u00a0    \u00a0\u00a0\"Setting01\" : \"NewValue01\",\n    \u00a0\u00a0    \u00a0\u00a0\"Setting03\" : \"NewValue03\"\n    \u00a0\u00a0},\n    \u00a0\u00a0\"SupportedVersions\" : [4, 5],\n    \u00a0\u00a0\"UseThis\" : true\n}\n<\/code><\/pre>\n<p><b>Result:<\/b> <b><\/b><\/p>\n<pre><code>\n{\n    \u00a0\u00a0\/\/ Overriden by the transformation file\n    \u00a0\u00a0\"Version\": 2,\n    \u00a0\u00a0\"Settings\": {\n    \u00a0\u00a0    \u00a0\u00a0\/\/ Overriden by the transformation file\n    \u00a0\u00a0    \u00a0\u00a0\"Setting01\" : \"NewValue01\",\n    \u00a0\u00a0    \u00a0\u00a0\/\/ Not present in the transformation file, unchanged\n    \u00a0\u00a0    \u00a0\u00a0\"Setting02\" : \"Default02\",\n    \u00a0\u00a0    \u00a0\u00a0\/\/ Added by the transformation file\n    \u00a0\u00a0    \u00a0\u00a0\"Setting03\" : \"NewValue03\"\n    \u00a0\u00a0},\n    \u00a0\u00a0\/\/ The array in the transformation file was appended\n    \u00a0\u00a0\"SupportedVersions\" : [1, 2, 3, 4, 5],\n    \u00a0\u00a0\/\/ Added by the transformation file\n    \u00a0\u00a0\"UseThis\" : true\n}\n<\/code><\/pre>\n<h4>Rename<\/h4>\n<p><b>Source:<\/b> <b><\/b><\/p>\n<pre><code>\n{\n    \u00a0\u00a0\"A\" : {\n    \u00a0\u00a0    \u00a0\u00a0\"A1\" : 11,\n    \u00a0\u00a0    \u00a0\u00a0\"A2\" : {\n    \u00a0\u00a0    \u00a0\u00a0\"A21\" : 121,\n    \u00a0\u00a0    \u00a0\u00a0\"A22\" : 122\n    \u00a0\u00a0    \u00a0\u00a0}\n    \u00a0\u00a0},\n    \u00a0\u00a0\"B\" : [\n    \u00a0\u00a0    \u00a0\u00a021,\n    \u00a0\u00a0    \u00a0\u00a022\n    \u00a0\u00a0],\n    \u00a0\u00a0\"C\" : 3\n}\n<\/code><\/pre>\n<p><b>Transform:<\/b><\/p>\n<pre><code>\n{\n    \u00a0\u00a0\"@JDT.Rename\" : {\n    \u00a0\u00a0    \u00a0\u00a0\"A\" : \"Astar\",\n    \u00a0\u00a0    \u00a0\u00a0\"B\" : \"Bstar\"\n    \u00a0\u00a0}\n}\n<\/code><\/pre>\n<p><b><\/b><\/p>\n<p><b>Result:<\/b> <b><\/b><\/p>\n<pre><code>\n{\n    \u00a0\u00a0\/\/ Does not alter result\n    \u00a0\u00a0\"Astar\" : {\n    \u00a0\u00a0    \u00a0\u00a0\"A1\" : 11,\n    \u00a0\u00a0    \u00a0\u00a0\"A2\" : {\n    \u00a0\u00a0    \u00a0\u00a0\"A21\" : 121,\n    \u00a0\u00a0    \u00a0\u00a0\"A22\" : 122\n    \u00a0\u00a0    \u00a0\u00a0}\n    \u00a0\u00a0},\n    \u00a0\u00a0\/\/ Independs on object type\n    \u00a0\u00a0\"Bstar\" : [\n    \u00a0\u00a0    \u00a0\u00a021,\n    \u00a0\u00a0    \u00a0\u00a022\n    \u00a0\u00a0],\n    \u00a0\u00a0\/\/ Does not alter siblings\n    \u00a0\u00a0\"C\" : 3\n}\n<\/code><\/pre>\n<p>For more information, check out our <a href=\"https:\/\/github.com\/Microsoft\/json-document-transforms\/wiki\">wiki on JDT<\/a>.<\/p>\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"2\">\n<tbody>\n<tr>\n<td valign=\"top\">Thanks for reading! We hope you have a transformative experience with the newest updated to SlowCheetah! If you\u2019d like to report an issue or have a suggestion, please use the Issues tab on our <a href=\"https:\/\/github.com\/Microsoft\/slow-cheetah\">GitHub<\/a> to let us know. We always welcome your feedback!<\/p>\n<table width=\"600\" border=\"0\" cellspacing=\"0\" cellpadding=\"2\">\n<tbody>\n<tr>\n<td width=\"150\" valign=\"top\"><img decoding=\"async\" width=\"200\" height=\"149\" src=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/4\/2019\/06\/Allison-Buchholtz-Au.jpg\" \/><\/td>\n<td width=\"450\" valign=\"top\"><b>Allison Buchholtz-Au<\/b>, Program Manager, Visual Studio Platform<\/p>\n<p>Allison is a Program Manager on the Visual Studio Platform team, focusing on streamlining source control workflows and supporting both our first and third party source control providers.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n","protected":false},"excerpt":{"rendered":"<p>We are delighted to announce the latest release of the SlowCheetah extension for Visual Studio. For those who are new to SlowCheetah, it\u2019s an extension that lets you easily add transforms that enable different app settings, connection strings and more for different build configurations. You can read more here. In this release, we\u2019ve made several [&hellip;]<\/p>\n","protected":false},"author":13,"featured_media":255385,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[155],"tags":[237,294,12,156],"class_list":["post-12335","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-visual-studio","tag-net","tag-extensions","tag-visual-studio","tag-visual-studio-2017"],"acf":[],"blog_post_summary":"<p>We are delighted to announce the latest release of the SlowCheetah extension for Visual Studio. For those who are new to SlowCheetah, it\u2019s an extension that lets you easily add transforms that enable different app settings, connection strings and more for different build configurations. You can read more here. In this release, we\u2019ve made several [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/posts\/12335","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/users\/13"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/comments?post=12335"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/posts\/12335\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/media\/255385"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/media?parent=12335"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/categories?post=12335"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/tags?post=12335"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}