Skip to content

Removing .NET Interactive Breaks a Critical Exploratory Workflow in C# #4227

@nczsl

Description

@nczsl

Title

Removing .NET Interactive Breaks a Critical Exploratory Workflow in C#

Content

I understand the cost and complexity behind maintaining .NET Interactive and Polyglot Notebooks. However, this deprecation removes a uniquely important capability from the .NET ecosystem — one that currently has no real replacement.


1. This is not about notebooks — it is about execution model

What .NET Interactive provides is not just a notebook UI, but a fundamentally different way of working with code:

  • Incremental execution
  • Stateful evaluation
  • Dynamic, cumulative compilation
  • Step-by-step exploration via #load

This enables a workflow that is not achievable with traditional compile-run cycles.


2. Dynamic cumulative compilation is essential

In my workflow, I rely heavily on:

  • Breaking code into parts using #load
  • Executing and evolving logic incrementally
  • Avoiding full project recompilation on every change

This is not just a convenience — it directly impacts:

  • Development speed
  • Iteration quality
  • Willingness to explore and validate ideas

Without this model, the workflow degrades into:

modify → compile → run → repeat

For exploratory development, this is simply too slow and disruptive.


3. Real-world usage: dual-mode development

I currently maintain a dual-mode system:

  • Build mode → standard dotnet build
  • Exploration mode.ipynb + #load (powered by Roslyn)

I even use Roslyn to switch between these modes.

This allows:

  • Fast experimentation in notebook mode
  • Clean transition back to production code

This workflow significantly improves both productivity and code quality.


4. File-based apps are not a replacement

The suggested alternative (file-based apps / scripts) does not provide:

  • Incremental execution
  • Persistent state across steps
  • Structured, step-by-step evaluation

Even with scripting, the lack of cumulative execution makes it fundamentally different.


5. A minimal path forward exists

Even if Polyglot Notebooks are too costly to maintain, there is still a high-value middle ground:

A minimal, C#-only interactive kernel

Without multi-language support, this would still preserve:

  • Stateful execution
  • Incremental compilation
  • #load-based modular exploration

This would retain the core value while reducing complexity.


6. Long-term concern

The current guidance suggests continuing to use .NET Interactive “as-is,” with the risk of future breakage.

This raises serious concerns:

  • Should users stop upgrading .NET to preserve their workflow?
  • Is there any supported long-term alternative?
  • Are exploratory workflows no longer a goal for the .NET ecosystem?

7. Why this matters

This is not a niche scenario.

Exploratory programming is critical for:

  • Designing systems
  • Validating ideas
  • Understanding complex logic

Removing this capability without a replacement reduces the effectiveness of C# as a tool for thinking, not just building.


Final request

If full support cannot be maintained, I strongly suggest:

  • Keeping a minimal, supported C# interactive execution environment
    OR
  • Providing an officially supported alternative with equivalent capabilities

Without this, an important part of the developer experience is lost.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions