Як розробити додатки для планшетного ПК як розробника .NET? [зачинено]


9

Моя компанія має великий досвід у розробці .NET та однієї з наших продуктів у системі ERP. Нещодавно клієнт запитав нас, чи можемо ми надати планшетний інтерфейс до цієї системи, тобто програмне забезпечення, яке дозволяє клієнту переглядати інформацію про товар і створювати замовлення на планшеті.

Звичайно, ми не в захваті від ідеї інвестувати багато часу та грошей у навчання Objective-C, придбання робочих станцій для Mac, виплату гонорарів Apple і т. Д. Саме за цей проект ( можливо, ми зможемо продати додаток до кількох додаткових клієнтів після цього, але ринок дуже малий, оскільки він був би корисний лише для існуючих клієнтів нашої ERP-системи).

Отже, що нам робити? Наскільки я бачу, у нас є такі варіанти:

  • Напишіть " звичайну стару програму для Windows " (WPF) і запустіть її на планшеті Windows 7, наприклад, Samsung Slate або Acer Iconia.

    Недоліки: важкі, дорогі пристрої з коротким часом роботи (порівняно з "справжніми" планшетами).

  • Зачекайте на планшеті на базі ОС Windows 8 ARM і напишіть додаток Metro (WinRT).

    Недоліки: зачекайте принаймні один рік; незрозуміло, чи підтримуватиме Windows 8 ARM встановлення користувацьких додатків B2B, не проходячи через магазин додатків.

  • Використовуйте моно для Android та пишіть .NET додаток для Android.

    Недоліки: ще одна бібліотека інтерфейсу користувача (відмінна від WPF та Silverlight); деякі постачальники забороняють завантажувати додатки.

Наразі варіанти 1 і 3 видаються найбільш реалістичними. Я пропустив явні недоліки чи переваги? Чи є інший варіант, який я ще не розглядав? Ви були в подібній ситуації і (успішно) обрали один конкретний варіант?


2
@Downvoter: Відгуки для вдосконалення питання оцінені ...
Heinzi

11
Ви забули два інші варіанти: 1.) навчання Java та написання програми для Android або 2.) Скажіть ні
Jetti

Щоб отримати поради щодо розробки мобільних пристроїв для розробників .NET, прослухайте цей подкаст: hanselminutes.com/305/… .
Треб

1
@FrustratedWithFormsDesigner Дивіться мою відповідь
ediblecode

1
@Nupul: Ні, у мене немає відповіді, у мене є лише один варіант (написання рідної програми для iPad в Objective-C). Є ще інші варіанти, які можуть бути економічно здійсненними, звідси тут моє запитання. ;-)
Хайнці

Відповіді:


10

JQuery Mobile + Збірка телефонів .

В основному це говорить "використовувати HTML5 та JavaScript для створення свого додатка", як було сказано раніше, але з важливим поворотом.

Сервіс Nitobi Phone Gap Build (зараз належить Adobe) дозволяє розробникам конвертувати програми HTML5 / JavaScript у "рідні" програми (справді гібридні програми), які можна локально розгорнути на пристрій. Я розумію, що в основному те, що відбувається під кришкою, - це упаковка невеликого рідного бінарного файлу, який дзвонить на рідний веб-переглядач і завантажує ваш сайт з файлу: // URL.

Вам не потрібно орієнтуватися на якісь конкретні рамки JavaScript - той самий HTML і JavaScript, який би справді працював у мобільному веб-додатку, буде добре працювати.

Офлайн-підтримка теж не є складною. Завдяки локальній пам’яті браузера, яка підтримується на багатьох мобільних пристроях, ви можете створювати справді потужні офлайн-програми таким чином. Найкраща практика пакетувати свої зовнішні залежності локально, а не використовувати CDN, щоб ваша програма працювала в режимі офлайн.

Такі рамки, як KnockoutJS та BackboneJS , дуже допомагають створювати чітко розроблені програми JavaScript, і вони чудово працюють із сервісом збірки Phone Gap.

Коли пристрій підключено до Інтернету, його можна легко натиснути на оновлення даних ASP.NET/MVC, WebAPI або WCF.

Отримані додатки справді досить непогані і можуть розповсюджуватися на ринках Apple і Android. На тих ринках, побудованих за допомогою Phone Gap Build та інших подібних продуктів, вже існує багато додатків, і 99% людей (включаючи більшість розробників) не знають різниці.

Очевидно, ви не збираєтеся намагатися створити Angry Birds таким чином (хоча, з Canvas, я думаю, ви можете спробувати), це чудово працює з типом програм, про які ви говорите.

Не сприймайте мого слова за це. PhoneGap проводив тури по ланцюгу PodCast, нещодавно був на Hanselminutes , DotNetRocks та Tablet Show . Також про це я писав у недавній публікації блогу .


+1 Я думаю, що це найкращий компроміс для написання програми для рідного планшетного ПК.
Ерік Кінг

Я можу просто спробувати це, щоб отримати додаток чи два з місця ...
SoftwareSavant

13

переглядати інформацію про товар і створювати замовлення

