ASP.Net или WPF (С#)?

Наша команда делится на это, и я хотел бы получить мнения сторонних сторон.

Мы создаем приложение и не можем решить, хотим ли мы использовать настольное приложение .Net WPF Desktop с сервером WCF или веб-приложение ASP.Net с помощью jQuery. Я думал, что задаю здесь вопрос, с некоторыми спецификациями, и посмотрим, какие плюсы и минусы будут использовать обе стороны. У меня есть собственный фаворит и чувствую, что я предвзятый.

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

Сведения о приложении:

  • Я оцениваю около 100 различных экранов для начальной версии, с планами добавления большого количества дополнительных экранов позже после первоначальной версии.
  • Мы хотим использовать двустороннюю связь для систем напоминаний и событий
  • В настоящее время необходимо поддерживать около 100 пользователей, хотя нам сказали, что они позволят увеличить до 500 пользователей.
  • У нас есть несколько местоположений

Элементы, которые следует учитывать (возможно, не изначально в некоторых случаях, а в будущих выпусках):

  • Комната для дополнительных компонентов, которые будут добавлены после первоначального выпуска (их много... возможно, работает здесь, чем исходное приложение)
  • Навигация по клавиатуре
  • Производительность - обязательная
  • Скорость производства до начальной версии
  • Низкие затраты на обслуживание
  • Будущая поддержка
  • Интеграция софтфонов/сканеров

Наши разработчики:

  • У нас есть 1 программист, который изучал WPF последние несколько месяцев и был тем, кто предложил использовать WPF для этого.
  • У нас есть 2-й программист, который знаком с ASP.Net и кто может помочь в этом проекте в будущем, хотя он не будет работать над этим до первого релиза, так как его время будет потрачено на поддержание нашего текущего программного обеспечения.
  • Есть я, кто работал с обоими, и мне комфортно в
  • У нас есть внешняя компания, занимающаяся управлением проектами, и они являются компанией ASP.Net.
  • Мы планируем нанять 1-2 других, однако нам нужно знать, в каком направлении мы будем двигаться первым

Окружающая среда:

  • Общие пользователи находятся на сервере Windows 2003 с службами терминалов. Они подключаются с использованием тонких клиентов WYSE по RDP-соединению. У администратора есть свои ПК с XP или выше. Пользователям разрешено указывать собственное разрешение, хотя они ограничены использованием IE в качестве веб-браузера.
  • Другие местоположения подключаются к нашей сети через соединение MPLS.

Основываясь на этом, что бы вы выбрали и почему?

Мне особенно интересно услышать от разработчиков, у которых есть опыт работы с ASP.Net и WPf.

Ответ 1

Причины выбора WPF:

  • Намного быстрее и проще, чем ASP.NET и jQuery
  • Намного проще реализовать быструю инкрементную фоновую загрузку данных.
  • Намного проще реализовать кэширование на стороне клиента часто используемых данных (важно для удаленных офисов)
  • Более эффективная передача данных с сервера (может использовать расширенные функции WCF недоступны для веб-браузера)
  • Навигация на клавиатуре лучше, поскольку вы можете легко определить ярлыки и т.д., а не ограничиваться браузером
  • Накладные расходы на обслуживание намного лучше с использованием шаблона MVVM
  • Интеграция софтфона простая

Причины выбора ASP.NET и jQuery:

  • Нет, что я вижу

В вашем сценарии я бы определенно выбрал WPF.

Ответ 2

Почему бы не рассмотреть гибридное решение - Silverlight

С Silverlight вы получаете большую часть доброты и полноты использования WPF (с почти точно такими же XAML и кодом), плюс вы получаете характеристики развертывания ASP.NET

Многие люди считают Silverlight следующим шагом после ASP.NET/AJAX, и он определенно предоставит все преимущества WPF, относящиеся к вашему сценарию.

Ответ 3

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

Что касается разработки, я бы взял требования и выложил функциональность бэкэнд. Я бы фактически реализовал бэкэнд в WCF, независимо от клиентской технологии - таким образом, вы могли бы использовать лучшее из обоих миров, если это необходимо (например, для интеграции с телефоном вы могли бы написать автономное приложение WPF). ASP.NET с jQuery может легко использовать службы WCF (JSON или XML-версию) вместе с настольным клиентом.

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

Ответ 4

WPF - это путь, без сомнения. Я согласен со всем, что сказал @Ray Burns.

Потому что:

  • Вы получите более богатое, гладкое и быстрое приложение.
  • Будет проще построить 1.
  • Интеграция софтфона/сканера (например, аппаратное обеспечение) потребует использования плагинов для браузера и т.д., и это может быть кошмар с приложением на основе браузера.
  • Навигация по клавиатуре по-прежнему лучше с родными приложениями.
  • Поддержка IME проще с приложениями WPF.

Определенно использовать WCF для обеспечения бэкэнд через платформу Entity Framework, см. Структуру Entity в многоуровневых архитектурах. Вы можете лучше интегрироваться с бэкэнд в родном приложении, потому что его можно назвать inline - нет необходимости в callbacks или ajax. Я построил компоненты для WPF, которые связаны через EF с бизнес-логикой, чтобы обеспечить осведомленные элементы управления для простых вещей, таких как проверка. Это потрясающе полезно оставить поле имени клиента на форме, и оно просто работает.

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

При создании приложения WPF вы будете писать на одном языке (например, С#) + разметка (XAML). При создании asp.net вы получаете два языка + разметку, так как вам всегда нужно закодировать некоторый Javascript.

Итак, исходя из ваших требований, это будет WPF/WCF (EF). Веб-приложение будет намного более трудным, сложнее и не будет таким приятным.

Около 12 месяцев назад мне посчастливилось получить бесплатную руку для выбора технологии для нового приложения. Я потратил почти месяц на оценку всех вариантов и пришел к заключению , что это должны быть С#, WPF, Entity Framework. После написания приложения я могу подтвердить, что это был правильный выбор...


1. Это будет еще проще, даже если ваши программисты должны сначала изучить WPF. WPF намного лучше продумана, великолепна и прекрасна. очень симпатичный. Он просто работает правильно.

Ответ 5

Привет
Я думаю, что The question at issue is Windows-application or Web application (WPF для win-app VS asp для веб-приложения), Какой из них лучше для вас и вашего проекта?. В этом случае ваша платформа является сетью, и ваша программа должна работать в сети. поэтому для этого использования веб-приложение лучше, но есть много существующих точек, которые могут принимать решения жестко. Сетевая платформа имеет большую проблему (по моему личному опыту)

Работа с веб-приложением asp.net почти сложна. вы должны попытаться обработать много вещей для веб-приложения (время запроса, управление сеансом, даже плохой интерфейс пользователя по сравнению с WPF, j-query и т.д.). Помните, что это не так просто, как простой веб-сайт.

Но win-приложение хорошо подходит для сети с этим условием: "локальная сеть" (mpls почти такая же). Абсолютно развивающееся win-приложение проще, чем веб-приложение ( "По крайней мере, количество пользователей, экспертов в разработке сетевых программ" ). для этого случая WPF имеет много хороших вещей (UI, команда и т.д.) также имеет много сложной точки (например, многопоточность и отсутствие экспертного разработчика в этой области). I'm rather with wpf than asp but decisions is yours

И мел указывает на хорошую вещь Silverlight, но если вы хотите использовать это, вы должны посмотреть на структуру призмы: http://compositewpf.codeplex.com/
Недавно я разработал проект отдельно с asp и silverlight (призмой). разработка версии с серебристым светом слишком сложна и занимает больше времени, чем версия asp.net but at the end SL-ver have great look nothing else!

Ожоги указывают на хорошие проблемы с wpf. также рассмотрите статью Артемия. ваши условия окружающей среды одинаковы для обоих из них. WPF/ASP может работать со сканером и софт-телефоном cuz the base of both is on C# and .net library
Наконец, когда бы вы ни принимали решения, вы должны нанять продвинутого разработчика, по крайней мере, разработать одно бизнес-приложение для сетевой платформы.

Ответ 6

Является ли ваше приложение настольным или веб-приложением.

Лучше всего использовать wpf для рабочего стола. Если веб-сайт asp.net лучше всего.

Не загружайте свою разработку с помощью своего быстрого сценария. Это никогда не работает хорошо и приводит к небрежному развертыванию. Потратьте время, покройте все этапы (бизнес-требования, дизайн системы, дизайн программы, код, ТЕСТ и ТЕСТ, еще раз, развертывание)

Ответ 7

Некоторые моменты, которые нужно сделать для ASP.NET:

Пул разработчиков ASP.NET намного больше, чем пул разработчиков WPF. Это означает, что вы, вероятно, можете найти квалифицированных разработчиков ASP.NET.

ASP.NET, вероятно, больше доказательств в будущем, шансы WPF получить большие изменения и трудно переносить на более поздние версии, вероятно, больше. Также имейте в виду, что фокус MS, похоже, находится на Silverlight, поэтому может произойти консолидация по дороге, которая делает WPF устаревшим.

Более зрелая экосистемная система ASP.NET делает все возможное для решения более сложных задач.

С несколькими местоположениями вы можете пропустить несколько слоев и перейти непосредственно на веб-сайт?