LINUX.ORG.RU

Компиляция проекта C# под Mac OS X

 , ,


0

1

Имеется проект C# 4,Windows Forms,вызовов API функций нет, используются несколько библиотек, которые есть под Mono.

Нужно, чтобы сабж запускался также под Mac OS X (и именно там!).

Как на Windows машине (т.е. в Visual Studio) откомпилировать проект под Mono?

Это еще бесплатно, или за такую возможность уже нужно платитъ?

Windows Forms

На gtk# придётся перезжать, а лучше нативную морду под макосью использовать. Под каждую платформу морду придётся переписывать.

Hertz ★★★★★
()
Последнее исправление: Hertz (всего исправлений: 1)

насколько я понимаю .net, тебе не надо ничего компилировать. просто бери .exe, ставь mono на osx, и пробуй запускать. запустится или нет - это другой вопрос, определяющийся качеством поддержки winforms в mono, и т.п.

(если что, я по работе регулярно запускаю .net бинарники собранные на венде, без перекомпиляции, используя моно на макоси и линухе)

waker ★★★★★
()
Последнее исправление: waker (всего исправлений: 1)
Ответ на: комментарий от EnterpriseMobility

«Write once, run anywhere» относится к ядру приложения. Да и то с рядом оговорок и исключений. Особенно если вопрос о морде приложения...

Hertz ★★★★★
()

Поддержка winforms в моно? Лучше бы её небыло. Окромя xamarin за деньги есть monobjc. Сам её сильно не кушал, хелловорлды нормальные. Но проще замарин купить, имхо.

ebantrop
()
Ответ на: комментарий от G12ES

Штоа? Прога на винформсе в моно работает еще как. В монодевелопе нет визуального редактора, но это не мешает быть винформсам в моно.

slackwarrior ★★★★★
()
Ответ на: комментарий от slackwarrior

У меня под маком простейшее приложение .net 2.0 не заработало. Крешнулось с криками на шрифты майкрософтские :-)

menangen ★★★★★
()
Ответ на: комментарий от ebantrop

Как на Windows машине (т.е. в Visual Studio) откомпилировать проект под Mono?

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

slackwarrior ★★★★★
()
Последнее исправление: slackwarrior (всего исправлений: 1)
Ответ на: комментарий от menangen

у меня без перекомпиляции работали WCF службы и winforms приложения с винды на линуксе :) (А шрефты поставить - не?)

slackwarrior ★★★★★
()
Ответ на: комментарий от ebantrop

«Xamarin — это фреймворк для кроссплатформенной разработки мобильных приложений (iOS, Android, Windows Phone)» (с)

Макос тут видишь? «Xamarin offers a rebranded version of MonoDevelop 4.0 as Xamarin Studio» %) Чтоб путаницы не было, сам по себе замарин не при чем. Монодевелоп + Замарин == Замарин Студио

slackwarrior ★★★★★
()

Сделай вебморду.

anonymous
()
Ответ на: комментарий от slackwarrior

Макос тут видишь?

Вот твари в замарине сидят, тебе наверное не ту страницу показывают на xamarin.com. У меня во чо кажет:

Xamarin Platform

Xamarin apps share code across all platforms.

Target iOS, Android, Windows and Mac with a single, shared C# codebase. Use the same language, APIs and data structures on every platform.

ebantrop
()

Что это делает на лоре? На макфак.

yacuken ★★★★
()
Ответ на: комментарий от EnterpriseMobility

а как же Write One, Run everywhere?

1) Тебе никто этого не обещал

2) Гуйню на .net делать - это как из пушки по воробьям. Не надо использовать мощный инструмент не по назначению.

3) Гуйня на winforms это вообще позор. Есть же хотя бы gtk#.

anonymous
()
Ответ на: комментарий от ebantrop

Нененене Девид Блейн, изначально тако оно и было: замарин студио - продукт ребрендинга монодевелопа. Даже линукс из списка платформ в твоем варианте исчез («брюки превраща...» (с)), потому что Мигелюшке с него бабла перепадает меньше, чем от юзиров замарина (который фреймворк) с Мака и Винды... на которых разрабатывают софт под угадай что? Андроид и iOS.

