将大型ASP.NET VB.NET项目转换为C# - 递增?

时间:2008-09-18 13:53:55

标签: c# asp.net vb.net

正在寻找一些方法来将现有的大型ASP.NET VB.NET项目逐步转换为C#,同时仍然可以将其部署为单个Web应用程序(目前每周部署一次)。

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

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

有什么想法吗?

10 个答案:

答案 0 :(得分:5)

从业务逻辑开始,逐步完成页面。将所有内容封装到C#库中,您可以将其添加为VB.NET站点的引用。

一旦你的所有后端移植并进行了测试,你就可以开始制作单独的页面,但我建议你在完成所有转换之前不要推出。

答案 1 :(得分:4)

您可以使用VB代码和C#代码保存App_Code目录。如此有效,当你有空余时间转换它时,你可以非常缓慢地完成它。

我目前在我的App_Code目录中都有VB.Net和C#代码,在我的业余时间我转换为VB.Net代码或任何时候我必须回到VB.Net的页面并弄乱它我转换它到C#。

Easy Peasy和Microsoft让它们在同一个应用程序中同时拥有VB.NET和C#时更加出色。这是他们可以在整个应用程序制作过程中实现的最佳创意之一。

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

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

然后在App_Code目录中添加名为VB_Code的文件夹和另一个名为CS_Code的文件夹。然后把你所有的vb / C#代码扔进你的文件夹和你的好东西。

答案 2 :(得分:3)

像我喜欢的端口一样吗?我并没有真正看到这一点以及你将为所有的努力获得什么。也许写任何新功能或重构缓慢/错误的现有逻辑/服务层到c#但是对于网页我没有看到80/20的好处。

答案 3 :(得分:1)

保留旧的东西在VB中。 C#中的所有新东西。过渡可能很慢但你不会浪费时间。在空闲时间,在C#中更改内容。

答案 4 :(得分:1)

我通过以下方式完成了一个项目:

  1. 创建C#类库
  2. 从VB Web应用程序
  3. 引用C#类库
  4. 在C#库中创建类后面的代码
  5. 更新aspx / ascx文件中的“Inherits”属性以引用C#类(此文件仍存在于原始VB项目中)
  6. 它工作得有点好;有时候你需要浏览多个项目以查看单个页面/控件,这有点痛苦,但它确实让我做了你想做的事情。

答案 5 :(得分:1)

您只需在解决方案中创建一个新的c#类库项目。在这里一次重新编写几个类,然后替换主项目中的vb类。

但说实话我会同意,除非你试图学习c#或者只是真的不喜欢vb或者只是觉得无聊,否则我看不到它的好处。

答案 6 :(得分:1)

我已经成功地使用Reflector(它是免费的)来获取vb项目的dll,并将代码视为C#。局部变量并不总是翻译,但您可以比较翻译和重构事物。

答案 7 :(得分:1)

尝试#Develop。我认为这是将ANY .net支持转换为任何.net支持语言的最佳方式。

其他工具只转换代码,但这会转换整个项目。

答案 8 :(得分:0)

可以做到。好吧,我希望它可以完成,因为我在传统的ASP.net应用程序上一点一点地做这件事。您一次只能更改1个Webform。您可能会遇到的困难是我在app代码文件夹中似乎没有混合语言,因为它们是一起编译的。

答案 9 :(得分:0)