У меня есть один день, чтобы рассказать о преимуществах .NET по сравнению с VB6… что мне сказать? [закрыто]

9

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

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

Мой начальник понимает, что VB6 - мертвая технология, и готов выслушать мои просьбы о переходе на .NET для новых разработок. Мы движемся вперед к .NET, но он видит в этом способ поддерживать совместимость с более новыми ОС Windows, а не способ писать лучший код.

Как я могу лучше объяснить преимущества языка .NET над VB6, помимо самой современной? Что я могу сказать, чтобы лучше подчеркнуть, что переход на .NET - это хороший шаг, но также и то, что наша текущая парадигма программирования также должна начать меняться? Как только мой начальник узнает, что Visual Basic .NET выглядит точно так же, как VB6, я знаю, что его первым побуждением будет просто преобразовать наш старый кодовый беспорядок в .NET.

Я понимаю , что это будет невозможно изменить чье мышление в один день, но как я могу по крайней мере , убедить свой сборочные тащил босс , что вещи , как сильно типизированный переменные, пользовательские классы и частные поля не являются общей тратой времени а энергия?

dlras2
источник
4
Разработчики VB6 - умирающая порода? Попробуйте набрать разработчиков .NET и VB6. Посмотрите, сколько резюме вы получаете за каждое. Тот факт, что после выхода на пенсию двух старых таймеров замены не будет (точнее, очень дорогой замены), достаточно аргумента.
Одед
3
Я ценю, что он может попытаться , но большинство уважающих себя разработчиков останутся в стороне от мертвого языка. Не уверен, когда MS прекратит поддержку VB6, но становится все труднее находить ресурсы (и конец срока службы продукта - еще один аргумент против VB6). Не уверен, насколько это поможет, но учитесь : msdn.microsoft.com/en-us/vstudio/ms788708.aspx - 2008 год был концом жизни IDE. И мне нравится, что «Пользовательские соглашения о поддержке могут быть доступны от Microsoft» - за какую плату, мне интересно ...
Одед
1
@Oded К сожалению, ни один из этих аргументов не затрагивает тот факт, что VB.NET можно использовать в качестве замены для VB6, глобальных открытых переменных и всего. Как только мы используем .NET , как мы можем использовать все его преимущества?
dlras2
1
Может быть, объяснить на примерах. Есть ли какая-то проблема, которую трудно решить в VB6, которую было бы намного легче решить в VB .NET? Не могли бы вы выбрать несколько примеров из своей базы кода и показать, как их можно превратить в лучший код в .NET, что было бы невозможно с функциями VB6?
FrustratedWithFormsDesigner
1
@DanRasmussen VB.NET не может правильно импортировать проекты VB6 (исправлено?). Обновление нетривиально.

Ответы:

16

Краткий ответ: Вы ничего не можете сделать, чтобы изменить свое мнение, основываясь на критериях, которые вы перечислили в вопросе и которые носят технический характер . Это эквивалент религиозных дебатов. Самый быстрый путь к провалу - это представить аргумент, который не с точки зрения аудитории, в данном случае владельцев бизнеса .

Более длинный ответ: изменения в бизнесе обусловлены только одной вещью. Прибыль в нижней строке.

... как я могу, по крайней мере, убедить моего начальника на сборке, что такие вещи, как строго типизированные переменные, пользовательские классы и частные поля, не являются полной тратой времени и энергии?

Они могут быть не только пустой тратой времени и энергии, но, что более важно, они стоят вам денег ! Вы должны быть в состоянии количественно показать, что ваши предложения со временем приведут к значительной прибыли. Просто утверждая , что чистый код является «лучше» не хватает, потому что чистый код стоит пути больше продукции.

Если вы можете четко сформулировать, к чему приведет стоимость использования современных технологий ($COST + X) * TIME = $PROFIT, где Xнетривиальное положительное число и TIMEотносительно мало, вы можете создать убедительный сценарий.

Еще один способ расчета ROI (возврат инвестиций)

Формула ROI

Если этот ROI / ROR является тривиальным числом, особенно в течение длительного периода времени, у вас также нет особого экономического обоснования.

Как ваша компания на самом деле зарабатывает деньги?

сколько строк кода? сколько клиентов? какой доход приносит это программное обеспечение в год? доход в основном поддерживает контракты? или новые лицензии? Целевой рынок стабилен? расширение? заказчик? Является ли программное обеспечение лидером потерь для какого-то другого, гораздо более прибыльного продукта?

Хорошему деловому человеку трудно игнорировать деньги, лежащие на столе.

