Skip to content

tareqimbasher/NetPad

Repository files navigation

NetPad

A cross-platform C# editor and playground.

GitHub Actions Workflow Status GitHub Release npad cli version GitHub commits since latest release Discord

NetPad preview

Get Started

NetPad is a C# playground that lets you run C# code instantly, without the hassle of creating and managing projects. Open NetPad, start coding, hit Run, and see your output immediately. It's that simple.

  • Prototyping and Testing: Quickly prototype and test code snippets before incorporating them into your projects.
  • Data Visualization: Visualize data interactively for better insights and analysis.
  • Database Queries: Query databases using LINQ or SQL effortlessly.
  • Learn and Experiment: Experiment with new C# features or start learning C# in an intuitive and accessible environment.
  • Utility Scripts: Create and save your own utility or administration scripts for repeated use.

See Features.

If you like this project, please star it 🌟 and consider sponsoring!

Motivation

This project aims to create an open-source, cross-platform alternative to LINQPad. NetPad can run as a native desktop app or in a web browser, and aims to cover the most commonly used features while introducing new ones of its own.

Discord

Join the Discord server to collaborate, ask questions and get the latest announcements.

Requirements

The following must be installed to use NetPad:

Additional requirement if you plan to create and use database connections:

Download

Official Installers

Download Now!

NetPad comes in 2 variants:

  • Electron: The current stable package. Installers start with netpad
  • Native (vNext): Uses a native desktop shell built with Tauri instead of Electron, resulting in a lighter package that uses fewer system resources. Installers start with netpad_vnext

Both variants have the same features and are equally maintained. The Native (vNext) variant is planned to become the main package, at which point the Electron variant may be deprecated.

Note

On macOS see this if you have trouble opening NetPad.

Community Packages

These packages are maintained by community members.

Installer Channel Command
AUR Version stable yay -S netpad-bin
AUR Version vNext yay -S netpad-vnext-bin
WinGet Package Version stable winget install --id=TareqImbasher.NetPad -e
WinGet Package Version vNext winget install --id=TareqImbasher.NetPad.vNext -e

Updates

NetPad checks for updates on startup and will notify you when a new version is available. The latest version can always be downloaded from the Releases page.

Wiki

The Wiki is a great place to find more information about NetPad. See the Troubleshooting page if you run into any issues.

Features 🚀

  • Scripting:
    • Write, save and run your own scripts
    • Manage namespaces
    • Per-script .NET SDK version selection
    • Auto-open unsaved scripts from previous session on launch
  • Output & Visualization:
    • Dump complex objects to the results console
    • Export results to Excel or HTML
    • User-defined results styling
  • Database:
    • Add database connections and servers
    • Query with LINQ or SQL
  • Packages & References:
    • Add NuGet packages to scripts
    • Reference assemblies from disk
  • CLI:
    • Run scripts from the command-line using npad
  • Code Analysis:
    • Syntax Tree Visualizer
    • IL Viewer
  • Editor:
    • Vim keybindings
    • User Secrets management
  • Code Intelligence (OmniSharp):
    • Code Completion (Intellisense)
    • Semantic Highlighting
    • CodeLens
    • Inlay Hints
    • Hover for Documentation
    • Go-to implementation
    • Find References
    • Find Symbol
    • Rename Symbol
    • Action Suggestions
    • Diagnostics
    • Document Highlighting
    • Contextual code folding
    • Format document/selection/on-type

Recently Added in v0.11.0

  • .NET 10 Support: Support for the .NET 10 SDK.
  • NetPad CLI (npad): Run scripts, standalone C# files, and inline code directly from the terminal. Install with dotnet tool install -g netpad.cli. Wiki
  • IL Viewer: Inspect the generated IL for your scripts in the Code pane.
  • User Secrets Manager: Manage and access user secrets via a dedicated pane and Util.Secrets. Wiki
  • Oracle Data Connections: Oracle database connections are now supported.

Planned Features 🚧

  • Debugging
  • Hyperlink driven Lazy-loading of results, and a DataGrid view
  • Benchmark your code
  • Referencing other scripts
  • Export a script as a "ready to run" .NET app
  • Export a script as a C# project
  • Git tracking of script changes
  • Workspaces/Sessions
  • Plugins

Contribution & Support

All Pull Requests, feedback and contributions are welcome! Please read the Contributing guidelines for more information about how to contribute and build/run the project.

A special thanks to NetPad's wonderful sponsors. Sponsorships help pay for macOS builds and cross-platform testing and helps me maintain this project.

mattjcowan   lpreiner   ChristopherHaws   OddSkancke   SimonNyvall   

If you enjoy using NetPad and would like to support its continued development, consider sponsoring the project. A small contribution helps immensely with maintenance and the addition of new features. Thank you for your support! ❤️





Tech Stack 💻

  • .NET for the backend.
  • ElectronSharp (github) for the Electron desktop app and Tauri (docs) for the native desktop app.
  • Aurelia 2 (docs) for the UI.

Build

See CONTRIBUTING.md for instructions on how to build and run NetPad from source. NetPad can be run as a desktop app or as a web application accessed with a web browser.

Resources 📚: