Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将旧的VB.NET设备应用程序(PDA)移动到C#Android应用程序_C#_Android_Vb.net_Xamarin_Porting - Fatal编程技术网

将旧的VB.NET设备应用程序(PDA)移动到C#Android应用程序

将旧的VB.NET设备应用程序(PDA)移动到C#Android应用程序,c#,android,vb.net,xamarin,porting,C#,Android,Vb.net,Xamarin,Porting,我接受了一项任务,将一个老项目(大约在2005年完成)转化为一个Android应用程序,该项目的目标是PDA设备。要求是尽可能少地修改现有的代码。糟糕的是,所提供的代码是在VB.NET中编写的,并且它严重依赖于GUI,因此在当时这两个部分之间没有真正的分离。更重要的是,它很少用OOP风格编写。经过一些研究,我得出结论,制作一个Xamarin项目,其中我将有一个单独的项目只用于VB.NET代码,这将是一个独立于GUI的类库项目,将是最好的解决方案。比如: 'method in my VB.NET

我接受了一项任务,将一个老项目(大约在2005年完成)转化为一个
Android应用程序,该项目的目标是
PDA设备
。要求是尽可能少地修改现有的代码。糟糕的是,所提供的代码是在
VB.NET
中编写的,并且它严重依赖于GUI,因此在当时这两个部分之间没有真正的分离。更重要的是,它很少用OOP风格编写。经过一些研究,我得出结论,制作一个
Xamarin项目
,其中我将有一个单独的项目只用于VB.NET代码,这将是一个独立于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项目中方法的一些包装,就像上面的示例一样。问题是,由于在
VB.NET项目
中缺少
Windows.Forms控件
(同样,它是一个类库项目),因此存在相当多的错误。我的解决方法是为最重要的控件创建等效类,只是保存它们在GUI上显示的数据,并将所需的数据发送回包装器方法,然后包装器方法将其显示在可视化控件上


我很确定这仍然是一个非常非最优的解决方案,还有很多工作要做。由于这是我的第一个此类项目,我不确定如何完成这样的任务,所以我希望收到一些意见,可能是一些有用文章的链接,任何可能有用的东西。谢谢,祝你今天愉快

对不起,那帮不了你。但这不是一个有趣的任务。。。祝你好运我个人同意@MichaelRandall下面的评论。如果建筑一团糟。而不是试图理解它在做什么,增加更多的复杂性。我想说,重写也是一种解决方案……”“糟糕的是,提供的代码是用VB.NET编写的,并且严重依赖GUI”——这听起来像是一场噩梦。如果最初的应用程序在架构上一团糟,那么就没有简单的方法来解决这个问题,而且每件事都将是一层层的黑客攻击。只需削减开支就更有意义了run@MichaelRandall你所说的“切割并运行”是什么意思?重新开始,从头开始设计,把你可以使用的部分拉进去,这也是我想做的,修复那里的混乱需要做太多的工作,这会使从头开始的速度更快