Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 15 additions & 11 deletions .github/copilot-instructions.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,14 @@

## Project Purpose & Structure
- This repo is a hands-on .NET course for Generative AI, focused on real-world, runnable code and live coding.
- Lessons are organized in numbered folders (e.g., `01-IntroToGenAI/`, `03-CoreGenerativeAITechniques/`), each with a `readme.md` and code in the root sample folder.
- Key technologies: .NET 9+, Microsoft.Extensions.AI (MEAI), Microsoft Agent Framework, Azure OpenAI, Ollama (local models).
- Lessons are organized in numbered folders (`01-IntroductionToGenerativeAI/` through `05-ResponsibleAI/`), each with a `readme.md` for documentation.
- All code samples live in the centralized `samples/` directory, organized by category: `CoreSamples/`, `MAF/`, `AppsWithGenAI/`, `PracticalSamples/`.
- Key technologies: .NET 10+, Microsoft.Extensions.AI (MEAI), Microsoft Agent Framework, Azure OpenAI, Ollama (local models).
- Multi-language support: see `translations/` for localized docs.

## Architecture & Patterns
- Each lesson is self-contained; (e.g., `05-AppCreatedWithGenAI/SpaceAINet/`) demonstrate full-stack AI integration.
- Samples are created inside the sample folder for organization.
- Each lesson folder contains documentation; code samples are in `samples/` (e.g., `samples/AppsWithGenAI/SpaceAINet/` demonstrates full-stack AI integration).
- Samples are organized under `samples/` by category: `CoreSamples/`, `MAF/`, `AppsWithGenAI/`, `PracticalSamples/`.
- AI model calls are always abstracted behind service classes (e.g., `SpaceAINet.GameActionProcessor`), enabling easy provider swapping and testability.
- API keys and endpoints are never hardcoded—use user secrets or environment variables (see lesson READMEs for details).
- For SpaceAINet and similar apps:
Expand All @@ -23,15 +24,15 @@
- Ensure all code builds with `dotnet build` and passes tests with `dotnet test`
- Verify formatting with `dotnet format --verify-no-changes` if linting is enabled
- **Build & Run:**
- Use standard .NET CLI: `dotnet build`, `dotnet run` from the relevant project folder (e.g., `cd 05-AppCreatedWithGenAI/SpaceAINet/SpaceAINet.Console`).
- Use standard .NET CLI: `dotnet build`, `dotnet run` from the relevant project folder (e.g., `cd samples/AppsWithGenAI/SpaceAINet/SpaceAINet.Console`).
- For local AI: ensure Ollama is running and the required model is pulled (e.g., `ollama pull phi4-mini`).
- For Azure: set secrets via `dotnet user-secrets` or Codespaces secrets.
- **Switching AI Providers:**
- Most samples support toggling between local (Ollama) and cloud (Azure OpenAI) models at runtime (see app key bindings and README tables).
- **Codespaces:**
- Dev containers are pre-configured for .NET, Azure, and Ollama workflows. Choose the right container for your use case.
- **Testing:**
- Run sample apps in the lesson `src/` folders to verify model integration and workflow.
- Run sample apps in the `samples/` directory to verify model integration and workflow.

## Code Standards & Best Practices
- Follow C# and .NET best practices (naming conventions, async/await patterns, nullable reference types)
Expand All @@ -49,7 +50,7 @@
- AI integration is always via service abstraction (never direct model calls in UI or game logic).
- Use key bindings in sample apps to toggle AI modes, save screenshots, and display FPS (see app README for details).
- For translations, update the corresponding `translations/<lang>/README.md`.
- Maintain existing code structure and organization—place new samples in the correct lesson folder
- Maintain existing code structure and organization—place new samples in the correct `samples/` subfolder

## Integration Points & External Dependencies
- **Azure OpenAI:** Requires endpoint, model name, and API key (see `01-IntroductionToGenerativeAI/setup-azure-openai.md`).
Expand All @@ -58,9 +59,12 @@

## Key Files & Directories
- `README.md` (root): Course overview, lesson map, and links to translations.
- `01-IntroToGenAI/`, `02-SetupDevEnvironment/`, ...: Lesson folders with guides and code.
- `05-AppCreatedWithGenAI/SpaceAINet/`: Example of a full AI-powered .NET app (see `README.md` inside for architecture and usage).
- `samples/`: Contains all sample applications.
- `01-IntroductionToGenerativeAI/` through `05-ResponsibleAI/`: Lesson folders with documentation and guides.
- `samples/CoreSamples/`: Core technique samples (chat, vision, RAG, functions, etc.).
- `samples/MAF/`: Microsoft Agent Framework samples (25+ projects).
- `samples/AppsWithGenAI/SpaceAINet/`: AI-powered Space Battle game (see `README.md` inside for architecture).
- `samples/AppsWithGenAI/HFMCP.GenImage/`: Image generation Aspire app.
- `samples/PracticalSamples/`: Aspire MCP sample.
- `translations/`: Localized documentation.
- `CONTRIBUTING.MD`: Contribution and PR guidelines.

Expand All @@ -71,7 +75,7 @@
- `dotnet user-secrets set "AZURE_OPENAI_MODEL" "<your-model-name>"`
- `dotnet user-secrets set "AZURE_OPENAI_APIKEY" "<your-api-key>"`
3. Build & run:
- `cd 05-AppCreatedWithGenAI/SpaceAINet/SpaceAINet.Console`
- `cd samples/AppsWithGenAI/SpaceAINet/SpaceAINet.Console`
- `dotnet build && dotnet run`
4. Use key bindings to toggle AI modes, save screenshots, and display FPS during gameplay.

Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/build-validation.yml
Original file line number Diff line number Diff line change
Expand Up @@ -36,10 +36,10 @@ jobs:
- name: Checkout code
uses: actions/checkout@v4

