У мене є один день, щоб прославити переваги .NET над VB6 ... що я скажу? [зачинено]


9

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

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

Мій бос розуміє, що VB6 - це мертва технологія, і готовий вислухати мої прохання про перехід до .NET для нових розробок. Ми рухаємось до .NET, але він розглядає це як спосіб підтримувати сумісність з новішими ОС Windows, а не як спосіб написати кращий код.

Як я можу найкраще пояснити переваги мови .NET над VB6, крім простої сучасності? Що я можу сказати, щоб найкраще підкреслити, що перехід до .NET - це хороший крок, але також це означає, що наша парадигма програмування також повинна почати змінюватися? Як тільки мій бос почує, що Visual Basic .NET виглядає так само, як VB6, я знаю, що його першим інстинктом буде просто перетворити наш старий безладний код у .NET.

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


4
Розробники VB6 - вмираюча порода? Спробуйте набрати розробників .NET та VB6. Подивіться, скільки резюме ви отримаєте за кожне. Факт, що як тільки два старі таймери вийдуть на пенсію, заміни не буде (точніше, дуже дорога заміна), має бути досить аргументом.
Oded

3
Я ціную, що він може намагатися , але більшість поважаючих себе розробників залишаються осторонь. Не впевнений, коли MS перестануть підтримувати VB6, але все важче знайти ресурси (а кінець життя продукту - ще один аргумент проти VB6). Не впевнений, наскільки це допоможе, але все ж вивчіть: msdn.microsoft.com/en-us/vstudio/ms788708.aspx - 2008 рік закінчився життям IDE. Мені подобається, що "Угоди про користувальницьку підтримку можуть бути доступні від Microsoft" - за яку плату, мені цікаво ...
Oded

1
@Oded На жаль, жоден із цих аргументів насправді не торкається того, що VB.NET може використовуватися як stand-in для VB6, глобальних публічних змінних та всіх. Як тільки ми використовуємо .NET , як ми насправді використовуємо всі його переваги?
dlras2

1
Може пояснити на прикладах. Чи є якась проблема, яку важко вирішити в VB6, яку було б набагато простіше вирішити в VB .NET? Чи можете ви обрати кілька прикладів із бази даних коду та показати, як їх можна очистити до кращого коду в .NET, що неможливо з функціями VB6?
FrustratedWithFormsDesigner

1
@DanRasmussen VB.NET не міг імпортувати VB6 проекти правильно (виправлено ще?). Оновлення нетривіально.

Відповіді:


16

Короткий відповідь: Ви нічого не можете зробити, щоб змінити свою думку, виходячи з критеріїв, перелічених у питанні, які є всі технічні . Це еквівалент релігійної дискусії. Найшвидший шлях до невдачі - це представити аргумент, який не з точки зору аудиторії, в цьому випадку власників бізнесу .

Більш довгий відповідь: Зміни в бізнесі визначаються одним і одним. Прибуток до нижнього рядка.

... як я можу принаймні переконати мого начальника на зборах, що такі речі, як сильно набрані змінні, спеціальні класи та приватні поля, - це не витрата часу та енергії?

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

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

Ще один спосіб розрахунку рентабельності інвестицій (рентабельність інвестицій)

Формула ROI

Якщо ця рентабельність / рентабельність є тривіальним числом, особливо протягом тривалого періоду часу, ви також не маєте великого ділового випадку.

Як ваша компанія насправді заробляє свої гроші?

скільки рядків коду? скільки клієнтів? скільки доходу в рік дає це програмне забезпечення? чи дохід переважно підтримує договори? чи нові ліцензії? стабільний цільовий ринок? розширюється? договір? чи програмне забезпечення є лідером збитків для якогось іншого набагато вигіднішого продукту?

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

Звичайно, ви повинні вміти підкріплювати ваші заяви твердими фактами. Це означає, що вам потрібно вміти надавати реальні цифри, які показують, що ви дійсно розумієте фактичний бізнес, а не лише академічні технічні деталі.

