热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

C#学习教程:移植VB.NETWinforms应用程序到C#分享

移植VB.NETWinforms应用程序到C#将VB.NETwinforms应用程序移植到C#有什么“好”的资源吗?我确信有软件只是翻译代码,但我希望同时重构代码。保持它当前的fo

移植VB.NET Winforms应用程序到C#

将VB.NET winforms应用程序移植到C#有什么“好”的资源吗? 我确信有软件只是翻译代码,但我希望同时重构代码。 保持它当前的forms是有问题的,因为它使用了VB.NET允许的一些“糟糕的设计”实践,并且会进一步使未来的维护变得复杂。 这里有没有人经历过这个过程,你是怎么做的? 你使用翻译/重构方法了吗? 您是否只是使用最终产品来重新创建function而不查看大部分当前的代码库? 你(集体)推荐什么?

更新

正如我告诉Grauenwolf一样,用当前语言保留它会出现以下问题:

对于投票问题的任何人,我都不确定你为什么这样做; 关注的不是我是否应该将其留在VB.NET中; 关注的是现在没有移植它的未来成本是多少。 如果我要花费大量精力修复它,为什么不采取额外的步骤并使其可以为未来的程序员维护?

作者注 :我多年没有看过这个问题,最近有一个回复,所以我把’回答’移到了问题中并删除了’回答’(因为它不是真的答案)。

根据我使用混合VB和C#项目的大型应用程序的经验,我建议将其保留在VB.NET中。 如果设计有问题,那么修复它们,但将整个事物转换为C#听起来像是一个混乱,不必要的分心。

两种语言之间的非风格差异非常小,因此很难看到强制转换的function需求。 (Visual Studio 2003中有一个旧的错误,它排除了某些项目引用链,它们以特定的方式混合了C#和VB项目,但这是我遇到的唯一一个实际障碍。)

个别开发者肯定倾向于偏爱一种或另一种风格偏好,但完全转换是为了尝试不同风格的语法糖而做很多工作。

如果你使用像Reflector或Anakrino这样的东西,它的输出是基于IL而不是原始来源。 无论它是否产生更好的代码都可以争论……但无论如何你可以尝试一下。 ?

保持它当前的forms是有问题的,因为它使用了VB.NET允许的一些“糟糕的设计”实践,并且会进一步使未来的维护变得复杂。

你认为C#不会允许糟糕的设计?

问题不是VB,问题是编写它的人和那个拒绝修复它的人。 所以退后一步,深呼吸,然后开始修复代码。 谁知道,你可能会发现其中一些“糟糕的设计实践”确实很有意义。

在我的工作中,我们使用了developerfusion的翻译器,但没有自动化(只需翻译一段代码或类,然后手动将结果粘贴到c#项目中)。

Reflector是一个很棒的工具,但是在阅读lambda函数时你会发现一些问题。

对于重构,我们尝试过的最好的工具是Refactor Pro 。

我已经使用C-Sharpener对我们的一些应用程序进行转换,但它远非完美。 它转换了大约95%的代码,当我手动修复剩余的5%时,我最终重构了。

我有两年的VB.NET经验,但现在我只在日常开发中使用C#。 在我尝试使用VB.Net到C#将我的VB.NET代码转换为C#之前,我从它和本书中学到了东西。

哇哇! 我是最后一个抓住这些东西的人。 我在WinForms中有一个非常大的VB.NET代码,并已被分配将其移植到C#WinForms 。 我对VB有0知识,但必须完成任务。 我使用T elerik在线代码转换器将所有VB业务逻辑转换为C#。 转换器是一个愚蠢的转换器,我遇到了大约5000个错误,主要是混淆了[]() ,引用参数和线程的问题,以及什么不是。 编译器(VS 2013)甚至无法找出单个构建中的所有错误。 我不得不花了两个月的时间来修复这些错误并一次又一次地构建项目。 我将WinForms UI复制到C#Winforms UI – 这不是什么大问题,现在我一直在调试这两个代码以查看输出。

我想告诉它现在已经4个月了,我仍在完成这个项目。 我对这次转变的经历非常痛苦,不愿意推荐任何人。

上述就是C#学习教程:移植VB.NET Winforms应用程序到C#分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—编程笔记


推荐阅读
  • 解决PHP与MySQL连接时出现500错误的方法
    本文详细探讨了当使用PHP连接MySQL数据库时遇到500内部服务器错误的多种解决方案,提供了详尽的操作步骤和专业建议。无论是初学者还是有经验的开发者,都能从中受益。 ... [详细]
  • 本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ... [详细]
  • 使用C#开发SQL Server存储过程的指南
    本文介绍如何利用C#在SQL Server中创建存储过程,涵盖背景、步骤和应用场景,旨在帮助开发者更好地理解和应用这一技术。 ... [详细]
  • Python 异步编程:深入理解 asyncio 库(上)
    本文介绍了 Python 3.4 版本引入的标准库 asyncio,该库为异步 IO 提供了强大的支持。我们将探讨为什么需要 asyncio,以及它如何简化并发编程的复杂性,并详细介绍其核心概念和使用方法。 ... [详细]
  • 本文总结了2018年的关键成就,包括职业变动、购车、考取驾照等重要事件,并分享了读书、工作、家庭和朋友方面的感悟。同时,展望2019年,制定了健康、软实力提升和技术学习的具体目标。 ... [详细]
  • 本文详细介绍了如何使用PHP检测AJAX请求,通过分析预定义服务器变量来判断请求是否来自XMLHttpRequest。此方法简单实用,适用于各种Web开发场景。 ... [详细]
  • 深入理解 SQL 视图、存储过程与事务
    本文详细介绍了SQL中的视图、存储过程和事务的概念及应用。视图为用户提供了一种灵活的数据查询方式,存储过程则封装了复杂的SQL逻辑,而事务确保了数据库操作的完整性和一致性。 ... [详细]
  • 数据库内核开发入门 | 搭建研发环境的初步指南
    本课程将带你从零开始,逐步掌握数据库内核开发的基础知识和实践技能,重点介绍如何搭建OceanBase的开发环境。 ... [详细]
  • 本文详细介绍了如何使用 Yii2 的 GridView 组件在列表页面实现数据的直接编辑功能。通过具体的代码示例和步骤,帮助开发者快速掌握这一实用技巧。 ... [详细]
  • 本章将深入探讨移动 UI 设计的核心原则,帮助开发者构建简洁、高效且用户友好的界面。通过学习设计规则和用户体验优化技巧,您将能够创建出既美观又实用的移动应用。 ... [详细]
  • 本文详细介绍了如何在 ASP 中实现字符串截取功能。代码简洁高效,适用于需要对标题或文本进行长度限制的场景,如页面布局中标题显示字符数的控制。 ... [详细]
  • 资源推荐 | TensorFlow官方中文教程助力英语非母语者学习
    来源:机器之心。本文详细介绍了TensorFlow官方提供的中文版教程和指南,帮助开发者更好地理解和应用这一强大的开源机器学习平台。 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 本文详细介绍了 Dockerfile 的编写方法及其在网络配置中的应用,涵盖基础指令、镜像构建与发布流程,并深入探讨了 Docker 的默认网络、容器互联及自定义网络的实现。 ... [详细]
  • 本文详细介绍了Akka中的BackoffSupervisor机制,探讨其在处理持久化失败和Actor重启时的应用。通过具体示例,展示了如何配置和使用BackoffSupervisor以实现更细粒度的异常处理。 ... [详细]
author-avatar
税绍彬_396
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有