Как разрабатывать бизнес-приложения для планшетов в качестве разработчика .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 кажутся наиболее реалистичными. Я упустил какие-либо очевидные недостатки или преимущества? Есть ли другой вариант, который я еще не рассмотрел? Вы были в подобной ситуации и (успешно) выбрали один конкретный вариант?

Heinzi
источник
2
@Downvoter: Обратная связь для улучшения вопроса приветствуется ...
Хайнци
11
Вы забыли два других варианта: 1.) изучение Java и написание приложения для Android или 2.)
отказ «
Чтобы получить советы по разработке мобильных приложений для разработчиков .NET, прослушайте этот подкаст: hanselminutes.com/305/… .
Треб
1
@FrustratedWithFormsDesigner Посмотри мой ответ
ediblecode
1
@ Nupul: Нет, у меня нет ответа, у меня исключен только один вариант (написание нативного приложения для iPad в Objective-C). Есть еще другие варианты, которые могут быть экономически целесообразными, поэтому мой вопрос здесь. ;-)
Хайнци

Ответы:

10

JQuery Mobile + Phone Gap Build .

По сути, это говорит о том, что «используйте HTML5 и JavaScript для создания своего приложения», как было сказано ранее, но с одной важной особенностью.

Служба Phone Gap Build от Nitobi (в настоящее время принадлежит 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 (и связанные с ними технологии обычно упоминаются на одном дыхании). Напишите богатое веб-приложение, и вы сразу же поддержите любое устройство с браузером .

AakashM
источник
2
С технической точки зрения вы правы, но по моему опыту люди, которые хотят покупать планшеты, ожидают чего-то более блестящего, чем веб-приложение.
Треб
3
@Treb - У Якоба Нильсена есть несколько интересных мыслей на эту тему: useit.com/alertbox/mobile-sites-apps.html
jfrankcarr
2
Многие планшеты позволяют вам «установить» веб-приложение, чтобы оно работало как приложение. Так что я бы не стал считать это, потому что HTML5 не выглядит как приложение. Это кажется лучшим вариантом для меня.
RationalGeek
3
Также ... это не исключает наличия двух частей: веб-приложения и нативного приложения. HTML5 - это общий вариант ... после того, как он создан и работает, вы можете создать дополнительное приложение для Android / Apple / Metro / Blackberry, если бизнес выберет его. Многие сайты дают вам возможность установить приложение для своего сайта.
WernerCD
2
@Treb - можно сделать довольно блестящее веб-приложение. По крайней мере, я бы посмотрел на их требования, связанные с блеском.
PSR
4

Я бы рекомендовал разработать его как веб-приложение MVC. Это позволит вам запускать его практически на любом устройстве, от настольного компьютера до смартфона, при условии, что вы хорошо его спроектируете. HTML5 может работать, но это будет зависеть от типов устройств / браузеров, которые вам необходимо поддерживать. Было бы неплохо, если бы вы могли обойтись без него. Убедитесь, что вы спроектировали его так, чтобы в будущем его части можно было использовать в качестве бэкенда WCF для приложения Metro.

jfrankcarr
источник
3

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

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

Чтобы выбрать устройство, я вижу два критерия:

  1. Выберите тот, который предпочитает ваш нынешний клиент (если они попросят приложение для планшета, они об этом подумают)
  2. Выберите тот, который, скорее всего, будет принят другими клиентами. Это может быть iPad или Kindle Fire, потому что люди уже видели это.

В любом случае, не ждите устройств, которых еще нет на рынке. Это исключило бы ваш вариант 2 (Windows 8 на планшетах ARM).

треб
источник
С сегодняшнего анонса, относительно Microsoft Surface, устройства могут очень скоро появиться на рынке.
Мамта D
0

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

Без шансов
источник
-1

В последнем комментарии действительно все сказано: «Dot Net может быть полезен только на стороне сервера» - возможно, Microsoft следовало бы назвать это. Не так ли? Или .WindowsOnly?

Вы даже не можете писать клиентские приложения Windows RT в .Net.

Это правда, что для того, чтобы играть в кроссплатформенную игру, ваша бизнес-логика и службы данных, написанные на .Net, должны жить на сервере Windows и предоставлять дружественный для Web API. Последний веб-API ASP.Net стал практически промышленным в апреле 2013 года. Это позволит вам представить ваши объекты .Net в виде JSON, чтобы легко интегрировать клиентские приложения JQuery / JS.

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

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

TriSys
источник
Я должен опровергнуть этот ответ из-за ложного утверждения «Вы даже не можете писать клиентские приложения Windows RT в .Net».
Ramhound
Извините, я полностью не согласен с вашим утверждением, что вы можете писать .Net приложения для Windows RT - где ваши доказательства?
TriSys
Я буду кусать Что вы подразумеваете именно под «клиентскими приложениями», потому что год назад у меня было нечто очень специфичное. Потому что обещаю, что написал .NET 4.5.1 Windows Store/WinRTзаявления и опубликовал их в магазине. Я использовал C #, если вам интересно, и все приложение хранится на стороне клиента.
Ramhound