Не лише плюси

Також надаючи детальний аналіз ризиків і те, що ці ризики мали б, $COSTякщо вони відбудуться, буде переконувати їх у тому, що у вас є реалістичний випадок, і ви не просто ныли, що більше не хочете займатися VB6.

Навчання старих собак новим хитрощам

... Що я можу сказати, щоб найкраще підкреслити, що перехід на .NET - це хороший крок, якщо і лише в тому випадку, якщо наша парадигма програмування також починає змінюватися? ...

Зміна або не Зміна парадигми програмування на максимально ідіоматичну для нової технології є частиною аналізу ризиків. Але це окремий аргумент лише після того, як ви довели, що потрібно внести значні гроші, внісши зміни в першу чергу.

Ділові люди, як правило, слухають ділові справи так само, як технічні люди, як правило, слухають технічні справи. Усі ваші випадки у вашому запитанні - це технічні достоїнства, які в найкращому випадку є академічними.

Прогнозування

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

Що насправді не буде жодної реальної переконливої ​​ділової причини змінити технічний напрямок за допомогою цієї програми. І до портирования на VB.Net це марна трата часу, а тому що ви будете просто мати безлад , але тепер з його більше, і 2/3 з команди розробників не посвячений нічого нового навчання. Удачі.


2
на жаль, вартість переписування (плюс навчання, плюс здобуття знань) зазвичай перевищує витрати на підтримку роботи програми, принаймні в коротко- та середньостроковій перспективі. Однак у довгостроковій перспективі ви ризикуєте, що ваше переписування може знадобитися переписати у $ next_new_technology.
gbjbaanb

4
+1 релігійна дискусія. Якщо ОП хоче працювати в .NET, він повинен влаштуватися на роботу в магазин .NET; Я б сказав, що перехід від VB6 до .NET в цій компанії є основним ризиком із сумнівною вигодою.
Кірк Бродхерст

Чудова відповідь, якщо ви не замислилися над його частиною про те, що "Рефакторинг майже не можливий, і будь-які зміни вимагають занадто великого перегляду коду, і коли вони будуть зроблені, завжди, здається, вводиться більше дірок". Це остання заява, яка має значення для бізнесу. Демонстрація того, що вони не в змозі змінити кодову базу без істотних витрат на бізнес-гроші, є дуже вагомим аргументом відповідно до вашої відповіді. Звичайно, метрики повинні бути там, щоб створити резервну копію цього твердження.

@ GlenH7 особисто я думаю, що те, що ви цитуєте, - це драматична особиста думка та риторика, оскільки ОП не викликає жодного занепокоєння нічим, крім висунення їх особистої думки та порядку денного. Моя відповідь полягає в тому, щоб запропонувати, щоб вони не розглядали, яким би був справжній двигун змін, і це не те, що вони думають чи не вважали. Моя думка - додаткові зміни протягом тривалого періоду, які "дорого" завжди будуть дешевшими, ніж те, що вони пропонують протягом тієї ж кількості часу. Зробити те, що вони сказали, і те, що ви цитуєте, непереборний бізнес-аргумент.

Погодився, що в заяві є певна ступінь риторики. Деякі магазини (і ні, вони, як правило, не маленькі), відслідковують помилки / втечі, тому можливо генерувати жорсткі показники щодо помилок. В іншому, більшість магазинів не зберігають цю інформацію, і це не що інше, як "відчуття кишки", яке не дуже розраховує в бізнес-презентації.

11

