Перемещение старого приложения устройства VB. NET (КПК) в приложение C# Android - PullRequest
0 голосов
/ 13 февраля 2020

Я получил задание преобразовать старый проект (сделанный около 2005 года), нацеленный на PDA devices, на Android application. Требования заключались в том, чтобы как можно меньше изменить уже существующий код. Плохая часть заключается в том, что предоставленный код написан на VB.NET, и он сильно зависит от GUI, поэтому реального разделения между этими двумя частями не было. Более того, он очень мало написан в стиле OOP. После некоторых исследований я пришел к выводу, что создание Xamarin project, где у меня будет отдельный проект только для кода VB. NET, который будет class library project, независимым от GUI, будет лучшее решение. Что-то вроде:

'method in my VB.NET project:'
Private Sub SomeButtonVB_Click([parameter list])
'code of the method independent of GUI'
End Sub

//the C# project, having a reference to the VB.NET project
//method in the C#/Xamarin project, connecting the VB.NET project with the GUI:
private void SomeButton_Click(object sender, RoutedEventArgs e)
{
   SomeButtonVB_Click([parameter list]);
}

Методы в моем C# project, которые соединяют бэкэнд с GUI, будут представлять только некоторые оболочки для методов в VB.NET project, просто как в примере выше. Проблема в том, что существует довольно много ошибок из-за отсутствия Windows.Forms controls в VB.NET project (опять же, это проект библиотеки классов ). Мой обходной путь - создание эквивалентных классов для наиболее важных элементов управления, просто для хранения данных, которые они будут представлять в GUI, и отправка необходимых данных обратно в методы-оболочки, которые затем будут отображаться на визуальных элементах управления.

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

...