Pull to refresh

Comments 31

Попытался создать проект на Uno Platform. Установил последнюю студию, шаблоны создал проект, скомпилировал, а он не стартует и нет никакой информации почему, никаких ошибок. На гитхабе взял сборку калькулятора под Linux, запустить на Debian не смог, опять никаких ошибок нет. Загрузил калькулятор для Android, заметны лаги при переключении режимов и один раз программа просто вылетела, а ведь это простейшая программа в плане разметки страницы. Вывод сложно сделать, как минимум трудный вход, как дальше, даже не удалось посмотреть :(.

Ну, начало уже положено, отступать некуда, надо доводить до конца. Там глядишь и комьюнити сформируется и поможет допилить)

А что там за графика под капотом, OpenGL? Интереснее всего было бы почитать как устроена отрисовка элементов.

Не пробовали godot game engine ?

Интересно узнать как бы он выдержал тесты.

https://medium.com/swlh/what-makes-godot-engine-great-for-advance-gui-applications-b1cfb941df3b

C# там поддерживается как mono, но вроде и customизированный .net6 есть, но только в branche, не знаю когда оффициально появится.

Да они, вроде, и не планируют.

Классный проект, особенно если либа получается легкая и быстрая, продолжайте плить разработку )

Планируется ли открывать исходники и под какой лицензией?

Возможно ли добавить контрол "canvas", типа область рисования со своим скроллом, чтобы стало возможно наваять какой-нибудь условный "CAD" ?

Для сравнения теста, можно ещё узнать, что ваш TextBox поддерживает? По фичам как его можно сравнить с WPF реализацией? Ну типа, хайлайтинг текста, rtl, корректный юникод, вот это всё у вас тоже есть?

Вообще для тестов я бы предложил сверстать нормальную резиновую форму и её ресайзить, это ближе к реальным историям, чем ресайзить UI а-ля Блокнот.

Выглядит интересно, авалонию так и не осилил. А что стало с сайтом? Утром еще работал.

