CJ Date: Classic VB Wizard Обновление или следует изменить дизайн? - PullRequest
0 голосов
/ 15 декабря 2010

Должен ли я запускать классическое приложение VB6 с помощью мастера обновления в VS08 или я должен изменить его с нуля.

База данных - беспорядок.

Первоначально разработан в ACCESS и импортирован в MS SQL SERVER.

Основными объектами являются, например, ROLLER_SKATES и RENTALS.Если вы хотите арендовать пару роликовых коньков, вы можете.Таким образом, это более или менее включает систему инвентаря для роликовых коньков.

Теперь у вас есть 2 разных катка.Skate-B1 и Skate-Z9, и вы сохраняете избыточные и дублирующие данные из ранее упомянутых объектов в таблицах катков.

Это кошмар.

Как минимум, таблицы имеют идентификаторы строк.Но никаких явных внешних ключей, только неявные столбцы с одинаковыми именами, которые «кажутся» соответствующими друг другу.Но все остальные атрибуты таблицы по умолчанию равны NULL.

Учитывая, что CJ Date говорит о типах в своей книге «SQL и модель отношений», разве не желательно иметь CHECK CONSTRAINTS для атрибутов?

И данные повсюду, например, серийный номер роликовых коньков - G123, а в другом случае - G-123.Получить дрейф?

Что мне делать?

Ответы [ 4 ]

1 голос
/ 15 декабря 2010

Не тратя слишком много времени на чтение вашего вопроса, на меня выскакивают две строки:

База данных - беспорядок.

Это кошмар.

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

Однако это должно быть сбалансировано с вашими конкретными требованиями. Как быстро должна происходить миграция? Текущее приложение непригодно для использования до тех пор, пока оно не будет переписано? Если это так, это может быть довольно убедительным аргументом в пользу использования мастера обновления. Даже учитывая его недостатки и недостатки, это будет проще, чем полное переписывание с нуля.

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

1 голос
/ 17 декабря 2010

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

Я обновил несколько таких проектов с VB6 в тот же день. Может быть, конвертеры сейчас лучше, но мне не повезло с ними. То, что я нашел, работает очень хорошо, это создавать новые формы, которые выглядят как старые. Затем скопируйте и вставьте код из старой формы в новую форму и исправьте ошибки. Это идет довольно быстро. Мне также обычно удается внести несколько небольших улучшений, в основном в пользовательский интерфейс, где клиент увидит, что он получает что-то за свои деньги.

Что касается серверной части, я работал с некоторыми большими БД без ограничений внешнего ключа и всеми другими проблемами, о которых вы говорили. Он не идеален для удобства обслуживания, но работает нормально, и, похоже, это не тот проект, который требует много обслуживания. Тем не менее, вы должны убедиться, что нашли способ применить уникальное имя для каждого элемента, что бы вы ни делали. Я видел, что другие приложения совершают ту же ошибку, и это приводит к всевозможным проблемам.

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

1 голос
/ 15 декабря 2010

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

У вас есть скелет, и вы знаете, в чем суть приложения.

Очень редко, когда мы оглядываемся назад на разрабатываемые нами приложения, мы находим их идеальными. Это происходит только в том случае, если вы не работали программистом на протяжении многих лет ...

0 голосов
/ 21 декабря 2010

Чем сложнее проект, тем МЕНЬШЕ вы, вероятно, захотите просто обновить и продолжить как есть.

.Net предоставляет намного больше возможностей, чем VB6, и, хотя он будет работать с кодом vb6, нет смысла переходить на .net, если вы на самом деле не собираетесь использовать .net и егоfeatures.

Если приложение, как вы говорите, неопрятно, преобразование в .net - отличное время как для редизайна, так и для устранения старой неэффективности и логической глупости, а также для использования новых возможностей, разрешенных в .net.Даже если это не ВСЕГО редизайн, хотя бы если подумать о приложении с точки зрения .net, это улучшит его.

Если приложение не является тривиальным по размеру / сложности, переделайте его.И если приложение не велико или не полностью ... переделайте его:)

...