帮助简化COBOL程序员到.Net。你有什么建议?

时间:2009-09-20 21:38:29

标签: .net oop cobol

我有许多正在转向.NET的COBOL程序员。我发现很多人都在努力采用/理解OO编程原理。我没有任何COBOL经验,所以我找到几个相似之处的能力非常有限。

我无法说“忘记你二十年的经验。这都是全新的”,但我没有类比和工具可以做得更好。

您建议我帮助他们了解.NET世界吗?

8 个答案:

答案 0 :(得分:10)

我以前遇到过这个问题,因为我是团队领导,而且我有五个COBOL开发人员;他们在编程方面的经验比我有4倍。

正如您所注意到的,您必须从OO编程基础开始。然后,如果可以,尝试结对编程(一个.NET dev +一个COBOL dev)。这就是我正在做的事情,而且效果非常好。

这也可能有用:Microsoft .Net for COBOL programmers

答案 1 :(得分:8)

解决这个问题的方法是从COBOL程序员的角度思考问题。这是他们穿越的一个很大的距离所以尽可能地伸出脚凳来帮助他们走路是最重要的。

大多数COBOL程序员几乎没有桌面体验。没有OOP经验。可能很少或没有网络。等

但是,如果他们编写了结构化的COBOL代码,他们对函数的内容有一个非常好的感觉。尽管COBOL段落与功能并不完全相同,但大多数优秀的COBOL程序员都会很快掌握这一概念。建立在已经钻探了20年的结构化编程概念的基础上。结构导致了导致OOP的功能。

拥有这么多经验的大多数COBOL人员应该非常了解业务逻辑。用那个。尽快摆脱伪造的“正方形和三角形是形状”的OOP示例,并使它们专注于他们可能已经非常舒适的事物 - 例如储蓄和检查是账户,他们有这些共同点......等等。

他们肯定会理解基于文件的程序。在开始时忘记花哨的GUI东西。让他们编写模仿他们在COBOL中所做的事情的程序,但是将它们简化为OOP概念。他们了解记录。记录与类别没有很大差异的结构没有太大差别。等等。

大多数COBOL程序员都会理解事务处理。用那个。它应该提供丰富的材料用于教授OOP和许多不同的.Net(或任何其他技术)API。

指派一位经验丰富的.Net开发人员作为他们的导师。让他做代码审查,提供建议等。不要只是向COBOL人员扔几本书和一大堆新的MS软件,并期望他们游泳。这是灾难的处方。他们需要一些手握和鼓励。但你可能会在该组中发现一些可靠的.Net人员保持你对当前系统的了解。

答案 2 :(得分:6)

首先让他们使用对象,而不是期望他们自己提出一个伟大的系统范围的OO设计。

你可以做我的CS教授介绍所做的 - 设计类并为它们存根 - 只是让方法实现让他们弄明白。这样,他们就有机会习惯语法,使用对象,范围等,而不需要理解优秀OO设计的复杂性。

答案 3 :(得分:2)

[声明 - 由COBOL供应商发布]

作为最近一直试图掌握COBOL和.NET的人(特别是作为一个长期失败的程序员!),我发现最困难的部分是理解.NET框架。调用方法的“单词”非常简单,找到你想要使用的方法很难!VS中的Intellisense很棒,但你仍然需要知道从哪里开始!

我还会指向这个网站,其中有一个很好的COBOL对比C#& amp; VB:http://www.codeproject.com/KB/net-languages/COBOLvsVBvsCSharp.aspx

Micro Focus正在做一些非常有趣的事情,使COBOL更加友好,但我最好不要在这里详细介绍。请查看Micro Focus网站以获取更多信息。

答案 4 :(得分:1)

取决于您希望他们做什么。这可能是一个陡峭的学习曲线。

你需要尽量减少学习曲线。

如果我没记错的话,COBAL是一个单词语法(不像C那样使用符号来包含它的结构),所以VB.Net可能是你的团队可以最快速地获取的语言。

然后看看http://www.learnvisualStudio.net<它有很多视频

你会感兴趣的主要系列是

Visual Basic 101

Visual Basic 201 - 面向对象的编程和设计模式

这将向您介绍语法和稍微进入Object Oreinted Programming。

然后查看其他视频的dataaccess(ADO)慢慢提升技能水平。这不会是一个过夜的事情

HTH

戴夫

答案 5 :(得分:1)

我曾在一个经验丰富的COBOL开发人员的.Net项目上工作过一次,我一次又一次注意到的事情是假设不需要检查数据类型(当你有COBOL经验时这是可以理解的) ,其中所有东西都只是一串与某种格式相关的字符):其他东西很快被拾取,但这种习惯需要很长时间才能消亡。

答案 6 :(得分:0)

这不是一个真正的答案,只是我发现有用的链接。大多数面向对象的教材使用相同的旧概念来教授对象和类 - 动物层次结构等......我发现这篇文章在某种意义上令人耳目一新,它开始于真正的果汁:如何将系统分解为它的初始类和对象:http://archive.eiffel.com/doc/manuals/technology/oosc/finding/page.html

答案 7 :(得分:0)

最重要的是要记住.NET不是一种编程语言。 COBOL是一种编程语言。

如果您想让COBOL程序员高效地生成.NET应用程序,请让他们通过使用这些语言的一些小应用程序进行原型设计来审查和评估VB.NET和IronPython。一旦他们尝试了VB.NET和IronPython,让他们选择使用哪种语言,并用所选语言组织一些培训。

无论你做什么,不要让他们使用C#,直到他们证明他们可以处理VB.NET或IronPython。如果您拥有一系列使用C ++,Java和C#的复杂,技术,标点符号的计算机语言,那么COBOL的另一端则是简单,面向业务和纯文本。 VB.NET和IronPython都更接近COBOL的终端。

如果我在经营这家商店,我会跳过eval并开始使用IronPython销售它们,因为我认为从长远来看这是一个更好的选择,并且可以在Linux / UNIX项目或Java项目上利用Python技能,以及.NET。

重要的是让这些人编写和调试一些在.NET上运行的实际代码,以便他们能够理解它,并且可以找到一些合理的方法来处理他们熟悉的东西,如MOVE CORRESPONDING和等级88s。