从.NET到Delphi,Delphi上的ERP

emr*_*ray -7 .net c# delphi

我学过.NET编程.我开始(严肃)编程已经4年了,我获得了VBA,JavaScript但主要是C#的经验.我花了很多时间试图掌握良好的编码实践,面向对象等.

现在终于有了工作.这项工作是每天修复/升级ERP.创建报告,有时可能是新的东西.我完全没有Delphi的经验,没有动力去学习它,特别是当人们搬到时.来自Delphi,而不是反向,我的经理期望:)

问题是,是否有任何工具可以编写C#代码并编译到此对象pascal或其他任何内容中.提前致谢.

Lar*_*tig 28

如果你可以编程,你可以用Delphi编程.它与C#等语言共享最常见的现代编程范例.如果您无法快速完成从C#到Delphi的转换,则需要花一些时间学习一般编程概念.

如果您要尝试维护用一种语言编写的大型系统(任何语言,不一定是Delphi),而拒绝理解应用程序编写的语言则不太可能成功.同样,如果你习惯于张贴你刚刚被雇佣支持的系统的糟糕架构,以及你的经理的技术能力不足,你很可能长期坚持任何工作.即使建筑真的很糟糕而且你的经理是一个真正的白痴也是如此.

坦率地说,我无法理解如何在不了解Delphi的情况下聘请大型Delphi系统,或者为什么在必须有更多需要C#的工作时选择接受这项工作?

  • 所有程序员都曾经历过傲慢和傲慢的罪恶.他会以某种方式学习. (7认同)
  • 这一定是当地的管理实践。 (2认同)

Mor*_*tel 16

"我完全没有Delphi的经验,也没有学习它的动力[...]问题是,是否有任何工具可以编写C#代码并编译成这个对象pascal或者它是什么."

大声笑.

一个优秀的程序员/应该/能够在需要时快速适应不同的语言和工具.

克服你的偏见,开始学习德尔福.


Joh*_*mas 8

Imho,这样的工具弊大于利.这是因为:

  1. 所有人的拳头因为在某些领域Delphi 比C#更具表现力.例如,请看这里快速浏览一下.请注意,在上面的StackOverflow问题中,Delphi是迄今为止最受欢迎的答案.问题听起来是"你最喜欢的语言是什么......"
  2. Delphi是一种用于高性能应用程序的语言.与.NET相比,它可以生成更高性能的可执行文件.(例如,这里这里看到一个非常小的(imho)集合).拥有这样的转换工具将简化所有Delphi的功能.另外,不要忘记Delphi有明确的内存管理.
  3. 当然,存在所有维护问题:错误修复,GUI一致性等.

此外,关于每个人(以及一切)从Delphi到.NET,我谦虚地认为你有点偏离这里.当然(正如你所说)你没有使用Delphi的经验(本身并不是坏事),但请相信我,在StackOverflow以及Delphi的论坛上(在Embarcadero的网站和其他地方),有很多新用户德尔福 从他们的问题中很容易发现它们.

此外,为了具有建设性,我建议你,为了开始,看看Delphi的Wiki,这是一个很好的门户网站,为新手收集或多或少的有趣链接.还有Delphi Basics这是一个非常好的资源.

首先Delphi的新闻组,这是一个非常宝贵的信息资源 - 随时可以在那里发布,也可以在StackOverflow上发布.请注意,在Delphi的论坛上,您将获得使用NTTP新闻阅读器的最佳体验.

此外,如果您想在Delphi和托管代码之间进行双向通信,可以在这里这里查看.你也可以"直接"使用.NET程序集(例如通过使用COM) - 但请相信我,只有在真的有必要时才这样做,因为你的非常小(我的意思是exe大小)和快速应用程序很可能会变慢并且将取决于一个大的运行时 - 如果你的应用程序作为一个收缩包裹软件出售,这是非常糟糕的事情.但是,当然,有些情况下.NET依赖不会受到伤害.

FTR,我们有一个用Delphi开发的ERP,现在已经生产了九(九)年,并且不断更新.但是,即使我们能够轻松地做到这一点,我们也不会想任何改变我们开发工具的时刻.但当然,YMMV.


Tru*_*ill 6

我是Delphi的前开发人员,现在主要在.NET/C#中工作.

在Delphi中编写可维护,设计良好的代码非常简单.它是一种强类型的OO语言.虽然一些Delphi开发人员具有RAD心态(按钮下的代码),但您也可以在C#中实现.模型 - 视图 - 控制器及其变体当然是可能的.您甚至可以使用DUnit进行测试驱动.

如果您使用的是.NET版本的Delphi,则会有Delphi语言Reflector加载项.这将允许您编写C#代码,将其编译为IL,并在Delphi中对其进行反汇编.这对于大规模开发可能不实用,但可能是一种学习辅助.

对于较旧的(Win32)版本的Delphi,您可以选择较少的选项.你需要学习德尔福或找到另一份工作.真的,你在.NET/Java上失去的主要是垃圾收集.但是,如果你认为每个对象都是实现IDisposable,那就不难了.或者你可以使用引用计数接口,但我不建议每个类.主要的学习曲线将是VCL,它与.NET FCL有许多相似之处.

优秀的开发者通常知道多种语言 将其视为一种学习体验.


And*_*dré 5

你可以将C#代码转换为Oxygen(= Delphi Prism =几乎是Delphi):http: //code.remobjects.com/p/csharptoxy/downloads/