Вопрос

Если бы вам нужно было написать кроссплатформенное приложение с графическим интерфейсом, которое запускалось бы локально и вызывало бы веб-сервис, могли бы вы сделать это с помощью .Net, какие инструменты вы бы порекомендовали?

Я рассматривал Java, поскольку ее было бы относительно легко освоить из-за ее сходства с C #, а затем я мог бы использовать JVM.

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

Решение

Вам следует ознакомиться с Моно проект и МоноРазвитие;Основная цель этих проектов — позволить создавать и запускать код .NET на различных платформах, включая Windows, Linux и Mac OSX.

Поскольку Mono является повторной реализацией .NET, он всегда немного отстает от Microsoft.NET, но у них есть хороший охват .NET 2.0 и некоторых функций .NET 3.x.Обратите внимание, что Mono выполняет двоичные файлы .NET, поэтому, пока функции вашей программы поддерживаются Mono, вы можете взять EXE-файл приложения, который вы скомпилировали в Windows, и запустить его в Linux/Mono без перекомпиляции.

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

Еще одним относительно новым вариантом кросс-платформенной разработки .NET является использование Eto.Forms Framework с открытым исходным кодом, который позволяет вам иметь одну базу кода пользовательского интерфейса, предназначенную для собственного набора инструментов каждой платформы.

Для Windows используется WinForms или WPF, для Linux — GTK#, а для OS X — MonoMac/Cocoa.

В разработке также находятся мобильные порты (iOS/Android).

https://github.com/picoe/Это

Лучше написать его, используя какой-нибудь кроссплатформенный инструментарий.Скорее всего, у вас не получится использовать хороший визуальный дизайнер (правда, это зависит от того, какой набор инструментов вы выберете), но написать пользовательский интерфейс вручную не так уж и сложно.Ребята из HTML делают это постоянно, и это довольно распространенная практика и в мире, не относящемся к MS.

Некоторые кроссплатформенные наборы инструментов пользовательского интерфейса с привязками .NET.

  • GTK# (стандарт де-факто для разработки Mono, МоноРазработка IDE имеет встроенный дизайнер форм, использующий этот набор инструментов)
  • wxNET (на основе wxWindows, довольно зрелый, но вам придется создавать свой пользовательский интерфейс вручную)
  • Киото (судя по QT, это, вероятно, лучше, чем wxWindows, но вам может потребоваться коммерческая лицензия от Trolltech, если ваше приложение не может иметь лицензию с открытым исходным кодом)

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

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

Проверьте Моно проект

Также взгляните на Сильверлайт или Вспышка для многофункциональных интернет-приложений.

Как было сказано ранее, Моно-проект это ваш лучший выбор, учитывая поддержку сообщества.

Если вы используете Visual Basic, то РЕАЛбазовый также стоит посмотреть, поскольку у него есть кросс-компилятор, который создает собственные исполняемые файлы.У них есть пробная версия, вы можете скачать тоже

Недавно я написал небольшое приложение с графическим интерфейсом на C# для Linux, которое компилировалось и запускалось с использованием mono.Я обнаружил, что мне пришлось использовать компилятор "gmcs", чтобы иметь доступ к современным функциям C# и .Net (mono 1.9 поставляется с несколькими разными компиляторами).

И при компиляции файла .exe я обнаружил, что мне нужно добавить переключатель «-target:winexe», чтобы приложение запускалось в Windows без всплывающей командной строки позади приложения.

Мне еще предстоит выяснить, как скомпилировать приложение .Net, которое в Windows будет запускаться с сетевых дисков, не требуя специальной настройки безопасности .Net на ПК.(Я думаю, что это общая проблема с приложениями .Net, но я все еще учусь.)

Честно говоря, я бы оценил вашу клиентскую базу и ваши существующие навыки.Если у вас есть разделение 50/50 или даже 70/30 между Windows и не-Windows, вам, вероятно, будет лучше использовать Java или какой-либо другой кроссплатформенный набор инструментов.

Mono — достойная платформа (см. этот ТАК вопрос задан около недели назад), но если вы делаете что-то важное, я бы выбрал набор инструментов, предназначенный для этого.

Кстати, если вы хотите посмотреть, как выглядит приложение .NET GUI в Mono, вот сообщение, которое я писал всякий раз, когда запускал графический интерфейс NUnit в Mono:

http://www.cornetdesign.com/2006/07/nunit-gui-running-green-on-monolinux.html

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