Вопрос

В чем разница между GTK # и Windows forms?Они что, совершенно разные?

Спасибо

Это было полезно?

Решение

Gtk#:

GTK# - это привязка .NET для Gtk+ toolkit.Инструментарий написан на C для обеспечения скорости и совместимости, в то время как привязка GTK # предоставляет простой в использовании объектно-ориентированный API для управляемого использования.Он находится в активной разработке проектом Mono, и существуют различные приложения реального мира, которые его используют (Банши , F-Пятно, Бигль, Монодевелопмент).

Как правило, приложения GTK # пишутся с использованием Монодевелопмент, который предоставляет визуальный конструктор для создания GTK # GUI.

Платформы:Unix, Windows, OSX

Плюсы:

  • Хорошая поддержка доступности благодаря наследию Gtk +.
  • Механизм верстки идеально подходит для работы с интернационализированными средами и адаптируется к размеру шрифта без ущерба для приложений.
  • Приложения интегрируются с Gnome Для рабочего стола.
  • API знаком разработчикам Gtk+.
  • Большое сообщество Gtk+.
  • Доступен порт Win32 с встроенным интерфейсом в Windows XP.
  • API на данный момент довольно стабилен , и для его улучшения добавляется синтаксический сахар.
  • Поддержка Unicode является исключительной.

Минусы:

  • Приложения Gtk + работают как иностранные приложения в macOS X.
  • Неполная документация.

Windows.Формы:

Windows.Forms - это привязка, разработанная корпорацией Майкрософт к Win32 toolkit.Являясь популярным инструментарием, используемым миллионами разработчиков Windows (особенно для внутренних корпоративных приложений), проект Mono решил создать совместимую реализацию (Winforms), позволяющую этим разработчикам легко портировать свои приложения для запуска на Linux и других платформах Mono.

В то время как реализация .Net является привязкой к Win32 toolkit, реализация Mono написана на C #, что позволяет ей работать на нескольких платформах.Большая часть Windows.API Forms будет работать в Mono, однако некоторые приложения (и особенно сторонние элементы управления) иногда обходят API и P / Invoke напрямую обращаются к Win32 API.Эти вызовы, вероятно, придется изменить, чтобы они работали в Mono.

Как правило, приложения Winforms пишутся с использованием Microsoft Visual Studio или Резкое развитие, которые оба предоставляют визуальный конструктор для создания графических интерфейсов Winforms.

Платформы:Windows, Unix, OSX

Плюсы:

  • Для этого существует обширная документация (книги, учебные пособия, онлайн-документы).
  • Большое сообщество активных разработчиков.
  • Самый простой способ перенести существующий Windows.Формирует заявку.

Минусы:

  • Интернационализация может быть сложной задачей с фиксированными макетами.
  • Выглядит чужеродно на платформах, отличных от Windows.
  • Код, вызывающий Win32 API, не является переносимым.

Источник: Выбор правильного инструментария

Другие советы

Оба они представляют собой наборы инструментов графического пользовательского интерфейса, каждый из которых имеет свои сильные и слабые стороны.Из моего опыта:

  • Winforms не требует установки в Windows, Gtk# требует установки в Windows.
  • У Winforms есть дизайнер в Visual Studio, у Gtk# есть автономный дизайнер и интегрированный дизайн в MonoDevelop.
  • Winforms привязан к Windows, Gtk# является кроссплатформенным.
  • Winforms работает медленно и мерцает.Gtk быстрее.
  • Большинство элементов управления Winforms представляют собой оболочки стандартных элементов управления Windows и предлагают очень ограниченную функциональность.Виджеты Gtk более многофункциональны.
  • Gtk позволяет создавать формы и виджеты со сложной компоновкой.Winforms предлагает только тривиальные варианты макета, а FlowLayout, TableLayout и AutoSize слишком слабы, чтобы иметь возможность иметь сложные формы, которые изменяют размер и автоматически подстраиваются под разные размеры шрифта и разные разрешения.
  • Cairo быстрее и имеет больше возможностей, чем Gdi+ (Cairo поддерживает вывод и ввод из большего количества типов файлов, например, svg, pdf).
  • Gtk# имеет открытый исходный код, Winforms — нет.
  • Winforms и Gtk# имеют сторонние элементы управления/виджеты (однако с Gtk# в них меньше необходимости, поскольку базовые элементы управления работают очень хорошо).

Короче говоря, я бы не рекомендовал использовать Winforms (за исключением случаев, когда есть веская причина не иметь больше зависимостей, чем .NET FW), а использовать Gtk# или WPF.

Это разные графические наборы инструментов для создания оконных приложений разного происхождения.

GTK# — это привязка библиотеки GTK, предназначенная в первую очередь для Linux/Unix.Он также работает в Windows, но это не та среда, для которой он был разработан.

Winforms — еще один набор инструментов, на этот раз от Microsoft.

Это совершенно разные API для достижения одних и тех же результатов, но каждый из них лучше подходит для конкретной платформы.

Если вы ищете многоплатформенную оконную обработку в .net, Qt может стать для вас вариантом теперь, когда он получил LGPLed.

Суммируя:Да

Оба являются GUI-Tookit, но WinForms (как следует из названия) в основном разрабатывался для Windows.GTK был разработан для Gimp и представляет собой подход к набору инструментов для работы с графическим интерфейсом для нескольких ОС.

Если ваше приложение работает только в Windows, в большинстве случаев вам следует использовать WinForms.

Если ваше приложение будет работать под разными ОС (например, Linux, BSD, Windows, MacOS,...) вы предпочтете GTK.

Для лучшего объяснения посмотрите здесь.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top