Советы по разработке на WinForms, думая о будущей веб-разработке - PullRequest
2 голосов
/ 09 июля 2009

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

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

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

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

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

Ответы [ 4 ]

4 голосов
/ 09 июля 2009

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

1 голос
/ 26 ноября 2009

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

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

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

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

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

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

Удачи в ваших начинаниях!

1 голос
/ 09 июля 2009

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

0 голосов
/ 26 ноября 2009

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

...