Сайт не грущится :(

Хотела документацию почитать

че-то тесты на уровне хелоу вордов. в том же WPF можно настроить виртуализацию в элементе отображение, чтоб кол-во памяти не вырастала больше необходимого

пример
<ListBox Grid.Row="0"
										 ItemsSource="{Binding SelectCategory}"
										 SelectedItem="{Binding SelectItemInListBox}"
										 BorderThickness="0"
										 HorizontalAlignment="Stretch"
										 VirtualizingPanel.CacheLengthUnit="Item"
										 VirtualizingPanel.CacheLength="10,10"
										 VirtualizingPanel.ScrollUnit="Item"
										 VirtualizingPanel.VirtualizationMode="Recycling"
										 Background="{Binding ColorCentralListBoxCategoryItems}">
	<ListBox.ItemsPanel>
		<wpftk:VirtualizingWrapPanel Orientation="Horizontal" SpacingMode="Uniform" StretchItems="False" ScrollLineDeltaItem="7" MouseWheelDeltaItem="7" />
	</ListBox.ItemsPanel>
</ListBox>

Попробую ответить на все вопросы сразу, хоть это и не очень правильно.

  1. Сайт запущен на домашнем сервер и временно недоступен, причина в роутере, буду решать проблему переносом на нормальный хостинг.

  2. Исходники будут выложены в GitHub в скором времени, лицензия будет свободной, скорее всего zlib licence.

  3. По поводу Uno Platform, на сколько я знаю (возможно я ошибаюсь) это обвертка над системными элементами управления, подобно Xamarin.Forms, MAUI. О преимуществах говорить пока рано, это системы коммерческого уровня и получают должное развитие.

  4. Виртуализация WPF, в любых инструментах есть виртуализация списков и таблиц. В LXUI сейчас разрабатывается Grid, с такими же механизмами. Задача теста была "в лоб" проверить общую производительность инициализации элементов, их расчетов и отрисовки. В этом заключается основная задача на текущий момент, сделать максимально быстрое ядро, а потом его расширять.

  5. Как я писал в статье, "под капотом" трудится игровой движок SDL2, графика OpenGL/Direct3D в зависимости от платформы.

  6. По возможностям текста, реализованы стандартные операции выравнивания текста, обрезки, переноса, ввода, использование буфера обмена, хайлайтинга нет, но это задача в приоритетах, как и вставка графики в текст. Юникод поддерживается. По поводу резиновых тестов, согласен, в репозитории лежит проект Meteo (Weather), можете его попробывать, он уже больше похож на рабочий продукт.

  7. С Godot game engine незнаком, обязательно посмотрю на этот проект.

  8. Canvas как отдельный элемент отсутствует, но можно рисовать на любом Control-e, пока доступны несколько простых методов, например: нарисовать изображение, прямоугольник, линии. Это направление обязательно будет развиваться.

  9. По поводу тестов, тесты действительно на уровне HelloWorld, буду работать в этом направлении и развивать библиотеку.

  10. Цель данного проекта была создать быструю, компактную и простую в использовании библиотеку, по функциональным возможностям она уступает всем известным фреймворкам и по сути находиться еще на некой альфа стадии. Сейчас я все основное время уделяю написанию статей, тестов, документации. Ну и главное узнать реакцию людей, чтобы понять в каком направлении двигаться дальше.

Кас. Uno Platform - это скорее реализация отображения стандартного для Windows WPF-а на других платформах, в т.ч. Linux (они через Skia отрисовку сделали), Android (тут как раз через Xamarin вроде сделали), iOS (тоже Xamarin вроде). Плюс в том, что привычные все WPF инструменты и синтаксис работает.

Автору спасибо! Очень интересный обзор и пример работы.

Жаль что для работы требуется устанавливать монстрообразный VisualStudio. Он очень сильно засоряет ПК.

Можно использовать Visual Studio Code, если не делаете сборку под Android (требуетсяXamarin). Для десктопных приложений достаточно иметь возможность запускать консольное приложение.

Я тестировал на Rider, проблем небыло.

Ещё бы пример как её запустить под Linux и собирать в VSCode (если это возможно, заодно бы и там посмотреть производительность)

В статьях достаточно долго описывать все эти нюансы. Попробую в сторону видео уроков.

Вижу, что работы проделано много, но с этим фреймворком есть проблемы при создании больших проектов со сложным UI. В WPF с применением MVVM проект сопровождается и расширяется очень легко, мне доводилось работать с проектами WinFroms и все они имеют один большой недостаток, сложность сопровождения и расширения. Почему все начали внедрять MVVM потому что есть четкое разделение UI от бизнес логики с использованием binding. В этом проекте я не вижу каких-то инновационных решений. Но если надо быстро сделать и забыть, то можно. Для кроссплатформенных решений лучше смотреть в сторону JavaScript.

Согласен, инноваций здесь нет. Раньше все приложения создавались без MVC, MVVM и многие были намного сложнее и функциональнее, чем сейчас. Никто не запрещает в WinForms разделять логику на контроллеры, модели, наверное об этом никто раньше и не задумывался. Что касается JavaScript и браузер-подобных движков, системы стали очень тяжелыми, сейчас какой-нибудь клиент банка под Android весит как установщик WindowsXP, и заметно лагает на слабеньких телефонах. Тут же ставка на скорость, минимальный объем и минимальные системные требования как к среде разработки, так и к среде запуска.

Круто! Интересно как это на линуксе будет работать, и можно ли вести разработку с линукс? Ещё для кроссплатформенной разработки, среди конкурентов есть Qt, Electron. Или тут идея именно на c# сделать?

Спасибо, в VSCode под Linux собралось и запустилось. Осталось дождаться доков )

