Rob*_*sto 10 vb.net vb6 vb6-migration
2002年,我为客户做了一个非常大的VB6应用程序.它使用了很多UserControls和第三方菜单控件(用于在菜单名称旁边放置图标).它具有动态"可拆分"面板,具有多状态复选框的TreeView等.非常丰富的UI.我在这个项目上的总时间大约是500个小时,客户慷慨地让我分享了整整一个月.(是的,就是那种工作.)但他们非常高兴,他们按时付账,没有任何争议.
因此,在与他们多年没有接触之后,他们突然打电话,想知道我是否可以为他们更新应用程序.Net.我最初的反应就是拒绝,因为我不使用VB.Net.在阅读了大量有关移植等困难的帖子后,我更倾向于拒绝,可以这么说.
不过,在我告诉他们之前,我并不感兴趣大致量化其所需的努力.我很乐意听到任何做过这种事情并且感觉自己有多少工作的人.是吗:
如果您确实已经完成了这种端口,请回复.答案不一定非常准确,因为我真的只是试图将其解决.我的感觉是,努力将至少与原始的努力一样多,如果不是更多的话.但我可能是错的.谢谢你的帮助.
我做了你被问过的事情.在我的情况下,它是一个(业余)保龄球锦标赛管理系统:会员数据库管理(个人信息,国税局/奖金信息,邮件列表等等),锦标赛管理(球员任务,得分,车道票生成,支票登记奖金和边池等等)以及给定年份所有获奖者的IRS EDI生成.另外还有大约10亿个小项目散布在~50个屏幕/子屏幕上.
关键是客户理解 - 你必须清楚他们明白这不是微不足道的; 这对你来说是一次新的冒险(特别是如果你是VB.Net的新人)如果他们之前喜欢你的工作,他们很可能会给你学习VB.Net的余地/自由.
阅读以前的一些答案让我提出一些建议(基于30年的软件开发经验,最后20个作为顾问....)
如果他们提供它,就拿他们的钱.你需要将你的技能带入20世纪; 让他们付钱(再次,如果他们同意的话.)他们可能是杂志冲浪并且想要"最新的东西"没有好的理由 - 但也许他们意识到他们可以通过这个端口延长(你的)应用程序的寿命.从本质上讲,他们可能有各种愚蠢的理由......如果他们不雇用你来决定这个端口是否是个好主意.那么你可以对良好的客户关系建设中的决策过程表示任何沮丧; 但如果他们想要这样做,那么它也可能是你的工作.
把所有这些mumbo-jumbo re:C#vs VB.Net带上一粒盐.我从一开始就在VB.Net/ASPX.net(vs C#)中独家工作,并且尚未遇到VB.Net无法实现的任何功能.有一些'纯粹主义者'只是将VB.Net视为玩具.好吧,我来自于在Assembler中编写,然后是C,然后是C++(并且你可以投入Fortran,PL1以获得良好的衡量标准)然后是VB5,然后是6,然后是VB.Net ......以及NOW JAVA for Android.一切都很好......每个都有它的优点和缺点.请记住,C#和VB.Net实际上只是实现元语言中间体的GUI.您可以编写一个可怕的(通过效率或内存使用或您选择的任何指标来衡量!)在C#中编程,在VB.Net中编写一个很好的编程(反之亦然.)不要将语法语法编程好.(... C#是"优越的"????给我一个休息.)
我选择允许Visual Studio在第一次通过时完成大部分繁重的工作.然后你会经历一些错误并将其清理干净.它变得非常快.
但您需要决定是否利用您在VB6中手动编码的任何框架优势.EG循环通过字符串来定位特定字符现在就像The_String.IndexOf("c")一样简单我发现在我的情况下,我经历了几次代码并且更好地利用了类(即面向对象)以及框架好东西,因为我变得舒服......这增加了你的开发时间(参见客户理解口头禅)但是你的代码会比VB6更高效.您可以简单地移植以获取错误,而不必从框架中获取任何优势.
我没有发现第三方active-x控件有任何问题.您可以添加对FRAMEWORK对象,COM对象等的引用.控制供应商甚至可能具有.Net(托管代码)版本......或者您可能有合适的替代方法,因为您在VB6中编写了该东西.(参见客户理解口头禅)
所以,如果你还在阅读,那么现在我终于告诉你,我在VB6中的应用程序的第二次尝试从VB6转换/ PORTED是原始时间的1/3到达工作模型......我是学习框架也是如此.(如果您对自己的技能有信心,多年来学会了几种语言,您将很快获得VB.Net的要点 - 这需要花费一段时间才能获得.)
我必须提醒你,如果你没有足够好地宣传客户理解能够真正杀死你的事情,那就是如果他们想要在移植的同时进行更改(这非常可能,因为他们已经使用了一段时间.我的情况也是如此.
这里没有硬性规定.实际上,改变可能会帮助您更好地理解框架,或者更改可能是一个真正的痛苦.只有你可以确定它们可能是哪种口味.如果它们看起来像PAINFUL类型 - 您可能会要求先进行转换,以便可靠地再现功能 - 然后返回并查看代码以进行更改并根据需要利用框架.但是,正如我所说,这里没有硬性和快速的规则 - 并且不要让纯粹主义者告诉你不同的地方 - 记住他们可能是说PASCAL将接管世界的那些人!
| 归档时间: |
|
| 查看次数: |
2591 次 |
| 最近记录: |