Help Shape the Future of Drag-and-Drop UI Design in .NET #18714
Replies: 13 comments 12 replies
-
|
How about Rider support and the Visual Studio Extension? |
Beta Was this translation helpful? Give feedback.
-
|
I personally never saw the advantage of a drag and drop designer for a mark up language. Almost every single one I have used has been terrible (I am also including HTML designers in this). They produce incorrect results, overly complicated code, weird code that would never be written by hand (EG hardcoded margins everywhere like the WPF designer) and feels slower in most cases (fiddling with trying to drop an element into the exact right place is very painful compared to just cutting and pasting it). In a lot of cases it also teaches people bad practices: Either because because they assume the designer is doing things properly (instead it's generally doing what is easiest for the designer to do) or because the designer showed them an option that technically solved their problem, even if it was not the best option they could have done. In the context of XAML though a designer is a weirder thing to do, since all the controls are lookless. Meaning what might work look fine for the designer in one theme wont work at all in another. There are a number of changes that could be done to mitigate some of that, but it would likely require changes to the core of Avalonia. EG #16962 would help a lot with people accidentally hardcoding fixed widths/heights on everything (which I am guessing the designer will accidentally encourage in one way or another). My experience is also most people who want a designer are coming from platforms where a designer is normal (such as winforms) and just don't want to learn how to do things differently. So my ideal tool would:
That said there could also be some useful things it could do as well, such as automatically generating control resources/styles. |
Beta Was this translation helpful? Give feedback.
-
|
Another topic here I'll just point out quickly but not elaborate on. It can open up a can of worms I want to avoid. Hopefully it's an internal discussion though. DevTools, Reframe and Hot Reload are all complimentary technologies with a lot of shared ideas (and likely backend code). Evolving these into one product makes sense. |
Beta Was this translation helpful? Give feedback.
-
|
Definitely not the tool I would need. I would much prefer a utility that could transcode Figma designs into XAML. |
Beta Was this translation helpful? Give feedback.
-
|
Now that I have thought about this more, I think a theme designer would be significantly more useful thing. But I have yet to think through the exact mechanics of how it would work yet. But making application wide themes is currently a slow and esoteric process. |
Beta Was this translation helpful? Give feedback.
-
|
Ok, here are my 2c: in general, using XAML to build UI with the tooling at hand (Rider Integration, Intellisense, etc.) works very well. I too have my reservations about a drag'n'drop designer experience. I'm not sure it can work. I did a lot of WinForms and I abandoned the designer years ago and did my own layouting - mostly because the designer couldn't handle DPI aware designs. So, XAML or some fluent API to build layouts with intellisense works fine for me and I don't really "need" a designer but I'm also not opposed by the thought there could be a good drag'n'drop experience. Just because I haven't seen one yet, doesn't mean it's not possible. Unfortunately all attempts to tackle the problem were unsuccessful - so I have little to no hope that this will change. So in short: if you have an interesting idea/concept on how to built it, maybe it's worth a try. If the end result is similar to what we already know (and also not that successful), I suggest you invest time and resources somewhere else. Hot Reload, for example, is something far more important, I guess. Especially when you look at other frameworks where this is already working very well and a huge productivity boos. |
Beta Was this translation helpful? Give feedback.
-
|
Look ad borland delphi/cbuilder 6, at 1990 years. If avalonia can mimic borland RAD way of develop notting will be bether than avalonia. |
Beta Was this translation helpful? Give feedback.
-
|
I think drag-and-drop UI is more attractive to people who don't understand XAML/AXAML well, which can lower the entry threshold and attract more newcomers to use Avalonia. For experienced users, they prefer to write AXAML directly because it's more flexible. Of course, if the code generated by dragging and dropping matches AI-generated code and almost doesn't need modification, then it will be quite appealing to everyone. |
Beta Was this translation helpful? Give feedback.
-
|
Another aspect to consider here is what Microsoft Blend did. It has some features not available anywhere else like a powerful animation editor. So focusing on areas like that would give Avalonia Reframe an advantage. A current day example of this is Neosis Studio (an early clone of WPF XAML): https://www.noesisengine.com/studio/ As an aside another interesting avenue here is the application of Avalonia in major game engines. In those cases the teams are usually large enough to justify a stand-alone designer that isn't used by the dev team (which may very well rather use XAML directly). I know some on the team have done Gadot integration in the past as well. |
Beta Was this translation helpful? Give feedback.
-
|
It is unlikely I'll ever be using drag'n'drop. I'd rather be using a mix of HotReload and AI. |
Beta Was this translation helpful? Give feedback.
-
|
To be honnest, I'll rather need improved drag'n drop support in controls. For example, from control to another control, better visual overlay, live rearrange, etc. |
Beta Was this translation helpful? Give feedback.
-
|
I strongly believe humans are not meant to generate XML files for a UI to appear on screen by typing. I did BCGSoft/MFC, then Winforms, then WPF came along and zero tooling from Microsoft made me never ever touch it. Because Avalonia is the only real option for cross platform GUIs I had to start doing XAML editing and I have hated every second of it. |
Beta Was this translation helpful? Give feedback.
-
|
For anyone who was not born to issue XAML code as a second language, like graphics artists, for example, there is definitely a need to bypass much of the direct involvement in code that takes place in a modern declarative GUI form environment. Even for people who do type XAML for a living, there exist distinct disadvantages with relying upon any hierarchical markup language for general, everyday use. The only real disadvantage we need to mention along these lines is that content rarely ever remains static in design, and especially when it comes to graphics artists, they are going to want to move things around, possibly many times, before settling on even the first iteration. Hierarchical markup language makes that kind of movement very slow, tedious, and nearly impossible to accomplish at times, especially in the case where the tree is comprised of levels of uneven depths; a trait that is nearly always the case. My name is Daniel Patterson, and I am the author of SvgTools at danielanywhere/SvgTools. Within that application, I have devised a comprehensive tool that allows a graphical artist with no technical knowledge at all to rapidly and successfully design forms in normal SVGs that compile directly in Avalonia UI. It's important to note that the action (ImpliedDesignToAvaloniaXaml) currently only supports the toolset of Inkscape and Avalonia UI, but will be expanded to provide a much greater selection as the feature matures. The process in question is called Implied Form Design, which as you might imagine, got that name from the fact that you are only required to indicate what you want to achieve in order to arrive at a fully functional, compilable form for your desktop application. The basic design process is literally limited to drawing a shape, then setting its Label (control type) and ID (code identification) values. Even the labeling process can easily be assigned to a non-designer role, who non-destructively prepares the SVG before conversion. Unlike the methods used by Figma, Canva, and other visual editing platforms who have attempted this objective before, no encapsulation is required by the designer, since the enclosure of an object is derived from its Z-order and its 2d position on the form. This lack of requirement on the designer greatly helps to alleviate any burdens that arise from requiring an artist to define areas before they decide what is going to be in those areas. Additionally, grouping of any kind is unnecessary for a successful compilation, which allows the designer to group sets of objects in ways that make visual sense to them, as opposed to how those groups might be compiled functionally. You can find more complete descriptions of these deviations from past attempts in the associated user's manual. After designing the form, you save it as an SVG, run the SvgTools conversion, and copy the resulting .AXAML file to your project directory, where you can immediately program directly against it in the associated code-behind file. Much more information about Implied Form Design, including a complete user manual and comprehensive control reference is available from the front page of my repository at danielanywhere/SvgTools. A significant amount of basic testing has already been completed on a cross-platform basis, but since this is a new feature, I do expect that there will be bugs and overlooked details from time to time. If and when you find those, please create Issues. I will address them in a timely manner. Sincerely, |
Beta Was this translation helpful? Give feedback.

Uh oh!
There was an error while loading. Please reload this page.
-
We’ve heard from many of you, on Reddit, GitHub, Discord, and elsewhere, that drag-and-drop UI design in the .NET ecosystem leaves a lot to be desired. Whether it’s tools that feel half-finished, or workflows that slow you down rather than speed you up, there’s a clear sense that this space needs attention.
As part of Accelerate, we’re building a new design experience, named Reframe. Our goal is to create something that feels powerful yet intuitive, especially for developers building complex apps.
But we don’t want to make assumptions. We want to understand the real-world problems you’re facing, what you’ve tried, what’s worked (or hasn’t), and what your ideal tool would look like.
👉 Take the survey
Your feedback will help shape priorities, features, and the philosophy behind what we’re building.
Beta Was this translation helpful? Give feedback.
All reactions