- name: Setup .NET 9.0
- name: Setup .NET 10.0
uses: actions/setup-dotnet@v4
with:
dotnet-version: '9.0.x'
dotnet-version: '10.0.x'

- name: Restore dependencies for ${{ matrix.solution.name }}
run: dotnet restore "${{ matrix.solution.path }}"
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/copilot-setup-steps.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ jobs:
- name: Checkout code
uses: actions/checkout@v4

- name: Set up .NET 9
- name: Set up .NET 10
uses: actions/setup-dotnet@v4
with:
dotnet-version: '9.0.x'
dotnet-version: '10.0.x'
2 changes: 1 addition & 1 deletion .squad/agents/dozer/history.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

## Project Context
- **Project:** Generative AI for Beginners .NET — hands-on .NET course for GenAI
- **Stack:** .NET 9+, C#, MEAI, Semantic Kernel, Azure OpenAI, Ollama
- **Stack:** .NET 10+, C#, MEAI, Semantic Kernel, Azure OpenAI, Ollama
- **User:** Bruno Capuano
- **Owned scope:** NuGet package upgrades, .NET framework upgrades, build verification across all projects

Expand Down
2 changes: 1 addition & 1 deletion .squad/agents/morpheus/history.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

## Project Context
- **Project:** Generative AI for Beginners .NET — hands-on .NET course for GenAI
- **Stack:** .NET 9+, C#, MEAI, Semantic Kernel, Azure OpenAI, Ollama
- **Stack:** .NET 10+, C#, MEAI, Semantic Kernel, Azure OpenAI, Ollama
- **User:** Bruno Capuano

## Learnings
Expand Down
2 changes: 1 addition & 1 deletion .squad/agents/neo/charter.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ Core .NET development — building samples, implementations, and code across the

## Boundaries
- Owns C#/.NET code across all lesson folders and samples/
- Follows .NET 9+ best practices, async/await, nullable reference types
- Follows .NET 10+ best practices, async/await, nullable reference types
- Uses Microsoft.Extensions.AI and Microsoft Agent Framework patterns
- Never hardcodes API keys — uses user secrets or environment variables

Expand Down
2 changes: 1 addition & 1 deletion .squad/agents/neo/history.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

## Project Context
- **Project:** Generative AI for Beginners .NET — hands-on .NET course for GenAI
- **Stack:** .NET 9+, C#, MEAI, Semantic Kernel, Azure OpenAI, Ollama
- **Stack:** .NET 10+, C#, MEAI, Semantic Kernel, Azure OpenAI, Ollama
- **User:** Bruno Capuano

## Learnings
Expand Down
2 changes: 1 addition & 1 deletion .squad/agents/niobe/history.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

## Project Context
- **Project:** Generative AI for Beginners .NET — hands-on .NET course for GenAI
- **Stack:** .NET 9+, C#, MEAI, Semantic Kernel, Azure OpenAI, Ollama
- **Stack:** .NET 10+, C#, MEAI, Semantic Kernel, Azure OpenAI, Ollama
- **User:** Bruno Capuano
- **Owned scope:** Educational content strategy, AI/GenAI trend analysis, Microsoft technology scouting
- **Course structure:** 10 lesson folders (01-10), samples/ directory, translations/ for 8 languages
Expand Down
2 changes: 1 addition & 1 deletion .squad/agents/oracle/history.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

## Project Context
- **Project:** Generative AI for Beginners .NET — hands-on .NET course for GenAI
- **Stack:** .NET 9+, C#, MEAI, Semantic Kernel, Azure OpenAI, Ollama
- **Stack:** .NET 10+, C#, MEAI, Semantic Kernel, Azure OpenAI, Ollama
- **User:** Bruno Capuano
- **Owned files:** Root README.md (What's New section), 10-WhatsNew/readme.md

Expand Down
2 changes: 1 addition & 1 deletion .squad/agents/tank/history.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

## Project Context
- **Project:** Generative AI for Beginners .NET — hands-on .NET course for GenAI
- **Stack:** .NET 9+, C#, MEAI, Semantic Kernel, Azure OpenAI, Ollama
- **Stack:** .NET 10+, C#, MEAI, Semantic Kernel, Azure OpenAI, Ollama
- **User:** Bruno Capuano

## Learnings
Expand Down
Binary file modified .squad/agents/trinity/history.md
Binary file not shown.
2 changes: 1 addition & 1 deletion .squad/team.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
## Project Context

- **Project:** Generative AI for Beginners .NET
- **Stack:** .NET 9+, C#, Microsoft.Extensions.AI, Microsoft Agent Framework, Azure OpenAI, Ollama
- **Stack:** .NET 10+, C#, Microsoft.Extensions.AI, Microsoft Agent Framework, Azure OpenAI, Ollama
- **Description:** Hands-on course teaching .NET developers to build Generative AI applications. Lesson-based structure with real-world samples.
- **User:** Bruno Capuano

Expand Down
2 changes: 1 addition & 1 deletion 04-AgentsWithMAF/readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -120,7 +120,7 @@ All lesson code is in the [samples/MAF](../samples/MAF/) folder:
Before starting this lesson, ensure you have:

- Completed Lessons 1-3 (or understand chat, function calling, and RAG concepts)
- .NET 9 SDK installed
- .NET 10 SDK installed
- Access to at least one AI provider:
- Azure OpenAI / Microsoft Foundry (recommended)
- Azure OpenAI - Requires Azure subscription
Expand Down
Loading
Loading