我已经完成了你被要求的事情。就我而言,它是一个(业余)保龄球锦标赛管理系统:会员数据库管理(个人信息、IRS/奖金信息、邮件列表等)、锦标赛管理(球员分配、计分、车道票生成、奖金检查登记和边罐等)以及给定年份所有获胜者的 IRS EDI 生成。加上大约 10 亿个小项目分散在 ~ 50 个屏幕/子屏幕上。
关键是客户的理解——你必须清楚他们明白这不是小事;这对你们俩来说都是一次新的冒险(特别是如果您是 VB.Net 的新手)如果他们以前喜欢您的工作,那么他们很可能会给您留有余地/自由来学习 VB.Net。
阅读之前的一些答案让我提出一些建议(基于 30 年的软件开发经验,其中最后 20 年是顾问......)
如果他们提供,就拿走他们的钱。您需要将您的技能带入 20 世纪;让他们付钱(如果他们同意的话,再一次)。他们可能是杂志冲浪,想要“最新的东西”,没有好的理由——但也许他们意识到他们可以通过这个端口延长(你的)应用程序的生命周期。从本质上讲,他们可能有各种愚蠢的理由这样做......如果他们不雇用你来决定这个端口是否是一个好主意。然后你可以表达你对建立良好客户关系的决策过程的任何沮丧;但如果他们想这样做,那么它也可能是你的工作。
拿所有这些胡说八道的东西:C# vs VB.Net 加一粒盐。自 VB.Net / ASPX.net (vs C#) 成立以来,我一直专门在 VB.Net / ASPX.net (vs C#) 中工作,并且还没有遇到任何在 VB.Net 中无法实现的功能。有一些“纯粹主义者”只是将 VB.Net 视为玩具。好吧,我是从用汇编语言写作的时代开始的,然后是 C,然后是 C++(你可以用 Fortran,PL1 来衡量),然后是 VB5,然后是 6,然后是 VB.Net……现在是适用于 Android 的 JAVA。它非常有趣......每个都有它的优点和缺点。请记住,C# 和 VB.Net 本质上只是用于实现元语言中间体的 GUI。你可以用 C# 编写一个糟糕的程序(通过效率或内存使用或任何你选择的指标来衡量!)用 C# 编写一个程序,用 VB.Net 编写一个很棒的程序(反之亦然)。不要将好的编程等同于语言语法。(... C# 是 "
我选择让 Visual Studio 完成第一遍的大部分繁重工作。然后你会经历无数错误并清理它。它进展得非常快。
但是您需要决定是否利用您在 VB6 中手动编码的任何框架优势。EG 循环遍历字符串以定位特定字符现在就像 The_String.IndexOf("c") 一样简单面向对象)以及框架好东西,因为我变得很舒服......这会增加您的开发时间(请参阅客户理解口头禅)但是您的代码将比它在 VB6 中的效率更高。您可以简单地移植以消除错误,而不必从框架中获得任何优势。
我没有发现第 3 方 active-x 控件有任何问题。您可以添加对 FRAMEWORK 对象、COM 对象等的引用。控件供应商甚至可能具有 .Net(托管代码)版本... (见客户理解口头禅)
因此,如果您仍在阅读,那么现在我将最终告诉您,我在 VB6 的 VB.Net CONVERTED/PORTED 中的应用程序的第二次尝试是获得工作模型的原始时间的 1/3 左右......我是学习框架也是如此。(如果您对自己的技能有信心,并且多年来已经学习了几种语言,您将很快掌握 VB.Net 的要点 --- 它的 SUBTLETIES 需要一段时间。)
I must caution you that the thing that can REALLY kill you if you do not preach the CLIENT UNDERSTANDING well enough is if they want to make changes WHILE you're porting (and this is VERY LIKELY since they've been using it for awhile... I was very true in my case as well.
这里没有硬性规定。可能是更改实际上会帮助您更快地更好地理解框架,或者更改可能是一个真正的痛苦。只有您可以确定它们可能是哪种口味。如果它们看起来是 PAINFUL 类型——您可能会要求先进行转换,以便可靠地再现功能——然后返回并查看代码以进行更改并在必要时利用框架。但是,正如我所说,这里没有硬性规定和快速规定——不要让纯粹主义者告诉你不同的说法——记住他们可能就是那些说 PASCAL 将接管世界的人!