将大型ASP.NET VB.NET项目转换为C#-逐步进行?

时间:2020-03-06 14:21:24  来源:igfitidea点击:

正在寻找一些将现有的大型ASP.NET VB.NET项目增量转换为C的方法,同时仍能够将其部署为单个Web应用程序(当前每周部署一次)。

我的想法是只创建一个新的CASP.NET项目并缓慢移动页面,但是我从未尝试过这样做,并且在部署过程中以某种方式将其与另一个ASP.NET项目合并。

(澄清:大型ASP.NET VB.NET项目在VS IDE中是绝对的狗...)

有什么想法吗?

解决方案

我喜欢港口吗?我真的看不出重点,也看不到所有努力将带来什么。也许编写任何新功能或者将呆滞的/不良的现有逻辑/服务层重构为隐含的,但是对于网页,我看不到80/20的好处。

可以办到。好吧,我希望可以在旧版ASP.net应用程序上一点一点地做到这一点。我们一次只能更改1个Webform。我们可能会遇到困难的地方是,由于它们被编译在一起,因此在应用程序代码文件夹中似乎看不到混合语言。

将旧内容保留在VB中。 C#中的所有新内容。迁移可能很慢,但我们不会浪费时间。在空闲时间,使用C#进行更改。

从业务逻辑开始,然后逐步进入页面。将所有内容封装到Clibraries中,我们可以将其添加为对VB.NET站点的引用。

移植完所有后端并对其进行测试后,就可以开始制作单个页面了,尽管我建议我们在完成所有转换之前不要推出。

我通过执行以下操作来完成一个项目:

  • 创建一个C#类库
  • 从VB Web应用程序引用C#类库
  • 在C#库中创建类背后的代码
  • 更新aspx / ascx文件中的" Inherits"属性以引用C#类(此文件在原始VB项目中仍然存在)

效果还不错;有时会有些痛苦,因为我们现在必须浏览多个项目才能查看单个页面/控件,但这确实让我做了我们想做的事情。

我们可以在解决方案中简单地创建一个新的cclass库项目。在这里一次重新编码几个类,然后在主项目中替换vb类。

但老实说,我同意除非我们尝试学习cor真的不喜欢vb或者感到无聊,否则我不会看到好处。

允许我们在App_Code目录中保留VB代码和Ccode。如此有效,当我们有空余时间进行转换时,可以非常缓慢地进行操作。

目前,我的App_Code目录中同时包含VB.Net和Ccode,并且在业余时间我会转换为VB.Net代码,或者在任何时候必须返回到VB.Net的页面并弄乱它时,都会将其转换为C#。

Easy Peasy和Microsoft在允许我们同时将VB.NET和Con置于同一应用程序时,使它变得更好。这是他们可以在整个应用制作过程中实施的最好的想法之一。

如果要将两个代码目录都添加到一个目录中,请将其添加到Web.config中

<compilation>
<codeSubDirectories>
    <add directoryName="VB_Code"/>
    <add directoryName="CS_Code"/>
</codeSubDirectories>
</compilation>

然后在App_Code目录中添加一个名为VB_Code的文件夹和另一个名为CS_Code的文件夹。然后把所有的vb / Ccode都放到文件夹中,这样就好了。

如果我们有$ 179,就可以了。

  • http://www.tangiblesoftwaresolutions.com/Product_Details/Instant_CSharp.htm

当然,也有免费的软件转换器。

  • http://www.google.com/search?q=convert+vb.net+csharp

我已经成功用Reflector(免费)提取了vb项目的dll,并将代码视为C#。局部变量并不总是翻译,但是我们可以在进行比较时比较翻译和重构事物。