{"id":24482,"date":"2025-07-14T10:53:45","date_gmt":"2025-07-14T17:53:45","guid":{"rendered":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/?p=24482"},"modified":"2025-07-14T10:53:45","modified_gmt":"2025-07-14T17:53:45","slug":"supercharge-your-ews-migration-with-ai-and-github-copilot","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/supercharge-your-ews-migration-with-ai-and-github-copilot\/","title":{"rendered":"Supercharge your EWS migration with AI and GitHub Copilot"},"content":{"rendered":"<p>Are you running apps on Exchange Web Services (EWS)? With EWS support ending in October 2026, this is the perfect time to modernize. We\u2019re excited to announce a new <a href=\"https:\/\/aka.ms\/migTut2\">hands-on tutorial<\/a> that helps you accelerate migrations from EWS to Microsoft Graph, using AI tools you already have access to. This tutorial teaches you skills that you can apply to working in any legacy code base.<\/p>\n<h2>Why this tutorial?<\/h2>\n<p>Migrating legacy code can feel daunting. This tutorial turns this challenge into an opportunity to upskill with the latest AI-powered tools and erase years of technical debt at the same time.<\/p>\n<p>The tutorial walks you through the migration process using a real-world ASP.NET MVC mail app as a baseline and uses GitHub Copilot to accelerate every step: analyzing legacy code, generating documentation, adding tests, refactoring, and finally swapping out EWS for the Microsoft Graph API. You\u2019ll discover how AI can help you understand unfamiliar code, automate repetitive tasks, and troubleshoot tricky migration issues.<\/p>\n<p>The migration tutorial helps you learn how to:<\/p>\n<ul>\n<li>Analyze and document legacy EWS codebases using GitHub Copilot and the Ews.Code.Analyzer package.<\/li>\n<li>Generate code standards, requirements, and code comments with GitHub Copilot.<\/li>\n<li>Add instrumentation, observability, and AI-based analytics with .NET Aspire.<\/li>\n<li>Generate unit tests with xUnit and NSubstitute or your favorite framework.<\/li>\n<li>Refactor for modularity and testability with AI tools.<\/li>\n<li>Implement Microsoft Graph API in place of EWS.<\/li>\n<li>Perform a partial migration with feature toggles while you wait for parity gaps to be filled.<\/li>\n<li>Use Copilot to fix, troubleshoot, and optimize your migration.<\/li>\n<li>Clean up and remove EWS dependencies for good.<\/li>\n<\/ul>\n<h2><strong>Make your migration meaningful<\/strong><\/h2>\n<p>Migrations can feel overwhelming, but embracing AI tools like Copilot can transform a tedious upgrade into a growth opportunity. You\u2019ll not only eliminate a looming security risk but also gain practical experience with AI-assisted development\u2014setting yourself and your team up for future success.<\/p>\n<p>Whether you\u2019re a seasoned developer or just curious about how Copilot can help with real-world tasks, this tutorial is a practical resource, packed with tips for making the most of AI tools. Turn a maintenance headache into a hands-on exploration of today\u2019s AI-powered development, and you\u2019ll go from legacy to legendary.<\/p>\n<h2>Ready to get started?<\/h2>\n<p>Try out the <a href=\"https:\/\/aka.ms\/migTut2\">tutorial<\/a> and share your experiences or questions in the comments. Let\u2019s learn together and make this transition a win for everyone!<\/p>\n<p>Happy coding,<\/p>\n<p>Thomas &amp; the Exchange Programmability Team<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>We&#8217;re announcing a new tutorial that helps developers migrate solutions from EWS to Microsoft Graph using AI and GitHub Copilot.<\/p>\n","protected":false},"author":186837,"featured_media":24485,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[3],"tags":[415,181],"class_list":["post-24482","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-microsoft-graph","tag-ews","tag-exchange-web-services"],"acf":[],"blog_post_summary":"<p>We&#8217;re announcing a new tutorial that helps developers migrate solutions from EWS to Microsoft Graph using AI and GitHub Copilot.<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/posts\/24482","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/users\/186837"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/comments?post=24482"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/posts\/24482\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/media\/24485"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/media?parent=24482"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/categories?post=24482"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/tags?post=24482"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}