Конечно, вы должны быть в состоянии подкрепить свои заявления убедительными фактами. Это означает, что вы должны быть в состоянии предоставить реальные цифры, которые показывают, что вы действительно понимаете реальный бизнес, а не только академические технические детали.

Не только профи

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

Обучение старых собак новым трюкам

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

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

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

прогнозирование

Я делаю несколько предположений здесь: приложение VB6, небольшой магазин, несколько разработчиков, 2 старших разработчика / владельцев бизнеса указывают на нишевое приложение на рынке, которое, вероятно, является зрелым (ошибки и обходные пути известны), довольно полнофункциональным и относительно стабильным, независимо от того, из "беспорядка" кодовая база есть. Это заставляет меня верить, что небольшая база пользователей также не растет с каждым годом, что приводит меня к следующему выводу.

То, что действительно не будет какой-либо реальной убедительной причины для изменения технического направления с помощью этого приложения. А портирование на VB.Net - это тоже пустая трата времени, потому что у вас просто будет беспорядок, но теперь с ним больше, и 2/3 команды разработчиков не посвятили себя изучению чего-то нового. Удачи.

Глорфиндел
источник
2
к сожалению, затраты на переписывание (плюс обучение, плюс приобретение опыта) обычно перевешивают затраты на поддержание работоспособности приложения, по крайней мере, в краткосрочной и среднесрочной перспективе. Однако в долгосрочной перспективе вы рискуете, что ваше переписывание может потребоваться переписать в $ next_new_technology.
gbjbaanb
4
+1 религиозная дискуссия. Если ОП хочет работать в .NET, он должен получить работу в магазине .NET; Я бы сказал, что переход с VB6 на .NET в этой компании представляет собой серьезный риск с сомнительной выгодой.
Кирк Бродхерст
Отличный ответ, за исключением того, что вы пролистали его часть о том, что «Рефакторинг почти невозможен, и любые изменения требуют слишком много копаться в коде, и после внесения, кажется, всегда появляются дополнительные дыры». Это последнее утверждение, которое имеет значение для бизнеса. Демонстрация того, что они не могут изменить кодовую базу без значительных затрат на бизнес, - очень веский аргумент в соответствии с вашим ответом. Конечно, метрики должны быть там, чтобы поддержать это утверждение.
@ GlenH7 лично я думаю, что вы цитируете драматическое личное мнение и риторику, потому что ОП не проявляет никакой заботы ни о чем, кроме как выдвигать свое личное мнение и повестку дня. Мой ответ состоит в том, чтобы предложить, чтобы они не рассматривали, каким будет реальный драйвер изменений, а не то, что они думают или рассматривают. Я хочу сказать, что постепенные изменения в долгосрочной перспективе, которые являются «дорогими» , всегда будут дешевле, чем то, что они предлагают в течение того же периода времени. Делать то, что они сказали, и то, что вы цитируете, несостоятельный деловой аргумент
Договорились, что в заявлении была определенная риторика. Некоторые магазины (и нет, они, как правило, не маленькие) отслеживают сбои / побеги, поэтому можно сгенерировать жесткие метрики об ошибках. OTOH, большинство магазинов не хранят эту информацию, и это не что иное, как «интуиция», которая не имеет большого значения в бизнес-презентации.
11

У меня есть клиент, чей флагманский продукт написан на VB6 и поддерживается 3 людьми. Я пришел помочь им, потому что у них был партнер, который хотел, чтобы они позвонили в веб-службу. Это очень трудно сделать из VB6, но легко из VB.NET или C #, и я написал им сборку .NET, которая выглядела как VB6 как компонент COM, чтобы они могли его вызывать. Затем им нужно было предложить кому-то веб-сервис. Затем они захотели написать небольшую автономную утилиту, и ей нужно было зашифровать и расшифровать некоторую информацию, а также проанализировать некоторый XML. Я научил их писать это в .NET. В течение последних 5 лет все больше и больше их кода находится в .NET, хотя флагманский продукт не сократился вообще. Есть части этого, которые они ненавидят - у каждого приложения есть они - и где они могут, они вытаскивают эти части (теперь начинается сокращение) и помещают их в сервисы или отдельные утилиты. Все остальное будет преобразовано в болюс-болюс .NET. Да, плохие имена переменных и все - на мой взгляд, существует множество преимуществ для перехода на .NET, даже если они не меняют свою нынешнюю парадигму программирования. К ним относятся:

  • Вы можете использовать последнюю версию Visual Studio с улучшенным поиском, лучшей Intellisense, более быстрой сборкой и т. д.
  • Вы можете интегрироваться с приличной системой контроля версий (т.е. не VSS)
  • Есть библиотеки, которые поставляются с .NET бесплатно, которые быстро справляются с такими задачами, как шифрование, анализ XML, обработка изображений и многое другое.
  • Интернационализация и локализация намного проще в проекте .NET (это, по запросу крупного канадского клиента, которому потребуются версии на французском и английском языках, возможно, изменило баланс для моего клиента)
  • недорогие управляющие библиотеки (Telerik, Infragistics, ComponentOne и т. д.) предоставляют вам удивительные возможности практически без затрат
  • гораздо легче будет найти временную помощь, как у летнего студента, в обстоятельствах, когда время, потраченное на их обучение VB6, не стоит (не обсуждайте, как вы относитесь к обучению новому найму на полную ставку)
  • ваше приложение будет поддерживать UAC, поэтому оно будет работать лучше в Vista, 7 и 8. Его не нужно будет запускать в режиме совместимости с XP.

