Перемещение большого приложения vb6 в Интернет или winforms. Вам решать! - PullRequest
2 голосов
/ 28 февраля 2009

Я работаю над переносом большого приложения vb6 на .NET. Текущее приложение представляет собой настольное приложение, которое взаимодействует с набором локальных баз данных доступа. В приложении около 200 форм и около 100 таблиц. Экраны в основном сложные. В большинстве из них отображаются отношения мастер-детали, множество строк во встроенной электронной таблице и динамически сгенерированные элементы управления редактированием.

Они перенесут его в .NET. Я не уверен, что они захотят использовать веб-интерфейс или winforms. Мне кажется, что приложение лучше подходит для winforms. К счастью, базы данных доступа будут заменены сервером SQL независимо от выбора.

Мои причины для winforms:

  • Richer UI.
  • Кэширование клиента
  • Ускоренное развитие. Winforms является продуктивным для меня, хотя ASP.NET световых лет более продуктивным, чем классический ASP. Я бы все равно предпочел работать в winforms.
  • Может отображать больше данных и тратить меньше времени на управление состоянием.

Я планирую разбить бизнес / уровень данных на отдельную библиотеку. Бизнес-объекты в библиотеке смогут использоваться либо в Winforms, либо в веб-приложении.

Я думаю, что если мы сначала портируем на winforms и четко разделим пользовательский интерфейс и бизнес-логику, то позже я смогу повторно использовать бизнес-логику в веб-версии. Учитывая, что уровень бизнес / данных находится в отдельной библиотеке без зависимостей пользовательского интерфейса.

В конце концов, это не мое решение, но я хотел бы услышать ваш опыт переноса больших приложений Windows на asp.net.

Каким был ваш опыт переноса большого настольного приложения на asp.net? Как бы вы подошли к такому проекту? Вы бы предпочли портировать это приложение на winforms или asp.net? Почему?

Спасибо! Стив

Ответы [ 5 ]

3 голосов
/ 28 февраля 2009

Одним из основных преимуществ переноса на новое веб-приложение ASP.Net будет то, что у вас будет гораздо больше возможностей для его очистки.

При переходе к winforms будет большой соблазн и необходимость просто "перенести экран на экран", а если вы зайдете в Интернет, у вас будет возможность провести рефакторинг и улучшить его на более фундаментальном уровне.

Моя компания в настоящее время переносит довольно большое устаревшее приложение VB6 / Access на ASP.Net, и с помощью AJAX (а теперь и Silverlight) можно получить действительно высокий уровень визуального качества и сложности пользовательского интерфейса в Интернете в наши дни. , Существуют также очевидные преимущества с точки зрения доступа пользователей и развертывания.

Что касается подхода к проекту, я добился успеха, используя итеративный подход - построение тонкого среза (реализация одной функции) для проверки архитектуры, а затем добавление функций на основе приоритета и сложности.

1 голос
/ 28 февраля 2009

Я бы посоветовал вам сделать свой порт поэтапно, чтобы облегчить переход. Первым этапом будет перенос с рабочего стола VB6 на рабочий стол .NET (формы win).

Затем на втором этапе, если это все еще необходимо, вы перемещаете весь или часть рабочего стола .NET в графический интерфейс ASP.NET.

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

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

Например, у вас могут быть все более простые экраны, представленные на веб-сайте ASP.NET, с вспомогательным приложением WindowsForms, содержащим более сложные экраны, которые пользователи могут загружать по мере необходимости. Важно то, что оба из них будут использовать одни и те же библиотеки бизнес-логики, в основном это просто разные интерфейсы для одного и того же приложения.

ASP.NET (или веб-разработка в целом) требует совершенно другого мышления разработчика при работе с состоянием, кросс-браузер, html / css и т. Д.

Недавно я работал над портом / переносом большого настольного приложения Delphi в .NET. Цель состояла в том, чтобы перейти на ASP.NET, однако это полностью упало, потому что существующая команда имела ограниченный опыт веб-разработки и пыталась просто повторно внедрить приложение dektop с использованием ASP.NET. Я бы сказал, что это гораздо больший риск по сравнению с повторным созданием экранов в Windows Forms, по крайней мере конечный результат будет пригодным для использования и предоставит конечным пользователям некоторую ценность.

