Desktop Apps
13 TopicsSearch Less, Build More: Inner Sourcing with GitHub CoPilot and ADO MCP Server
Developers burn cycles context‑switching: opening five repos to find a logging example, searching a wiki for a data masking rule, scrolling chat history for the latest pipeline pattern. Organisations that I speak to are often on the path of transformational platform engineering projects but always have the fear or doubt of "what if my engineers don't use these resources". While projects like Backstage still play a pivotal role in inner sourcing and discoverability I also empathise with developers who would argue "How would I even know in the first place, which modules have or haven't been created for reuse". In this blog we explore how we can ensure organisational standards and developer satisfaction without any heavy lifting on either side, no custom model training, no rewriting or relocating of repositories and no stagnant local data. Using GitHub CoPilot + Azure DevOps MCP server (with the free `code_search` extension) we turn the IDE into an organizational knowledge interface. Instead of guessing or re‑implementing, engineers can start scaffolding projects or solving issues as they would normally (hopefully using CoPilot) and without extra prompting. GitHub CoPilot can lean into organisational standards and ensure recommendations are made with code snippets directly generated from existing examples. What Is the Azure DevOps MCP Server + code_search Extension? MCP (Model Context Protocol) is an open standard that lets agents (like GitHub Copilot) pull in structured, on-demand context from external systems. MCP servers contain natural language explanations of the tools that the agent can utilise allowing dynamic decision making of when to implement certain toolsets over others. The Azure DevOps MCP Server is the ADO Product Team's implementation of that standard. It exposes your ADO environment in a way CoPilot can consume. Out of the box it gives you access to: Projects – list and navigate across projects in your organization. Repositories – browse repos, branches, and files. Work items – surface user stories, bugs, or acceptance criteria. Wiki's – pull policies, standards, and documentation. This means CoPilot can ground its answers in live ADO content, instead of hallucinating or relying only on what’s in the current editor window. The ADO server runs locally from your own machine to ensure that all sensitive project information remains within your secure network boundary. This also means that existing permissions on ADO objects such as Projects or Repositories are respected. Wiki search tooling available out of the box with ADO MCP server is very useful however if I am honest I have seen these wiki's go unused with documentation being stored elsewhere either inside the repository or in a project management tool. This means any tool that needs to implement code requires the ability to accurately search the code stored in the repositories themself. That is where the code_search extension enablement in ADO is so important. Most organisations have this enabled already however it is worth noting that this pre-requisite is the real unlock of cross-repo search. This allows for CoPilot to: Query for symbols, snippets, or keywords across all repos. Retrieve usage examples from code, not just docs. Locate standards (like logging wrappers or retry policies) wherever they live. Back every recommendation with specific source lines. In short: MCP connects CoPilot to Azure DevOps. code_search makes that connection powerful by turning it into a discovery engine. What is the relevance of CoPilot Instructions? One of the less obvious but most powerful features of GitHub CoPilot is its ability to follow instructions files. CoPilot automatically looks for these files and uses them as a “playbook” for how it should behave. There are different types of instructions you can provide: Organisational instructions – apply across your entire workspace, regardless of which repo you’re in. Repo-specific instructions – scoped to a particular repository, useful when one project has unique standards or patterns. Personal instructions – smaller overrides layered on top of global rules when a local exception applies. (Stored in .github/copilot-instructions.md) In this solution, I’m using a single personal instructions file. It tells CoPilot: When to search (e.g., always query repos and wikis before answering a standards question). Where to look (Azure DevOps repos, wikis, and with code_search, the code itself). How to answer (responses must cite the repo/file/line or wiki page; if no source is found, say so). How to resolve conflicts (prefer dated wiki entries over older README fragments). As a small example, a section of a CoPilot instruction file could look like this: # GitHub Copilot Instructions for Azure DevOps MCP Integration This project uses Azure DevOps with MCP server integration to provide organizational context awareness. Always check to see if the Azure DevOps MCP server has a tool relevant to the user's request. ## Core Principles ### 1. Azure DevOps Integration - **Always prioritize Azure DevOps MCP tools** when users ask about: - Work items, stories, bugs, tasks - Pull requests and code reviews - Build pipelines and deployments - Repository operations and branch management - Wiki pages and documentation - Test plans and test cases - Project and team information ### 2. Organizational Context Awareness - Before suggesting solutions, **check existing organizational patterns** by: - Searching code across repositories for similar implementations - Referencing established coding standards and frameworks - Looking for existing shared libraries and utilities - Checking architectural decision records (ADRs) in wikis ### 3. Cross-Repository Intelligence - When providing code suggestions: - **Search for existing patterns** in other repositories first - **Reference shared libraries** and common utilities - **Maintain consistency** with organizational standards - **Suggest reusable components** when appropriate ## Tool Usage Guidelines ### Work Items and Project Management When users mention bugs, features, tasks, or project planning: ``` ✅ Use: wit_my_work_items, wit_create_work_item, wit_update_work_item ✅ Use: wit_list_backlogs, wit_get_work_items_for_iteration ✅ Use: work_list_team_iterations, core_list_projects The result... To test this I created 3 ADO Projects each with between 1-2 repositories. The repositories were light with only ReadMe's inside containing descriptions of the "repo" and some code snippets examples for usage. I have then created a brand-new workspace with no context apart from a CoPilot instructions document (which could be part of a repo scaffold or organisation wide) which tells CoPilot to search code and the wikis across all ADO projects in my demo environment. It returns guidance and standards from all available repo's and starts to use it to formulate its response. In the screenshot I have highlighted some key parts with red boxes. The first being a section of the readme that CoPilot has identified in its response, that part also highlighted within CoPilot chat response. I have highlighted the rather generic prompt I used to get this response at the bottom of that window too. Above I have highlighted CoPilot using the MCP server tooling searching through projects, repo's and code. Finally the largest box highlights the instructions given to CoPilot on how to search and how easily these could be optimised or changed depending on the requirements and organisational coding standards. How did I implement this? Implementation is actually incredibly simple. As mentioned I created multiple projects and repositories within my ADO Organisation in order to test cross-project & cross-repo discovery. I then did the following: Enable code_search - in your Azure DevOps organization (Marketplace → install extension). Login to Azure - Use the AZ CLI to authenticate to Azure with "az login". Create vscode/mcp.json file - Snippet is provided below, the organisation name should be changed to your organisations name. Start and enable your MCP server - In the mcp.json file you should see a "Start" button. Using the snippet below you will be prompted to add your organisation name. Ensure your CoPilot agent has access to the server under "tools" too. View this setup guide for full setup instructions (azure-devops-mcp/docs/GETTINGSTARTED.md at main · microsoft/azure-devops-mcp) Create a CoPilot Instructions file - with a search-first directive. I have inserted the full version used in this demo at the bottom of the article. Experiment with Prompts – Start generic (“How do we secure APIs?”). Review the output and tools used and then tailor your instructions. Considerations While this is a great approach I do still have some considerations when going to production. Latency - Using MCP tooling on every request will add some latency to developer requests. We can look at optimizing usage through copilot instructions to better identify when CoPilot should or shouldn't use the ADO MCP server. Complex Projects and Repositories - While I have demonstrated cross project and cross repository retrieval my demo environment does not truly simulate an enterprise ADO environment. Performance should be tested and closely monitored as organisational complexity increases. Public Preview - The ADO MCP server is moving quickly but is currently still public preview. We have demonstrated in this article how quickly we can make our Azure DevOps content discoverable. While their are considerations moving forward this showcases a direction towards agentic inner sourcing. Feel free to comment below how you think this approach could be extended or augmented for other use cases! Resources MCP Server Config (/.vscode/mcp.json) { "inputs": [ { "id": "ado_org", "type": "promptString", "description": "Azure DevOps organization name (e.g. 'contoso')" } ], "servers": { "ado": { "type": "stdio", "command": "npx", "args": ["-y", "@azure-devops/mcp", "${input:ado_org}"] } } } CoPilot Instructions (/.github/copilot-instructions.md) # GitHub Copilot Instructions for Azure DevOps MCP Integration This project uses Azure DevOps with MCP server integration to provide organizational context awareness. Always check to see if the Azure DevOps MCP server has a tool relevant to the user's request. ## Core Principles ### 1. Azure DevOps Integration - **Always prioritize Azure DevOps MCP tools** when users ask about: - Work items, stories, bugs, tasks - Pull requests and code reviews - Build pipelines and deployments - Repository operations and branch management - Wiki pages and documentation - Test plans and test cases - Project and team information ### 2. Organizational Context Awareness - Before suggesting solutions, **check existing organizational patterns** by: - Searching code across repositories for similar implementations - Referencing established coding standards and frameworks - Looking for existing shared libraries and utilities - Checking architectural decision records (ADRs) in wikis ### 3. Cross-Repository Intelligence - When providing code suggestions: - **Search for existing patterns** in other repositories first - **Reference shared libraries** and common utilities - **Maintain consistency** with organizational standards - **Suggest reusable components** when appropriate ## Tool Usage Guidelines ### Work Items and Project Management When users mention bugs, features, tasks, or project planning: ``` ✅ Use: wit_my_work_items, wit_create_work_item, wit_update_work_item ✅ Use: wit_list_backlogs, wit_get_work_items_for_iteration ✅ Use: work_list_team_iterations, core_list_projects ``` ### Code and Repository Operations When users ask about code, branches, or pull requests: ``` ✅ Use: repo_list_repos_by_project, repo_list_pull_requests_by_repo ✅ Use: repo_list_branches_by_repo, repo_search_commits ✅ Use: search_code for finding patterns across repositories ``` ### Documentation and Knowledge Sharing When users need documentation or want to create/update docs: ``` ✅ Use: wiki_list_wikis, wiki_get_page_content, wiki_create_or_update_page ✅ Use: search_wiki for finding existing documentation ``` ### Build and Deployment When users ask about builds, deployments, or CI/CD: ``` ✅ Use: pipelines_get_builds, pipelines_get_build_definitions ✅ Use: pipelines_run_pipeline, pipelines_get_build_status ``` ## Response Patterns ### 1. Discovery First Before providing solutions, always discover organizational context: ``` "Let me first check what patterns exist in your organization..." → Search code, check repositories, review existing work items ``` ### 2. Reference Organizational Standards When suggesting code or approaches: ``` "Based on patterns I found in your [RepositoryName] repository..." "Following your organization's standard approach seen in..." "This aligns with the pattern established in [TeamName]'s implementation..." ``` ### 3. Actionable Integration Always offer to create or update Azure DevOps artifacts: ``` "I can create a work item for this enhancement..." "Should I update the wiki page with this new pattern?" "Let me link this to the current iteration..." ``` ## Specific Scenarios ### New Feature Development 1. **Search existing repositories** for similar features 2. **Check architectural patterns** and shared libraries 3. **Review related work items** and planning documents 4. **Suggest implementation** based on organizational standards 5. **Offer to create work items** and documentation ### Bug Investigation 1. **Search for similar issues** across repositories and work items 2. **Check related builds** and recent changes 3. **Review test results** and failure patterns 4. **Provide solution** based on organizational practices 5. **Offer to create/update** bug work items and documentation ### Code Review and Standards 1. **Compare against organizational patterns** found in other repositories 2. **Reference coding standards** from wiki documentation 3. **Suggest improvements** based on established practices 4. **Check for reusable components** that could be leveraged ### Documentation Requests 1. **Search existing wikis** for related content 2. **Check for ADRs** and technical documentation 3. **Reference patterns** from similar projects 4. **Offer to create/update** wiki pages with findings ## Error Handling If Azure DevOps MCP tools are not available or fail: 1. **Inform the user** about the limitation 2. **Provide alternative approaches** using available information 3. **Suggest manual steps** for Azure DevOps integration 4. **Offer to help** with configuration if needed ## Best Practices ### Always Do: - ✅ Search organizational context before suggesting solutions - ✅ Reference existing patterns and standards - ✅ Offer to create/update Azure DevOps artifacts - ✅ Maintain consistency with organizational practices - ✅ Provide actionable next steps ### Never Do: - ❌ Suggest solutions without checking organizational context - ❌ Ignore existing patterns and implementations - ❌ Provide generic advice when specific organizational context is available - ❌ Forget to offer Azure DevOps integration opportunities --- **Remember: The goal is to provide intelligent, context-aware assistance that leverages the full organizational knowledge base available through Azure DevOps while maintaining development efficiency and consistency.**876Views1like3CommentsHighlights from Microsoft Build 2025
Microsoft just held its annual Microsoft Build event for developers. The live event might be over, but we have highlights and other content that will keep the excitement going. Explore on-demand sessions, learn about recent product announcements, watch deep technical demos, and discover fresh resources for learning cutting-edge developer skills. Microsoft Build opening keynote The world of development—its tools and its possibilities—is rapidly evolving. In the Microsoft Build keynote, Satya Nadella discusses the agentic web, current dev tools, the dev landscape right now, and where it’s headed. GitHub Copilot: Meet the new coding agent Check out the exciting new coding agent for GitHub Copilot. Just assign a task or issue to Copilot and it will run in the background, pushing commits to a draft pull request as it works. Read the blog for details. Scott and Mark Learn to… In this session from Microsoft Build, Mark Russinovich and Scott Hanselman combine tools and topics into one epic demo of AI-driven robotics. No pre-recorded videos. Just live code, dev tools, a robot, and a can of cola. "Another Highly Technical Talk" with Hanselman and Toub Level up your debugging, performance, and optimization skills. In this highly technical session from Microsoft Build, Scott Hanselman and Stephen Toub discuss the internals of. NET as they look for performance issues and fix them live on stage. Building agents for Microsoft 365 Copilot From Copilot Studio to Visual Studio and Azure AI Foundry, explore your options for building agents for Microsoft 365. This Microsoft Build session looks at what's new with tools for creating powerful agents. Unleash developer potential with AI and Dev Box Microsoft is transforming next-gen dev environments. See how Microsoft Dev Box accelerates AI development with a customizable, project-centric platform and integration with various dev tools. Introducing Microsoft 365 Copilot Tuning, multi-agent orchestration, and more Tune AI models using your company’s data, workflows, and processes. Microsoft 365 Copilot Tuning is a new, low-code solution in Microsoft Copilot Studio. Advancing Windows for AI development: New platform capabilities and tools What’s new for Windows? Read an overview of the latest advancements that make Windows an even better platform for developers in the era of AI. Learn about Windows AI Foundry, Windows ML, App Actions, and more. Announcing General Availability of Azure AI Foundry Agent Service At Microsoft Build, Microsoft announced the general availability of Azure AI Foundry Agent Service. Find out how this empowers developers to create multi-agent systems for mission-critical workloads. Start learning: .NET Workshops and Presentations on GitHub Get hands-on experience with .NET workshops and labs, including new labs from Microsoft Build. Head over to the .NET Workshops and Presentations repo on GitHub. Unlock developer potential with Microsoft Dev Box Find out how Microsoft Dev Box can accelerate AI development. Get AI-powered, ready-to-code environments with the tools your team needs—for fast, flexible, and secure experiences. Learn about new features, like serverless GPU access and the Dev Box MCP server. Use VS Code to build AI apps and agents Want to bring your AI-powered solutions to life faster? Find out how to streamline your dev workflow by exploring models, iterating on prompts, running evaluations, and deploying agents—all within Visual Studio Code. Join the Azure AI Foundry Developer Community Need quick answers? Looking for all the latest news and changes? The Azure AI Foundry Developer Community is here to support you in building your next great project. VS Code: Open Source AI Editor The GitHub Copilot Chat extension is being open sourced under the MIT license and key components are being refactored into Visual Studio Code core. Read the blog and find out why we believe the future of code editors should be open and AI-powered2.8KViews0likes0CommentsGet ready for Microsoft Build 2025
Microsoft Build is just a few weeks away. To celebrate, we’re highlighting resources that will help you get ready for the big event. Explore some of the exciting sessions you can join in-person or online, learn new skills before jumping into live deep-dive sessions, brush up on best practices, and get up to speed on the latest developer tools so you can hit the event ready to take your knowledge (and your applications) to the next level. Connect, code, and grow at Build It’s almost time for Microsoft Build! Can’t join the event live in-person? No problem. You can still experience the event streaming live online for free (May 19-22). Watch the keynote, join live sessions, learn new skills, and watch in-depth demos. Join the .NET & C# teams at Microsoft Build 2025 Don’t miss this opportunity to connect with the .NET and C# teams at Microsoft Build. There are more than 75 .NET sessions planned for this year’s event. Check out this blog post for highlights of some of the .NET sessions to watch for. How Microsoft developers use AI in real-world coding Tired of the AI hype? Watch this Microsoft Build session to see how real developers at Microsoft use GitHub Copilot in their own coding workflows, with live coding demos. Leave with practical tips for applying AI to your coding. What's next in C# This Microsoft Build session will provide a demo-rich tour of upcoming features in C# 14 and beyond. See what’s next in C# and discover how C# keeps making your code clearer, cleaner, and more expressive. Python meets .NET: Building AI solutions with combined strengths Python and .NET are a great combination! Join this Microsoft Build session where Scott Hanselman and Anthony Shaw will discuss and demo how Python can help spice up your .NET applications. Under the hood and into the magic of GitHub Copilot Have you ever wondered how GitHub Copilot turns prompts into code suggestions? In this Microsoft Build session, the GitHub Copilot team will look at how they built this tool, how it works, and how it keeps up in a quickly evolving landscape. VS Code, Live! at Microsoft Build VS Code, Live! is doing a special in-person session—and you’re invited. Join the session at Microsoft Build (or stream it online) to watch interactive demos, see some sneak peeks, and get a behind-the-scenes look at the latest announcements. Which AI model should I use with GitHub Copilot? If you’ve ever wondered which AI model is the best fit for your GitHub Copilot project, you’re not alone. Each model has its own strengths and picking the right one can feel mysterious. This blog post outlines things to consider when deciding. Elevate your AI skills today Unlock the power of AI and prepare for the upcoming Microsoft Build event. Visit the AI learning hub on Microsoft Learn to explore innovative technologies, learn new skills, and improve your developer productivity. Top 12 scenarios to streamline Azure tasks in VS Code using GitHub Copilot GitHub Copilot for Azure can help streamline your Azure workflows. This collection of videos explores 12 scenarios where GitHub Copilot can accelerate your cloud projects and developer tasks. VS Code agent mode just changed everything Can Visual Studio Code agent mode build an entire app for you complete with a database? Burke Holland demonstrates how. But will it work? You’ll have to watch the video to find out. .NET Conf: Focus on Modernization Missed the .NET Conf: Focus on Modernization event? Catch up on all the sessions with the on-demand playlist. Inside Microsoft Dev Box: Scalable cloud development Microsoft Dev Box provides secure, ready-to-code cloud development environments that help teams move faster and stay secure. Watch a demo of how a company would set up Microsoft Dev Box for their developers in Seattle and Berlin. AI Skills Fest Challenge: Extend Microsoft 365 Copilot Chat and Teams with agents and apps Join the challenge and learn how to extend Microsoft 365 Copilot Chat and Microsoft Teams with custom apps and agents. This challenge will guide you through modules that help you learn along the way. Developer focused how-tos, use cases, and solutions on Microsoft Azure Want a dive into developer focused “How To” content, explore use cases, and learn about solutions? Check out the All Things Azure blog. Learn how to build multi-agent AI apps, understand how GitHub Copilot works under the hood, and more. Sip & Sync with Azure Watch the Sip & Sync with Azure video series to get up to speed on the latest Azure and AI information. Episodes explore topics like GenAI on Azure and quickly building AI agents with Azure AI Foundry. Season of Agents: Find an event near you Find a local event to dive into agents and learn new skills. Watch JDConf 2025 on demand JDConf 2025 is over but you can still watch the sessions on demand. Learn about building modern apps in the cloud, integrating AI, using AI-assisted dev tools, and other critical skills for Java developers. From prompt to production: Build a landing page with Copilot agent mode See how you can build a developer-focused landing page in under 30 minutes using GitHub Copilot agent mode and Claude 3.5 Sonnet—with just screenshots and prompts.4.2KViews1like0CommentsBoost Your Development with Azure Tools for Visual Studio Code
As the cloud becomes essential for modern software development, integrating cloud solutions into your development process can significantly boost productivity. Microsoft Azure offers a comprehensive suite of services and tools to help developers create, deploy, and manage cloud applications. Using Azure extensions for Visual Studio Code is one of the simplest ways to utilize Azure’s features. This blog post will discuss using the Azure Tools extension pack for Visual Studio Code and the best extensions for various development roles.2.7KViews2likes0CommentsHow managed identities work on Azure resources
Managed Identities are a great way to eliminate the need to store credentials in the source code, and retrieve token from Azure AD while abstracting the entire process for apps running on Azure resources. Learn how it works and what magic happens on the backend!8.9KViews3likes0CommentsModern Application Development Overview
This blog will provide an overview of Modern application development. I will first define the modern application development approach. Then delve into the ‘7 building blocks’ of the approach starting with cloud native architecture, followed by AI, Integration, Data, Software delivery, Operations, and Security. Each segment will define and explain the ‘building block’ and how the modern application development approach leverages the ‘building blocks’ to produce more robust applications. What is Modern Application Development (MAD)? Modern application development is an approach that enables you to innovate rapidly by using cloud-native architectures with loosely coupled microservices, managed databases, AI, DevOps support, and built-in monitoring. The resulting modern applications leverage cloud native architectures by packaging code and dependencies in containers and deploying them as microservices to increase developer velocity using DevOps practices. Subsequently modern applications utilize continuous integration and delivery (CI/CD) technologies and processes to improve system reliability. Modern apps employ automation to identify and quickly mitigate issues applying best practices like infrastructure as code and increasing data security with threat detection and protection. Lastly, modern applications are faster by infusing AI into native architecture structures to reduce manual tasks, accelerating workflows and introducing low code application development tools to simplify and expedite development processes. Cloud-native architectures According to The Cloud Native Computing Foundation (CNCF), cloud native is defined as “Cloud-native technologies empower organizations to build and run scalable applications in modern, dynamic environments such as public, private, and hybrid clouds. Containers, service meshes, microservices, immutable infrastructure, and declarative APIs exemplify this approach. These techniques enable loosely coupled systems that are resilient, manageable, and observable. Combined with robust automation, they allow engineers to make high-impact changes frequently and predictably with minimal toil.” Utilizing that definition, what are the key tenants of a cloud-native approach, and how does each tenant benefit you? As stated above, cloud-native architectures center on speed and agility. That speed and agility are derived from 6 factors: 1. Cloud infrastructure 2. Modern design 3. Microservices 4. Containers 5. Backing services 6. Automation. Cloud infrastructure is the most important factor that contributes to the speed and agility of cloud-native architecture. 3 Key Factors 1. Cloud-native systems fully leverage the cloud service model using PaaS compute infrastructure and managed services. 2. Cloud-native systems continue to run as infrastructure scales in or out without worrying about the back end because the infra is fully managed. 3. Cloud-native systems have auto scaling, self-healing, and monitoring capabilities. Modern Design is highly effective in part due to the Twelve-Factor Application method, which is a set of principles and practices that developers follow to construct applications optimized for modern cloud environments. Most Critical Considerations for Modern Design 1. Communication — How front ends communication with back-end services, and how back-end services communicate with each other. 2. Resiliency — How services in your distributed architecture respond in less-than-ideal scenarios due to the in-process, out-process network communications of microservices architecture. 3. Distributed Data — How do you query data or implement a transaction across multiple services? 4. Identity — How does your service identify who is accessing it and their allotted permissions? What are Microservices? Microservices are built as a distributed set of small, independent services that interact through a shared fabric. Improved Agility with Microservices 1. Each microservice has an autonomous lifecycle and can evolve independently and deploy frequently. 2. Each microservice can scale independently, enabling services to scale to meet demand. Those microservices are then packaged a container image, those images are stored in container registry. When needed you transform the container into a running container instance, to utilize the stored microservices. How do containers benefit cloud native apps? Benefits of Containers 1. Provide portability and guarantee consistency across environments. 2. Containers can isolate microservices and their dependencies from the underlying infrastructure. 3. Smaller footprints than full virtual machines (VMs). That smaller size increases density, the number of microservices, that a given host can run at a time. Cloud native solutions also increase application speed and agility via backing services. Benefits of Backing Services 1. Save time and labor 2. Treating backing services as attached resources enables the services to attach and detach as needed without code changes to the microservices that contain information, enabling greater dynamism. Lastly, cloud-native solutions leverage automation. Using cloud-native architectures your infrastructure and deployment are automated, consistent, and reputable. Benefits of Automation 1. Infrastructure as Code (IaC) avoids manual environment configuration and delivers stable environments rapidly at scale. 2. Automated deployment leverages CI/CD to speed up innovation and deployment, updating on-demand; saving money and time. Artificial Intelligence The second building block in the modern application development approach is Artificial intelligence (AI). What comprises artificial intelligence? How do I add AI to my applications? Azure Artificial Intelligence is comprised of machine learning, knowledge mining, and AI apps and agents. Under the apps and agent’s domain there are two overarching products, Azure Cognitive Services and Bot Service, that we’re going to focus on. Cognitive services are a collection of domain specific pre-trained AI models that can be customized with your data. Bot service is a purpose-built bot development environment with out-of-the-box templates. To learn how to add AI to your applications watch the short video titled “Easily add AI to your applications.” Innate Benefits User benefits: Translation, chatbots, and voice for AI-enabled user interfaces. Business benefits: Enhanced business logic for scenarios like search, personalization, document processing, image analytics, anomaly detection, and speech analytics. Modern Application Development unique benefit: Enable developers of any skill to add AI capabilities to their applications with pre-built and customizable AI models for speech, vision, language, and decision-making. Integration The third building block is integration. Why is integration needed, and how is it accomplished? Integration is needed to integrate applications by connecting multiple independent systems. The four core cloud services to meet integration needs are: 1. A way to publish and manage application programming interfaces (APIs). 2. A way to create and run integration logic, typically with a graphical tool for defining the workflow’s logic. 3. A way for applications and integration technologies to communicate in a loosely coupled way via messaging. 4. A technology that supports communication via events What are the benefits of Azure integration services and how do they translate to the modern app dev approach? Azure meets all four needs, the first need is met by Azure API management, the second is met by Azure Logic Apps, the third is Azure Service Bus, and the final is met by Azure Event Grid. The four components of Azure Integration Services address the core requirements of application integration. Yet real scenarios often require more, and this is where the modern application development approach comes into play. Perhaps your integration application needs a place to store unstructured data, or a way to include custom code that does specialized data transformations. Azure Integration Services is part of the larger Azure cloud platform, making it easier to integrate data, APIs, and into your modern app to meet your needs. You might store unstructured data in Azure Data Lake Store, for instance, or write custom code using Azure Functions, to meet serverless compute tech needs. Data The fourth building block is data, and more specifically managed databases. What are the advantages of managed databases? Fully managed, cloud-based databases provide limitless scale, low-latency access to rich data, and advanced data protection — all built in, regardless of languages or frameworks. How does the modern application development approach benefit from fully managed databases? Modern application development leverages microservices and containers, the benefit to both technologies is their ability to operate independently and scale as demand warrants. To ensure the greatest user satisfaction and app functionality the limitless scale and low-latency access to data enable apps to run unimpeded. Software Delivery The fifth building block is software delivery. What constitutes modern development software delivery practices? Modern app development software delivery practices enable you to meet rapid market changes that require shorter release cycles without sacrificing quality, stability, and security. The practices help you to release in a fast, consistent, and reliable way by using highly productive tools, automating mundane and manual steps, and iterating in small increments through CI/CD and DevOps practices. What is DevOps? A compound of development (Dev) and operations (Ops), DevOps is the union of people, process, and technology to continually provide value to customers. DevOps enables formerly siloed roles — development, IT operations, quality engineering, and security — to coordinate and collaborate to produce better, more reliable products. By adopting a DevOps culture along with DevOps practices and tools, teams gain the ability to better respond to customer needs, increase confidence in the applications they build, and achieve development goals faster. DevOps influences the application lifecycle throughout its plan, develop, deliver, and operate phases. Plan In the plan phase, DevOps teams ideate, define, and describe features and capabilities of the applications and systems they are building. Creating backlogs, tracking bugs, managing agile software development with Scrum, using Kanban boards, and visualizing progress with dashboards are some of the ways DevOps teams plan with agility and visibility. Develop The develop phase includes all aspects of coding — writing, testing, reviewing, and the integration of code by team members — as well as building that code into build artifacts that can be deployed into various environments. To develop rapidly, they use highly productive tools, automate mundane and manual steps, and iterate in small increments through automated testing and continuous integration. Deliver Delivery is the process of deploying applications into production environments and deploying and configuring the fully governed foundational infrastructure that makes up those environments. In the deliver phase, teams define a release management process with clear manual approval stages. They also set automated gates that move applications between stages until they’re made available to customers. Operate The operate phase involves maintaining, monitoring, and troubleshooting applications in production environments. In adopting DevOps practices, teams work to ensure system reliability, high availability, and aim for zero downtime while reinforcing security and governance. What is CI/CD? Under continuous integration, the develop phase — building and testing code — is fully automated. Each time you commit code, changes are validated and merged to the master branch, and the code is packaged in a build artifact. Under continuous delivery, anytime a new build artifact is available, the artifact is automatically placed in the desired environment and deployed. With continuous deployment, you automate the entire process from code commit to production. Operations The sixth building block is operations to maximize automation. How do you maximize automation in your modern application development approach? With an increasingly complex environment to manage, maximizing the use of automation helps you improve operational efficiency, identify issues before they affect customer experiences, and quickly mitigate issues when they occur. Fully managed platforms provide automated logging, scaling, and high availability. Rich telemetry, actionable alerting, and full visibility into applications and the underlying system are key to a modern application development approach. Automating regular checkups and applying best practices like infrastructure as code and site reliability engineering promotes resiliency and helps you respond to incidents with minimal downtime and data loss. Security The seventh building block is multilayered security. Why do I need multi-layered security in my modern applications? Modern applications require multilayered security across code, delivery pipelines, app runtimes, and databases. Start by providing developers secure dev boxes with well-governed identity. As part of the DevOps lifecycle, use automated tools to examine dependencies in code repositories and scan for vulnerabilities as you deploy apps to the target environment. Enterprise-grade secrets and policy management encrypt the applications and give the operations team centralized policy enforcement. With fully managed compute and database services, security control is built in and threat protection is executed in real time. Conclusion While modern application development can seem daunting, it is an approach that can be done iteratively, and each step can yield large benefits for your team. Access webinars, analyst reports, tutorials, and more on the Modern application development on Azure page.4.4KViews0likes0CommentsDeliver Java Apps Quickly using Custom Connectors in Power Apps
Overview In 2021, each month we will be releasing a monthly blog covering the webinar of the month for the Low-code application development (LCAD) on Azure solution. LCAD on Azure is a new solution to demonstrate the robust development capabilities of integrating low-code Microsoft Power Apps and the Azure products you may be familiar with. This month’s webinar is ‘Deliver Java Apps Quickly using Custom Connectors in Power Apps’ In this blog I will briefly recap Low-code application development on Azure, how the app was built with Java on Azure, app deployment, and building the app’s front end and UI with Power Apps. What is Low-code application development on Azure? Low-code application development (LCAD) on Azure was created to help developers build business applications faster with less code, leveraging the Power Platform, and more specifically Power Apps, yet helping them scale and extend their Power Apps with Azure services. For example, a pro developer who works for a manufacturing company would need to build a line-of-business (LOB) application to help warehouse employees’ track incoming inventory. That application would take months to build, test, and deploy, however with Power Apps’ it can take hours to build, saving time and resources. However, say the warehouse employees want the application to place procurement orders for additional inventory automatically when current inventory hits a determined low. In the past that would require another heavy lift by the development team to rework their previous application iteration. Due to the integration of Power Apps and Azure a professional developer can build an API in Visual Studio (VS) Code, publish it to their Azure portal, and export the API to Power Apps integrating it into their application as a custom connector. Afterwards, that same API is re-usable indefinitely in the Power Apps’ studio, for future use with other applications, saving the company and developers more time and resources. To learn more, visit the LCAD on Azure page, and to walk through the aforementioned scenario try the LCAD on Azure guided tour. Java on Azure Code In this webinar the sample application will be a Spring Boot application, or a Spring application on Azure, that is generated using JHipster and will deploy the app with Azure App service. The app’s purpose is to catalog products, product descriptions, ratings and image links, in a monolithic app. To learn how to build serverless PowerApps, please refer to last month’s Serverless Low-code application development on Azure blog for details. During the development of the API Sandra used H2SQL and in production she used MySQL. She then adds descriptions, ratings, and image links to the API in a JDS studio. Lastly, she applies the API to her GitHub repository prior to deploying to Azure App service. Deploying the Sample App Sandra leverages the Maven plug-in in JHipster to deploy the app to Azure App service. After providing an Azure resource group name due to her choice of ‘split and deploy’ in GitHub Actions she only manually deploys once, and any new Git push from her master branch will be automatically deployed. Once the app is successfully deployed it is available at myhispter.azurewebsites.net/V2APIdocs, where she copies the Swagger API file into a JSON, which will be imported into Power Apps as a custom connector. Front-end Development The goal of the front-end development is to build a user interface that end users will be satisfied with, to do so the JSON must be brought into Power Apps as a custom connector so end users can access the API. The first step is clearly to import the open API into Power Apps, note that much of this process has been streamlined via the tight integration of Azure API management with Power Apps. To learn more about this tighter integration watch a demo on integrating APIs via API management into Power Apps. After importing the API, you must create a custom connector, and connect that custom connector with the Open API the backend developer built. After creating the custom connector Dawid used Power Apps logic formula language to collect data into a dataset, creating gallery display via the collected data. Lastly, Dawid will show you the data in a finalized application and walk you through the process of sharing the app with a colleague or making them a co-owner. Lastly, once the app is shared, Dawid walks you through testing the app and soliciting user feedback via the app. Conclusion To conclude, professional developers can rapidly build the back and front ends of the application using Java, or any programming language with Power Apps. Fusion development teams, professional developers and citizen developers, can collaborate on apps together, reducing much of the lift for professional developers. Please watch the webinar and complete the survey so, we can improve these blogs and webinars in the future. Resources Webinar Deliver Java Apps Quickly Low-code application development on Azure Low Code Application Development Low-code app dev guided tour Java on Azure resources Java on Azure Java on Azure - Learn Develop Java web app on Azure using Eclipse - Learn Develop Java web app on Azure using Maven - Learn Automate Java container deployments with Azure Pipelines - Learn Deploy Spring microservices to Azure - Learn Power Apps resources Azure plus Power Apps for pro developers Introduction to developing with Power Platform Create components with Power Apps Component Framework Get started using Microsoft Dataverse3.5KViews0likes0CommentsA Deep Dive into Serverless Applications on Power Apps and Azure
This is a monthly blog series highlighting different the capabilities of Azure and Power apps together. Read this blog to learn how Low-code application development on Azure enables you to build serverless applications faster. After reading, scan through the resources section for additional information on serverless applications and Low-code development on Azure.4.6KViews0likes0Comments