Там больше, но, конечно, этого достаточно?

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

Кейт Грегори
источник
Что вы подразумеваете под своим заключительным абзацем?
dlras2
6
То, что «переход на .NET» и «давайте все запрограммируем по-другому» различны, и что если вы решите бороться со вторым, вы не только вряд ли добьетесь успеха, вы почти наверняка не будете их переносить. NET с таким подходом. Я имею в виду, я согласен, что они должны программировать по-другому. Но лучший путь к .NET - «как то, что у вас есть сейчас, но с шоколадным соусом и каплями!»
Кейт Грегори
Я понимаю преимущество подхода к ним как к различным проблемам, но проблема в том, что подход к ним как к отдельным проблемам просто обеспечивает одинаково не поддерживаемые программы, только в .NET.
dlras2
1
У вас будут лучшие приложения (более приятные элементы управления, больше функциональности) и более совершенный процесс (скрытый контроль исходного кода и, возможно, даже отслеживание рабочих элементов) вместе с разработчиками, которые теперь видят, что это можно сделать по-другому и что боль от перемен стоит того это из-за этих больших преимуществ. Они будут более восприимчивы к следующему, о чем вы их просите. И «не поддерживаемый» не является двоичным. Код не будет отличным, но ситуация все равно будет лучше, чем была. У вас также будет доказанный авторитет.
Кейт Грегори
8

Я начал с проекта VB6 несколько лет назад (пользовательская ERP-система компании) и постепенно перешел на .NET. Это где-то наполовину сделано.

Прежде всего, преобразование из VB6 в VB.Net почти всегда является плохой идеей (и я провел много исследований по этому вопросу). Там слишком много другого. Кроме того, если ваш начальник думает, что VB.Net "точно такой же, как VB6", то он полностью ошибается, и вы должны быстро изменить его взгляды.

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

Есть два способа интеграции существующего VB6 с новым кодом .NET (и вы, вероятно, будете делать это очень долго, так что вам лучше привыкнуть к этой идее). Первым делом я начал писать небольшие модули в .NET, а затем заставить основное приложение VB6 запускать исполняемый файл .NET, передавая некоторые параметры командной строки. Это сработало, но имейте в виду, что .NET имеет время запуска от 4 до 10 секунд, так что вы ограничены в том, что вы можете сделать таким образом.

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

Тем не менее, вот преимущества, которые я нахожу в .NET по сравнению с VB6:

  • Улучшенные рамки персистентности (NHibernate, EntityFramework, Linq2Sql и т. Д.)
  • LINQ (не могу не подчеркнуть, насколько это важно)
  • Дженерики!
  • Лямбда-синтаксис (элегантно решает целый класс проблем, таких как «дыра в середине»)
  • Аналогично Actionи Funcтипы
  • Отражение (то, что вы редко используете, но когда вы делаете, это огромно)
  • Гораздо лучшая поддержка модульного тестирования (конечно, я сомневаюсь, что вы убедите своих сотрудников в модульном тестировании, но вы должны)
  • ReSharper (и другие инструменты рефакторинга / профилирования) (в 10 раз лучше, чем MZ-Tools)
  • ClickOnce и / или Setup / Installer Projects
  • Сервисные проекты Windows
  • Истинная объектно-ориентированная поддержка (VB6 основан на COM и действительно плох в этом отношении.)
  • Статическая печать
  • Запеченный в поддержке XML
  • WPF и Windows Forms (элементы управления VB6 очень ограничены)
  • WCF
  • Гораздо больше примеров кода онлайн
  • Исключения (обработка ошибок VB6 абсолютно ужасна в сравнении)
  • Интеграция управления версиями Visual Studio
  • Decimal тип (у VB6 никогда не было десятичного типа первого класса, хотя он имеет CDec)
  • Первоклассная поддержка Guid
  • Первоклассная поддержка 64-битных целых
  • Лучшие коллекции библиотеки
  • ReportViewer
  • Многопоточность, параллельная библиотека задач

