Какую IDE выбрать для разработки приложений под Linux?
Имеем с коллегой пет проект (база данных и клиентское приложение). Я занимаюсь клиентской частью. Несколько лет писал его под Windows (C# в MS Visual Studio) но производство сейчас перевели на RedOS и похоже пришло время начать писать по Linux.
На что посоветуете перейти? Надежд на перенос кодовой базы не питаю, смирился с тем, что придется писать с нуля. Есть ли под линукс что то похожее на визуал студио с графическим редактором интерфейса и все такое? Или все придется описывать руками?
Сам я из АСУТП, и не являюсь проф. программистом, все, что писал было призвано решать рутинные вопросы, поэтому и выбрал в свое время визуал студио.
Веб морду клепать не хочу, хочется именно приложение
Стоит себя заставить. Для будушего. Вместо того, чтобы дрочить вприсядку с приложением, которое никаких преимуществ перед браузером не имеет, кроме геморроя с зависимостями, проблем с отображением на HD, необходимостью пересобирать и обновлять его у каждого пользователя под каждую правку... грабли, привычные "подоконникам", но потерявшие всякий смысл в этом веке.
Потому что веб от них избавляет раз и навсегда, а потом позволяет двигаться дальше.
Adamos, а потом появляются командные чаты жрущие 600метром и тормозящие как могут.
Нормальные конторы почему то продолжают писать оконные приложения. Может потому, что нет никаких вышеописанных проблем в современных фреймворках? Или может от того что приложение даже на java имеет ряд преимуществ над вебом?
wizardhelg, поделки на Шарпе большой привет Электрону передавали по монструозности, вообще-то.
И читаем описание ТС: "база данных и клиентское приложение". БД уже есть, сервер уже все равно работает, только дергает его не браузер, а специально вымученная программа.
Я программы на Крестах пишу лет двадцать, часть из них продолжает работать и развиваться на Крестах. Не надо мне рассказывать, что в современных фреймворках не требуется обновление программы после ее исправления.
А уж фреймворки под Шарп на Линуксе - это вовсе подачка M$, чтобы с виндов не так быстро бежали. Делать их беспроблемными не интересно самому производителю.
Adamos, Вы явно пишете в чём не разбираетесь. Возможно, если сравнивать кресты, там действительно надо страдать для написания десктоп приложения, хотя, опять же, qt передаёт привет. Где можно накидать мышкой интерфейс, написать немного кода и получить быстрое, маложрущее приложение. Чего уже говорить о современных шарпах. Чуть больше памяти, может чуть медленнее, но и тут у электрона нет шансов. Единственный плюс электрона быстро сделать псевдо приложение веб программисту, так что бы оно было кросплатформой.
Возможно Вы не в курсе, но не так сложно написать приложение, которое само проверяет обновление и само же обновляется. Проблем с доставкой обновлений примерно ноль. А если ещё прикрутить систему патчей, то и размер обновлений будет минимальный. Тут привет передают все онлайн игры.
необходимостью пересобирать и обновлять его у каждого пользователя под каждую правку
Я имел ввиду это.
1. Если говорить о шарпах или яве пересобирать под каждую платформу не нужно.
2. Автоматизация обновления через самообновление настраивается 1 раз. Все дальнейшие обновления происходят через пуш обновления/патча на сервер, где клиентские приложения сами скачают что им нужно и когда нужно. По сути как в вебе. Только вместо, условно, html, бинари.
wizardhelg, "под каждую платформу" вы придумали сами.
Проблемы от того, что у пользователя еще не обновилось и он лезет из старой программы, косяки с самим обновлением, ложноположительные срабатывания антивирусов... да, совсем как в вебе, кто бы сомневался.
Особенно "как в вебе" решаются проблемы, которые требуют исправления одного символа, но потом требуют отгрузки гигабайтов обновлений.
И это я еще даже не упомянул, что сейчас больше половины пользователей интернета - мобильные пользователи... но вы же тоже начнете петь, что и там "по сути как в вебе".
Adamos, я ничего не придумывал. Это цитирование Вашего сообщения копипастой.
Не вижу смысла продолжать дискуссию если Вы утверждаете, что я что то придумал, хотя нет.
Но честно, как пользователь смартфона регулярно проклинаю разработчиков лагучих веб приложений, которые при малейшем сбое инета не могут даже, условно, в свои настройки зайти. Особенно удобно, когда были глобальные сбои dns, такие вот веб поделия просто умерли.
wizardhelg, раз вы умеете копипасту, наверное, сможете и поиск - например, слова "платформа" в моих комментариях.
Если умрет DNS - приложение-клиент к БД умрет ровно так же успешно. Читаем вопрос.
Adamos, в первом пункте был не прав, признаю. Но сути то это не меняет. А суть в том, что приложение почти во всём лучше веба, кроме скорости накатывания исправления в 1 букву, тут да. Тут веб тащит.
А по поводу dns. То приложение клиент может легко жить без dns. И порой это даже требование иб.
Adamos, к вебу у меня одна претензия, в разных браузерах все может кардинально отличаться. у нас сейчас 3 браузера под корпоративные приложения и привести все к одному не получается. не хочу влезать в этот зоопарк.
Сергей Набоков, это что может "кардинально отличаться" и где вы сейчас набрали аж три разных браузера?
80% рынка - Хром, еще немного осталось Файрфокса и Сафари. Ослик с Ежиком у вас еще не сдохли, что ли?..
Мобильный сегмент - это не обязательно телефон в вебе. Это, например, у кладовщика планшетка с доступом к интранет-серверу с вебмордой же.
Adamos, вы удивитесь до импортозамещения было понятие корпоративного браузера (експлорер)
за хром на компе карали нещадно, сейчас после перехода на RedOS у нас Firefox, Yandex, и Chromium.
За доступ к корпоративным данным через интернет вас уволят по статье. Не все так просто в ТЭК
Сергей Набоков, у меня жена работает в госНИИ, можете про маразмы ИБ не рассказывать. Нужную для работы информацию с сайтов иностранных коллег удается получить только дома ;)
Яндекс и Хромиум - это один и тот же движок, никакой разницы нет.
ФФ - чуть отличается, но если у вас современные версии, то разницу довольно трудно поймать.
Собственно, разница в браузерах нивелируется на раз использованием готового UI-фреймворка (хотя бы бесплатный и вылизанный Bootstrap) и готовых же библиотек JS (банальный jQuery, который все громко хоронят, но хуже он от этого работать не стал, или всерьез React/Vue какой-нибудь) - они таки работают в разных браузерах одинаково.
Сергей Набоков, я за несколько лет разработки пару раз сталкивался с тем, что у пользователя в Хроме что-то работало не так, как у меня в ФФ. Причем исправлялось это "сделай как в Хроме, ФФ подстроится" ;)
У вас же наверняка никаких rocket science и сложных загибов. Форма-таблица-всплывающее окошко, вот и весь UI.
Несколько лет писал его под Windows (C# в MS Visual Studio) ... На что посоветуете перейти? Надежд на перенос кодовой базы не питаю, смирился с тем, что придется писать с нуля.
Непопулярный ответ - lazarus. Почти Делфи, удобно делать формочки которые смотрят на базу. Но не модно конечно. Делфи мне в прошлом как инструмент для построения интерфейса был симпатичен. Ну, это если нет отвращения к паскалю
Используй Avalonia UI + Rider как IDE (они сейчас сделали free версию для некоммерческого использования). Есть предварительный просмотр размеченных вьюшек. Визуальный редактор обещают скоро сделать в платной подписке, и есть какие-то опенсорсные проекты по визуальному редактору.
сейчас приложения на C# (NET Core) могут запускаться под Linux. Приложения без GUI сам запускал, всё просто. Погуглите - можно ли что-то делать с GUI. Если да, останется только адаптировать проект, без существенных изменений.
По IDE - можно продолжать использовать Visual Studio (Windows, MacOS) или Visual Studio Code (... +Linux)
А wine ?
Если есть у меня и понимание - прикручивай web. - тебе станет не важен клиент и устройство .
Ну или пиши на какой нибудь java ( или что ещё есть кроссплатформенное?)
Очень многие пользуют vscode - наши программисты все, даже кто на линухе
Есть такая штука, как eclipse - супер-пупер-дрюпер комбайн, умеет все на свете
Если в качестве DE используется KDE/TDE, то там есть KDevelop - это такой "eclipse по kde-шному"
Можно рассмотреть кроссплатформенные решения:
1. QT - на нем даже пишут приложения для ОС Авроры. Язык C++
2. Lazarus - тоже кроссплатформенное IDE позволяющее писать приложения на языке Pascal.
3. Tkinter - кроссплатформенное библиотека к Python для разработки Desktop приложений. IDE VSCode или PyCharm.
4. Flutter - фреймворк, кроссплатформенный. Язык программирования Dart. IDE VSCode или Android Studio.
5. Kotlin Multiplatform - использующий в качестве языка Kotlin. IDE Android Studio.
6. Ну и наконец Electron, на котором написан VSCode. Собственно IDE VSCode.
Резюмирую: Есть огромное количество IDE для разработки приложений под Linux. Выбирайте свое.
Сам искал нечто такое. То же использовал винду c# и visual studio для формочек. Много что перепробовал, но лучше всего с графическим редактором интерфейса подходит Qt и Qt creator. Тут язык c++. Для использования с qt он не так сложен.
Как вариант Lazarus но там возможно надо будет напильником поработать, и среда разработки намного хуже visual studio. Тут паскаль и для меня он ужасен. Да и в целом возможностей меньше чем на Qt.
Присоединяюсь к советам использовать Qt и QtCreator. Но надо понимать, что Qt это фреймворк для C++, а значит придется хотя бы минимально этот язык осваивать.
Возможно, в вашем случае будет целесообразно попытаттся ваш имеющийся код на C# портировать под линукс с Mono и VSCode.
Выскажу альтернативную точку зрения, которую так никто и не озвучил с момента публикации вопроса. На самом деле тут не очень ясна сама ситуация: задача только в портировании GUI приложения под линукс или ещё и рабочую машину разработчика на линукс тоже перевести? C# и dotNet продукт мелкомягких, а VisualStudio ещё долгие годы будет работать только под виндой, вряд ли где-то ещё будет лучшая поддержка данных инструментов. Да, в VSCode и райдере вполне можно писать на шарпе под линуксом. Я не говорю, что это плохие продукты. Если ТС привык к студии и есть возможность остаться на винде - так и отлично. Смысла особого в такой миграции нет. Зачем лишний раз себя мучать? Поэтому, самым оптимальным решением будет продолжить работать на связке винда плюс студия, а существующие графические приложения портировать на avalonia или на MAUI. Ну а локально тестировать работу приложений в линуксе вполне можно в виртуалке (виртуалбокс наше всё). ИМХО.
спасибо за развернутый комментарий, тут немного интереснее ситуация:
все хобби я уже перетащил на дебиан и в целом уже освоился в системе, сейчас стоит задача освоить там программирование.
портировать написанное не хочу пока не припечет. а вот новые идеи хочу уже реализовывать на линуксе но хочется строить дом из кирпичей а не начинать с изобретения керамики, если вы понимаете о чем я. рисовать интерфейс текстом очень печалит.
попутно еще вопрос: все вот говорят про райдер, но ведь он же платный плюс из россии его поставить нужно заморочиться с впн
портировать написанное не хочу пока не припечет. а вот новые идеи хочу уже реализовывать на линуксе но хочется строить дом из кирпичей а не начинать с изобретения керамики, если вы понимаете о чем я. рисовать интерфейс текстом очень печалит.
попутно еще вопрос: все вот говорят про райдер, но ведь он же платный плюс из россии его поставить нужно заморочиться с впн
Да, райдер он такой, не пиндостан, конечное, но та же гейропа со всеми вытекающими из этого. Так что лично я не вижу особого смысл его начинать использовать в современных реалиях. В вашем случае либо оставаться на шарпе и мириться с его недостатками либо осваивать си-плюсы и Qt (который из той же гейропы) или GTK какой-нибудь. Как вариант - можно попробовать поискать/попробовать альтернативные графические библиотеки для шарпа - тот же GTK, например.
В общем, рекомендую попробовать разные варианты и пощупать. Вот возьмите какую-нибудь маленькую часть вашего проекта и попробуйте реализовать с помощью разных инструментов и выбрать наиболее подходящий.