У меня также есть настольное приложение, написанное на Windows Forms, среднего размера (пара десятков основных форм, подкрепленных 46 таблицами в базе данных). Я думаю о переписывании пользовательского интерфейса в WPF, но перед тем, как отправиться туда, мне было любопытно, есть ли какие-либо военные истории о таком преобразовании.
Я использую LLBLGen для генерации моих низкоуровневых объектов доступа к данным, и у меня есть уровень бизнес-логики выше этого. Формы привязаны к объектам бизнес-логики, хотя основная форма использует объекты кэширования для минимизации циклических переходов по более распространенным маршрутам навигации. Пользовательский интерфейс никогда не обращается напрямую к базе данных: всегда через пользовательский интерфейс -> бизнес-логика -> низкий уровень -> путь к хранилищу данных.
Одним из элементов управления, который я интенсивно использую, является TreeView, который выступает в качестве наглядного пособия и инструмента навигации на короткие расстояния. Дерево было сильно настроено с иконками, выделением цветов, и это тот элемент управления, который я больше всего волнуюсь при переносе.
Есть ли история, которая может убедить меня пойти дальше и преобразовать (или, наоборот, подождать, пока Microsoft не приблизится к тому, чтобы вытащить коврик из-под Windows Forms)?
РЕДАКТИРОВАТЬ: меня спросили в комментарии, что мотивация для конверсии у меня есть. У меня есть некоторые опасения по поводу проверки будущего: у меня 500 000 строк кода, которые изначально были ASP и VBScript . Со временем мы перенесли эту функциональность на ASP.NET и C #, но только по мере внесения изменений в код. Преимущество в том, что мы минимизировали расходы, недостатком является то, что половина кода остается ASP и VBScript. Меня беспокоит аналогичная ситуация, возникающая с приложениями Windows Forms.
Я беспокоюсь сегодня об исчезновении Windows Forms? Даже не близко к этому ... но приложение переходит с ASP и VBScript на ASP.NET и C #, имеет девятилетнюю историю и, вероятно, не будет заменено в этом десятилетии (вместо этого оно просто будет развиваться). Настольное приложение также является долгосрочным проектом с многолетней историей.