Приложение Winform для планшета?

У меня есть клиент, который хочет приложение для своих путешествий, где он может обновлять онлайн-базу данных, он не хочет покупать ноутбук, он хочет планшет или что-то подобное. У меня нет ни знаний, ни желания создавать специальные приложения для мобильных устройств, я хочу создать винформу так же, как всегда делал, когда она предназначалась для ПК. Планшеты (которые, как я понял, являются обычными ПК?) по-прежнему очень дороги в моей стране.

Есть ли простая настройка, чтобы приложение winform запускалось на планшете с Android, или мне нужно создать для него специальное приложение? Любое другое решение? (Я начал с написания веб-страницы для него, но гораздо проще использовать winforms)


person BornToCode    schedule 13.06.2012    source источник
comment
Идеальным решением здесь будет кодирование пользовательского интерфейса как веб-приложения: PHP, JSP, ASP.Net — всего, которое можно запустить в веб-браузере. Если вы можете это сделать - проблема решена!   -  person paulsm4    schedule 13.06.2012
comment
Чтобы лучше ответить на этот вопрос, было бы хорошо знать целевое устройство. Но общее безопасное предположение заключается в том, что WinForms не будет поддерживаться ни на чем, кроме планшетного устройства x86 Windows 7 или 8. если приложение может быть создано в веб-стеке, то любое приложение с браузером может использовать его независимо от платформы.   -  person Adam Houldsworth    schedule 13.06.2012
comment
По сути, если вы хотите Windows 7/Tablet... тогда вам нужно изучить WPF и XAML. Лучший пользовательский интерфейс для планшета с Windows 7... это написать веб-приложение на стороне сервера, которое можно запустить в браузере. Более того, одно и то же приложение автоматически переносимо на любой планшет, поддерживающий веб-браузер: WP7, Android и/или iPad. ПО МОЕМУ МНЕНИЮ...   -  person paulsm4    schedule 13.06.2012
comment
@AdamHouldsworth - я могу выбрать целевое устройство, они купят его специально для этого будущего приложения   -  person BornToCode    schedule 13.06.2012
comment
@BornToCode в этом случае возникает вопрос о том, насколько удобным будет приложение WinForms в сенсорной среде. Я предполагаю, что не очень. Перекодирование приложения кажется логичным выходом независимо от устройства.   -  person Adam Houldsworth    schedule 13.06.2012


Ответы (2)


Собственные приложения WinForms не будут работать непосредственно на Android (или любой другой платформе, отличной от Windows). Вы можете начать с изучения MonoDroid для портирования кода .NET Android (и Mono в целом для переноса кода .NET на платформы, отличные от Windows).

Успешный перенос между платформами потребует, чтобы приложение было структурировано очень несвязанным образом. Основная бизнес-логика в абстрактной части приложения должна быть легко перенесена, но конкретные реализации (в частности, представления и доступ к данным/сервисам) потребуют некоторой повторной реализации для различных конкретных платформ. Таким образом, общая архитектура должна быть очень развязанной и подключаемой.

Можно ли использовать планшет с Windows? Используя различные новые технологии Microsoft (Windows 8, Metro UI и т. д.), вы можете создать приложение, предназначенное для нескольких платформ на базе Microsoft. Это может легко удовлетворить требование быть «планшетом» (если требование не более конкретно «планшет Android»). Однако это не будет старый стиль приложений WinForms.

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

person David    schedule 13.06.2012
comment
Если это планшет с Windows 7 или x86 с Windows 8, то все старые приложения будут работать вне метро. А вот поддержка UI для тачскрина будет хренью, лучше переделать приложение в Метро. - person Adam Houldsworth; 13.06.2012
comment
@AdamHouldsworth: Действительно, лучшая рекомендация здесь — переработать приложение для технологических нужд. Использование WinForms в попытке не переделывать существующую работу в конечном итоге приведет к увеличению затрат и снижению производительности в долгосрочной перспективе. - person David; 13.06.2012
comment
Я полностью согласен, но многие старые приложения WinForms по-прежнему будут технически работать, учитывая правильную версию ОС, просто их будет неинтересно использовать, лол. - person Adam Houldsworth; 13.06.2012

Забудьте о преобразовании, я был в похожем положении много лет назад, и я сделал что-то проще, быстрее и, я думаю, умнее. просто создайте winform с красивыми большими элементами управления, позаботьтесь о стыковке якорей масштабирования и т. д., чтобы она выглядела красиво и ее можно было использовать с небольшими интеллектуальными устройствами.

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

Теперь сложные детали находятся в другом месте. Я настроил крошечный сервер Windows 2008 r2, который позволяет запускать на нем удаленные приложения.

Создайте учетную запись пользователя, которой вы разрешите доступ к этому серверу и только к этому вашему приложению с конкретным параметром, о котором мы говорили. (например, myapp.exe - удаленный)

Какое бы устройство он ни получил, вы можете загрузить бесплатное приложение, такое как 2x rdp или microsoft rdp в android. Создайте новое подключение к вашему серверу (вы можете использовать любой бесплатный ddns, который вам нравится, если у вас нет статического IP-адреса) и подключитесь к той учетной записи сервера Windows, которую вы использовали ранее.

Эта учетная запись, если она была правильно настроена, будет запускать только ваше приложение и будет показывать только ту новую мини-форму winform, которую вы сделали.

Конечный пользователь сделает простой щелчок и из своего интернет-соединения выполнит простой удаленный рабочий стол, который ограничен только вашим приложением. (Настройка роутера нужна один раз)

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

Я использую это в течение многих лет в мобильных планшетах и ​​POS-системах. Он быстрый, стабильный, безопасный, простой в обслуживании (ничего на стороне клиента), и вы не тратите месяцы на изучение wpf или преобразование xamarin.

person Vernam7    schedule 28.07.2015