NE.Standard 1.0.0

The owner has unlisted this package. This could mean that the package is deprecated, has security vulnerabilities or shouldn't be used anymore.
dotnet add package NE.Standard --version 1.0.0
                    
NuGet\Install-Package NE.Standard -Version 1.0.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="NE.Standard" Version="1.0.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="NE.Standard" Version="1.0.0" />
                    
Directory.Packages.props
<PackageReference Include="NE.Standard" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add NE.Standard --version 1.0.0
                    
#r "nuget: NE.Standard, 1.0.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package NE.Standard@1.0.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=NE.Standard&version=1.0.0
                    
Install as a Cake Addin
#tool nuget:?package=NE.Standard&version=1.0.0
                    
Install as a Cake Tool

NE.Standard

A server-driven UI framework for .NET, plus the general-purpose helper library it grew out of.

You write a view — a component tree, in C# fluent builders — and a controller — an observable object graph. The framework compiles that pair once into an immutable, indexed description, renders it to a platform, and then keeps the rendered surface in sync with the controller in both directions. The client never holds application state and never decides what to draw.

Web is the platform implemented today: ASP.NET Core for the shell and the transport, SignalR for the live channel, and a TypeScript client that ships embedded in the assembly — there is no separate front-end deploy step.

Packages

Package
NE.Standard general-purpose helpers: collection/string/date/reflection extensions, an object-graph serializer, console and debug loggers, LimitedStack, WeakDelegate. Independent of the UI stack.
NE.Standard.UI.Generators the two Roslyn source generators the UI stack is built on, usable by anything defining its own components or observable models.

The rest of the framework — the contracts, the engine, the components and the web platform — is still moving and is not published yet. docs/PLAN.md in the private repository tracks what is left before it is.

dotnet add package NE.Standard

The same versions also go to GitHub Packages, which needs the feed added with credentials first — it authenticates every read, public package or not:

dotnet nuget add source https://nuget.pkg.github.com/AkiEvansDev/index.json -n akievansdev -u <user> -p <token>

A first look

A view declares the tree and what each part binds to:

internal sealed class CounterView : UIViewBase, IUIViewDefinition
{
    public static string ViewKey => "counter";

    protected override IVisualComponent CreateContent()
        => new ContainerComponent()
            .SetPadding(new UIThickness(16))
            .AddChild(new TextComponent()
                .BindTitle(nameof(CounterController.Count))
                .SetPlacement(1, 1, 24, 1)
            )
            .AddChild(new ButtonComponent()
                .OnClick(nameof(CounterController.Increment))
                .ConfigureDefaultContent(c => c.SetTitle("Add one"))
                .SetPlacement(1, 2, 24, 1)
            );
}

A controller holds the state, and changing it is what updates the screen — [RecursiveMember] generates the notifying setter and the path segment the binding resolves against:

internal sealed partial class CounterController : UIControllerBase
{
    [RecursiveMember]
    public partial int Count { get; set; }

    [UICommand]
    public void Increment() => Count++;
}

Hosting is an ASP.NET Core application:

WebApplicationBuilder builder = WebApplication.CreateBuilder(args);

WebStartupBuilder.Configure<AppWebStartup, AppStartup>(builder.Services);

WebApplication app = builder.Build();
await app.MapStandardUIWebAsync();
await app.RunAsync();

The demo

examples/DemoApp is the reference application: every built-in component, each shown three ways — a static example, a live binding playground and an interaction test — across 87 routes, with a worked authentication/authorization section.

dotnet run --project examples/DemoApp.Web    # http://localhost:5000

Building

Requires the .NET 10 SDK, and Node for the TypeScript client — which builds as part of dotnet build, so a TypeScript type error fails the .NET build.

dotnet build
dotnet build -p:SkipWebClientBuild=true      # skip npm/vite when node is unavailable

Contributing

This repository is a read-only mirror of a private one, so a merged pull request here would be erased by the next release. Please open an issue instead — the change is made upstream and appears here with the next release.

License

MIT.

Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated