它在ASP.NET代码中使用多种语言的页面可以接受吗?

时间:2008-10-24 13:19:38

标签: c# asp.net vb.net

出于这个问题的目的,代码库是一个ASP.NET网站,它有多个用C#和Visual Basic .NET编写的页面。主要语言是C#和Visual Basic .NET网页,它们分叉到项目中,因为需要相同的功能。

是否应该花时间实际重写这些页面,包括再次进行测试和调试周期,或者认为是否可以接受?

5 个答案:

答案 0 :(得分:6)

您应该记住以下三点:

  1. 如果不是'破了就不要修理它。
  2. 团队化妆和熟练程度
  3. 编码标准和统一性
  4. 首先,就像许多人说如果它没有被破坏,那么为什么要经过改变代码库的努力。您可能会在语言转换期间添加错误,即使它们都是在ASP.Net中运行的.Net语言。

    其次,我将假设有一个有效的理由来分支项目并使用VB.Net而不是继续使用C#。这种语言变化背后的原因是什么?这些原因不再有效吗?考虑导致分叉为不同语言的假设的有效性。

    第三,所有团队成员都能胜任C#吗?如果几个团队成员不熟练,那么将所有代码迁移到C#可能会带来负担。

    最后,我建议采用编码标准,并从现在开始将所有新开发重点放在一种语言中。除了这些标准,您可以考虑一项策略,规定如果您需要修改/修复VB.Net页面,则应将此页面迁移到C#。

    此时VB.Net页面不再“未被破坏”,您最有可能必须经历调试/测试阶段才能验证修复/更改。因此,您要将迁移成本添加到任何错误修复中。通过这种方式,您可以将代码慢慢迁移到C#,而不会产生大量的一次性费用。

    如果您不得不花费必须迁移页面以及任何错误修复或更改VB.Net页面,那么请注意这一点。您很可能没有时间或资源来迁移所有VB.Net页面。由于大规模迁移需要更多时间,并且明智地要求您在迁移过程中停止VB.Net页面上的所有工作/修复。这可能是一个指标,根据您的业务需求,是否可以选择迁移到C#。

答案 1 :(得分:5)

你的建议是部分改写。

如果现有代码的功能或体系结构存在严重错误,我只能提倡重写。

对C#over VB的偏好不足以证明IMO。

答案 2 :(得分:1)

您可能不想这样做。 在这种情况下,可维护性将非常困难,因为团队通常拥有单一语言的专业知识。

我们这里有项目使用C#为某些页面编写而VB.Net用于其他页面。 建立团队来维护这些项目很困难。

亲切的问候, 阿希什

答案 3 :(得分:1)

要回答第一个问题,是的,它完全可以接受,并得到微软的支持。

你应该改变吗?如果你的开发人员了解项目情况,那么我认为你很好,但是如果你开始看到无法处理VB的namspaces,引用或开发团队的问题(不太可能)。然后我会考虑重写。

但是如果代码在那里工作,通常很难证明重写是正确的。

答案 4 :(得分:1)

得到了很好的支持。

对于页面,它没有任何区别。每个页面都是单独编译的。

对于App_Code目录中的代码,它是基于每个文件夹编译的。所以C#文件和VB.NET文件需要放在各自独立的子文件夹中。这些子文件夹需要在web.config的编译部分中注明,以便编译器知道以不同方式对待它们。

<configuration>
<system.web>
    <compilation>
        <codeSubDirectories>
            <add directoryName="VB_Code"/>
            <add directoryName="CS_Code"/>
        </codeSubDirectories>
    </compilation>
</system.web>

这是一个不错的链接。 Using VB.NET and C# in the App_Code folder

我发现的唯一缺点是Intellisense似乎在两个App_Code子文件夹之间不起作用。在网页intellisense工作正常。