ASP.Net або WPF (C #)? [зачинено]


31

Наша команда з цього приводу розділена, і я хотів отримати кілька сторонніх думок.

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

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

Деталі програми:

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

Пункти для розгляду (можливо, спочатку не в деяких випадках, а в майбутніх випусках):

  • Кімната для додаткових компонентів, які потрібно додати після первинного випуску (їх дуже багато ... можливо, тут працювати, ніж початкова програма)
  • Навігація на клавіатурі
  • Виконання обов'язкове
  • Швидкість виробництва до початкової версії
  • Низькі накладні витрати на обслуговування
  • Майбутня підтримка
  • Інтеграція програмного забезпечення та сканера

Наші розробники:

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

Середовище:

  • Загальні користувачі перебувають на сервері Windows 2003 за допомогою сервісів терміналів. Вони підключаються за допомогою тонких клієнтів WYSE через RDP-з'єднання. Персонал адміністратора має власні ПК із XP або новішою версією. Користувачам дозволяється вказувати власну роздільну здатність, хоча вони обмежуються використанням IE в якості веб-браузера.
  • Інші локації підключаються до нашої мережі через MPLS-з'єднання

Виходячи з цього, що б ви вибрали і чому?


Я люблю всі голоси, але дуже хотів би почути ще кілька думок з цього приводу :)
Рейчел

3
що ви робите , що вимагає 100 екранів спочатку ?
Стівен А. Лоу

Ця оцінка включає безліч часткових екранів. Наприклад, головний екран розбивається на купу "шматків", які можна додавати / вилучати / переміщувати / змінювати розмір відповідно до потреб користувача. У кожного є свій набір даних, власний вид редагування та власний набір дій, які можна виконати. Я вважаю їх окремими, а не одним екраном, оскільки кожен дуже різний.
Рейчел

Використовуйте .NET MVC 3, JQuery та HTML5
Олівер Піктон

1
Привіт @kmote, ми закінчили роботу з WPF і були дуже задоволені рішенням. Це дозволило отримати набагато більшу гнучкість у створенні інтерфейсу користувача, і я виявив, що досить швидко побудувати порівняно з веб-рішенням. На жаль, проект був скасований через рік через інші пріоритети, але якби мені знову запропонували той самий вибір, я б прийняв те саме рішення.
Рейчел

Відповіді:


17

Мені це, безумовно, звучить як додаток WPF, в якому багато взаємодії з користувачем і потенційно взаємодіють з обладнанням. Ви можете доставити додаток через "Click-Once", тому розгортання здебільшого не є проблемою. Ваш додаток WPF може отримати доступ до послуги WCF та передавати дані у вигляді двійкових даних, тому результативність буде чудовою. Я б почав читати WPF і ознайомитися з ним якомога швидше.


+1 Також при ВСІХ цих екранах ви, ймовірно, захочете вбудувати якомога більше повторного використання у свою програму (як код, так і графічний інтерфейс)
Джон Онстотт

+1 Я думаю, що потрібна "інтеграція програмного забезпечення / сканера", я думаю, що єдиний спосіб - це WPF. Або, можливо, можна використовувати Silverlight
Jiew Meng

15

Лунатична бахрома відповідає: і те, і інше. Отримайте правильний рівень сервісу, легко мати товстого клієнта, який виконує все (WPF), і швидкого веб-клієнта робити найпоширеніші речі (ASP.NET). Залишає двері відкритими для мобільного клієнта тощо вниз по дорозі.


Це те, що ми маємо робити .... Клієнтська програма WPF для більшості застосувань із легкою веб-версією для звітів або обмеженого доступу.
Рейчел

2
+1 до цього, напишіть кишки без презентації будь-якою. тощо).
heretik

Спочатку користувачі можуть вважати ASP.NET "досить хорошим", особливо якщо це означає отримати швидше більше частин програми.
JeffO

8

Якщо у вас є лише один програміст, який вивчає WPF, і ви розглядаєте можливість перемогти вашу команду на WPF, то чому б замість цього не використовувати Silverlight? Ви отримуєте багато переваг WPF, але все ще зберігаєте можливість залишати свій проект як веб-додаток. Оскільки ви дивитесь на великий модульований проект, було б доцільно використовувати PRISM з WPF або Silverlight для спрощення MVVM.