У мене є замовник, флагманський продукт якого написаний на VB6 та обслуговується 3 людьми. Я прийшов допомогти їм, оскільки у них був партнер, який хотів, щоб вони зателефонували на веб-сервіс. Це дуже важко зробити з VB6, але легко від VB.NET або C #, і я написав їм .NET збірку, яка виглядала на VB6 як компонент COM, щоб вони могли назвати це. Тоді їм потрібно було комусь запропонувати веб-сервіс. Потім вони хотіли написати невелику автономну утиліту, і їй знадобиться зашифрувати та розшифрувати певну інформацію та проаналізувати деяку XML. Я навчив їх писати це в .NET. Протягом останніх 5 років або більше їхнього коду все більше знаходиться в .NET, хоча флагманський продукт зовсім не скоротився. Є їх частини, які вони ненавидять - кожен додаток має їх - і там, де вони можуть, вони витягують ці частини (зараз починається скорочення) і вводять їх у сервіси або окремі утиліти. Решта буде перетворена holus-bolus в .NET. Так, погані імена змінних і все, на мій погляд, є багато переваг для переходу на .NET, навіть якщо вони не змінюють поточну парадигму програмування. До них належать:

  • ви можете використовувати останню Visual Studio з кращим пошуком, кращим Intellisense, швидшими побудовами тощо
  • Ви можете інтегруватися з гідною системою управління джерелами (тобто не VSS)
  • Є бібліотеки, які постачаються з .NET безкоштовно, які роблять коротку роботу з таких речей, як шифрування, аналіз XML, обробка зображень тощо
  • інтернаціоналізація та локалізація набагато простіша.
  • недорогі бібліотеки управління (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 та / або проекти налаштування / встановлення
  • Сервісні проекти Windows
  • Справжня об'єктно-орієнтована підтримка (VB6 заснований на COM і дуже поганий у цій кафедрі).
  • Статичне введення тексту
  • Підтримується в підтримці XML
  • Форми WPF та Windows (елементи управління VB6 дуже обмежують)
  • WCF
  • Набагато більше прикладного коду в Інтернеті
  • Винятки (обробка помилок VB6 абсолютно жахлива порівняно)
  • Інтеграція джерела управління Visual Studio
  • Decimal тип (VB6 ніколи не мав десяткового типу першого класу, хоча він має CDec)
  • Підтримка першого класу для Guid
  • Підтримка першого класу для 64-бітних цілих чисел
  • Кращі колекції бібліотек
  • ReportViewer
  • Багатопоточність, бібліотека паралельних завдань

Недоліки VB6:

  • Ви помітите виступ це. Це може бути недостатньо для того, щоб хвилюватися, але повірте, ви це помітите. Зрештою, VB6 компілює до рідного коду.

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

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

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

Якщо ви берете когось, хто звик перетягувати кнопку на форму, двічі клацнути на ній і писати деякі рядки SQL безпосередньо в обробці подій клацання, і це працює для них, це дійсно важко змусити їх бачити перевагу у виконанні 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
  • Пошук / відповідність / Регекс
  • Математика (новіші мови зазвичай мають більш швидкі, всебічні математичні бібліотеки)
  • Будівництво / дизайн графічного інтерфейсу

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

Займаючись цим, ви абсолютно позитивно повинні робити домашнє завдання. Якщо ви виявите невпевненим у тому, як працюють інструменти чи маєте код, який не працює належним чином, ви ніколи не зможете перемогти їх на вашу сторону.


0

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

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

За короткий термін ви можете трохи пом'якшити проблему, ввівши нові розділи як компоненти COM для існуючого додатка, сподіваємось, ці компоненти залишаться, коли станеться неминуче перезапис.

Я б не переймався технічними аргументами щодо того, чому .NET кращий за VB6. Ви будете на цьому програти, що програє, технологія сама по собі ніколи не вирішує проблеми. Це залежить від вас, як ви застосовуєте цю технологію, і якщо додаток VB6 вирішує речі для вас, немає аргументів, щоб відповісти. Ви можете поговорити про простоту технічного обслуговування або доступність досвідченого персоналу, але як тільки ви це зробите, ви визнаєте, що ваш наявний персонал не має досвіду в новій техніці, і вам доведеться пройти навчання, а потім знадобиться певний час, щоб повністю досягти швидкості з цим. Вам також доведеться відповісти на запитання про те, як багато переписувань закінчуються гірше, ніж оригінальний проект (іноді через недостатню експертизу, іноді через занадто грандіозні розробки).


MS підтримуватимуть VB6 на комп'ютерах Intel / AMD під керуванням Windows 8. Ви не можете писати програми Metro в VB6, але також не можете писати програми Metro в .NET. Обидва побудовані на Win32. Принаймні код, написаний на C # для .NET, повинен бути простішим до порту на WinRT для запуску в метро, ​​але не розраховуйте, що це буде простою перебудовою.
Скотт Вітлок

0

Дайте йому аналогію "старий автомобіль новий проти автомобіля":

Так, ймовірно, обидва вас доставлять до місця призначення. Однак новому автомобілю не потрібен кривошип , він не потребує дроселя , він не потребує карт , його колеса не замикаються, коли ви різко гальмуєте, і, нарешті, ви набагато частіше ходите. геть від автокатастрофи .

  • VB6 - це спадщина, це новий COBOL
  • .NET має кращі рамки
  • .NET має кращі інструменти
  • .NET має кращі показники
  • .NET має кращу IDE
  • .NET має кращу підтримку мови
  • .NET має кращі функції
  • .NET має кращу підтримку спільноти

7
Автомобільні аналогії зазвичай виходять з ладу, а ваші нічим не відрізняються. Справа в тому, що старий автомобіль має те, що за новий автомобіль немає - це те, що платять! Якщо ви володіли таксі, і за нього платили, і це заробляло на вас більше грошей, ніж коштувало на обслуговування, а новий автомобіль коштуватиме вам більше грошей, ніж заплатити за нього, який ви хотіли б мати як ділову людину?

2
@JarrodRoberson Це заплачено, але вони, як правило, гальмують частіше, і через деякий час більше не працюватимуть. Автомобільні аналогії чудові. :)
Стівен Євріс

