Чи можете ви розробляти додатки Linux за допомогою Xamarin?


81

Чи можна розробляти та створювати додатки Linux за допомогою Xamarin з однаковою базою коду?

Через кілька років роботи з Ubuntu, моєю основною ОС зараз є знову Windows. Але не виключено, що я міг би перейти на Mac.

Зараз я маю трохи досвіду роботи з Qt і не маю досвіду роботи з Xamarin. За допомогою Qt ви можете розвиватися на Windows, Linux та Mac, а також для Windows, Linux, Mac, iOS, Android, Windows Mobile, ... Вони це досить чітко розуміють.

Оскільки Xamarin зараз безкоштовний і з відкритим кодом, і я все ще не маю багато досвіду в Qt, я розглядаю можливість спробувати Xamarin для крос-платформної розробки замість Qt.

Неможливість випустити моє програмне забезпечення для Linux для мене було б порушенням. Можливість розробки на Linux було б непогано, але необов’язково. Але після всіх моїх досліджень у Google я міг знайти лише інформацію та людей, які просять підтримки для розвитку на Linux, а не на Linux.

Наскільки я знаю, це не повинно бути проблемою лише з Mono. Але наскільки я знаю Xamarin> Mono, і я не отримую все в Mono, я міг би отримати в Xamarin.

Я також не впевнений, наскільки добре підтримуватиметься Mono у майбутньому. Для мене здається, що Xamarin набагато важливіший для Microsoft, ніж сама Mono.

Я не впевнений, що це взагалі можливо, оскільки Xamarin базується на Mono, але чи можливо, що Microsoft в якийсь момент вирішить не підтримувати Mono із сумісністю .NET так само, як Xamarin, або навіть повністю скасувати Mono як самостійний ?

Тому я шукаю одну єдину структуру для всіх настільних та мобільних платформ, на яку я можу покластися, і я хочу знати, чи Xamarin та / або Mono та та / або Xamarin + Mono можуть бути альтернативою Qt, перш ніж я піду глибше в будь-яку цих рішень.

Відповіді:


62

Про всяк випадок, коли хтось зіткнеться з цим запитанням: ситуація змінилася. У Xamarin.Forms 3.0 підтримується Gtk # (на даний момент як попередній перегляд). Тому ввімкнено повну підтримку графічного інтерфейсу Linux.

Отже, Xamarin тепер охоплює:

Єдине, що залишається бажати: цільова платформа JS / HTML5 Web App, як частина Xamarin :)


Інші речі, які слід побажати в Xamarin: можливість фактично викликати та повертати функції c # з js ...
Олександр

1
Я думаю, що Xamarin.Mac також охоплює macOS?
Франклін Ю

1
не впевнений, чи можна належним чином висвітлити ваше бажання "цільова платформа веб-застосунку JS / HTML5", тому вміст все ще є чистим HTML і може бути оброблений веб-сканером та подібними речами. але користувальницький інтерфейс JS / HTML5 / WebAssembly, який просто «працює якось», вже був би вигідним. щоб отримати справжній рідний досвід HTML, вам слід оформити Blazor
Thomas Haller

1
GTK # не підтримується (Microsoft), це лише зусилля спільноти, до яких корпорація Майкрософт не сприяє і не турбується про неї. Для нього неможливо розробити його на Linux, лише використовувати його на Linux після того, як ви його побудуєте на Windows. Конструктор інтерфейсу Xamarin.Forms взагалі недоступний у Linux. Microsoft просто не піклується про це.
трампстер

46

Ні, Xamarin недоступний для Linux. Це було свідоме рішення, прийняте командою Xamarin кілька років тому:

Мігель де Ікаса 2011-08-04 11:52:37 UTC

Тут ми стикаємось із проблемою забезпечення якості.

Проблема підтримки Linux полягає в тому, що нам потрібно було б створити автономну упаковку Mono для всіх бітів, які ми постачаємо, оскільки більшість дистрибутивів Linux дещо відключені, коли мова заходить про Mono.

Це також означає, що якщо ми рекламуємо "Linux", нам доведеться перевірити дюжину різних комбінацій через різні дистрибутиви Linux та різні редакції кожного дистрибутива.

Можливо, ми підтримали б лише один дистрибутив та єдину версію, що наближається до того, що ми маємо робити сьогодні на Windows / Mac.