Нещодавно моя команда зробила вибір використовувати Silverlight через asp.net. Це був фантастичний вибір для нас. Спочатку у нас був лише один розробник, який знав будь-яке сріблясте світло. Тоді ми всі взяли тижневий тренувальний клас, який був здебільшого марним, але принаймні намочив ноги. Врешті-решт нам довелося найняти двох підрядників, які допоможуть нам створити основну частину нашої системи інтерфейсу. Більшість нашої команди досі не впевнена у своїх навичках сріблястого світла. Я сам, початковий член команди зі знанням сріблястого світла, і два підрядники - це ті, хто займає основну частину розвитку СЛ. Після цього у нас є два виділені бек-енд-члени. Я б сказав, що нам знадобилося приблизно через два місяці після прийняття рішення про переїзд до Silverlight, що ми дійсно мали щось конкретне. Однак, Тепер у нас є чудовий продукт, який дуже схожий на клієнтську програму, яка працює у веб-браузері і не встановлюється на будь-якій машині локально. Загалом на розробку було менше року, і ми майже готові до випуску або першого кандидата.

Деякі речі, які слід врахувати:

  • WPF або Silverlight, що б ви не вибрали, буде достатньо, щоб ваші розробники мали вивчити.

  • Silverlight може вичерпати браузер, якщо це буде потрібно. Якщо ви це зробите, налаштувати його досить просто, так що якщо ви коли-небудь виведете нову версію, то встановлена ​​програма з SL-браузера автоматично оновиться сама.

  • Silverlight не включає всі елементи управління, якими володіє WPF.

Моє остаточне зауваження полягає в тому, що якщо ви хочете вимкнути код якомога швидше, то його досить очевидно, вам слід йти з ASP.NET. Моя основна проблема з ASP полягає в тому, що якщо ви не дисциплінуєте свою команду, проект ASP.NET легко заплутатися і заплутатися. Якщо ви думаєте, що вам вдасться впоратися з початковими витратами на швидкість досягнення технологій, то Silverlight або WPF дадуть вам безліч чудових можливостей.


Ми в дуже схожій ситуації, і мені було цікаво почути вашу історію, дякую. Я буду розглядати Silverlight, хоча до цих пір я використовував лише WPF. Якщо ми підемо з WPF, ми планували провести наш розділ звітності в Silverlight, тому я планував вивчити це в підсумку
Рейчел

Я перебуваю в середині перетворення (читання перезаписів) програми ASP.NET в Silverlight - в основному тому, що ASP.NET не відповідає масштабам того, що ми хочемо.
ChrisF

1
Просто FYI: пам’ятайте, що Silverlight не буде головним продуктом MS, а в деяких випадках люди кажуть, що це може бути відключено. Я погоджуюся, що було б добре врахувати, просто додайте цю інформацію до свого списку можливих мінусів.
Пейдж Уотсон

1
Я б настійно розглядав WPF над Silverlight для цього типу додатків. WPF може бути легко розгорнутий як XBAP (додаток для браузера xaml), як правило, лише пара змін коду до файлу конфігурації. У WPF є все, що Silverlight робить і більше, плюс WPF отримує набагато більшу підтримку. Недоліком є ​​те, що, хоча Silverlight потенційно може бути розгорнутий на більшості ОС (навіть Linux з проектом Moonlight), WPF вимагає .Net для клієнта, тому його суворо Windows.
Морган Херлокер

2
Я не знаю, чи Silverlight буде припинено, але щось пов’язане - це стаття Mashable, що Microsoft переходить з Silverlight у HTML5 . Особисто я серйозно
подумаю про

7

Ця частина стосується:

Загальні користувачі перебувають на сервері Windows 2003 за допомогою сервісів терміналів. Вони підключаються за допомогою тонких клієнтів WYSE через RDP-з'єднання. Персонал адміністратора має власні ПК із XP або новішою версією. Користувачам дозволяється вказувати власну роздільну здатність, хоча вони обмежуються використанням IE в якості веб-браузера.

WPF не чудовий для віддаленого робочого / тонкого підключення клієнта Анімації не будуть гладкими, і будь-які складні зображення (навіть градієнти) сповільнюватимуть відповідь інтерфейсу користувача до сканування. Співробітники адміністраторів, що мають типові машини для ретро XP, також, швидше за все, матимуть проблеми з роботою зі складними програмами WPF (через невеликі обсяги оперативної пам’яті та погані GPU).

Якщо ви відправляєтеся по шляху WPF для отримання багатої графіки, будьте готові до кращих результатів роботи, коли дізнаєтесь, що цільовим машинам вже десять років. Дотримуйтесь статичних екранів і використовуйте .NET 4.0, оскільки продуктивність WPF значно покращилася з 3.5.


