bflat
GtkSharp
bflat | GtkSharp | |
---|---|---|
27 | 11 | |
3,474 | 854 | |
0.7% | 1.6% | |
6.9 | 6.0 | |
about 2 months ago | about 1 month ago | |
C# | C# | |
GNU Affero General Public License v3.0 | GNU General Public License v3.0 or later |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
bflat
-
Borgo is a statically typed language that compiles to Go
The sibling pretty much sums it up. But if you want more detail, read on:
Generally, there are three publishing options that each make sense depending on scenario:
JIT + host runtime: by definition portable, includes slim launcher executable for convenience, the platform for which can be specified with e.g. -r osx-arm64[0].
JIT + self-contained runtime: this includes IL assemblies and runtime together, either within a single file or otherwise (so it looks like AOT, just one bin/exe). These requires specifying RID, like in the previous option.
AOT: statically linked native binary, cross-OS compilation is not supported officially[1] because macOS is painful in general, and Windows<->Linux/FreeBSD is a configuration nightmare - IL AOT Compiler depends on Clang or MSVC and a native linker so it is subject to restrictions of those as a start. But it can be done and there are alternate, more focused toolchains, that offer it, like Bflat[1].
If you just want a hello world AOT application, then the shortest path to that is `dotnet new console --aot && dotnet publish -o {folder}`.
[0] https://learn.microsoft.com/en-us/dotnet/core/rid-catalog
[1] https://github.com/bflattened/bflat (can also build UEFI binaries, lol)
-
Learn how to build beautiful and interactive .NET command-line applications using System.CommandLine and Spectre.Console with my latest blog post
See here
-
Question about NativeAOT platform support
See B flat
-
Native AOT Overview
I've been wondering how to integrate modern .NET Core into a custom build system (buck2) and was wondering similar things. There's this project I think is cool called bflat[1] that basically makes the C# compiler more like the Go compiler in the sense it's a one-shot single-use tool that can cross compile binaries natively. It's done by one of the people on the .NET Runtime team as a side project, but quite neat.
I think in practice you're supposed to compile whole .dll's or assemblies all at once, which acts as the unit of compilation; I don't think the csharp compiler generates native object-files-for-every-.cs, the kind of approach you'd expect from javac or g++. Someone please correct me if I'm wrong though! I'd like to learn more about this.
[1] https://github.com/bflattened/bflat
-
If you were stuck on a remote island, would you pick C# as your programming language
You can compile without a GC using https://github.com/bflattened/bflat
- AOT
-
Hey people, made a game for my CS homework as a freshman using C#, what do you guys think about it?
nice. have you tried compile it using https://github.com/bflattened/bflat to have native executable? as long as you don't have PackgeReference it can be compiled using bflat instead of full dotnet
- Bflat – a single ahead of time crosscompiler and runtime for C#
-
bflat - Build native C# applications independent of .NET
The creator actually addresses this issue:
GtkSharp
-
Is it a recently-added new feature to select TreeView nodes by dragging?
Thanks, but I still have a question. Is that "rubber band selection" on GtkTreeView a new feature that was added to GTK4? Because, I use GTK# (the C# library for GTK) which uses GTK 3.22. I created a simple GtkTreeView, but I cannot do rubber band selection, on the same Linux PC where I recorded that rubber band selection in the OP. I wonder if this is because it is GTK3, or because I had not added the code to enable rubber band selection.
-
.NET MAUI on Linux Makes Progress
I noticed GtkSharp is on version 3.24, quite mature. I hope MS takes this seriously brings much needed Linux support, as all the dependency components are in place.
-
.NET 6 is now in Ubuntu 22.04
There's also the more direct route by using say Gtk directly[1].
[1]: https://github.com/GtkSharp/GtkSharp
-
How quickly and efficiently do you believe Linux will get support for MAUI apps?
Looks like a "blocker" is getting GtkSharp working with .Net6. Unclear from this GitHub issue when such support will be merged into the project's main branch.
- Cross platform gui frameworks that aren't xaml-based?
-
Writing a GUI app on Linux, for Linux
For .NET GUI development on Linux, my go-to choice would be GTK#. This is a managed wrapper on GTK+2 or 3. If you have experience on developing GUI application using C and GTK+, you can reuse most of the concepts (and even some of the Glade files) in GTK#.
-
F# for Linux People
Your only real choice for GUI development with F#/.NET on Linux is GTK#. (I've gotten feedback on Twitter that this statement may be a bit harsh, will update when I dive a bit deeper into other options).
-
Pinta 2.0
https://github.com/GtkSharp/GtkSharp is used rather than the mono gtk-sharp-3
-
What language do you use for developing GTK-Applications?
mono/gtk-sharp is still stuck on 2.0 I think, but GtkSharp/GtkSharp uses 3.22 and up.
-
WinForms Alternative
GTK https://github.com/GtkSharp/GtkSharp
What are some alternatives?
asdf-dotnet-core - ✨ .Net Core plugin for asdf version manager
Maui.Markup - The .NET MAUI Markup Community Toolkit is a community-created library that contains Fluent C# Extension Methods to easily create your User Interface in C#
zerosharp - Demo of the potential of C# for systems programming with the .NET native ahead-of-time compilation technology.
Avalonia - Develop Desktop, Embedded, Mobile and WebAssembly apps with C# and XAML. The most popular .NET UI client technology
TinyGo - Go compiler for small places. Microcontrollers, WebAssembly (WASM/WASI), and command-line tools. Based on LLVM.
maui-linux - .NET MAUI is the .NET Multi-platform App UI, a framework for building native device applications spanning mobile, tablet, and desktop.
dmd - dmd D Programming Language compiler
gir.core - A C# binding generator for GObject based libraries providing a C# friendly API surface
centos-stream
Uno Platform - Build Mobile, Desktop and WebAssembly apps with C# and XAML. Today. Open source and professionally supported.
vscodium - binary releases of VS Code without MS branding/telemetry/licensing
Avalonia.FuncUI - Develop cross-plattform GUI Applications using F# and Avalonia!