{"id":249026,"date":"2024-05-21T08:50:46","date_gmt":"2024-05-21T15:50:46","guid":{"rendered":"https:\/\/devblogs.microsoft.com\/visualstudio\/?p=249026"},"modified":"2024-05-21T09:21:07","modified_gmt":"2024-05-21T16:21:07","slug":"maximizing-joy-and-minimizing-toil-with-great-developer-experiences","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/visualstudio\/maximizing-joy-and-minimizing-toil-with-great-developer-experiences\/","title":{"rendered":"Maximizing joy and minimizing toil with great developer experiences"},"content":{"rendered":"<p>The future always starts with developers. They determine the speed of innovation, and never has that been more true than today, in the era of Generative AI. We\u2019re already seeing GenAI have a profound impact on the way that we build applications and collaborate with our colleagues. More developers will be empowered to create with technology by having access to a coach to guide you through each stage of your learning journey. And user expectations are evolving quickly so that today\u2019s end-users expect their apps already know about their context and history, and even anticipate their next step.<\/p>\n<p>There\u2019s a lot of change on the horizon! But it can be hard to find the time to learn when we\u2019re overwhelmed and bogged down with technical debt. Developers continually have to context switch between tools, which impacts their cognitive load and ability to focus. We know that even on a good day, developers <a href=\"https:\/\/www.microsoft.com\/en-us\/research\/publication\/today-was-a-good-day-the-daily-life-of-software-developers\/\">only spend about 2 hours a day coding<\/a>, and <a href=\"https:\/\/ics.uci.edu\/~gmark\/chi08-mark.pdf\">it takes them 23 minutes to regain focus after context switching<\/a>. This, combined with randomizing meetings to assemble resources you need can make you feel exhausted at the end of the day and frustrated by inefficiencies. All this can take the joy out of work and make developing software feel like toil.<\/p>\n<p>But we know there\u2019s a path to developer happiness\u2014where devs can focus more on coding and less on ops; where they can innovate at the speed of their creativity; and where they can get going fast, without having to worry about managing the infrastructure their apps depend upon.<\/p>\n<h3>Dev happiness = staying in the flow<\/h3>\n<p>One of our guiding principles is to bring the best tools to you where you live\u2014in your code editing tools\u2014so you can stay in the flow! At Build this week we\u2019re announcing some pretty amazing developer experiences to bring more joy and less toil to your life as a developer.<\/p>\n<p>For starters, we\u2019re announcing the general availability of <strong><a href=\"https:\/\/aka.ms\/vs\/v1710GA\">Visual Studio 17.10<\/a><\/strong>. In this version. We\u2019ve plugged GitHub Copilot everywhere throughout the IDE, so it changes how you write, learn, test, search, and fix code in your apps.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2024\/05\/Copilot-in-the-IDE.png\"><img decoding=\"async\" class=\"aligncenter size-full wp-image-249048\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2024\/05\/Copilot-in-the-IDE.png\" alt=\"Image Copilot in the IDE\" width=\"393\" height=\"258\" srcset=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2024\/05\/Copilot-in-the-IDE.png 393w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2024\/05\/Copilot-in-the-IDE-300x197.png 300w\" sizes=\"(max-width: 393px) 100vw, 393px\" \/><\/a><\/p>\n<p>We\u2019re also announcing the preview of <a href=\"https:\/\/aka.ms\/azcode\/copilot\/announce\"><strong>GitHub Copilot for Azure<\/strong><\/a>, an extension that integrates seamlessly with GitHub Copilot chat in Visual Studio Code and Visual Studio, bringing Azure expertise right to your fingertips! Using GitHub Copilot for Azure, you can learn about Azure resources and best practices; explore and manage Azure resources; and troubleshoot issues and locate relevant logs and code. GitHub Copilot for Azure is built atop <a href=\"https:\/\/github.blog\/2024-05-21-introducing-github-copilot-extensions\">a general extensibility surface area we&#8217;ve introduced into GitHub Copilot<\/a>. Soon you won\u2019t have to context switch as all your favorite tools will be integrated into your code! More on that in a bit\u2026<\/p>\n<p style=\"text-align: center;\"><iframe src=\"\/\/www.youtube.com\/embed\/a-bJvMueq2k\" width=\"560\" height=\"314\" allowfullscreen=\"allowfullscreen\"><\/iframe><\/p>\n<h4><\/h4>\n<h4>.NET Aspire is now generally available<\/h4>\n<p><a href=\"https:\/\/aka.ms\/aspirega\"><strong>.NET Aspire<\/strong><\/a> codifies the best practices for cloud-native development with tools for multi-project management, built-in HTTP resiliency, health checks, OpenTelemetry, and easy multi-node deployment via Visual Studio, VS Code, and the Azure Developer CLI. .NET Aspire makes it easy to get started with templates and a set of curated components based on our opinionated stack inside Microsoft and co-developed with the .NET community.<\/p>\n<p style=\"text-align: center;\"><iframe src=\"\/\/www.youtube.com\/embed\/60eI8IHLgds\" width=\"560\" height=\"314\" allowfullscreen=\"allowfullscreen\"><\/iframe><\/p>\n<p>Using .NET Aspire, it\u2019s easy to build and debug using service discovery and a completely new developer dashboard to see real-time telemetry and metrics, and to get a foothold on diagnosing issues. You can run and deploy with a single command to launch and run multiple services. Being able to express app topology in C# makes cloud deployment easy to any cloud destination.<\/p>\n<p>Lots of great innovations to bring the best of all your tools into where you live\u2014your favorite code editor tools\u2014so you can stay in the flow!<\/p>\n<h3>Building intelligent apps<\/h3>\n<p>Over the past year we\u2019ve witnessed the birth of one of the most pivotal technological innovations in history: Generative AI (GenAI). It has changed user expectations for every experience and continues to shape how businesses think of technology as an enabler for rapid growth.<\/p>\n<p>We refer to any app that uses artificial intelligence for all or some of its functionality as an \u201cintelligent app.\u201d The way intelligent apps change experiences and operations are what can become competitive differentiators. It starts by thinking about the use cases where your data can provide actionable insights that can improve your processes or your customer experience. This is a massive paradigm shift\u2014it\u2019s changing user expectations for how we all interact with technology. Natural language is the new user interface; we simply talk to it. I can ask it questions and it already has the context of my account or my history and it can even anticipate my needs. And these apps continually improve by learning while in production. What that means is that the traditional developer inner and outer loop also evolves to facilitate the evaluation cycle and continuous learning once deployed to production.<\/p>\n<p>Whether you\u2019re using a foundational model like GPT3, Phi-3, building your own custom machine learning, or augmenting an existing model with fine-tuning, these apps go beyond an algorithm recommending content based on what you click, tap, listen to, or watch. Intelligent apps learn from the user\u2019s inputs and data to continually get better over time, while observing responsible AI best-practices.<\/p>\n<p>For our developer tools and application building blocks, our goals are to\u2026<\/p>\n<ul>\n<li>Make building GenAI apps more approachable<\/li>\n<li>Reduce the effort required to build, manage, and evolve\u00a0GenAI\u00a0apps<\/li>\n<li>Support the end-to-end app development lifecycle, including the new tasks necessary to build intelligent apps &#8212; like evaluating models and prompts and preparing data<\/li>\n<li>All while maintaining enterprise-grade security, scalability, compliance, and governance according to our DevOps and platform engineering best practices<\/li>\n<\/ul>\n<p>Today, we\u2019re announcing the <a href=\"https:\/\/aka.ms\/AIToolkit\/Blog\"><strong>AI Toolkit for Visual Studio Code<\/strong><\/a>. This toolkit helps AI engineers develop and deploy intelligent apps by enabling them to explore, acquire, evaluate, and integrate small and large language models within VS Code. You can use your local hardware to try, run, and evaluate state-of-the art small language models\u2014or SLMs\u2014like Phi-3. It takes advantage of the deep investments we\u2019ve made in the ML stack on Windows to provide a turnkey experience to run any model seamlessly on your laptop, Dev Box, or Azure AI compute. While it runs best on Windows today, MacOS support is coming soon!<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2024\/05\/Model-catalog.png\"><img decoding=\"async\" class=\"aligncenter wp-image-249038\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2024\/05\/Model-catalog-1024x576.png\" alt=\"Image Model catalog\" width=\"761\" height=\"428\" srcset=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2024\/05\/Model-catalog-1024x576.png 1024w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2024\/05\/Model-catalog-300x169.png 300w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2024\/05\/Model-catalog-768x432.png 768w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2024\/05\/Model-catalog-1536x864.png 1536w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2024\/05\/Model-catalog-2048x1151.png 2048w\" sizes=\"(max-width: 761px) 100vw, 761px\" \/><\/a><\/p>\n<h3><\/h3>\n<h3>Intelligent apps: Better on Azure<\/h3>\n<p>In addition to providing a platform to host your apps, the <strong>Azure App Platform<\/strong> provides the essential building blocks you need to accomplish the different tasks that you typically do to build and operate a GenAI application, including leveraging Azure OpenAI and hosted models in your apps; building enhanced copilots; experimenting and optimizing; and hosting custom models and fine tuning them with your data.<\/p>\n<p>All the capabilities are integrated with one another, and you can use them together seamlessly. For example, you can incorporate experimentation and use Vector DB add-ons for your GenAI apps running on any of our App Platform services.<\/p>\n<p>Here are just a few of the ways that Azure is evolving for the era of AI:<\/p>\n<ul>\n<li>When you start growing your application portfolio, you will likely want to track token usage across multiple applications, or to make sure that a single app doesn\u2019t consume the whole TPM quota. <strong><a href=\"https:\/\/aka.ms\/apim\/genai\/blog\">Azure API Management has introduced new capabilities<\/a> to enhance the scalability and security of Generative AI deployments. <\/strong>These include the Azure OpenAI token limit policy for fair usage and optimized resource allocation, one-click import of Azure OpenAI endpoints as APIs, a load balancer for efficient traffic distribution, and a circuit breaker to protect backend services.<\/li>\n<li>API sprawl\u00a0poses significant challenges in\u00a0API\u00a0governance, security, compliance, and\u00a0reuse. Without a centralized\u00a0inventory, APIs can become isolated, leading to\u00a0poor API reuse,\u00a0lack of\u00a0alignment with organizational\u00a0API\u00a0design and organizational processes, as well as\u00a0increased vulnerability to security breaches. And most GenAI apps consume LLMs via APIs \u2013 so the era of GenAI is the era of API-first development. <strong>The <a href=\"https:\/\/aka.ms\/apic-ga\">Azure API Center<\/a> provides centralized API inventory<\/strong> for seamless discovery, reuse, and governance regardless of API type, lifecycle stage, or deployment location.<\/li>\n<li><a href=\"https:\/\/techcommunity.microsoft.com\/t5\/apps-on-azure-blog\/new-secure-sandboxes-at-scale-with-azure-container-apps-dynamic\/ba-p\/4142148\"><strong>Azure Container Apps now include secure sandboxes at scale<\/strong><\/a>: When you build applications that run code or commands from untrusted sources, you have to ensure that the code runs in its own isolated environment. If an LLM is generating the code you need to evaluate, what is the best way to execute that code? Dynamic sessions provide secure, ephemeral sandboxes called &#8220;sessions&#8221; for running potentially malicious code. Each session runs in its own Hyper-V virtualization boundary \u2014 ensuring complete isolation from other sessions and resources.<\/li>\n<\/ul>\n<p>You can read about all these Azure announcements and more in the <a href=\"https:\/\/news.microsoft.com\/build-2024-book-of-news\/\">Build Book of News<\/a>.<\/p>\n<h3>Developer productivity comes from team agility<\/h3>\n<p>So, we\u2019ve covered new tools and experiences that help you stay in the flow and get into building intelligent applications. Now let\u2019s talk about how <a href=\"https:\/\/aka.ms\/plat-eng-announce\">the practice of platform engineering<\/a> can help organizations stay secure and compliant and developers focus on their code.<\/p>\n<p>Developers want to be able to self-serve environments, workflows, and infrastructure with the confidence they\u2019re adhering to the best practices and requirements of their organization. It\u2019s just one more aspect of staying in the flow.<\/p>\n<p>Last November we launched our <a href=\"https:\/\/learn.microsoft.com\/en-us\/platform-engineering\/\">guidance on platform engineering<\/a>. On a very basic level, platform engineering is a set of patterns and practices helping to modernize enterprise software delivery. These patterns and practices, if executed right, can become the glue between development and operations teams\u2014creating more cohesion and flow amongst teams throughout the product-making lifecycle.<\/p>\n<p>At its best, Platform Engineering empowers teams to achieve scale and reduce the time it takes to deliver business value\u2014all while eliminating toil, promoting self-sufficiency, and reducing the cognitive load required to meet broader operational and organizational standards.<\/p>\n<p>With policy enforcement, security monitoring, and observability, organizations can govern their app estate to get better cost control and reduce risk while delivering a great developer experience.<\/p>\n<p>And GitHub Copilot is now the perfect platform to deliver an unparalleled developer experience for platform engineering. With the new extensibility capabilities, GitHub Copilot can be augmented and grounded with your product catalog that you define in GitHub repos with Templates, Workflows, APIs, and samples that provide start-right automation and policy enforcement to your developers who can discover and deploy them with natural language user interfaces in Copilot Chat.<\/p>\n<h4>New features in Microsoft Dev Box and Azure Deployment Environments<\/h4>\n<p><a href=\"https:\/\/azure.microsoft.com\/en-us\/products\/dev-box\/\">Microsoft Dev Box<\/a>, an Azure service that gives developers self-service access to preconfigured, project-specific developer workstations, has been a key part of our approach to platform engineering. Used by companies like <a href=\"https:\/\/customers.microsoft.com\/en-us\/story\/1650265213028177234-gm-cloud-based-developer-services-from-microsoft\">GM<\/a> and <a href=\"https:\/\/customers.microsoft.com\/en-us\/story\/1744161994415964462-siemens-healthineers-china-microsoft-dev-box-other-en-china\">Siemens Healthineers China<\/a> (and by over 25k Microsoft developers), Dev Boxes reduce environment setup from days to minutes, encouraging collaboration and experimentation. With pre-installed tools and source code, developers can onboard and start coding quickly.<\/p>\n<p>For development teams, we\u2019ve recently added <a href=\"https:\/\/aka.ms\/Build24\/DevBox\">standardized templates with project-level catalogs specific to each project<\/a>. We also have a new Dev Box imaging service where teams can create and maintain custom image using config-as-code to make sure their entire team has a consistent environment.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2024\/05\/Microsoft-developer-portal.png\"><img decoding=\"async\" class=\"aligncenter size-full wp-image-249062\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2024\/05\/Microsoft-developer-portal.png\" alt=\"Image Microsoft developer portal\" width=\"624\" height=\"389\" srcset=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2024\/05\/Microsoft-developer-portal.png 624w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2024\/05\/Microsoft-developer-portal-300x187.png 300w\" sizes=\"(max-width: 624px) 100vw, 624px\" \/><\/a><\/p>\n<p>And <strong><a href=\"http:\/\/aka.ms\/build24\/ade-blog\">Azure Deployment Environments<\/a><\/strong> now delivers more seamless experiences to customers, enabling them to leverage popular Infrastructure-as-Code (IaC) frameworks quickly and easily with its new extensibility model and to perform or customize deployments based on their organizational needs.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2024\/05\/Microsoft-developer-portal-deployment.png\"><img decoding=\"async\" class=\"aligncenter size-large wp-image-249063\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2024\/05\/Microsoft-developer-portal-deployment-1024x676.png\" alt=\"Image Microsoft developer portal 8211 deployment\" width=\"640\" height=\"423\" srcset=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2024\/05\/Microsoft-developer-portal-deployment-1024x676.png 1024w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2024\/05\/Microsoft-developer-portal-deployment-300x198.png 300w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2024\/05\/Microsoft-developer-portal-deployment-768x507.png 768w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2024\/05\/Microsoft-developer-portal-deployment.png 1430w\" sizes=\"(max-width: 640px) 100vw, 640px\" \/><\/a><\/p>\n<p>These capabilities give development teams more control to customize environment templates for their team-specific needs and provide platform engineers with additional ways to build templates in their preferred IaC format.<\/p>\n<p>But consistent environments across teams doesn\u2019t mean that the experience can\u2019t be personalized to developers.<\/p>\n<p>The new Dev Home capabilities in Windows make it easy to create a personalized, consistent environment that works beautifully with Microsoft Dev Box. It\u2019s simple to create, connect, and customize Dev Boxes, pin frequently used Dev Boxes to your taskbar or start menu, and add tools onto your config or the one you\u2019re building for the team.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2024\/05\/Dev-Home-3.png\"><img decoding=\"async\" class=\"aligncenter wp-image-249050\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2024\/05\/Dev-Home-3.png\" alt=\"Image Dev Home 3\" width=\"737\" height=\"456\" srcset=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2024\/05\/Dev-Home-3.png 931w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2024\/05\/Dev-Home-3-300x186.png 300w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2024\/05\/Dev-Home-3-768x475.png 768w\" sizes=\"(max-width: 737px) 100vw, 737px\" \/><\/a><\/p>\n<h3><\/h3>\n<h3>Close<\/h3>\n<p>Our mission is to empower developers to achieve more. Our vision is to enable them to set up a complete engineering system in seconds, contribute from any device, build for any platform, collaborate with anybody, and scale with confidence. In the era of AI, developers and their teams can get into the zone, learn about new technology more quickly than ever before, explore what\u2019s possible at the speed of their creativity, and share their expertise to accelerate the impact of their entire team.<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>The future always starts with developers. They determine the speed of innovation, and never has that been more true than today, in the era of Generative AI. We\u2019re already seeing GenAI have a profound impact on the way that we build applications and collaborate with our colleagues. More developers will be empowered to create with [&hellip;]<\/p>\n","protected":false},"author":591,"featured_media":249054,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[6887,6854,6893,155],"tags":[237,354,294,526,12,280],"class_list":["post-249026","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-artificial-intelligence","category-azure","category-dev-box","category-visual-studio","tag-net","tag-announcement","tag-extensions","tag-productivity","tag-visual-studio","tag-visual-studio-code"],"acf":[],"blog_post_summary":"<p>The future always starts with developers. They determine the speed of innovation, and never has that been more true than today, in the era of Generative AI. We\u2019re already seeing GenAI have a profound impact on the way that we build applications and collaborate with our colleagues. More developers will be empowered to create with [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/posts\/249026","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\/591"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/comments?post=249026"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/posts\/249026\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/media\/249054"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/media?parent=249026"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/categories?post=249026"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/tags?post=249026"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}