slackwarrior ★★★★★
()
Ответ на: комментарий от ebantrop

Xamarin apps share code across all platforms.

«Share» только 75% ) Остальное - непортабельные гвозди для «нативного гуя»: Xamarin.iOs, Xamarin.Android, Xamarin.Mac, Xamarin.WinPhone, которыми придется «портить» приложение. А волшебное «all platforms» - маркетинговая сказка, да и только.

«В начале были монотач и монодроид, и были они убоги...» -> на их обломках был запилен замарин фреймворк. А «мономака», сюрприз-сюрприз не было. Xamarin.Mac впилили сильно опосля по сам знаешь каким соображениям (Мигелюшка в бложеке их и не скрывал, как впрочем и официальный игнор линукса). И что из этого следует? А то, что для моноприложений как таковых замарин как был сбоку-припека, так и остался. (Можно пользоваться. Но не обязательно: " Xamarin.Mac gives C# developers the ability to build fully native Cocoa apps for Mac OS X and allows for native apps that can be put into the Mac App Store" (с) Т.е. он нужен, если охота прибиться гвоздями к макосу, что немногим отличается от прибивания гвоздями к винде через COM, P/Invoke и WPF («можно разделить 75% кода» (с) Подумаешь, 25% (весь гуй) - непортабельная хня, зато нативненько на маке. В лучшем случае - сорц-бэйсд портабилити и «кросскомпиляние». (У моны тут нету охеренных преимуществ перед жабой, обжектив-ц или даже плюсами) А вот про бинарную типа собрал на винде, запустил на винде, скопировал тот же бинарь (не «таргет») - запустил в другой моне (на линуксе, на маке), не парясь о таргет платформе - про это можно с замарином точно забыть)

slackwarrior ★★★★★
()
Ответ на: комментарий от anonymous

Гуйню на .net делать - это как из пушки по воробьям

ну да, CLI интерфейс рулит.И вообще мышь - зло. Ratpoison рулит

Не надо использовать мощный инструмент не по назначению.

чорт, я не знал, что .NET не разрабатывался для создания GUI. Как же я программировал на нем

Гуйня на winforms это вообще позор

ну да, согласен.Тока есть особый круг задач и платформ, где может использоваться только он. А эти вaши Gtk# туда никто и никогда не портирует.

Есть же хотя бы gtk#.

лолштоестьжеWPF?

EnterpriseMobility
() автор топика
Ответ на: комментарий от EnterpriseMobility

ну да, CLI интерфейс рулит.И вообще мышь - зло. Ratpoison рулит

Ну ты баран... Для GUI есть другие инструменты. На .net пиши backend.

чорт, я не знал, что .NET не разрабатывался для создания GUI.

Ну да, точно баран.

Как же я программировал на нем

Надо полагать, херовенько ты программировал. Не программируй больше, гуешлепщик.

А эти вaши Gtk# туда никто и никогда не портирует.

Это куда это, например?

лолштоестьжеWPF?

Говно уродливое.

anonymous
()
Ответ на: комментарий от slackwarrior

Познавательно, спасибо. Честно говоря я так внимательно за ними не следил.

По поводу %% это немного лукавство, поскольку пиши хоть на чем, а если нужен хороший гуй один хрен нужно делать нативный на каждую платформу, чтоб оно не выглядело как чужеродное говно. Ну или в вебню.

COM и WPF действительно win only. Про P/Invoke не надо ля-ля. Все работает замечательно, если нативная часть кроссплатформенна. У меня так числодробильные велосипеды сделаны. В нативе MKL и CUDA, а все более-менее высокоуровневое в .NET'e на С# и Boo.

ebantrop
()

Mono такая же полувиртуальная машина, как и .NET, приложение собранное под .NET, при условии что используемые библиотеки есть под Mono и Вы не используете ничего специфичного будет из коробки работать и под OS X, и под GNU/Linux.

Nedis
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.