Евгений Сайты › Peppers Сбер ID
Сайты, SEO и GEO, реклама, чат-боты, ИИ и дизайн | Москва
Рейтинг
9 371
№ 111 в каталоге
Отзывы
Профессионализм
9/10
Коммуникация
9 /10
Город
Москва
Опыт работы
11 лет
На сайте с
2016 года
Юридический статус
Самозанятый
Freelance.Boutique
Премиум-сервис для лучших исполнителей

Обновление программы учёта завода металлических комплектующих: с .NET Framework 2.0 и JSharp на современный .NET, слой ADO.NET сохранён, модули на C#

Используемые навыки ADO.NET DotNet JSharp .NET .NET программирование

Описание

Обновление программы учёта на заводе металлических комплектующих: цеховая программа для заказов и партий, написанная в 2006 году, снова ставится на новые компьютеры и работает на современной версии .NET. Выполнил работу Евгений Росляков. Программы для бизнеса и сайты он пишет с 2016 года, числится самозанятым, заключает договор, а для юрлиц готовит закрывающие документы. Встретиться можно в Москве, остальное делается удалённо.

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

Всё это держала настольная программа на .NET Framework 2.0. Почти двадцать лет она ежедневно обслуживала цех, и всё было хорошо, пока не начали менять компьютеры. На новых машинах программа не устанавливалась. Часть модулей была написана на J#, он же JSharp. Это язык, похожий на Java, который Microsoft выпустила вместе с ранними версиями платформы, а потом перестала поддерживать и убрала из новых сред разработки. Исходники остались, компилировать их нечем.

Прежний программист давно ушёл, документации почти нет. На заводе боялись, что в один день программа просто не запустится, а учёт партий заменить нечем.

Экраны и порядок работы клиент менять не хотел: мастера знают их наизусть. Менять требовалось фундамент, а не внешний вид.

Решение

Сначала разобрал программу по модулям. Выписал все, выделил написанные на JSharp и отметил, откуда их вызывает остальной код. Оказалось, что J#-кода немного, зато в нём важные расчёты: нормы расхода металла, размеры партий, сроки.

Эти модули переписал на C# аккуратно, по одному. До переписывания для каждого расчёта собрал проверки на реальных старых примерах: входные данные из архива и результаты, которые программа выдавала годами. Новый код обязан давать те же цифры. Редкий случай, когда .NET программирование ценно не новым кодом, а сохранёнными результатами. J# опирался на собственную библиотеку классов в духе старой Java, поэтому часть вызовов пришлось заменять на аналоги из .NET вручную.

Весь проект перенёс с .NET Framework 2.0 на актуальную версию .NET с долгой поддержкой. В заводской IT-службе платформу называют коротко, DotNet, и администраторы говорят просто «поставили DotNet нужной версии». Теперь ничего особенного ставить не надо, хватает одного установщика.

Слой данных на ADO.NET оставил: он был написан разумно, и переписывать его не было смысла. Но почистил. Запросы, собранные склейкой строк, заменил параметрами. Операции, которые меняют сразу несколько таблиц, обернул в транзакции, чтобы при сбое не оставалось полупроведённых партий. Строку подключения к базе вынес в настройки.

Собираться проект стал в современной среде разработки. Добавил два отчёта, о которых просили мастера: сводку по партиям в работе и список просроченных операций. Написал установщик, который ставит программу и нужные компоненты за один запуск.

Внедрял параллельно: неделю старая и новая версии работали с одной базой, а мастера сравнивали экраны и цифры.

Результат

Программа снова ставится на любой новый компьютер завода. Экраны остались привычными, мастера и учётчики не переучивались. Цифры совпали с теми, что выдавала старая версия: это проверено на архивных партиях и за неделю параллельной работы.

Для завода главное другое: исчез код на языке, у которого нет будущего. Вся программа теперь на C#, и любой разработчик на .NET прочтёт её без раскопок. Появилась документация: как собрать, как поставить, как устроена база.

Новые отчёты избавили мастеров от ручного поиска отстающих партий. Вечерняя сводка собирается сама.

Программа осталась настольной. Работать с ней можно только с компьютера внутри заводской сети, удалённого доступа и мобильной версии нет. Интерфейс по современным меркам выглядит старым, но его никто и не просил менять.

Дальше можно подумать о веб-версии для мастеров с планшетов или об обмене данными с бухгалтерской системой.

На предприятии давно работает программа, к которой страшно прикасаться? Отправьте через freelance.ru название платформы, год выпуска и то, что именно перестало работать. Отвечу, стоит ли её спасать.

Оценили проект:

Другие проекты

Все проекты →
Веб-разработка и IT Перенос интерфейса лизинговой системы с Ext JS и Sencha Touch на Blazor: общий код с бэкендом на .NET, отчёты вместо Google Web Toolkit
Перенос интерфейса лизинговой системы с Ext JS и Sencha Touch на Blazor: общий код с бэкендом на .NET, отчёты вместо Google Web Toolkit
16
Дизайн и Брендинг Дизайн книги к юбилею города для краеведческого музея: обложка, вёрстка в InDesign, архивные фото, карта и заставки глав
Дизайн книги к юбилею города для краеведческого музея: обложка, вёрстка в InDesign, архивные фото, карта и заставки глав
17
Веб-разработка и IT Создание сайта для дилеров оптового поставщика плитки и керамогранита: кабинет с обменом с 1С через SOAP и веб-сервисы, прайсы фабрик через XSLT
Создание сайта для дилеров оптового поставщика плитки и керамогранита: кабинет с обменом с 1С через SOAP и веб-сервисы, прайсы фабрик через XSLT
13
Веб-разработка и IT Создание сайта: вёрстка для агентства недвижимости из Figma на Tailwind CSS, Bootstrap, Sass и Gulp.js
Создание сайта: вёрстка для агентства недвижимости из Figma на Tailwind CSS, Bootstrap, Sass и Gulp.js
15