Недостатки VB6:

  • Вы заметите выступление. Это может быть недостаточно, чтобы беспокоиться о, но поверьте мне, вы заметите это. В конце концов, VB6 компилируется в нативный код.

Чтобы быть справедливым, вот некоторые недостатки поддержки комбинированного решения VB6 / .NET:

  • Поддержание двух слоев доступа к данным (при условии, что ваше приложение VB6 действительно имеет один)
  • Дополнительная проводка для предоставления услуг / форм / и т. Д. с одной стороны на другую
  • В два раза больше сложности / архитектуры, чтобы держать в голове

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

Если вы возьмете кого-то, кто привык перетаскивать кнопку в форме, дважды щелкать по ней и писать некоторые строки SQL непосредственно в обработчике событий click, и это работает для них, очень трудно заставить их увидеть преимущество перед SOLID. принципы дизайна. С другой стороны, если вы прикусите пулю и решите, что весь новый код будет покрыт автоматическими модульными тестами на 90% или более, то вы быстро поймете, что это действительно сложно сделать, если вы не примете принципы разработки SOLID.

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

На самом деле, вы не собираетесь проводить модульные тесты, а это означает, что труднее обосновать принципы, такие как внедрение зависимостей вашим партнерам по команде. Вам придется продавать .NET не по архитектурным, а по достоинствам . Вы должны сосредоточиться на лучшей поддержке библиотеки и лучших инструментах. Это единственное, что будет резонировать. Я хотел бы предложить следующее в вашей демонстрации:

  • Создайте проект Windows Forms (держитесь подальше от WPF и xaml - это слишком поразительно)
  • Подключение к базе данных SQL (некоторая тестовая база данных)
  • Используйте Linq2Sql или EntityFramework для генерации модели данных для него.
  • Создайте класс репозитория, который имеет метод для возврата некоторого списка сущностей
  • Напишите запрос в этом методе, используя linq, укажите intellisense
  • Укажите, что linq работает со всеми объектами, а не только с объектами.
  • Покажите, что если вы измените базу данных и обновите модель, вы получите ошибку компиляции
  • Перетащите DataGridViewна главное окно
  • Продемонстрируйте привязку данных, заполнив сетку объектами из хранилища.
  • Укажите все интересные вещи о сетке, которые намного лучше, чем VB6
  • Создать файл .rdlc (отчет)
  • Сделайте простой отчет в Visual Studio
  • Перетащите средство просмотра отчетов в окно и отобразите отчет в средстве просмотра отчетов.
  • (Очевидно, вам нужно установить ReportViewer и сначала попрактиковаться в этом)
  • Придумайте проблему «дыры в середине», а затем продемонстрируйте ее решение, создав метод, который принимает Actionв качестве параметра. Сделайте это сначала, передав другой метод в качестве параметра, а затем поразите их, передав анонимный делегат с использованием лямбда-синтаксиса.
  • Продемонстрируйте обобщение с помощью классов List<T>и Dictionary<T1,T2>коллекции и покажите, как он создает строго типизированный код (в VB6 есть похожие вещи, но он динамически типизирован)
  • Напишите foreachцикл, который смущающе параллелен, используйте System.Diagnostics.Stopwatchдля измерения времени, которое требуется для выполнения, затем используйте библиотеку параллельных задач, чтобы преобразовать цикл в Parallel.Foreachцикл и продемонстрировать ускорение, предполагая, что вы работаете на многоядерной машине.
  • Продемонстрировать возможность добавления глобального обработчика исключений (это то, что VB6 не может сделать)

Это то, что я бы сделал.

Скотт Уитлок
источник
1

Мне кажется, что это ситуация, когда вам нужно надеть свою политическую шляпу вместо своей программной. Вы должны быть очень внимательны к тому, как вы приводите свои аргументы и чтобы вы не противодействовали своей аудитории. Убедитесь, что вы показываете преимущества .Net вместо того, чтобы показывать недостатки VB. Спор о недостатках VB поставит ваших коллег в положение, в котором они должны защищать свои решения и вынудить их признать, что язык, в который они вкладывают большие средства, является плохим языком. Вместо этого покажите им, как переход на .NET расширит имеющиеся у них инструменты и облегчит их жизнь.

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

  • Манипуляция строк
  • Синтаксический анализ XML
  • Поиск / Matching / Regex
  • Математика (у более новых языков обычно есть более быстрые, более полные математические библиотеки)
  • GUI здание / дизайн

