Event Recap: Who is the Main Pilot? Copilot Studio and .NET at .NET North East
Introduction: The Developer’s New Blueprint
A massive thank you to the vibrant community at .NET Meetup North East for hosting me on Wednesday, October 29, 2025. It was a fantastic evening of tech talks, and I was thrilled to present my session: “Who Is Really the Main Pilot? Building Smarter Apps with Microsoft Copilot Studio and .NET.”
The central question of the talk was this: in an era where AI is becoming a core part of the development process, how do we as developers stay in control and steer the intelligence?
Here’s a recap of the key themes we explored.
The AI-First Vision: Copilot Everywhere
Microsoft’s vision is clear: AI is being woven into the fabric of its entire technology stack. This “Copilot Everywhere” strategy extends far beyond a simple chatbot.
GitHub Copilot accelerates our coding workflow.
M365 Copilot integrates AI into our daily productivity tools.
Copilot Studio is the developer’s gateway to building and customizing these AI experiences, connecting them to our own backend services and data.
This shift means AI is no longer just an external API call; it’s an integrated partner. The challenge for us is to architect systems where we remain the “Main Pilot.”
The .NET 9 Foundation: A Standard for AI
To build enterprise-grade AI applications, we need a solid foundation. .NET 9 delivers this with its core themes of Cloud Native & AI. The introduction of the Microsoft.Extensions.AI library provides a standardized, reliable, and dependency-injected way to consume Large Language Models (LLMs).
This new abstraction layer future-proofs our code, making it easier to switch between different AI models (from OpenAI, Azure AI, and others) without rewriting our application logic.
Semantic Kernel: Your AI Orchestration Engine
If Microsoft.Extensions.AI is the plumbing, Semantic Kernel (SK) is the flight controller. It’s the crucial layer that allows us, the developers, to control the LLM’s behavior and its access to our application’s world.
SK acts as a bridge, connecting the LLM’s reasoning power with our reliable C# code. We define the boundaries and the tools the AI can use, ensuring that we are always in command.
SK Capability 1: Plugins (Giving the AI Superpowers)
Plugins are standard C# methods that we expose to the LLM as tools. This is how we allow the AI to perform actions on the user’s behalf, such as retrieving data from a database or calling a backend API. This is the core mechanism for extending Copilot Studio.
SK Capability 2: Memory (Grounding the AI)
LLMs don’t know about your private business data. Semantic Kernel’s memory feature, which implements the Retrieval-Augmented Generation (RAG) pattern, solves this. We can provide the AI with our own data, ensuring its responses are grounded in facts and preventing it from hallucinating.
SK Capability 3: The Planner (Automating the Workflow)
The Planner allows the LLM to break down a complex goal into a series of steps that it can execute using the available plugins. We write the C# functions; the AI orchestrates them. This dramatically reduces the amount of complex, hand-coded workflow logic we need to write.
The Modern .NET AI Stack: The Hierarchy of Control
As the “Main Pilot,” it’s crucial to understand where our control lies. The modern .NET AI stack gives us clear points of influence, primarily in the orchestration and foundation layers.
Layer
Component
Developer’s Control Point
Application Interface
Copilot Studio / UI
Defines the User Goal
Orchestration
Semantic Kernel
Defines the Tools (Plugins) and the Execution Logic
Foundation
Microsoft.Extensions.AI
Defines the Model Endpoint and Connection
Core Intelligence
LLM (GPT, etc.)
Provides the Base Reasoning and Language
A Practical Demo: Console App with Gemini
To make these concepts concrete, I demonstrated a simple .NET 9 console app that uses Semantic Kernel with the Google Gemini connector. Here are the most important parts of the code. For the full, runnable project, see the resources section below.
// 1. Initialize the Semantic Kernel buildervar builder = Kernel.CreateBuilder();
// 2. Configure it with the Gemini Chat Completion service// (The API key is securely retrieved from configuration in the full demo)builder.AddGoogleAIGeminiChatCompletion(
modelId: "gemini-1.5-flash",
apiKey: "YOUR_GEMINI_API_KEY"// Replace with your key or load from config);
// 3. Build the kernelvar kernel = builder.Build();
// 4. Invoke the kernel with a promptvar result = await kernel.InvokePromptAsync("What is the history of the .NET Meetup North East?");
// 5. Get the resultConsole.WriteLine(result.GetValue<string>());
Conclusion: You Are the Main Pilot
So, who is really the main pilot? The developer who designs the system.
AI won’t replace developers, but developers who embrace AI will lead the future. By leveraging tools like Semantic Kernel, we can build smarter, more powerful applications while remaining firmly in control of the logic, security, and overall behavior of our systems.