1
Насправді ця аналогія автомобіля хороша. У начальника ОП працює таксі, і ОП має це врахувати під час наближення до нього. Повний перемикання не може відбутися протягом дня, але давайте почнемо рухати шматочки, змінюючи шматки, один за одним.
ZJR

1
Власник бізнесу сам це спроектував і побудував . Він, швидше за все, оплачував себе багато разів, а технічне обслуговування для всіх намірів і цілей безкоштовне, оскільки є лише 3 розробники, і він один з них. Як я вже говорив, аналогії автомобілів жахливі, особливо це, і ви доводиться до мене своїми аргументами, які абсолютно не відповідають базовій справі. Нове програмне забезпечення в кращому випадку принесе йому набагато менший прибуток за рік в кращому випадку і втратить йому гроші на невизначений період часу, в гіршому випадку.

2
У додатках немає ентропії зносу, як фізичні предмети, вони, природно, не атрофуються, тому вони не зношуються , а також не руйнуються незалежно від використання, тому аналогії з фізичними предметами, особливо автомобілями, не застосовуються. Додаток працюватиме назавжди до тих пір, поки він виконує його мету. Одна компанія, в якій я працював кілька років тому, мала стару машину на базі MS-DOS, яка контролювала зчитувачі карт на дверях. Ідея, що програмне забезпечення зношується, нерозумно. Це говорить про те, що гарний план життя на кінець має бути завжди в наявності. Навіть якщо цей план - ніколи не переписувати програмне забезпечення.

0

По-перше, я думаю, що ви повинні змінити питання (не на stackexchange, а в межах вашої компанії). Це не стільки, чому так. Не краще, ніж VB6, але більше схоже, оскільки VB6 вже не підтримується , пора рухатися далі, але до чого. Запитайте зацікавлених сторін, якою повинна бути нова технологія? Можливо, це не так.

Але це здається, що вам потрібно перейти до нової технології та отримати кілька хороших моделей та практик програмування. Відповідь на другу частину набагато складніше. Вам, мабуть, доведеться це робити в невеликому розділі програми і доводити, що це варто, тобто це стабільніше, простіше в обслуговуванні і т.д.


-1

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.