Дякую ... це насправді одна велика стурбованість для мене, хоча поки що це виглядає так, що ми можемо масштабувати графіку, якщо користувач перебуває на RDP-підключенні і тести працюють нормально.
Рейчел

2

Технічно я вважаю, що комбінація WPF / WCF є кращим рішенням.

Однак я не переконаний, що ваш існуючий програміст WPF справді має досвід цього проекту. WPF - це досить зрушення в програмуванні мисленнєвих процесів від програмування Winform, тому вам потрібно буде довго і наполегливо думати, чи справді у вас є достатня кількість навичок у команді, щоб пройти цей маршрут.


1
+1 "Навчання за пару місяців" може означати що завгодно - будьте готові до крутої кривої навчання.
Кірк Бродхерст

1

Цікаво. Це звучить разюче знайоме додатку, яке ми нещодавно запустили в моїй компанії (інтеграція поштових телефонів та сканерів і все).

Ми вибрали сріблястий світло з акцентом на SOA, щоб згодом, якщо виникне потреба, можна було застосувати додаток WPF.

Кімната для додаткових компонентів, які потрібно додати після первинного випуску (їх дуже багато ... можливо, тут працювати, ніж початкова програма)

Ми використовуємо MEF на рівні обслуговування та будуємо точки розширення (інтерфейси плагінів, що описують певні точки, де ми плануємо розширення чи інтеграцію з іншими системами)

Навігація на клавіатурі

Не проблема.

Виконання обов'язкове

Який виступ? Сприйнята продуктивність (спритність) чи продуктивність хрускоту чисел? Останнє може бути проблемою з додатком Web / silverlight. Для перших наш додаток проходить безліч записів, як ваш, але ми можемо передбачити їх і попередньо отримати записи, коли користувачі працюють над поточними. "Час завантаження" дорівнює нулю для цього розділу нашої програми.

Швидкість виробництва до початкової версії

Залежить від набору навичок. Але реально, кожен завжди хоче потрапити на ринок якомога швидше, тому це не аргумент.

Низькі накладні витрати на обслуговування

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

Майбутня підтримка

Я не впевнений, що це означає.

Інтеграція програмного забезпечення та сканера

Silverlight 4 дозволяє зараз отримувати доступ до веб-камери / мікрофона (ми сподіваємося зробити міжприкладні відеоконференції, а також інтеграцію ковтків), тому, якщо ви використовуєте телефонний сервер, можете написати його самостійно. Я не знаю жодних існуючих, але це може допомогти.

В іншому випадку, можливо, вам доведеться зробити щось некрасиве хакерство (більше не посилайтесь на статті / статті, вибачте) або у вас немає іншого вибору, крім як програма WPF, яка може взаємодіяти з файловою системою. SL4 може вийти з браузера, але він може отримати доступ лише до певних частин файлової системи. Жоден з них, ймовірно, не стане частинами, які вам потрібні для взаємодії з поштовим телефоном.

Ви маєте на увазі сканер документів? Я не впевнений у цьому. Ми використовуємо сканери ручного / штрих-коду, і вони працюють, як і будь-який інший пристрій введення, і не є проблемою.


1

чи потрібен вам дуже чуйний додаток, який люди можуть використовувати цілий день? використовувати WPF; вам буде легше повторно використовувати компоненти GUI в WPF через ASP / MVC (IMHO)

так, jquery та ін. - чудові, сріблястий світ класний, але настільні додатки все ще ефективніші

для заднього боку, WCF чудово


0

Мені доведеться рекомендувати вам використовувати WCF для свого сервісного рівня через масштабованість та безпеку. Для шару презентації можна використовувати або Silverlight, або ASP.NET, Silverlight схожий на Flash, але важко зрозуміти та мати високу криву навчання спочатку, переважно під час роботи з даними. ASP.NET простіший у використанні, але для його ефективного використання вам знадобиться багато налаштувань і javascript.


1
План полягає в тому, щоб мати рівень обслуговування WCF незалежно від того, що ми вирішимо зробити для шару інтерфейсу користувача. Ми намагаємось вирішити, чи хочемо ми WPF / Desktop або ASP / Web для клієнтської програми. Навіть якщо ми будемо користуватися настільним додатком, є велика ймовірність, що ми матимемо веб-портал для доступу до підмножини елементів, таких як звіти.
Рейчел
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.