是否可以使用VB.NET启动一个完成了一半的web应用程序,然后继续使用C#

是否可以使用VB.NET启动一个完成了一半的web应用程序,然后继续使用C#,c#,vb.net,C#,Vb.net,最近,一个家伙带着一个用VB.NET创建的半成品web应用来找我,没什么大不了的,只是一个普通的网站。他的原程序员无法继续,所以他希望我完成它。问题是我不使用VB.NET编程,也不打算为这么小的项目学习它。通常我会逃避这样的事情,但我需要现金。 我应该接受这个项目并使用C#继续它,还是干脆放弃它。有没有人有过类似的经历,结果如何。可以,是的。这并不意味着它会很漂亮 你有两个选择(在我看来): 将现有代码从VB.NET转换为C#,然后完成应用程序(留下100%的C#代码库) 将VB.NET逻辑迁移

最近,一个家伙带着一个用VB.NET创建的半成品web应用来找我,没什么大不了的,只是一个普通的网站。他的原程序员无法继续,所以他希望我完成它。问题是我不使用VB.NET编程,也不打算为这么小的项目学习它。通常我会逃避这样的事情,但我需要现金。
我应该接受这个项目并使用C#继续它,还是干脆放弃它。有没有人有过类似的经历,结果如何。

可以,是的。这并不意味着它会很漂亮

你有两个选择(在我看来):

  • 将现有代码从VB.NET转换为C#,然后完成应用程序(留下100%的C#代码库)

  • 将VB.NET逻辑迁移到单独的程序集中。然后,您可以独立于C#代码构建该程序集,并将其作为其他一切的参考


  • 无论哪种方式,都可能会涉及大量的工作。

    如果您可以将其编译为自己的dll,则可以用c#完成其余的工作。或者通过一些转换器运行它,并修复所需的内容

    如果没有预编译,我认为ASP.NET站点项目可以混合使用它们所使用的语言,因为它们是在使用之前编译的


    老实说,我会以此为借口来了解VB.NET——这并不难,也值得一试。

    既然你说这是一个未完成的小项目,我就用免费的在线转换器将代码从VB.NET自动转换成C。它们有时会失败,但大多数都是显而易见的,不管怎样,你都不会相信别人完成了一半的代码,是吗?因此,您几乎必须逐行查看它的工作原理,然后才能解决任何剩余的转换问题。

    如果这是一个“网站”,您可以同时使用C#和VB.NET。请参阅ASP.NET网站中的共享代码文件夹,网址为。代码隐藏可以是任何一种语言。在处理页面时,如果需要,您可以迁移任何VB.NET代码。

    我认为这还取决于您使用的.NET framework版本,以及您可以采取的方法。
    如果是1.1版,我想你会坚持使用VB.NET,除非你能将所需的附加代码分离到一个新程序集中,并从现有项目中引用它。
    如果是.NET的更高版本,我相信您可以混合使用c#和vb.NET类,但显然不能在类和页面中混合使用语言。
    老实说,您最好还是按照建议转换成c语言,或者冒险利用它作为了解vb.net语法的机会。
    我会选择后者。

    您也可以在VB.NET中完成它。这样,您就不必担心转换或管理多种语言的代码库的变幻莫测。我知道这听起来可能不太令人愉快,但从C#跳到VB并不是那么难,甚至不是一个很大的跳跃


    注:为可能不熟悉“咬紧牙关”成语的人添加了词源。

    我还没有使用的任何工具,但是有足够多的参考文献提到了上面的代码转换器工具。也许你可以尝试一下?

    如果你可以将VB代码移动到一个单独的程序集中,并从C#调用其中的函数,那么很好——我不建议你在同一个应用程序的同一层中使用两种语言。
    您还需要考虑应用程序的支持和维护。如果在同一层中混合使用VB和C#进行维护,那么为自己或他人维护站点将比正常情况下更为复杂,从长远来看,这种复杂性甚至可能会增加客户的成本。

    您可能需要尝试SharpDevelop的代码转换器。请参阅第页的脱机代码转换器

    作为一个花时间了解VB.NET的人,我想我会反对这种“值得做”的观点除非有真正的业务需求,也值得做,因为不是所有的代码样本都是C语言的,从开发者的角度来看,它又值得做,因为你不知道下一个雇主的代码基础。我认为在Visual Studio.NET中,你总是可以将不同语言编写的模块(VB、C++和C)结合起来。在同一个项目中。如果这不可能,那就太奇怪了。毕竟,它们都产生相同的字节码。@PauliL这就是我所说的将c#分解成一个新程序集并引用它的意思。我猜在这个场景中使用“assembly”是一个糟糕的选择,模块或项目会更好。我的观点是在1.1中,在同一个项目中,不能让一个类用c#编写,另一个编写器用vb.net编写。+1查看“vb.net中允许哪些在c#中禁止”问题,获得一些提示@MarkJ:Nice find。好资源。虽然如果有一篇权威文章,所有这些答案都是这样编译和格式化的,那就太好了:(这个网页在我的浏览器中打开了99.9%,因为VB的for-loop语法不想停留在我的大脑中。)看起来很有用,这让我想到了另一个问题(因为其中一个答案指向同一个链接)