1.虽说以前的Microsoft Visual Basic和.NET都是微软自己的东西,可有很多功能的实现方式还不一样,特别是那些控件。
2.每个程序都会有自己的业务逻辑,有些可能会很复杂,甚至读别人的代码时你可能对业务逻辑那部分会完全一头雾水。
开始也打算在.NET环境下重做,可在做了一些尝试后发现根本没法了解那个VB6.0程序的业务逻辑,以致于从VB6.0转换到.NET下后,那些老的graph控件没法工作。和项目经理做了很多研究后,还是决定先让Microsoft Visual Studio替我们先把VB6.0项目转换生成一个VB.NET项目,然后在这基础上改。事实证明,这种做法很明智,因为相比在.NET环境下重做会少写很多代码,而且你几乎不用去管那个项目的业务逻辑。废话少说,下面介绍升级过程。
1.在机子上安装Microsoft Visual Basic,我用的是Microsoft Visual Basic 6.0中文企业版。作用有两个:(1)确保以前的VB项目能正常工作.(2)方便以后能回到这个老项目中进行一些调试。
2.打开你的Microsoft Visual Studio,接着执行File-Open-Project/Solution,在弹出的对话框找到将被转换的.vbp工程文件,选中并打开它。此时会弹出Visual Basic Upgrade Wizard。在这个过程你需要指定被转换过来的项目的位置以及项目类型。因为我这个是桌面程序,所以我选择了.exe类型。参数准备完后,IDE会需要比较长的时间来完成升级过程。
3.转换完成后,你会发现IDE提示了很多代码的错误。其实很多VB6.0里面的老控件都已经被Visual Studio转换过来了,或者Visual Studio里已经以其它相似的名字内置了对VB6.0老控件的支持。
有一点VB6.0里的DBGrid控件会被转化成.NET下的AxMSDBGrid.AxDBGrid类型的控件,这种控件在VB6.0里需要Data控件作为数据源。.NET已完全抛弃了Data控件,不再提供对它的直接支持,而选用了性能更高的ADO.NET组件。开始我们本打算原封不动的用转换过来的控件,后来发现这个AXDBGrid控件的DataSource属性必须要是一个ICursor,而当今现存的数据源控件除了Data控件都无法提供这个ICursor接口属性,但这个Data控件在.NET中是无法使用的。
最后不得已选用了.NET下标准的数据显示控件DataGridView,并用以下代码模拟出Data控件。
Code
1 Public Solar As DAO.Recordset
2 ModelData = DAODBEngine_definst.Workspaces(0
1 Public Solar As DAO.Recordset
2 ModelData = DAODBEngine_definst.Workspaces(0