Советы по разработке на WinForms, думая о будущей веб-разработке
Мы разрабатываем / поддерживаем корпоративное приложение, которое по историческим причинам и ускорению разработки предназначалось для WinForms.
Теперь мы думаем, что рано или поздно (раньше, чем позже) это приложение должно будет иметь веб-интерфейс.
Размышление о движении "в сеть". Какие самые важные вещи мы должны рассмотреть? Что-то вроде, что-то на параде MVP (или других), теперь определите тип платформы / фреймворка, который вы собираетесь использовать,...
Есть опыт перехода с winforms на web? Любое предложение позаботиться?
Aclaration: В нашем сценарии приложение было бы неплохо СЕЙЧАС быть веб-ориентированным, но мы реалисты. Я согласен, что не все приложения должны быть основаны на веб-технологиях (это основная причина, по которой мы разрабатывали WinForms!). Но иногда требования меняются, и в нашем сценарии мы хотим предложить это приложение как SaaS.
4 ответа
Главное - полностью отделить пользовательский интерфейс от всего остального. Как только вы это сделаете, вы не будете переписывать приложение для его переноса - вы просто создадите веб-интерфейс сверху.
Я работал в компании, которая пережила аналогичную ситуацию с их монолитным приложением 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