Lara alternatives and similar packages
Based on the "GUI" category.
Alternatively, view Lara alternatives based on common mentions on social networks and blogs.
-
MaterialDesignInXamlToolkit
Google's Material Design in XAML & WPF, for C# & VB.Net. -
Avalonia
Develop Desktop, Embedded, Mobile and WebAssembly apps with C# and XAML. The most popular .NET Foundation community project. -
MahApps.Metro
A framework that allows developers to cobble together a better UI for their own WPF applications with minimal effort. -
UWP Community Toolkit
The Windows Community Toolkit is a collection of helpers, extensions, and custom controls. It simplifies and demonstrates common developer tasks building .NET apps with UWP and the Windows App SDK / WinUI 3 for Windows 10 and Windows 11. The toolkit is part of the .NET Foundation. -
Windows UI Library
Windows UI Library: the latest Windows 10 native controls and Fluent styles for your applications -
MaterialSkin
Theming .NET WinForms, C# or VB.Net, to Google's Material Design Principles. -
Eto.Forms
Cross platform GUI framework for desktop and mobile applications in .NET -
DockPanelSuite
DockPanel Suite - The Visual Studio inspired docking library for .NET WinForms -
metroframework-modern-ui
My humble attempt to bring the new Modern UI alias Metro UI of Windows 8 to .NET Windows Forms applications. -
Ooui
A small cross-platform UI library that brings the simplicity of native UI development to the web -
FastColoredTextBox
Fast Colored TextBox for Syntax Highlighting. The text editor component for .NET. -
XWT
A cross-platform UI toolkit for creating desktop applications with .NET and Mono -
AdonisUI
Lightweight UI toolkit for WPF applications offering classic but enhanced windows visuals -
Neutronium
๐ Build .NET desktop applications using HTML, CSS and javascript. -
ScintillaNET
A Windows Forms control, wrapper, and bindings for the Scintilla text editor. -
WinApi
A simple, direct, ultra-thin CLR library for high-performance Win32 Native Interop -
Ookii.Dialogs.Wpf
Awesome dialogs for Windows Desktop applications built with Microsoft .NET (WPF) -
Gtk#
Gtk# is a Mono/.NET binding to the cross platform Gtk+ GUI toolkit and the foundation of most GUI apps built with Mono -
Callisto
A control toolkit for Windows 8 XAML applications. Contains some UI controls to make it easier to create Windows UI style apps for the Windows Store in accordance with Windows UI guidelines. -
Ookii.Dialogs.WinForms
Awesome dialogs for Windows Desktop applications built with Microsoft .NET (WinForms) -
SciterSharp
Create .NET cross-platform desktop apps using not just HTML, but all features of Sciter engine: CSS3, SVG, scripting, AJAX, <video>... Sciter is free for commercial use -
ObjectListView
git clone of https://objectlistview.svn.sourceforge.net/svnroot/objectlistview/cs/trunk -
Bunifu UI Framework
Social App dark UI built with Bunifu UI Framework Ultimate Bundle
ONLYOFFICE Docs โ document collaboration in your environment
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of Lara or a related project?
README
Lara Web Engine
Lara is a server-side rendering framework for developing web user interfaces using C#.
"It is similar to server-side Blazor, but is much more lightweight and easier to install. For example, while any type of Blazor requires a whole SDK, Lara is just a NuGet package." ScientificProgrammer.net
Sample application
using Integrative.Lara;
using System;
using System.Threading.Tasks;
namespace SampleApp
{
public static class Program
{
public static async Task Main()
{
// create and start application
const int port = 8182;
using var app = new Application();
app.PublishPage("/", () => new MyCounterComponent { Value = 5 });
await app.Start(new StartServerOptions { Port = port });
// print address on console
var address = $"http://localhost:{port}";
Console.WriteLine($"Listening on {address}/");
// helper function to launch browser (comment out as needed)
LaraUI.LaunchBrowser(address);
// wait for ASP.NET Core shutdown
await app.WaitForShutdown();
}
}
internal class MyCounterComponent : WebComponent
{
private int _value; // triggers PropertyChanged event
public int Value { get => _value; set => SetProperty(ref _value, value); }
public MyCounterComponent()
{
ShadowRoot.Children = new Node[]
{
new HtmlDivElement() // on PropertyChanged, assigns InnerText
.Bind(this, x => x.InnerText = Value.ToString()),
new HtmlButtonElement
{ InnerText = "Increase" }
.Event("click", () => Value++)
};
}
}
}
Adding Lara to an existing web server application
To add Lara to an existing ASP.NET Core server, add to the Startup class or equivalent:
private readonly Application _laraApp = new Application();
public void Configure(IApplicationBuilder app)
{
app.UseLara(_laraApp, new LaraOptions
{
// configuration options
});
}
Creating Desktop applications
To create a desktop container for your web app, here's a few options:
- electron.js combined with electron-cgi library
- Chromely
- neutralinojs
Getting started
There's no need to download this repository to use Lara, instead, there's a NuGet package.
Check out the wiki documentation
How does Lara work?
Whenever the browser triggers a registered event (e.g. click on a button), it sends to the server a message saying that the button was clicked. The server executes the code associated with the event, manipulating the server's copy of the page, and replies a JSON message with the delta between server and client.
How to contribute
Please send feedback! Issues, questions, suggestions, requests for features, and success stories. Please let me know by either opening an issue. Thank you!
If you like Lara, please give it a star - it helps!
Credits
Thanks to JetBrains for the licenses of Rider and DotCover.
*Note that all licence references and agreements mentioned in the Lara README section above
are relevant to that project's source code only.