Выберите любую из вышеперечисленных задач или другую задачу, специфичную для проектов, над которыми вы обычно работаете, и сядьте с ними и фактически напишите некоторый код с нуля, который быстро и легко решит проблему. Фактическое отображение процесса написания кода покажет инструменты, которые новые версии VS предоставляют на стол, и предоставит доказательства того, что переход на .NET не сделает жизнь никому тяжелее.

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

TwentyMiles
источник
0

Первое, что вы говорите, это то, что VB6 больше не поддерживается Microsoft. Пока вы можете поддерживать его работу, вы должны понимать, что его варианты в долгосрочной перспективе равны нулю. Я даже не знаю, будут ли приложения VB6 работать на Windows8, или сама IDE будет работать на Win8.

Таким образом, вам, в конечном итоге, придется переписать, и если это так, то лучше начать сейчас, а не позже, чтобы у вас было достаточно времени, чтобы выяснить, какую новую технологию вы хотите использовать (хотя VB.NET звучит идеально, это ваша возможность попробовать что-то более современное, например, заставить приложение работать на iPad).

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

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

gbjbaanb
источник
MS будет поддерживать VB6 на ПК Intel / AMD под управлением Windows 8. Вы не можете писать приложения Metro в VB6, но вы также не можете писать приложения Metro в .NET. Оба построены на Win32. По крайней мере, код, написанный на C # для .NET, должен быть проще портировать на WinRT для запуска в Metro, но не рассчитывайте на то, что это простая перестройка.
Скотт Уитлок
0

Приведите ему аналогию «старая машина новая против автомобиля»:

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

  • VB6 является наследием, это новый COBOL
  • .NET имеет лучшие рамки
  • .NET имеет лучшие инструменты
  • .NET имеет лучшую производительность
  • .NET имеет лучшую IDE
  • .NET имеет лучшую языковую поддержку
  • .NET имеет лучшие функции
  • .NET имеет лучшую поддержку сообщества
Темная ночь
источник
7
Автомобильные аналогии обычно терпят неудачу, и ваша ничем не отличается. У старой машины есть то, чего нет у новой машины , это то, что за нее платят! Если у вас было такси, и за него было заплачено, и это приносило вам больше денег, чем стоило поддерживать, а новый автомобиль стоил бы вам больше денег, чем тот, который вы предпочли бы иметь как деловой человек?
2
@JarrodRoberson Это оплачено, но они, как правило, тормозят чаще и через некоторое время перестают работать. Автомобильные аналогии отличные. :)
Стивен Джеурис
1
На самом деле, эта автомобильная аналогия хороша. У начальника ОП есть такси, и ОП должен учитывать это, приближаясь к нему. Полное переключение не может произойти в течение дня, но давайте начнем перемещать биты, меняя фигуры, одну за другой.
ZJR
1
Владелец бизнеса спроектировал и построил это сам. Скорее всего, он окупился много раз, и обслуживание для всех намерений и целей бесплатно, так как есть только 3 разработчика, и он один из них. Как я уже сказал, автомобильные аналогии ужасны, особенно в этом, и вы приводите мою точку зрения для меня своими аргументами, которые совершенно не соответствуют бизнесу. Новое программное обеспечение в лучшем случае принесет ему гораздо меньшую прибыль по сравнению с прошлым годом, а в худшем - потеряет деньги на неопределенный период времени.
2
У приложений нет энтропии износа, как у физических предметов, они также не атрофируются естественным образом, поэтому они не изнашиваются и не разрушаются независимо от использования, поэтому аналогии с физическими предметами, особенно автомобилями, не применяются. Приложение будет работать вечно, пока оно служит его цели. В одной компании, в которой я работал несколько лет назад, была старая машина на базе MS-DOS, которая контролировала устройства считывания карт на дверях. Идея, что программное обеспечение изнашивается, глупа. Тем не менее, хороший план конца жизни всегда должен быть на месте. Даже если этот план никогда не переписывать программное обеспечение.
0

Прежде всего, я думаю, что вы должны изменить вопрос (не на stackexchange, а в вашей компании). Дело не в том, почему .Net лучше VB6, а в том, что VB6 больше не поддерживается, пора идти дальше, но к чему. Спросите заинтересованных лиц, какой должна быть эта «новая» технология? Может быть, это не .Net.

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

темный фейдер
источник
-1

Скажите своим боссам, чтобы написать два объявления о поиске. Один для разработчиков на C #. Один для экспертов VB6. Положите их там. Сравните результаты.

Эрик Реппен
источник