Выбираете C # с WPF для долгосрочного проекта? - PullRequest
1 голос
/ 25 мая 2009

Я участвую в проекте, где команда разработчиков строит очень долгосрочный инфраструктурный проект, чтобы заменить существующую 10-летнюю систему. Под «очень долгим сроком» я подразумеваю, что он должен работать, поддерживаться и поддерживаться в течение как минимум 10 лет в будущем с момента выпуска. Принимая во внимание ~ 2 года разработки, это означает, что на данном этапе мы должны выбрать технологию / язык / структуру, которые будут работать как минимум 12 лет. У нас есть полный контроль над компьютерами, на которых выполняется проект, их операционными системами и т. Д. Я был разработчиком 10-летней системы, подлежащей замене, и помогаю команде правильно построить новую.

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

В проекте уже было сделано два варианта, которые я не осуждаю и не пытаюсь изменить:

  1. Это будет настольное приложение
  2. Будет разработан в C #

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

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

Одна вещь, которая явно приходит на ум, - это полагаться на Microsoft WPF. Кажется, это «будущее» разработки пользовательского интерфейса, однако меня пугает, когда я думаю об этом в долгосрочной перспективе. Моя главная проблема заключается в том, что рынок не примет это, что через 3 года Microsoft прекратит это, и что через 6 лет я не смогу получить надлежащую поддержку для него.

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

Буду признателен за мысли о том, является ли выбор WPF правильным вызовом с учетом вышеуказанного контекста (а если нет - какова правильная «сложная структура пользовательского интерфейса» для такого долгосрочного проекта настольного приложения с использованием C #?).

Спасибо (и простите за длинный вопрос)

Ответы [ 4 ]

7 голосов
/ 25 мая 2009

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

7 голосов
/ 25 мая 2009

Ультра-долгосрочные? 10 лет? Кобол все еще используется!

Шутки в сторону, я считаю, что WPF - ваш лучший выбор. За последние несколько лет Microsoft вложила значительные средства в WPF и XAML, и использование одной и той же базовой инфраструктуры в Silverlight (которая действительно важна для Microsoft) является сильной стороной для того, чтобы придерживаться этого в течение достаточно времени. Я не думаю, что WPF будет выброшен в ближайшее время.

2 голосов
/ 25 мая 2009
  1. Smart Client Contrib
  2. Призма

Может помочь, если вы еще не посмотрели на них.

1 голос
/ 25 мая 2009

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...