2013-05-10 2 views
3

Я новичок в программировании, и меня интересует разработка приложений на C# с использованием Mono. Я хотел бы выбрать графический интерфейс, отличный от GTK +: либо WinForms, либо XWT (https://github.com/mono/xwt).Winforms или дизайнер XWT GUI для Mono?

Есть ли дизайнер для проектирования графических интерфейсов WinForms? Что относительно одного для XWT? Я использую MonoDevelop в качестве моей IDE.

Если нет дизайнеров для WinForms или XWT, считаете ли вы возможным написать приложение на C# в .NET с помощью WinForms с помощью Visual Studio 2012 и просто скомпилировать его с помощью Mono, когда я захочу развернуть?

+0

Почему отвращение к gtk #? – ruffin

+0

Вы можете, конечно, писать приложения с помощью дизайнеров WinForms в Visual Studio или SharpDevelop, а затем просто создавать результирующий проект с помощью MonoDevelop или xbuild. Разработчику не требуется компиляция приложений WinForms в Mono. – Justin

ответ

5

Это, вероятно, два вопроса.

1.) Каковы мои опции для графического интерфейса Mono GUI?

Если вы хотите использовать графический интерфейс Mono только выбор - это GTK # насколько я знаю.

Если вы хотите использовать GUI RAD для Windows.Forms, это называется Visual Studio (или, возможно, VS Express для рабочего стола в Win8), и для работы с Windows/работает вне MonoDevelop. ;) С положительной стороны, это действительно хорошо GUI RAD.

2.) Какая структура графического интерфейса лучше всего подходит для написания и работы везде?

Gtk #. К сожалению, Windows.Forms от Mono не работает хорошо и является тупиковой технологией. См. here for a similar question.

Как я уже упоминал в ответе, если вы хотите написать утилиту, предназначенную для нескольких ОС в Mono (или вы ориентированы на Linux), вы, вероятно, захотите Gtk #. Если вы хотите создать традиционное клиентское приложение, подготовьтесь переписать свой графический интерфейс на каждой целевой платформе.

Редактировать: Меньше непопулярный вопрос по аналогичной теме here.

Edit2: Там является дизайнер Mono WinForms, что я забыл о here, но его описание с готовностью признает, что «К сожалению, дизайнер пока не готов для правильного использования», и блокирующей ошибка они относятся к is from 2007, так не очень помогает.

Удачи вам!

+0

«К сожалению, Windows.Forms от Mono не работает хорошо и это тупиковая техника». не соответствует действительности на 100%. Существуют значительные проблемы с совместимостью, но некоторые приложения отлично работают на Mono WinForms (даже на коммерческих). –

+0

«Dead end» для меня означает «больше не активно развивается», который, когда я был на [IRC-каналах Mono] (http://www.mono-project.com/IRC) и очень тихий [WinForms список ошибок] (https://bugzilla.xamarin.com/buglist.cgi?product=Class%20Libraries&component=Windows.Forms&resolution=---), похоже, так. Многое работает, но это багги и, по моему опыту, очень * очень быстро работает, требуя уродливых кодексов. У вас есть хорошие кроссплатформенные приложения WinForm, которые вы могли бы привести в качестве примера? [Banshee] (http://banshee.fm/), например, является отличным приложением Gtk #; хотел бы увидеть эквивалент WinForms Mono. – ruffin

+0

[JArchitect] (http://jarchitect.com). Поскольку Banshee является уродливым в Windows, я не думаю, что это хороший пример. –

4

Рассматривая текущее направление моно, которое управляется Xamarin, они продвигают собственный пользовательский интерфейс для каждой платформы. означает, что вы пишете бизнес-процесс как отдельный проект и графический интерфейс для каждой целевой платформы. как и для настольных компьютеров, использование XWT предпочтительнее, так как вы будете использовать аналогичный API для доступа к собственному пользовательскому интерфейсу на каждой платформе, не теряя возможности добавлять более продвинутый пользовательский интерфейс для каждой платформы.

XWT API основан на API GTK # (легко для пользователей Xamarin для переноса существующих приложений) и предоставляет множество общих виджетов/элементов управления, которые реализованы для каждой целевой платформы (WPF для Windows, Cocoa для Mac, GTK для Linux). Кроме того, это упрощает добавление заранее/собственный виджет и размещение в XWT, как он на самом деле нравится прошла в родном инструментарием в каждой платформе

Update:

О Winform уже ответил на XWT не кажется, ни один дизайнер еще, но для развертывания , просто создает проекты XWT GUI (Shared all XWT GUI), XWT.WPF (запуск XWT для Windows) и XWT.Cocoa (приложение XWT MonoMac для Mac).Но каждая пусковая установка может быть скомпилирована только на каждой платформе

+0

все, что вы говорите, правда, но вы не отвечаете на вопрос – knocte

+0

@knocte, спасибо за комментарий, обновили ответ –

+0

XWT - это потрясающе, но отсутствие многострочной текстовой записи на GTK - это настоящий шоу-стоппер на Linux , Как старый парень Mono, я нахожу это сумасшедшим, когда Mono tech работает лучше на OS X и Windows, чем на Linux. – Justin

Смежные вопросы