A comprehensive study project for advanced C# language features and modern .NET patterns
This repository serves dual purposes:
- Learning Project: Explore and practice advanced C# language features (C# 12, 13, 14) and modern .NET patterns
- AI Configuration Template Source: Maintain reusable AI assistant configuration files via the
AITransfer/directory for use in other C# / .NET projects
- Modern C# Implementations: Examples and studies of cutting-edge C# features
- Best Practice Patterns: Extension methods, file-scoped namespaces, primary constructors, and more
- AI-Ready Templates: Pre-configured GitHub Copilot and Junie AI instructions
- Comprehensive Documentation: Detailed guides, summaries, and architectural decisions
| Component | Version | Notes |
|---|---|---|
| .NET SDK | 10.0.100 | Defined in global.json |
| Target Framework | net10.0 | Latest .NET |
| C# Language | 14 | Cutting-edge features |
| IDE | JetBrains Rider | With terminal output optimizations |
| Shell | PowerShell | Windows-based development |
Key Settings:
- β Nullable Reference Types: Enabled
- β Implicit Usings: Enabled
- β File-Scoped Namespaces: Enforced
- β Modern C# Patterns: Mandatory
Learning_AdvancedCSharpStudies/
βββ Learning_AdvancedCSharpStudies/ # Main console application
β βββ Program.cs # Application entry point
β βββ [Feature].cs # C# feature implementations
β
βββ AITransfer/ # π― AI configuration templates
β βββ copilot-instructions.md # GitHub Copilot template
β βββ junie-guidelines.md # Junie AI template
β βββ .editorconfig # Code style rules template
β βββ .gitignore # Git ignore template
β βββ global.json # .NET SDK template
β βββ README.md # AITransfer usage guide
β βββ SETUP_GUIDE.md # Step-by-step setup
β βββ QUICK_REFERENCE.md # Quick start reference
β βββ CUSTOMIZATION_CHECKLIST.md # Template customization guide
β βββ TROUBLESHOOTING.md # Common issues and solutions
β
βββ docs/ # Project documentation
β βββ AITRANSFER_SYNC_SUMMARY.md # Template synchronization guide
β βββ RIDER_TERMINAL_OUTPUT_FIX.md # Rider IDE terminal fix
β βββ [other summaries] # Feature and refactoring docs
β
βββ .github/ # GitHub & AI configuration
β βββ copilot-instructions.md # Active GitHub Copilot config
β βββ global-copilot-instructions.md # General development guidelines
β
βββ .junie/ # Junie AI configuration
β βββ guidelines.md # Active Junie AI config
β
βββ .editorconfig # Active code style rules
βββ .gitignore # Active git ignore patterns
βββ global.json # Active .NET SDK version
βββ Learning_AdvancedCSharpStudies.sln # Visual Studio solution
This project enforces modern C# best practices:
- β Extension methods over static utilities
- β
File-scoped namespaces (
namespace MyProject;) - β One type per file (enforced at warning level)
- β Primary constructors (C# 12+)
- β
No
this.qualifiers (enforced) - β
Predefined types (
int,stringnotInt32,String)
- β XML documentation on all public APIs
- β
<param>and<returns>tags for methods - β
Proper use of
<see>,<paramref>, etc.
- β Comprehensive edge case coverage
- β Theory-based parameterized tests
- β Descriptive test method names
- β Assertion libraries (e.g., FluentAssertions)
- .NET SDK 10.0.100 or higher
- JetBrains Rider (recommended) or Visual Studio 2022+
- PowerShell 5.1 or higher
- Git
# Clone the repository
git clone https://github.com/YOUR_USERNAME/Learning_AdvancedCSharpStudies.git
cd Learning_AdvancedCSharpStudies
# Restore dependencies and build
dotnet restore
dotnet build Learning_AdvancedCSharpStudies.sln -c Debug --verbosity normal
# Run the application
dotnet run --project .\Learning_AdvancedCSharpStudies\Learning_AdvancedCSharpStudies.csprojIf you don't see build/test output in Rider's terminal, use verbosity flags:
# Build with visible output
dotnet build Learning_AdvancedCSharpStudies.sln -c Debug --verbosity normal
# Test with visible output
dotnet test Learning_AdvancedCSharpStudies.sln --verbosity normalConfigure Rider for Better Terminal Output:
-
MSBuild Verbosity (Recommended):
- Settings (
Ctrl+Alt+SorFile β Settings) - Navigate to: Build, Execution, Deployment β Toolset and Build
- Set "MSBuild verbosity" to
NormalorDetailed
- Settings (
-
Alternative Output Locations:
- Build output:
View β Tool Windows β Build(orAlt+0) - Test results:
View β Tool Windows β Unit Tests(orAlt+8) - Run output:
View β Tool Windows β Run(orAlt+4)
- Build output:
π Detailed Guides:
- Rider UI Visual Fix Guide β Step-by-step with screenshots and shortcuts
- Complete Troubleshooting β Comprehensive technical documentation
The AITransfer/ directory contains reusable AI configuration templates for new C# / .NET projects. These templates help maintain:
- β Consistent AI assistant behavior (GitHub Copilot, Junie AI)
- β Unified coding standards across projects
- β Modern C# best practices
- β Proper build/test configurations
- Copy the
AITransfer/folder to your new repository - Run the setup commands from
AITransfer/SETUP_GUIDE.md - Customize files using
AITransfer/CUSTOMIZATION_CHECKLIST.md - Build and verify your project
Quick Start: See AITransfer/QUICK_REFERENCE.md
Important: As AI instructions evolve in this repository, they must be synchronized to AITransfer/ templates for reuse in new projects.
See docs/AITRANSFER_SYNC_SUMMARY.md for synchronization workflow.
| Document | Purpose |
|---|---|
| AITransfer/README.md | AITransfer usage guide |
| AITransfer/SETUP_GUIDE.md | Step-by-step setup for new projects |
| AITransfer/QUICK_REFERENCE.md | Quick start reference |
| AITransfer/TROUBLESHOOTING.md | Common issues and solutions |
| docs/AITRANSFER_SYNC_SUMMARY.md | Template synchronization guide |
| docs/RIDER_UI_FIX_VISUAL_GUIDE.md | Rider terminal fix - Visual step-by-step guide β |
| docs/RIDER_TERMINAL_OUTPUT_FIX.md | Rider IDE terminal - Technical documentation |
| .github/copilot-instructions.md | GitHub Copilot coding standards |
| .junie/guidelines.md | Junie AI assistant guidelines |
# Build Debug
dotnet build Learning_AdvancedCSharpStudies.sln -c Debug --verbosity normal
# Build Release
dotnet build Learning_AdvancedCSharpStudies.sln -c Release --verbosity normal
# Run Application
dotnet run --project .\Learning_AdvancedCSharpStudies\Learning_AdvancedCSharpStudies.csproj
# Clean Artifacts
Get-ChildItem -Recurse -Directory -Include bin,obj | Remove-Item -Recurse -Force# Run all tests (when test project exists)
dotnet test Learning_AdvancedCSharpStudies.sln --verbosity normal
# Run with detailed output
dotnet test Learning_AdvancedCSharpStudies.sln --verbosity detailed
# Run specific test class
dotnet test --filter FullyQualifiedName~[TestClassName] --verbosity normalNote: Always use --verbosity normal for visible output in Rider terminal.
This repository explores advanced C# features including:
- C# 12+: Primary constructors, collection expressions
- C# 13+: Latest language enhancements
- C# 14: Cutting-edge experimental features
- Pattern Matching: Advanced patterns and switch expressions
- LINQ: Modern query patterns and extension methods
- Async/Await: Asynchronous programming patterns
- Records & Structs: Modern data types
- Nullable Reference Types: Null-safety patterns
- Generic Constraints: Advanced generic programming
(More topics to be added as the project evolves)
This is primarily a personal learning repository, but suggestions and improvements are welcome:
- For AI Configuration Templates: Ensure changes are synchronized between active files and
AITransfer/templates - For Code Examples: Follow the established coding principles
- For Documentation: Update relevant markdown files in
docs/
| Task | Command |
|---|---|
| Build Debug | dotnet build Learning_AdvancedCSharpStudies.sln -c Debug --verbosity normal |
| Build Release | dotnet build Learning_AdvancedCSharpStudies.sln -c Release --verbosity normal |
| Run App | dotnet run --project .\Learning_AdvancedCSharpStudies\Learning_AdvancedCSharpStudies.csproj |
| Test All | dotnet test Learning_AdvancedCSharpStudies.sln --verbosity normal |
| Clean | Get-ChildItem -Recurse -Directory -Include bin,obj | Remove-Item -Recurse -Force |
This project is for educational purposes. Feel free to use the AITransfer templates in your own projects.
Last Updated: December 2, 2025
Version: 1.0 β Initial repository setup with AITransfer templates