Для уточнення, асортимент продуктів Xamarin недоступний в Linux (Xamarin Studio, Xamarin.iOS і Xamarin.Android), але MonoDevelop, основа Xamarin Studio, і Mono, крос-платформний середовище виконання .NET, точно є.

Ви можете створити настільне програмне забезпечення за допомогою MonoDevelop. На сайті MonoDevelop є безліч інструкцій щодо початку роботи:


Дякую. Звичайно, зараз було б цікаво, чого мені не вистачає, коли я просто використовую Mono? Схоже, Mono також підтримує Android та iOS. Чи перевага Xamarin просто в тому, що це IDE (для випадку це перевага) і щось на зразок Xamarin Test Cloud?
JuSchu

Або можна було б використовувати Xamarin для всього, для чого він може бути використаний, а потім побудувати його для Linux з тією ж базою коду?
JuSchu

5
@JuSchu Mono не підтримує iOS та Android. Ось чому Xamarin перейменував MonoTouch на Xamarin.iOS, а Mono для Android на Xamarin.Android. І .NET / Mono не прагне дозволити вам використовувати одну базу коду для підтримки всіх платформ. Ви можете поділитися кодом, але не мрієте ділитися усіма рядками.
Лекс Лі

1
@JuSchu так, бізнес-логіку можна використовувати спільно скрізь, хоча механізм спільного використання зараз зазнає значних змін (від PCL до стандартної бібліотеки .NET), якщо ви вже перевіряєте відповідні сеанси побудови.
Lex Li

7
Здається, команда Мігеля де Ікази вирішила підтримати Xamarin для linux :)
Упол Рискулова

9

Здається, існує ймовірність роботи Xamarin Forms на дистрибутивах Linux. У цій темі Reddit Мігель де Ікаса говорить:

Деякі члени нашої команди насправді розробляють у Linux. Причина, по якій ми ніколи не випускали інструменти Linux, полягає в тому, що ми заряджали багато грошей, і люди по праву очікували, що програмне забезпечення буде повністю підтримуватися. Нам було достатньо, щоб наші користувачі Mac і Windows були щасливими, а додавання невідомої кількості дистрибутивів Linux звучало як важке завдання. Тепер, коли ми відкриті джерела SDK, і я більше не буду почувати себе погано, якщо щось не працює в певній конфігурації Linux, я буду радий випустити збірки Linux.

Тобто: той факт, що Forms є інструментом з відкритим кодом, наразі відкриває цю можливість.


5

Так, станом на середину 2018 року можна розробляти крос-платформні графічні програми, націлені на windows / mac / linux / android / ios, використовуючи бібліотеку "Xamarin.Forms". В основному, у вас є один спільний проект бібліотеки з крос-платформенного коду (інтерфейс користувача та інші крос-платформні матеріали), а також один проект на платформу для коду, специфічного для платформи (Xamarin.Forms мають по одній реалізації для кожної платформи. У Linux це використовує GTK ).

Однак за допомогою MonoDevelop ви можете лише розробляти / будувати крос-платформний проект та конкретний для Linux проект програми. Вам все одно доведеться використовувати Visual Studio або Rider для розробки / побудови для інших платформ.

Дивіться таку відповідь: https://stackoverflow.com/a/53317021/298005


4

https://github.com/0xFireball/xamarin-android-linux

Як сказав matthewrdev, Xamarin.Studio, Xamarin.iOS та Xamarin.Android не "офіційно" підтримуються; однак Xamarin.iOS у будь-якому випадку використовує віртуальний емулятор (і я не думаю, що для Xamarin.iOS буде застосовано обхідне рішення для роботи в Linux), а для Xamarin Studio (MonoDevelop на Linux або Jetbrain's Riders (як запустити його на linux) без офіційної підтримки також надається посилання) Може працювати на Linux як альтернатива Xamarin.Studio, і це посилання, яким я поділився, пояснює, як встановити Xamarin.Android на linux, тож для Xamarin.iOS вам потрібно буде перенести або подвійне завантаження або sth, сподіваюся, це допоможе! (Я перестав використовувати Xamarin my-self, однак, це середовище допомагає розробляти Xamarin на linux!)


2
Привіт, я вважаю, що цей посібник ви пов’язали; він певний час ламався, оскільки деякі шляхи були змінені, станом на сьогодні він був оновлений і підтверджено, що працює.
n3n7

Я можу підтвердити, що це все ще працює. Проблема була лише у помилках libzip.so.4. У мене його не було спочатку, тому довелося встановити через: sudo apt-get install libzip4
ignacardel 07
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.