Момент по именованию класса окна: немного смущает и малость путает имя Control, имхо лучше как-то LXWindow, LXForm, LXWidget -> от него производные, к примеру: LXButton, LXEdit, LXDatePicker etc. "Control" по смыслу больше к действию относится :)

Здорово, что получилось с VSCode, хотя мне больше понравился MonoDevelop, вроде у них даже можно установить плагины для Xamarin и делать сборки для Android/iOS. По поводу Control, это же классика, еще со времен VCL, позднее WinForms. Поскольку это базовые элементы, а не надстройка над существующим фреймворком, поэтому нет смысла делать префиксы LX. Документация будет попозже, вместе с выкладкой исходников на GitHub. Сейчас еще один тест сравнительный доделываю (полноценный, не уровня HelloWorld, как писали выше) и буду заниматься документацией вплотную. А какой Linux использовался?

Linux Mint 20.3 на Cinnamon. Как будете на гитхабе код размещать, откройте там что-то вроде форума (или как-то так, не помню как называется, issues вроде), или ещё где-нибудь, чтобы можно было оперативно обсуждать моменты и вопросы, предложения, по либе, комменты на Хабре не сильно подходят для этого )

Electron не конкурент, потому что в статье делают уклон на размер и производительность. С первым плохо у сайтиков, которым приходится тянуть с собой не кучу разных веббиблиотек, но и аж целый персональный инстанс хрома; со вторым плохо в целом у сайтов в силу чрезмерно высокоуровневости рантайма

Объясните, пожалуйста, про недоступность прокрутки в Avalonia.

Интерфейс настолько "подвисает" при попытке двигать ползунок прокрутки, что пользоваться этим невозможно, это на примере некоторых тестов.

Отличный проект. Жаль в статье нет списка готовых компонентов (хотя можно всё найти в документации на сайте, которая пока оставляет желать лучшего); как и нет роадмэпа развития!

Главное - что нет табличных grid компонент. Как нет и списков (в т.ч. выпадающих) - или я не нашёл.

Для просмотра видеоконтента тоже, вроде бы нет компоненты.

Смущает только работа на старом Фреймворке .NET 4 - всё-таки кроссплатформенность сейчас - это .NEt 7 - но да для старых проектов и библиотечной инфраструктуры это отличное решение.

Жаль нет тестов с анимацией и с прямым (инпут) взаимодействием с пользователем.

И жаль что хоть сайт в зоне .ru - и автор русскоговорящий - но язык сайта английский на всех страницах и в документации! Понятно - что тут аудитория привычная - большинству по барабану (а кому и наоборот хорошо) - просто обидно.... ну будь сайт в зоне .com - может уже не так обидно было бы - понятно было бы, что основной упор делается на не российскую аудиторию! Но так - просто к слову. А проекту желаю большого роста и удачи!

Во многом согласен на все 100! Компонентов готовых очень мало, грид есть, но он в привате, в разработке. Списков нет, так как тут другой подход, вместо них выступает Layout, любой контрол легко превращается в список, но есть отдельно ComboBox, который тоже использует Layout (Menu).

Просмотра видео нет, так как нет поддержки звука, хотя в отдельном проекте я использовал ffmepg и смог сделать проигрыватель.

Net 4, разве это недостаток? Я очень много сталкивался с проектами под последний фреймворк с исходными кодами, и их бывает очень трудно заставить работать "по старому", тогда как net 4 легко запускается и компилируется под все новое, ну и по факту все новое от Microsoft это попытка заставить нас использовать последнюю ОС и новое железо, что не всегда возможно.

По поводу RU зоны, есть так же .NET, но проблема тут в другом, сейчас очень сильно запрещается Microsoft продукты и приходиться делать ориентир на зарубежных потребителей. Хотя есть очень большие надежды на Linux платформу для RU сегмента.

Спасибо большое за пожелания, реально очень мало времени, так как это не основной проект, но я стараюсь периодически выкладывать новые сборки и новые демо проекты в GitHub.

Sign up to leave a comment.

Articles