Советы по разработке на WinForms, думая о будущей веб-разработке

Мы разрабатываем / поддерживаем корпоративное приложение, которое по историческим причинам и ускорению разработки предназначалось для WinForms.

Теперь мы думаем, что рано или поздно (раньше, чем позже) это приложение должно будет иметь веб-интерфейс.

Размышление о движении "в сеть". Какие самые важные вещи мы должны рассмотреть? Что-то вроде, что-то на параде MVP (или других), теперь определите тип платформы / фреймворка, который вы собираетесь использовать,...

Есть опыт перехода с winforms на web? Любое предложение позаботиться?

Aclaration: В нашем сценарии приложение было бы неплохо СЕЙЧАС быть веб-ориентированным, но мы реалисты. Я согласен, что не все приложения должны быть основаны на веб-технологиях (это основная причина, по которой мы разрабатывали WinForms!). Но иногда требования меняются, и в нашем сценарии мы хотим предложить это приложение как SaaS.

4 ответа

Решение

Главное - полностью отделить пользовательский интерфейс от всего остального. Как только вы это сделаете, вы не будете переписывать приложение для его переноса - вы просто создадите веб-интерфейс сверху.

NESBAWA (не все должно быть веб-приложением).

Я работал в компании, которая пережила аналогичную ситуацию с их монолитным приложением WinForms. Исходя из этого опыта, следует учитывать две вещи:

1] Отсоединить всю логику доступа к данным (DAL) от существующего пользовательского интерфейса WinForms. Вы можете начать этот процесс до начала любой веб-разработки.

Мы провели этот рефакторинг в серии из 6 еженедельных спринтов. Некоторые части приложения было легко изменить - другие были сделаны из совершенно адского спагетти-кода, который переплетал DAL, встроенный код SQL и пользовательский интерфейс в коде WinForm.

Если у вас есть это разделение, поддержка двух разных интерфейсов станет проще.

2] Игнорировать ASP.Net MVC и целевые веб-формы. WebForms был разработан, чтобы сделать написание веб-приложения ближе к опыту написания традиционного кода пользовательского интерфейса WinForms (управляемый событиями, основанный на компонентах).

Вам необходимо понять жизненный цикл страницы, и есть несколько концептуальных ошибок, связанных с динамически генерируемыми элементами управления, которые, как правило, приводят в замешательство многих новичков, но в остальном это самый безболезненный способ заставить команду разработчиков WinForms заниматься веб-вещанием. MVC может быть очень популярным в веб-кругах прямо сейчас, и это обеспечивает лучшее разделение интересов (хотя вы можете достичь аналогичных результатов с WebForms с небольшим вниманием и сильным лидерством в дизайне) - но это требует более высокой степени знаний. С MVC вы работаете ближе к металлу цикла HTTP запрос / ответ. WebForms абстрагирует много всего для вас.

Желаем удачи в ваших начинаниях!

Джон прав. Однако слышали ли вы о подходе "Пустой клиент"? Это довольно новый подход к разработке приложений.NET WinForms, которые также могут запускаться как веб-приложения в простых браузерах. Такой подход позволит вам разработать приложение WInForms и разместить его в Интернете, если и когда вы захотите, без дополнительной разработки или корректировки. Одна структура, которая делает это, Visual WebGui

Другие вопросы по тегам