Здається, що це добре відповідає можливостям HTML 5 (і пов'язаних з ними технологій, які зазвичай згадуються на одному диханні). Напишіть багату веб-програму, і ви негайно підтримуєте будь-який пристрій із браузером .


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

3
@Treb - Якоб Нільсен має цікаві думки на цю тему: useit.com/alertbox/mobile-sites-apps.html
jfrankcarr

2
Багато планшетів дозволяють вам "встановити" веб-додаток, так що, здається, він діє як додаток. Тому я б не рахував цього, оскільки HTML5 не схожий на додаток. Це здається мені найкращим варіантом.
RationalGeek

3
Крім того ... це не виключає наявності двох частин: веб-програми та Native програми. HTML5 - це бланкетний варіант ... після створення та експлуатації ви можете створити додатковий додаток для Android / Apple / Metro / Blackberry, якщо бізнес вирішить для цього. Багато сайтів дають вам можливість встановити додаток для свого сайту.
WernerCD

2
@Treb - Можна зробити досить блискучий веб-додаток. Я хоч би вивчив їхні вимоги щодо блиску.
psr

4

Я рекомендую розробити його як веб-додаток MVC. Це дозволить запустити його на більшості будь-яких пристроїв із настільного ПК до смартфона, за умови, що ви його добре спроектували. HTML5 може працювати, але це залежатиме від типів пристроїв / браузерів, які вам потрібно підтримувати. Було б непогано, якщо ви зможете піти з його допомогою. Переконайтеся, що ви архітектували його там, де ви могли в майбутньому адаптувати його частини, щоб вони були підсилювачем WCF до програми Metro.


3

Якщо ви хочете скористатися наявними знаннями .NET, вам слід скористатися підходом до SOA та ввести якомога більше функціональних можливостей у веб-сервіс (SOAP або REST, виберіть те, що вам більше підходить). Таким чином, вам потрібен лише невеликий клієнтський додаток на пристрої, який би викликав лише функціональність веб-служби та відображав результати. Це має бути набагато простіше розробити, ніж повноцінний клієнт, який реалізує логіку бізнесу, незалежно від того, якого клієнта ви виберете.

Він також надає можливість додавати підтримку різних пристроїв пізніше, все, що вам потрібно, це невеликий клієнтський додаток для нового пристрою.

Щоб вибрати пристрій, я бачу два критерії:

  1. Виберіть того, кому подобається ваш поточний клієнт (якщо вони запитають додаток для планшета, вони подумають про це)
  2. Виберіть той, який, швидше за все, буде прийнятий і іншими клієнтами. Це міг би бути iPad або, можливо, Kindle Fire, тому що люди їх уже бачили.

У будь-якому випадку не чекайте пристроїв, яких ще немає на ринку. Це виключає ваш варіант 2 (Windows 8 на планшетах ARM).


Згідно з сьогоднішнім оголошенням, wrt Microsoft Surface, пристрої можуть дуже скоро з’явитися на ринку.
Mamta D

0

Будь-яка програма Windows означає, що ви прив'язані до MS. Крім того, Silverlight та iOS / IE 10 не працюють добре. Перейдіть на HTML 5 та JavaScript з веб-службами та / або JQuery. Інструменти сторонніх виробників, такі як інтерфейс Telerik-Kendo, повинні зробити ваш графічний інтерфейс достатньо прохолодним для LOB App. Dot Net може мати значення лише на стороні сервера.


-1

Цей останній коментар говорить про все насправді: "Dot Net може бути корисним лише на стороні сервера" - можливо, Microsoft повинна була б називати це. Ні? Або .WindowsOnly?

Ви навіть не можете записувати клієнтські програми Windows RT у .Net.

Це правда, що для того, щоб грати в крос-платформну гру, ваша бізнес-логіка та послуги передачі даних, записані в .Net, повинні жити на сервері Windows та відкривати веб-інтерфейс. Найновіший веб-API ASP.Net майже в промисловому масштабі в квітні 2013 року. Це дозволить виставити ваші .Net об’єкти як JSON, щоб JQuery / JS клієнтські програми могли легко інтегруватися.

На стороні клієнта ви не можете використовувати .Net. Вам потрібно записати весь свій код інтерфейсу в HTML / CSS / JQuery та свою логіку, використовуючи JS, можливо, нокаут для прив’язки, орієнтованої на дані.

Для нас .Net розробників, просто малювати наш користувальницький інтерфейс БЕЗ ВИМОГУ ЗАПИСИТИ МАРКУП - це Nirvana розробки програм LOB. Той, хто придумає клієнтську базу .Net, яка працює так само, як VS / .Net / WinForms / C # / VB.Net, буде керувати світом - і НІ - на мою думку, Mono ніде (жодної підтримки сторонніх постачальників компонентів) поблизу VS / .Net / WinForms.


Мені доведеться відповісти на цю відповідь через помилкове твердження "Ви навіть не можете писати програми для клієнтів Windows RT у .Net."
Рамхаунд

Вибачте, я повністю не погоджуюся з вашим твердженням, що ви можете писати .Net програми для Windows RT - де ваш доказ?
TriSys

Я кусаю. Що саме ви маєте на увазі під "клієнтськими програмами", тому що я взяв це щось дуже специфічне рік тому. Тому що я обіцяю вам, що я написав .NET 4.5.1 Windows Store/WinRTзаявки та опублікував їх у магазині. Я використовував C #, якщо вам цікаво і вся програма зберігається на стороні клієнта.
Рамхаунд
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.