Comments 96
Отправляю заслуженные минусы за то что достали аккаунт-консерву ради того чтобы попиарить свой мусор на хабре.
Кажется ваш доклад был на DotNext 2024. Интересно было послушать. Но ценник у вас далеко не патриотичный, особенно с учётом того, что вы свой продукт на базе OSS сделали. Это значит раз. Второе - JetBrains ввёл санкции и без плясок с бубнами, т.е. легально лицензию у них ни купить, ни даже получить её для некоммерческого использования. Ждём когда то же сделает Microsoft (ведь, что C# Dev Kit для VSCode, что Visual Studio Community фактически требуют лицензирования через Microsoft.) Visual Studio Code для C# - выглядит как насмешка. Попробовал я там открыть решение на 80 проектов, плюс в каталоге было ещё одно решение... Выглядит так, как будто сделали для галочки - "вы даже под Linux можете работать с .NET".
Так что лучше перейти на Java. Благо свободных IDE хватает под все платформы.
Точно, есть даже платформа JMIX, включенная в реестр отечественного ПО, а OpenIDE и GIGA Code в качестве IDE ) Жалко только, что это Java, вот бы все тоже, но на C# ) Правда, есть еще Kotlin.
Да, мы были на Dotnext2024 можно тут посмотреть доклад https://www.youtube.com/watch?v=6hG7_qEzpnQ .
Насчет JB, ну, я надеюсь это временные и локальные сложности, а поддержку Win10 прекращают во всем мире.
"сделали коммерческий продукт на ОСС". Ничего просто так бесплатного не бывает. На мой взгляд, Авалонию сделали открытой только по одной причине: чтобы повысить доверие к платформе. Экосистема Авалонии не совсем бесплатна. Новые девтулзы Авалонии созданны коммерческой организацией без помощи сообщества.
"возможна ли net разработка под Linux". Возможна. Часть нашей команды имеет основной ОС Linux. Конечно, встречаются разные сложности, в том числе и те, о которых вы говорили.
"лучше перейти на Java". Лучше для кого? В этой статье рассматривается ситуация: вы оказались в 2025м году с командой у которой есть экспертиза в NET WPF. Вот для этих ребят будет более экономически оправданно перейти на Avalonia а не на Java
Так что лучше перейти на Java
Хоть один приличный UI framework под Java?
Например Compose Multiplatform? Он правда на Kotlin, но все равно запускается на JVM, так что не важно.
Чем JavaFX неприличный?
Чем SWT неприличный?
Сегодня пятница тринадцатое, в смысле дважды тринадцатое, то есть тем более время поговорить о зомби. О .Net, например, как многие думают.
Ну ладно, есть команда знакомая с WPF и кто-то решил (за неё) переходить на Линукс. Да, она может продолжать использовать свои знания через Авалонию, но где найти новых членов этой команды? Технология умирает когда ни на что не годна, а когда годна но молодёжь в неё не идёт - пребывает в статусе зомби. Ваш совет - решить свои шкурные проблемы за счёт будущего.
Нейронка оказала Вам медвежью услугу, господин хороший автор. А ведь можно было спеть другим голосом.
Авалония - лучшее что есть из кросс-платформы на .Net, развивается не хуже MAUI, а то и лучше
Авалония - это десктоп, мобилки и Web, как рекламщик прошёл мимо такого - ума не приложу, разве что это не рекламщик был, а нейросеть
Авалония - это C#, а С# - это Unity, а Unity - это источник гарантированного притока на платформу
Кроме того, С# - это Blazor, который сам по себе очень даже кросс-платформа
Вот теперь можно сделать рекламную паузу
После паузы можно припомнить чего хорошего появилось в .Net, а то пауза будет выпирать
И ни в коем случае не предполагать наличие команды с опытом и объяснять вред левых контролов одновременно…
"где найти новых членов этой команды" У авалонии на гитхабе 30тысяч звезд. Как минимум 30 тыс человек в мире знает эту техлоногию и следит за ее обновлениями. Есть русскоязычный телеграм канал авалонии который насчитывает более полутора тысяч человек https://t.me/AvaloniaRU
Вылядит как отличные идеи для отдельной статьи ). Только, вы взяли слишком широко. У вас и мобилки и веб и геймдев. Не стоит все смешивать в одну кучу. Возможно, для мобилок или для WASM есть более правильный выбор. Тут я не могу советовать. Если вы занимаетесь десктоп разработкой, Avalonia это хороший выбор в 2025 году. Мы уже год в Эремекс выпускаем набор САПР для электроники кототрые работают на Avalonia UI под Linux. Я точно знаю о чем говорю.
Десктоп разработка под .net, по крайней мере в России - это вымирающий зверь. На hh.ru 42 вакансии на wpf и 8 на avalonia - это не серьезно. В профильных чатах вакухи на wpf/avalonia бывают хорошо если раз в 3-6 месяцев.
Я не уверен что имея эти вводные, в ситуации когда нужно бежать под линукс, имеет смысл всерьез рассматривать разработку UI для нового .net приложения на чем-либо кроме веб технологий. Не важно - завернутого в electron или прямо в браузере.
Кстати говоря в статье забыли написать ещё о том, что выбрав авалонию нет необходимости выбирать Linux или Windows. Авалония приложение без существенных переделок может работать в обоих системах.
Мигрировать на веб или оставаться на десктоп платформах - ресурсоемкое решение которое принимается индивидуально для каждого проекта. Некоторые проекты невозможно перевести в веб: там где интенсивно используются ресурсы, где нужен прямой доступ к железу или к конвейеру рендеринга.
Хорошо, когда есть выбор!
Ещё вспомнил когда сложно мигрировать в веб: если приложение должно использовать несколько мониторов или если оно имеет функциональные панели или организует работу с документами по типу MDI.
Но, конечно, десктоп разработка становится более нишевой штукой. С этим сложно спорить.
Мигрировать на веб или оставаться на десктоп платформах - ресурсоемкое решение которое принимается индивидуально для каждого проекта
Переход с WPF или тем более WinForms на Blazor по сложности практически то же самое что и переход на Avalonia.
Если мы говорим о переходе с какого-то не C# десктопа на Avalonia или Blazor, то там тем более разницы не будет.
Как я выше написал в этой ветке, переход на веб технологии не всегда возможен.
Мы пишем десктопные приложения для работы с железом. Если что-то работает в условных WPF или WinForms, то это обычно можно сделать и с Blazor. По крайней мере я пока не встречал ситуаций, когда это в принципе было невозможно.
А как оно работает у вас? Доступ к железу на server side? И на одной машине вместо нормального десктоп приложения к вас клиент и сервер?
Ну да, это в принципе самый простой вариант. То есть вытащить такие вещи в отдельный сервис и общаться с ним через тот же grpc.
Как альтернативу можно использовать Blazor/MAUI или Blazor/WPF гибриды. В принципе тоже неплохо работает. Но по началу может быть придётся слегка "пошаманить". Потому что вариант относительно новый и относительно редкий. Поэтому если что-то не работает, то не всегда можно в сети найти решение.
А как считали количество вакансий? Я забил в поиск WPF выдает 158, то тоже, конечно, немного.
С другой стороны и конкуренция на эти вакансии явно намного меньше будет, потому что основная масса учит веб и питон.
опять этот бред про то что разработчикам придется менять операционку и всю экосистему из-за окончния поддержки Win10. да конечно же нет, никаких проблем с переходом на Win11 нет.
железо вообще не является каким-то ограничением сейчас, т.к. офисный десктоп стоит как четверть месячной запрлаты мидл-разработчика, а эксплуатируется он 5 с лишним лет без проблемм, только память добавляй.
Вы недооцениваете ситуацию. Апгрейдить ОС или менять железо придется не только разработчикам. Поэтому расходы будут больше чем вам кажется.
Часто причиной такого выбора (переход на win11) является какой то внутренний софт предприятия которой может только под Windows работать. Вот этот софт мы можем помочь сделать мультиплатформенным.
Вы недооцениваете ситуацию. Апгрейдить ОС или менять железо придется не только разработчикам. Поэтому расходы будут больше чем вам кажется.
Так в том-то и нюанс: перевести всю организацию на Линукс, это всегда намного дороже, чем разово обновить в организации ту часть компьютерного парка, которой уже больше восьми лет (потому что более новые машины Вин 11 и так поддерживают), и которую вы и так в каком-то обозримом будущем все равно будете менять. Заменить сто системников на новые, это ну пусть 30 тысяч евродолларов, и две недели админам на то, чтобы накатить на них рабочий образ и разнести юзерам. Заменить винду на Линукс со всем софтом, это выбить каждого пользователя на пару дней из работы, а их там уже будет отнюдь не сто, это для всех пользователей конторы сразу. Плюс новые специалисты техподдержки, потому что количество обращений возрастает кратно. Плюс новые админы, потому что ваши виндовые в Линукс стопудово не умеют, научиться-то могут, но поддерживать надо вот уже сегодня, а не когда они навыки набьют. Плюс, в конторе кроме вашего кастомного дотнет-софта еще куча другого, и надо весь будет как-то мигрировать или виртуализировать, или под вайном запускать, или еще что.
В общем, такой проект не делается просто лишь потому что там на какие-то системники вдруг перестанут приходить обновления. Такой проект делается, если вдруг пришел новый ИТ-директор, к вам в офис, или в офис головной конторы, со своими предпочтениями и убедительным бюджетом. Потом, кстати, после того, как учредители увидят разницу между реальными затратами на миграцию с винды и тем убедительным бюджетом. очень вероятно, что новый ИТ-директор через ту же дверь и уйдет...
"необходимо перевести Всю организацию на линукс". Про это не написали явно в статье, но вот как раз предлагаемый в ней стек технологий позволяет делать приложения которые работают и под Windows и под Линукс. Поэтому сразу и всех переводить не нужно. Можно это делать выборочно и с умом.
Про правильную эксплуатацию вычислительной техники в организациях. Вспоминается недавний коллапс у Аэрофлота. По словам людей, близких к их айти, там эксплуатировалась ещё древняя win xp. Денег всегда не хватает, но оставлять парк машин на не обновляемой ОС - разгильдяйство.
но вот как раз предлагаемый в ней стек технологий позволяет делать приложения которые работают и под Windows и под Линукс.
Извините, но какие организации все нужные им приложения пишут сами?
Поэтому сразу и всех переводить не нужно. Можно это делать выборочно и с умом.
То есть годами сидеть параллельно на винде и линуксе?
Кроссплатформенный софт может сделать кто угодно. Это может быть кто то из своих айтишников если им хватит знаний или можно кого то привлечь со стороны.
"Сидеть параллельно на Windows и Linux.". Да, а в чем проблема? Если задаваться целью всех перевести на Linux к определенной дате, это будет сильно дороже чем плавный переход.
Наверное нужно пояснить ещё. Идея не в том чтобы все сидели параллельно на двух ос. Предлагается плавный переход. Например в этом месяце мы переводим на Линукс кладовщика. В следующем - какой нибудь ещё отдел. А Мариванну не будем вообще трогать. Пускай на винде сидит. Ей пару месяцев до пенсии. Нет смысла учить..
Я думаю вы поняли идею )
Кроссплатформенный софт может сделать кто угодно. Это может быть кто то из своих айтишников если им хватит знаний или можно кого то привлечь со стороны.
То есть вы предлагаете фирме тратить кучу денег чтобы переписать все приложения, которыми они пользуются, с винды на линукс?
"Сидеть параллельно на Windows и Linux.". Да, а в чем проблема?
Например в том что вам нужно держать админов, которые будут разбираться в том и другом. Софт держать под то и другое и за некоторые вещи платить дважды. Сотрудников переучивать. И так далее и тому подобное.
То есть куча дополнительных расходов. И зачем это нужно?
Я думаю вы поняли идею )
Идею то я понял. Я не понял зачем кому-то устраивать себе такой геморрой, да ещё и абсолютно без всякой причины.
Внутренний софт переписать на кроссплатформ. Остальному софту который нужен для работы подобрать аналоги под Линукс.
Просто не нанимайте админов которые не знают Линукс. Найдите нормальных админов.
Зачем это нужно, Я уже написал. Чтобы не было как у Аэрофлота.
Внутренний софт переписать на кроссплатформ. Остальному софту который нужен для работы подобрать аналоги под Линукс.
То есть куча потраченных ресурсов и денег. Но зачем это нужно всё ещё непонятно.
Просто не нанимайте админов которые не знают Линукс. Найдите нормальных админов.
Но вы же хотите переходить постепенно и параллельно держать две ОС. То есть вам нужны админы, которые знают и винду и линукс.
Это даже если забыть что старых админов тоже просто так не уволить. А новых ещё сначала надо где-то найти.
Зачем это нужно, Я уже написал. Чтобы не было как у Аэрофлота.
Во первых это точно единственный вариант чтобы не было "как у Аэрофлота"? А во вторых вы уверены что ваш вариант не приведёт к точно такому же или даже худшему результату?
П.С. Ну и как бы я конечно не знаю каким там софтом пользуется Аэрофлот. Но что-то мне кажется что переписать всё это под линукс и/или найти альтернативы под линукс займёт годы или даже десятилетия. И будет стоить туеву хучу денег.
"куча потраченных ресурсов"
Я бы назвал Инвестиция в развитие.
Держать в штате админа который ничего не умеет вам выйдет дороже ).
Универсального ответа для всех нет. Кому то выгоднее будет перейти на win11 и жить спокойно как раньше, но есть и вариант плавно мигрировать на Линукс. Технологический стек описанный в статье это позволяет. Однозначно, Я не советую оставлять парк машин предприятия на ОС без обновлений. Это безответственное решение.
Я бы назвал Инвестиция в развитие.
Это же не инвестиции в развитие. Это инвестиции в горизонтальное перемещение, т.е. деньги, выброшенные в никуда. Вы потратите кучу времени, денег и усилий ваших сотрудников, практически со 100% вероятностью получите разнообразные технические проблемы для вашего бизнеса, а-ля "не могу провести отгрузку", "слетела лицензия на бухгалтерский софт" и т.д., чтобы только остаться на том же месте, что и сейчас, и без всех этих хлопот. Но зато с другой операционкой, т.е. штукой, которая по сути, вообще никаких задач для вашего бизнеса не выполняет, просто служит малозаметной прокладкой для запуска бизнес-приложений.
Я не советую оставлять парк машин предприятия на ОС без обновлений. Это безответственное решение.
Боюсь, что матожидание ущерба от перевода всей организации на другой софтовый стек будет куда выше, чем матожидание ущерба от зловредов на старых компах, по крайней мере, пока в корпоративной сети у пользователей права настроены должным образом.
Зачем это нужно, Я уже написал. Чтобы не было как у Аэрофлота.
Есть множество способов не быть как у Аэрофлота, и миграция на Линукс в этом хит-параде находится в самом низу. Админы аналогичной квалификации, но с Линуксом, огребли бы те же проблемы.
Я бы назвал Инвестиция в развитие
Называть вы это можете хоть жертвоприношением богу линукса. Но это всё ещё куча потраченных ресурсов.
Держать в штате админа который ничего не умеет вам выйдет дороже )
У вас это реально религиозное? Ну что линукс форева, а винда мастдвй?
Универсального ответа для всех нет. Кому то выгоднее будет перейти на win11 и жить спокойно как раньше, но есть и вариант плавно мигрировать на Линукс
Есть куча разных вариантов. Например просто закрыть фирму и уйти в монастырь.
Неплохо было бы объяснить почему надо выбирать именно вариант с линуксом.
"почему надо выбирать именно вариант с линуксом."
По моему мнению, с Линукс меньше проблем чем с видной.
Правильно настроенный системник с Линукс скорее морально устареет чем сломается. А переустановка винды у многих пользователей довольно частая процедура.
Мне очень не нравится в современных виндах неотключаемая телеметрия, не отключаемый дефендер, некоторые настройки просто не работают или включаются назад сами. Привязка локальных учёток пользователей к облаку.
По моему мнению, с Линукс меньше проблем чем с видной
Мнения у всех свои. И это не то чтобы аргумент. Особенно если мы говорим о предложениях, которые несут за собой огромные расходы.
По моему мнению, с Линукс меньше проблем чем с видной.
В корпоративной среде скорее наоборот. ОС там, повторюсь, играет сугубо вспомогательную роль, это всего лишь прослойка для запуска профессионального софта, ну и для авторизации/аутентификации пользователей. Всеядность винды в плане софта тут является весьма важным плюсом.
А переустановка винды у многих пользователей довольно частая процедура.
Это замечание неактуально примерно с 2001 года, когда появилась WinХР Home :)
Если я буду отвечать, получится прям холивар ).
Предлагаю сойтись на мнении что нужно брать лучшее из обоих миров.
Давайте вспомним инфоповод к которому была написана статья. Окончание жизни Win10. Это значит что исправное железо которое стоит в офисе под столом или на столе у пользователя Microsoft предлагает вам выбросить. Есть вариант установить на него Linux и жить дальше спокойно. Разумеется, этот вариант подойдет не всем. Мы только говорим что есть такая возможность.
Это значит что исправное железо которое стоит в офисе под столом или на столе у пользователя Microsoft предлагает вам выбросить.
Во всех фирмах где я работал это железо всё равно регулярно меняли. Обычно каждые три года. Максимум каждые пять.
Так что я бы сказал что для подавляющего большинства фирм это как раз таки не особо проблема. По крайней мере я даже ни разу не слышал чтобы где-то выбрасывали компы потому что внезапно окончилась поддержка очередной версии винды.
Если я буду отвечать, получится прям холивар ).
Пожалуй, да :)
Это значит что исправное железо которое стоит в офисе под столом или на столе у пользователя Microsoft предлагает вам выбросить
Не предлагает же. Всего лишь предлагает не получать обновления безопасности на железо старше восьми лет. Которого в бизнесе, беспокоящемся о состоянии своей ИТ-инфраструктуры, и так не особо много, а апгрейд старого железа всяко дешевле, чем миграция на полностью другой программный стек.
При этом надо понимать, что отсутствие обновлений безопасности винды в сети, где пользователи имеют ограниченные права, не могут приносить свои носители информации, не имеют прямого выхода в интернет без NAT и файрвола, и имеют актуальный антивирус, практически не ухудшает на безопасность. Я сказал "практически", потому что за последние лет пятнадцать было аж два зловреда, которые распространялись самостоятельно без участия пользователей, и на компьютерах без обновлений. Но в любом случае, бежать покупать новые машины в октябре не потребуется, этот процесс можно также растянуть на годы, по мере плановой замены оборудования.
Мне кажется у вас ошибка выжившего. Плюс у вас есть навыки администрирования, а это сильно небольшой процент людей за компьютером. У меня в окружении пара системников и штук 8 ноутбуков, винда не переставлялась с момента приобретения - от 12 до 6 лет. Только обновлялась - автоматически, без танцев с бубном. Там железо менялось чаще чем винда, а да, винду на одном из системников один раз переставлял недавно, в связи со сдохшим диском, там еще win7 стояла, поставил такую же, чтобы бабушку не переучивать. А вот с линуксом на одной из предыдущих работ было весело: была слегка глючная видеокарта, так если в винде она раз в неделю просто выключала экран на секунду, то в линуксе наглухо падали иксы с необходимостью ставить заново. Если на компе надо выполнять определенную работу, а не админить его, то винда проще и надежнее. А с учетом наличия и работоспособности нужного софта, все становится еще интереснее, потому что зачастую софт для линукса есть, но чтобы он заработал нужно сильно много времени. И не все работает. Например, у меня пара коллег например пытались работать в CCS TI на линуксе и на маке, в итоге вернулись на винду, потому что надо работу делать, а не разбираться в проблемах среды.
Возможно у меня тоже ошибка выжившего, но как говорится: "любое категоричное утверждение в принципе неверно, включая это".
Windows однозначно более дружелюбна к зоопарку разного железа. Особенно если год выпуска железа примерно совпадает с жизненным циклом версии Windows, а вот если не совпадает ... то тогда линукс в помощь )).
У меня такая теория: если Linux правильно встал на ваше железо, он будет там работать стабильнее чем Windows и будет меньше всякого навязывать чего вы не просили его делать.
Заменить винду на Линукс со всем софтом, это выбить каждого пользователя на пару дней из работы
как-то это очень оптимистично. на пару дней это когда раньше винду новой версии накатывали и она еще не умела поднимать все ранее установленные программы (сейчас умеет).
вот тогда да, приходилось пару дней все устанавливать, настраивать под себя.
а посади сотрудника который всю жизнь под виндой работал на линукс, тут скорее пару месяцев производительность будет вдвое снижена.
Каждый когда делает эти оценки затрат времени подразумевает какое-то конкретное рабочее место с каким-то набором софта. Поэтому мы вряд-ли сойдёмся в оценках. ))
Моя идея в следующем: там где переход на Линукс сильно накладный не делать его. А если например человек на рабочем месте только хром запускает, его производительность никак после миграции не изменится.
Если производительность не изменится, то зачем что-то менять? Что фирма от этого выиграет?
Особенно учитывая что держать в экосистеме разные ОС для фирмы сложнее. Банально потому что теперь нужны админы, которые разбираются во всех используемых ОС.
Смотрите заголовок статьи ). Вам все равно придется что то делать с этим. В некоторых случаях можно накатить Линукс. В каких именно - надо смотреть и решать конкретно на месте. Конечно нужно учитывать умения админов принимая решение в пользу Линукс.
И большинство фирм просто перейдут на следующую версию винды. Потому что это для них самый простой вариант.
Зачем кому-то в такой ситуации переходить на линукс? Что от этого выиграет средняя фирма, которая сейчас сидит на винде?
Виндоус машинам можно на стороне провайдера создать проблемы, и не только провайдера, а и на стороне интернет ресурса нужного для бизнеса.
офисный десктоп стоит как четверть месячной запрлаты мидл-разработчика
для перехода на Win11 не нужен весь десктоп, только небольшая коробка с этим процессором N200 без SSD, дворник, не мидл может себе позволить пару на зарплату. Но вообще, если при установке W11 подредактировать registry как советует жпт, то и вовсе W11 ставится на почти все что угодно, по крайней мере на эти копеечные комплекты с Xeon 14нм 2016 года с Озона.
(про редактирование реестра) Стратегия основанная на сайдэффектах ). Вряд-ли это можно рекомендовать в серьезных конторах.
В последние годы Windows не стала лучше.Она стала клиентом для Азуры, магазином приложений, рекламной площадкой. MS ничего полезного для пользователей не сделали за последнюю пятилетку.
При этом, Линукс стал достаточно удобным, вполне может заменить Windows, проще администрируется и ничего не навязывает. Я не утверждаю что Linux сегодня подойдёт всем и во всех сценариях сможет заменить Windows, но может стоит дать Linux шанс?
На кого такая реклама расчитана? Как будто низкобюджетную региональную газету почитал:)
Я запомню этот обидный комментарий для следующих публикаций. Нам еще предстоит научиться писать классные тексты.
представляет собой не просто рабочую альтернативу, а современную, надежную и экономически эффективную платформу для построения будущего отечественного софта.
Кролики — это не только ценный мех, но и три-четыре килограмма диетического, легкоусвояемого мяса.
Не хватает ещё в конце - "ура, товарищи!"
Чат гпт вам в помощь …
Я запомню этот обидный комментарий для следующих публикаций.
В менее обидной (как по мне) форме та же мысль: самореклама методом обгавкивания слона в удаленных горных районах удаленных регионов может быть и работает, а тутошний пипл такое не особо хавает.
перейти на суверенные операционные системы
Даже всю эту простыню-то писали явно с использованием НЕсуверенных ИИ чат-ботов
Очень неприятные, достаточно низкопробные и желтые, рекламные пассажи в статье и заголовке, но поставил плюс просто в рамках поддержки открытых проектов Linux и Avalonia.
Может набежавший на кликбейтный заголовок народ узнает о самом существовании той же Avalonia.
Думаю очевидно, что из-за окончания поддержки Windows 10 никто не будет на Linux переходить - на него переходят либо из идейных соображений либо из-за санкций.
"никто не будет на Linux переходить"
Статья хоть и своеобразно но рассказывает что сейчас на Линукс есть все: и среды разработки и фреймворк для мультиплатформенной разработки и даже какая то экосистема вендоров которые готовы помогать коммерческим проектам. Чего по вашему мнению ещё не хватает?
Банально размер экосистемы и сила привычки. Если вот откинуть нашу российскую ситуацию с санкциями - то во-первых те или иные проблемы будут, может не заработать конкретное железо у пользователя из-за драйверов, может не заработать конкретное приложение или игра и все новое и непривычное, надо переучиваться и осваивать новые навыки. Этого подавляющее большинство совершенно не любит. Что собственно наглядно показывает и доля рынка, которая колеблется в районе нескольких процентов уже десятилетия.
И прекращение поддержки тут мало что изменит - системные требования у 11 не такие и жесткие, большинство тупо обновится на 11, остальные будут пользоваться без обновлений и рано или поздно перейдут на 11 с естественным циклом обновления компьютеров.
При том, что я сам симпатизирую открытому ПО, но пересесть на Linux не нахожу времени и сил уже несколько лет. Банально всегда находятся какие-то другие дела.
Всё инфополе завалено этой пляской на костях win 10 в духе "Windows 10 умирает и я перешёл на *distroname* и вот почему...". Хотите продвигать свои решения, бога ради. Делайте это вне контекста не связанного с этим события.
Использовал Avalonia в последних разрабатываемых утилита. Работает хорошо, мне как когда-то использующий WPF, понравилось, буду использовать и в новых проектах.
Из минусов, в последних версиях выкинули поддержку встроенного инспектора для отладки визуального дерева и стилей. И теперь только новыйч внешний, который требует вход. Ну вот это плохо.
Да, этот момент многим не понравился.
Насколько мне известно, было решено выкинуть старые девтулзы потому что их не хотелось поддерживать. Этот проект требовал внимания разработчиков при каждом обновлении. Надеюсь они найдут какой-то вариант который будет всем удобен. Понятно, что все разработчики не перейдут на платные дев тулзы.
Библиотека богатая, интересная, НО с таким ценником, вы отрезаете целый пласт разработчиков. На инди-проетах вы бы могли прокачать популярность своей библиотеки, а с бизнеса уже стричь по 100к за лицензию. С такими ценами вы крошите привлекательность dotnet ui стека, что мы видим в комментариях к вашим статьям. Хотите продавать - делите аудиторию на инди и бизнес. В энтерпрайзе, именно, мы - разработчики влияем на принятие решения о покупки качественных инструментов. Но дайти нам либу использовать в опенсорс-проектах, чтобы на практике оценить инструмент.
В сегодняшних же реалиях бизнесу нафиг не нужна ваша либа, а целевая аудитория инди-разрабов никогда не окупит стоимость либы и не будет иметь убедительных аргументов к покупке именно вашей либы бизнесом. Так и будете раз в год стыдливо о себе на хабре упоминать...
Пффф, как-то между делом упомянут WinForms, тогда это основная платформа на которой создавалась бизнес приложения. Это и есть основная аудитория тех, кому потребуется мигрировать куда-то. Вопрос — куда?
У меня есть болезненный опыт миграции сравнительно небольшого WinForms приложения на NET 6 с NET Framework. Это не рядовая задача, которая осложнялась использованием MS SQL Reports.
Если речь идёт о переходе с WinForms что на WPF, что на Avalonia, это переписывание приложения практически с нуля.
А у вас выходит что WinForms и WPF, это приблизительно одно и то же. И так получается, что загвоздка именно в WPF. Или таких большинство.
Спасибо что спросили. Попробую исправить ситуацию.
Если вы мигрируете с WinForms, будет сложнее. Потому что платформы идеологически сильно разные. Почти никто не делал WinForms приложения по MVVM паттерну. А это значит что в коде будет куча обработчиков сообщений которые придется переписать на команды во ViewModel. Еще миграция усложняется тем, что в винфоррмс можно было делать кастомную отрисовку. Этот код скорее всего придется выкидывать и переписывать на xaml стили. Но самая "нудятина" при миграции -: по огромной портянке в InitializeComponent понять что это такое, как оно должно работать. Вот с этой частью может помочь наш проект https://github.com/MICVGLOB/WinForms2AvaloniaConverter . Можно почитать в ридми и в исходниках как он работает. Если совсем коротко, он создаст xaml с Avalonia элементами UI которые функционально соответствуют и называются так же как элементы конвертируемой формы. Почти всегда за конвертером нужно подчищать лайаут, каким то элементам он не может найти прямых аналогов, но все равно он здорово нам сэкономил время когда мы мигрировали оргомный проект состоящий из более 300 форм на Avalonia.
Если мигрируете с WPF, будет проще. Однозначно сохранится слой ViewModel если приложение было написано правильно. Во View придется поискать аналоги некоторых элементов. Именование немного различается. Кастомизациия в XAML немного различается. В авлонии нет триггеров. Вместо них, есть система стилей.
Сложности, которые поджидают при миграции и с WinForms и с WPF: не используйте нигде пути в виде строковых констант. Лучше Path.Combine. Кодировки: если исходный код содержит русские символы, винда сохраняет такое обычно в своей кодировке. Мы конвертировали все в UTF-8 BOM и написали диагностики которые бьют по рукам тем кто пытается это соглашение нарушать. Environment.SpecialFolder в линуксах работают немного по другому. Читайте документацию. Винда игнорирует регистр в названиях файлов. Почти все, кто пытается впервые собрать свой проект под Linux, получают ошибки которые вызваны тем, что в csproj файл упомянут например MyClass.cs. А в папке лежит myclass.cs. Проблемы с клипбордом. Он на линуксах работает немного не так как как все привыкли. Проблемы с переводом строк. Например, если у вас будет sh файл с виндовым окончанием строк - CRLF, он ни за что не выполнится. Будут странные ошибки. Dos2Unix в помощь.
Вот, что сходу вспомнил ). Если вам будет нужна помощь с миграцией на Avalonia, напишите нам https://t.me/emxControls. Постараемся помочь.
Проше приложение с Винформсом запустить на Линукс в Вайне.
Переписывать на ВПФ или Авалонию, зачем?
Если проект мертвый, то проще конечно его не трогать и как то запускать под wine.
Если проект нужно развивать, то для такого проекта созданного на 30 летней технологии должно совпасть несколько факторов: нужно найти собственника который готов вкладывать в проект на легаси, найти команду которая умеет и возьмётся разрабатывать винформс. Многие разработчики попробовав xaml платформы не возвращаются в винформс. Поэтому команду найти будет проблематично, но иногда такие проекты ещё встречаются.
Winforms очень устарел. Он создавался когда ещё были ЭЛТ мониторы. И разброс разрешений мониторов был небольшим. Сегодня программу могут запустить и на FHD мониторе и на широченном 8к. Winforms ни по производительности рендеринга ни по адаптируемости не вывезет это.
Winforms это родная API, весьма быстрая
WPF это очень медленный рендеринг в принципе. Авалония же, скорее всего из-за большего уровня абстракции и выбора рендеров, еще медленнее.
Впрочем, если есть опровергающие тесты, велкам.
С чем вероятны проблемы на Винфомсах - это HiDPI, поскольку появилась позже, не знаю, как ее обработку прикрутили.
ЗЫ. Собственно, у меня негативный опыт переноса проекта с Дельфи на WPF. Работает примерно в разы все медленнее. В т.ч и интерфейс и работа с СУБД. Работает, но....Теперь будем переезжать на Линух.
Если вы знакомы с winforms, то должны помнить что в них каждый контрол это отдельный хендл дочернего окна. Это системный ресурс который ограничен. На экране большой площади у вас может чаще возникать ситуация когда хендлов не хватает.
Винформс нужно оставить в прошлом.
Попробуйте наши демки. Мне ещё никто не жаловался что они тормозят. Все прекрасно работает. В том числе и на 4к
https://github.com/Eremex/controls-demo
Там в релизах есть собранные бинарники под вин и под Линукс.
Это системный ресурс который ограничен
10000 на процесс, штош
Ну я спрашивал скорее за бенчмарки, чем за демки.
Впрочем, все более утверждаюсь в чисто рекламном характере постинга здесь. Техинфы 0, тестов 0, только какие то популистские высказывания.
10000 на процесс, штош
не помню, но то ли на 500 то ли на 1000 кастомных карточек в списке у нас переставали новые окна в приложении создаваться) так что всё немного грустнее.
Собственно, у меня негативный опыт переноса проекта с Дельфи на WPF. Работает примерно в разы все медленнее
стандартные контролы в WPF в некоторых случаях очень избыточны, потому могут быть медленнее, так же надо всё же немного по другому "готовить" в некоторых моментах, в т.ч. с виртуализацией данных которые должны быть отображены. т.е. все же надо учитывать особенности платформы
Авалония же, скорее всего из-за большего уровня абстракции и выбора рендеров, еще медленнее.
Рендер там на skia
Ну может стоит сначала почитать поэксперементировать, а не делать предположения? да хотя бы https://habr.com/ru/articles/760168/ (хотя местами можно конечно найти что то что будет медленнее)
ну и прежде чем на что либо переносить - наверно стоит сначала какой нибудь MWP сделать
UPD: еще тут можно пощупать разные примеры https://avaloniaui.net/showcase
Навеяло:
Ваш холодильник вышел из гарантии? Пересаживайтесь на вентилятор в бочке!
Почему такие злые? Не нравится как кто-то сделал? Сделай сам и лучше. Спор о том что лучше java или .net вообще лишён смысла.
Visual Studio Code
Последний раз когда смотрел, разрабатывать на Avalonia в нём было довольно больно (если оно вообще работало). Что-то поменялось?
Не так давно появился XAML previewer экстеншен для VSCode. На мой взгляд, VSCode для NET в принципе не слишком удобный. Он создавался для веб разработки, а поддержку NET прикручивали к нему сбоку.
Бесплатность этого продукта сыграла с ним злую шутку: невозможно успешно продавать экстеншены к бесплатному продукту. Поэтому в экосистеме VSCode невозможен например Решарпер.
Почему не возможен? у решарпера своё ядро с которым взаимодействие идёт через api, лицензию проверять и там можно. Другой вопрос что им не нужен еще один редактор вокруг ядра решарпера, для этого у них есть rider.
Я имел ввиду не техническую сторону, а финансовую. Сложно предлагать платное там где люди не приучены платить.
У VS Code полно платных плагинов. Тот же Copilot спокойно идёт по подписке.
Это существующий продукт, в принципе не было бы разницы платить за него для студии или в vscode. Просто разработка его не особо целесообразная при наличии уже бесплатного райдера. В целом нишу для себя они скорее всего закрыли.
невозможно успешно продавать экстеншены к бесплатному продукту
ну а как же IDEA комунити с платными расширениями?
Конец эпохи Windows 10: почему связка Avalonia UI и Linux становится идеальным выбором для .NET-разработчиков