В плане DSL для сборки мне очень нравится nuke
1. Гораздо компактнее и читабельнее (не нужно реализовывать целый класс, чтобы описать задачу)
2. Есть визуализация выполнения в виде графа (очень помогает, когда запутался, в каком порядке должно всё выполняться)
3. Есть кодогенерация для Teamcity, Gitlab, Azure devops
4. Прикольный тулинг: плагины для сред и консольный тул.
Я его как раз и упомянул в комментарии :)
И мне в нём не нравится, что свойства пишутся в списке, а не в объекте/параметрах — не удобно исследовать API через автокомплит.
Хорошо, что avalonia есть, но лично мне очень не хватает какого-нибудь компактного и удобного DSL, чтобы не верстать и не стилизовывать в xml (сейчас из кода можно верстать, но назвать это компактным и удобным язык не поворачивается).
Примерно так сейчас пишутся стили
var styles = new Styles() {
new Style(s=>s.OfType<Button>().Class("primary").Class(":focus")) {
Setters = {
new Setter(Button.BorderProperty, ...)
}
}
}
В этом аспекте мне очень сильно нравится Jetpack Compose на котлине и Fabulous на F#. Avalonia FuncUI — имхо не очень удобна, тк значения свойств записываются через список, а не через объект.
Условно:
let textBox= TextBox.create [TextBox.text "Hello world"; TextBox.width 100]
против
let textBox = TextBox(text = "Hello world", width = 100)
Останется для поддержки всего зоопарка старых рантаймов начиная с .net fw 4.6 заканчивая mono и .net core 3.1, а для всего остальноего — net 5.0, но при этом .net 5 будет обратно совместим с netstandard
Цитата из документации
New application development can specify the net5.0 target framework moniker (TFM) for all project types, including class libraries. Sharing code between .NET 5 workloads is simplified in that all you need is the net5.0 TFM.
The net5.0 TFM combines and replaces the netcoreapp and netstandard names. This TFM will generally only include technologies that work cross-platform, like was done with .NET Standard. However, if you plan to share code between .NET Framework, .NET Core, and .NET 5 workloads, you can do so by specifying netstandard2.0
А вы в курсе, что любое приложение может читать буфер обмена?
Я бы не стал пароли копировать, если включена паранойя
Константы никак не относятся к экземпляру структуры. Так что они тут не причём.
Да и зачем это делать микрософту, когда десктопный UI под линукс и так существует?
Зато есть кнопка «вызвать такси». Давно не хватало этого.
</sarcasm>
1. Гораздо компактнее и читабельнее (не нужно реализовывать целый класс, чтобы описать задачу)
2. Есть визуализация выполнения в виде графа (очень помогает, когда запутался, в каком порядке должно всё выполняться)
3. Есть кодогенерация для Teamcity, Gitlab, Azure devops
4. Прикольный тулинг: плагины для сред и консольный тул.
Можно, если не использовать self-hosted )
И мне в нём не нравится, что свойства пишутся в списке, а не в объекте/параметрах — не удобно исследовать API через автокомплит.
против XML
В этом аспекте мне очень сильно нравится Jetpack Compose на котлине и Fabulous на F#.
Avalonia FuncUI — имхо не очень удобна, тк значения свойств записываются через список, а не через объект.
Условно:
против
The net5.0 TFM combines and replaces the netcoreapp and netstandard names. This TFM will generally only include technologies that work cross-platform, like was done with .NET Standard. However, if you plan to share code between .NET Framework, .NET Core, and .NET 5 workloads, you can do so by specifying netstandard2.0
Ссылка