.NET 10 & Avalonia 12.1.2 Ready

High-Performance .NET 10 C# Studio &
Interactive Jupyter Notebooks

CSharpPlayground (FrySharp) delivers authentic Visual Studio Code ergonomics, stateful Roslyn script execution, visual gutter debugging, and rich tabular analytics — both as a standalone native desktop IDE and as an edge-to-edge FryPDF automation plugin.

Build Passing
Runtime .NET 10.0
UI Framework Avalonia 12.1.2
Unit Tests 244 Passed (100%)
License MIT

Authentic 5-Zone VS Code Studio Simulator

Experience the identical 5-zone IDE architecture mandated for FrySharp. Click tabs, toggle gutter breakpoints, run code (F5), inspect variables, evaluate REPL expressions, and browse tabular data.

TwoSum.csx — CSharpPlayground (FrySharp) — .NET 10 Roslyn
# TwoSum.csx ×
📓 DataAnalysis.dib ×
📄 PdfReport.csx ×
workspace › scripts › TwoSum.csx › C# (.NET 10 Roslyn)
int[] nums
Input integer array: { 2, 7, 11, 15 }
Terminal / Console
Results (.Dump)
Debug REPL
Problems (0)
Output
Test Cases (3/3)
[16:04:12] ▶ Roslyn ScriptEngine v10.0.0 initializing...
[16:04:12] ✔ Assembly compilation succeeded (0 warnings, 0 errors)
[16:04:12] Evaluating: Solution.TwoSum([2, 7, 11, 15], target = 9)...
[16:04:12] Test Case 1 (Target = 9) => [0, 1] (Found in 1 iteration)
[16:04:12] Test Case 2 (Target = 6) => [1, 2]
[16:04:12] ⏱ Script execution completed in 14ms. Ready.

Stateful Interactive C# Notebooks

Chained cell execution powered by NotebookExecutionKernel and Roslyn's ScriptState.ContinueWithAsync. Variables declared in earlier cells remain in-scope for subsequent cells without re-executing your entire script.

📓 DataPipelineDemo.dib Persistent Roslyn Session
[1] In: #r "nuget: Microsoft.Data.Analysis, 0.20.1"
using System;
using System.Collections.Generic;

// Declare stateful session variable
var numbers = new List<int> { 12, 45, 68, 92, 105, 144, 210 };
Console.WriteLine($"Loaded {numbers.Count} records into session memory.");
Loaded 7 records into session memory.
[2] In: Chained Submission #1
// Directly access 'numbers' from Cell 1
var squared = numbers.Select(n => n * n).ToList();
squared.Dump("Squared Values");
Squared Values => [ 144, 2025, 4624, 8464, 11025, 20736, 44100 ]
[3] In: Rich Media Visualization
// Emit rich UI control to notebook canvas
Display.Chart(squared, title: "Quadratic Growth", color: "#4ec9b0");
0 210
Visualized using SkiaSharp + Avalonia Native Surface

Engineered for Developer Productivity

Built from the ground up for .NET 10 document automation, Roslyn compilation, and full-viewport desktop ergonomics.

Authentic 5-Zone VS Code Layout

Complies strictly with VS Code chrome standards: 48px fixed Activity Bar, collapsible 260px Side Bar, multi-tab editor with dirty indicators, resizable Bottom Tool Deck, and 22px Status Bar.

  • Single primary side bar rule (no redundant columns)
  • Zero layout shifts with fluid splitters
  • Dark+ high-contrast theme styling

Interactive Debugging Engine

Rich step-through debugging powered by Roslyn syntax instrumentation: visual red gutter breakpoints, yellow line stepping highlighter, locals/watch inspector, and immediate expression REPL.

  • F5 (Continue), F10 (Step Over), F11 (Step Into)
  • Hover variable data tips over expressions
  • Non-intrusive background session pausing

Tabular Data & DataFrame Profiling

Native interactive inspectors for Microsoft.Data.Analysis.DataFrame, DataTable, and DataView. Search, sort, paginate, and profile large data structures without freezing the UI.

  • Type inference and null-count summaries
  • Interactive .Dump() table builder
  • Export to CSV, JSON, and Markdown

FryPDF Document Automation

Deeply integrated into the FryPDF ecosystem. Script document generation, PDF merging, digital signatures, table extraction, and batch workflow automation using pure C# code.

  • Full-viewport studio plugin integration
  • Pre-seeded script automation templates
  • Direct access to FryPDF document APIs

244 Unit Tests & 100% Pass Rate

Rock-solid codebase stability verified through 244 comprehensive automated unit tests covering compilation, debugging sessions, kernel execution, storage, and UI controls.

  • Zero build warnings, zero test errors
  • CI automated checks on every pull request
  • Memory-safe script disposal & cancellation

Cross-Platform Packaging

Build and distribute native standalone binaries for macOS (`.dmg`) and Windows (`.msix` / Inno Setup installer), or ship as an isolated plugin for host applications.

  • Standalone runner executable (`FrySharp`)
  • Packaging scripts in packaging/
  • Self-contained .NET 10 native deployment

Zero UI-Thread Freeze Architecture

How Roslyn compilation, NuGet resolution, and script evaluation execute asynchronously without blocking the 60fps Avalonia UI render loop.

1

AvaloniaEdit

Debounced user input (350ms) triggers background diagnostic queue with CancellationToken.

➔
2

Roslyn Compiler

Headless syntax analysis, symbol binding, and AST diagnostic collection via Task.Run.

➔
3

Stateful Kernel

ScriptState.ContinueWithAsync executes IL in memory, maintaining live variable heap.

➔
4

Dispatcher.Post

Safe UI thread post streams stdout, updates line highlighter, and populates .Dump grid.

Visual Studio Code Keyboard Shortcuts

Every shortcut you rely on in VS Code is mapped and honored inside the C# Code Studio.

Toggle Primary Side Bar
Ctrl + B
Toggle Bottom Tool Deck
Ctrl + J
Start / Continue Debugging
F5
Run Script (No Debug)
Ctrl + F5
Step Over Line
F10
Step Into Method
F11
Stop Execution
Shift + F5
Format Document
Ctrl + K, Ctrl + D
Focus File Explorer
Ctrl + Shift + E
Focus Search Panel
Ctrl + Shift + F
Focus Run & Debug
Ctrl + Shift + D
Focus Problems Deck
Ctrl + Shift + M

Quick Start & Setup

Clone the repository, run the desktop application, or run the complete 244-test test suite in seconds.

Run Standalone Desktop App (FrySharp) Bash / Zsh
dotnet run --project Runner/CSharpEditorPlugin.Runner.csproj
Run All 244 Automated Unit Tests Bash / Zsh
dotnet test CSharpEditorPlugin.slnx
Package macOS .DMG Installer macOS Shell
./packaging/macos/create-dmg.sh