Хотя Ajax и jQuery значительно улучшили богатство веб-интерфейсов, похоже, что в вашем существующем приложении есть такие области, как представление данных в виде электронных таблиц, которые было бы проще эффективно реализовать в настольном приложении.

Таким образом, «идеальным» является перемещение бизнес-логики и правил в .NET таким образом, чтобы затем можно было просто «подключить» пользовательский интерфейс на более позднем этапе. Это может быть намного легче сказать, чем сделать, но это цель, к которой я обычно стремлюсь.

0 голосов
/ 28 марта 2009

Если вы действительно хотите сойти с ума и не возражаете против использования новейших технологий, взгляните на ASP.NET и Silverlight 3. Глядя на видео Mix 09 , есть несколько замечательных примеров, которые справляются с этим.

Кроме того, приложение Silverlight может быть запущено из браузера, что обеспечивает возможность работы на рабочем столе, но с преимуществами обновления при каждом обновлении кода и т. Д. И я лично считаю, что приложения типа Windows ( Silverlight) лучше подходит для ввода данных, чем веб-приложения (хотя использование Ajax действительно помогает)

0 голосов
/ 28 февраля 2009

Во-первых, Winforms мертв . Почему кто-то запускает новую настольную программу с WinForms, мне неизвестно, когда WPF существует уже почти два года. Зачем переходить вашего клиента с одной технологии (VB6), которая очень, очень устарела, на другую, которая очень скоро устареет? Пожалуйста, не поймите это неправильно, но если вам не нужно поддерживать версии Windows, более ранние, чем XP, я думаю, что на самом деле безответственно запускать проект WinForms в 2009 году. Ниже приведены недостатки против WPF:

  1. XAML, WPF и Silverlight находятся в центре внимания и Microsoft.
  2. WPF намного, намного мощнее графически, чем Winforms (по крайней мере, в плане простоты разработки очень богатого пользовательского интерфейса).
  3. Привязка данных в WPF - качественный скачок впереди Winforms; это сэкономит вам время.
  4. WPF стабилен и значительно увеличил производительность за последние несколько SP и версий.
  5. Как и все старые технологии MS, Winforms рано или поздно умрут. Очевидно, теперь это старая технология.

Теперь для ASP.Net. Это звучит так, как будто вы конвертируете довольно простое внутреннее приложение. ASP.Net подходит именно для этого. Хотя ASP.Net MVC практически не вышел из бета-версии, он еще не имеет аргументов против ASP.Net, которые WPF имеет против WinForms. Мы делаем ASP.Net + jQuery на работе, и это работает очень хорошо. Мы также делаем Silverlight, который вы можете посмотреть. Мне очень понравилось работать в нем. Если это внутреннее приложение, вы, вероятно, можете рассчитывать на установку плагина Silverlight во всех браузерах.

Теперь для общих плюсов перехода на WPF против ASP.Net :

1024 * WPF *

  1. Упрощенная миграция кода с рабочего стола VB6 в другое окружение рабочего стола. Возможно, вам удастся сохранить большую часть вашей логики, хотя ее необходимо будет перевести на VB.Net или C #. Вы переходите из одного состояния в другое. Не так с ASP.Net.
  2. Проще тестировать (особенно если вам нужно поддерживать несколько браузеров).
  3. Возможно, быстрее разрабатывать (особенно если вам нужно поддерживать несколько браузеров).

ASP.Net

  1. Проще распространять обновления для настольного приложения (все, что вам нужно сделать, это обновить веб-сервер).
  2. При правильной авторизации может использоваться на самых разных настольных компьютерах и даже мобильных устройствах.
  3. Может обеспечить большую часть динамического характера настольного приложения с дополнительными усилиями по разработке.
  4. Может использоваться для будущих продуктов, которые могут быть общедоступными.

Удачи в вашем проекте!

0 голосов
/ 28 февраля 2009

Все, что я могу сказать, это то, что вы должны НЕ начать все сначала! В одном из подкастов StackOverflow речь шла о том, нужно ли переписать приложение, чтобы получить преимущества нового языка, ответ - нет! Джоэл Спольски привел пример Borland C ++ Builder. Они проиграли Microsoft VC ++, потому что начали с нуля. Затем Джефф Этвуд сказал, что, хотя WordPress написан на PHP (на мой взгляд, это не очень хороший язык), общая идея сработала.

Основная точка:
Не начинай сначала, потому что теряешь весь опыт, накопленный на прочной основе.

...