[英]Delphi to .NET + C#
我已经很多时候一直是Delphi(D7)开发人员了,我一直在想.NET + C#的东西。 我的意思是关于不是“Delphi for .NET”或“Oxygene”技术/插件,而是干净的.NET / C#。
与德尔福有多大不同? 还有其他一些问题......
谢谢。
重申第一点:您是否尝试过(免费) VIsual Studio Express Edition ? 对于很多事情,这是完全有能力的。 您只是没有那么多的帮助器/设计器,也没有插件支持(对于IDE扩展)。
第二个:排除一些讨厌的技巧 ,你不能从.NET创建一个纯本机可执行文件; 它在很大程度上依赖于本地机器上可用的框架。 程序集只是IL的一个包,可以包含(通常)在dll中,或者引导到加载程序集入口点的exe中; 但在这种情况下,exe只是一个简单的加载器加上常规程序集。
实际上,CLR更像是JVM; “框架”实际上只是BCL的等价物。 主要的MS框架+ CLR肯定有一些Windows特定的优化,但其他运行时/框架( compact , micro , Silverlight , Mono )将有不同的优化。
重新多核 - 你有完整的线程支持(自己动手) - 但主要的自动多核支持(希望)将在.NET 4.0中使用“ 并行扩展 ”工作。
最后一点:确实应该非常熟悉。 实际上,如果你想进行一些比较,“ 反射器 ”(免费)可以采用编译的程序集,并在C#或delphi(或其他几个)中显示代码。
[更新问题]
IL =中级语言; .NET不会编译为本机CPU指令,而是编译为在运行时变为CPU指令的中间内容(在逐个方法的基础上编译为“及时”(JIT))。 这意味着JIT编译器可以为本地计算机优化相同的IL。 您可以使用NGen提前完成此操作。
CLR =公共语言运行时; 本质上是VM
BCL =基类库; 这组课程共享了我的许多应用程序
重新部署:首先,在客户端安装.NET框架;-p
之后 - 各种选择。 在最简单的级别,您可以将exe / etc复制到本地计算机上并运行。 例如,我使用“robocopy”将代码推送到Web服务器。
对于复杂客户端应用程序的完整本地安装,msi是一个选项(完整的VS IDE将帮助您完成此操作)。
对于简单的客户端,您可以使用ClickOnce - 它将应用程序打包到一个提供自我更新等功能的签名包中,并允许您声明所需的安全性(完全信任等)。 Express Edition允许您创作ClickOnce包。 ClickOnce甚至可以在用户无法安装应用程序的锁定客户端上使用,因为应用程序是隔离的并且是沙盒。
最后,您可以从网络共享中运行.NET应用程序,但存在一些安全隐患:“代码访问安全性”层不会给网络共享“完全信任”(尽管最近有一些更改,以便映射(F:etc)共享是可信的)。 因此,您需要在每个客户端使用CASPOL来信任代码。 ClickOnce会更容易;-p
作为Marc答案的补充,在从D6过渡到C#期间,这些是令人愉快的惊喜:
小小的不愉快的惊喜:
嗯,这就是我现在所能想到的,几年之后。
Delphi是由编写C#的同一个人编写的,因此该语言的整体结构不会是最艰难的过渡。 您还必须记住,C#是C类,而Delphi是Pascal。 我在使用C#后尝试了Delphi,这是一个非常艰难的过渡。 首先没有垃圾收集,第二个像@Alan说全局变量很难。 你确实有C#的继承,但你不需要声明Form是TForm等的变量。第三,部署是一个巨大的痛苦。 使用.Net和GAC,您真的只需构建您的解决方案即可。 第四,这是对继续支持德尔福的更大担忧。 它现在是第三家公司。 我认为采用反对方式将Delphi转换为C#会更容易。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.