{"id":18485,"date":"2018-07-16T12:55:04","date_gmt":"2018-07-16T19:55:04","guid":{"rendered":"https:\/\/blogs.msdn.microsoft.com\/visualstudio\/?p=18485"},"modified":"2019-02-14T15:23:40","modified_gmt":"2019-02-14T23:23:40","slug":"azure-service-fabric-mesh-tools-now-available-for-visual-studio-2017","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/visualstudio\/azure-service-fabric-mesh-tools-now-available-for-visual-studio-2017\/","title":{"rendered":"Azure Service Fabric Mesh tools now available for Visual Studio 2017"},"content":{"rendered":"<p>Azure Service Fabric is a market-tested distributed systems platform for running scalable and reliable applications on microservices and containers. Up until now, Service Fabric required you to create and manage the clusters and their nodes using virtual machine scale sets. With today\u2019s <a href=\"https:\/\/aka.ms\/sfmeshpreviewblogpost\">announcement of Azure Service Fabric Mesh<\/a>, you\u2019ll be able to use Service Fabric without managing infrastructure such as VMs, storage, or networking. Additionally, we\u2019ve released <a href=\"https:\/\/marketplace.visualstudio.com\/items?itemName=ms-azuretools.ServiceFabricMesh\">Service Fabric Mesh tooling in Visual Studio 2017<\/a> to help you build applications.<\/p>\n<p>Previously, you had to describe your Service Fabric applications with XML manifests, which was complex and tedious. The new resource-based application uses lightweight YAML files to describe your application and the resources that make it up, making it easier to specify and modify these resources. The tools also help you scaffold applications, debug microservices, and publish your application to Mesh.<\/p>\n<p>Ready to get started? We\u2019ll walk you through how to take advantage of the managed infrastructure and the simplified YAML files for defining your applications.<\/p>\n<h2>Get Started with Service Fabric Mesh tools in Visual Studio 2017<\/h2>\n<p>After you download the Mesh tools, you\u2019ll notice we\u2019ve added a new entry for <b>Service Fabric Mesh Application <\/b>in the new project dialog.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2018\/07\/Service-Fabric-Mesh-in-New-Project-Dialog-under-Visual-CSharp-Cloud.png\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2018\/07\/Service-Fabric-Mesh-in-New-Project-Dialog-under-Visual-CSharp-Cloud.png\" alt=\"Service Fabric Mesh in New Project Dialog, under Visual CSharp, Cloud\" width=\"941\" height=\"653\" class=\"aligncenter size-full wp-image-18802\" srcset=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2018\/07\/Service-Fabric-Mesh-in-New-Project-Dialog-under-Visual-CSharp-Cloud.png 941w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2018\/07\/Service-Fabric-Mesh-in-New-Project-Dialog-under-Visual-CSharp-Cloud-300x208.png 300w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2018\/07\/Service-Fabric-Mesh-in-New-Project-Dialog-under-Visual-CSharp-Cloud-768x533.png 768w\" sizes=\"(max-width: 941px) 100vw, 941px\" \/><\/a><\/p>\n<p>You might notice the new Container OS drop-down. Right now, local Service Fabric developer cluster debugging is Windows-only, but Service Fabric Mesh supports both Linux and Windows containers. Before publishing to Azure, you can change your service to use a Linux-based image by changing the \u201cosType\u201d property in the service.yaml file.<\/p>\n<p>Service Fabric ASP.NET Core applications have two projects in the solution. The <b>service.yaml<\/b> file that is included in your main service project describes your service to the Service Fabric runtime. This file contains any endpoints your service will be listening on, environment variables, and other properties, including any resource constraints you want enforced. There\u2019s also a Dockerfile with instructions for the Docker image that gets built for your service when it\u2019s running in Service Fabric. The tools configure the Dockerfile to work with the service you select. Usually you won\u2019t need to worry about this file, but you are free to modify it if you want to use a different base image or include additional dependencies.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2018\/07\/Service-Fabric-Mesh-in-Visual-Studio.png\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2018\/07\/Service-Fabric-Mesh-in-Visual-Studio.png\" alt=\"Service Fabric Mesh in Visual Studio\" width=\"2256\" height=\"1434\" class=\"aligncenter size-full wp-image-18803\" srcset=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2018\/07\/Service-Fabric-Mesh-in-Visual-Studio.png 2256w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2018\/07\/Service-Fabric-Mesh-in-Visual-Studio-300x191.png 300w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2018\/07\/Service-Fabric-Mesh-in-Visual-Studio-768x488.png 768w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2018\/07\/Service-Fabric-Mesh-in-Visual-Studio-1024x651.png 1024w\" sizes=\"(max-width: 2256px) 100vw, 2256px\" \/><\/a><\/p>\n<p>The second project in this example, <b>HotelApp<\/b>, is a lightweight project for configuring application-wide settings. By default, the <b>app.yaml<\/b> and <b>network.yaml<\/b> files contain basic configuration information. During debugging and publishing, Visual Studio will use the Service Fabric SDK to merge the various YAML files and deploy them, along with your service(s), to Service Fabric.<\/p>\n<h2>Publishing and Debugging your Service Fabric Mesh Application<\/h2>\n<p>You can set breakpoints and debug your code just like any other .NET Core application. When it\u2019s time to publish your application to Azure Service Fabric Mesh, right click the application project and select Publish. This brings up the following dialog where you\u2019ll need to specify a few values to successfully publish your application.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2018\/07\/Service-Fabric-Mesh-Publish-dialog-showing-options-like-Subscription-Location-and-Azure-container-registry.png\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2018\/07\/Service-Fabric-Mesh-Publish-dialog-showing-options-like-Subscription-Location-and-Azure-container-registry.png\" alt=\"ervice Fabric Mesh Publish dialog showing options like Subscription, Location, and Azure container registry\" width=\"998\" height=\"774\" class=\"aligncenter size-full wp-image-18804\" srcset=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2018\/07\/Service-Fabric-Mesh-Publish-dialog-showing-options-like-Subscription-Location-and-Azure-container-registry.png 998w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2018\/07\/Service-Fabric-Mesh-Publish-dialog-showing-options-like-Subscription-Location-and-Azure-container-registry-300x233.png 300w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2018\/07\/Service-Fabric-Mesh-Publish-dialog-showing-options-like-Subscription-Location-and-Azure-container-registry-768x596.png 768w\" sizes=\"(max-width: 998px) 100vw, 998px\" \/><\/a><\/p>\n<p>Publishing from Visual Studio builds the exe\/dll for each service, creates Docker images for the services, pushes them to Azure Container Registry, and deploys the application to Mesh. Once publish is complete, Visual Studio will show you each of the ingress endpoint URLs for each of your services that had one defined.<\/p>\n<p>You can get more information about these steps by following our <a href=\"https:\/\/docs.microsoft.com\/en-us\/azure\/service-fabric-mesh\/service-fabric-mesh-quickstart-dotnet-core?branch=pr-en-us-46381\">Service Fabric Mesh Quickstart<\/a>.<\/p>\n<h2>Share Your Thoughts<\/h2>\n<p>When you try the new <a href=\"https:\/\/marketplace.visualstudio.com\/items?itemName=ms-azuretools.ServiceFabricMesh\">Service Fabric Mesh tooling<\/a>, we\u2019d love to hear your feedback! Leave a message for us through Visual Studio or add a comment to this blog post. You can get started setting up your <a href=\"https:\/\/docs.microsoft.com\/en-us\/azure\/service-fabric-mesh\/service-fabric-mesh-howto-setup-developer-environment-sdk\">development machine here<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Azure Service Fabric is a market-tested distributed systems platform for running scalable and reliable applications on microservices and containers. Up until now, Service Fabric required you to create and manage the clusters and their nodes using virtual machine scale sets. With today\u2019s announcement of Azure Service Fabric Mesh, you\u2019ll be able to use Service Fabric [&hellip;]<\/p>\n","protected":false},"author":588,"featured_media":255385,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1085,1029],"tags":[242,9,185,1046,12,156],"class_list":["post-18485","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-cloud","category-web","tag-azure","tag-debug","tag-node-js","tag-service-fabric","tag-visual-studio","tag-visual-studio-2017"],"acf":[],"blog_post_summary":"<p>Azure Service Fabric is a market-tested distributed systems platform for running scalable and reliable applications on microservices and containers. Up until now, Service Fabric required you to create and manage the clusters and their nodes using virtual machine scale sets. With today\u2019s announcement of Azure Service Fabric Mesh, you\u2019ll be able to use Service Fabric [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/posts\/18485","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\/588"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/comments?post=18485"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/posts\/18485\/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=18485"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/categories?post=18485"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/tags?post=18485"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}