我已经做了很多次德尔菲(D7)的开发人员了,我一直对.NET + C#的东西很好奇。我指的不是“Delphifor.NET”或"Oxygene“技术/插件,而是干净的.NET/C#。
它和德尔菲有多大的不同?还有其他问题..。
谢谢。
发布于 2008-10-26 08:19:26
关于第一点:您试过(免费) VIsual工作室快报版吗?对于很多事情来说,这是完全可以做到的。您只是没有那么多的助手/设计人员,也没有插件支持(用于IDE扩展)。
第二个问题:不包括一些下流伎俩,您不能从.NET中创建纯本地可执行文件;它严重依赖于本地机器上可用的框架。程序集只是一个IL包,可以包含(通常)在dll中,也可以引导到加载程序集入口点的exe中;但是在这种情况下,exe只是一个简单的加载程序加上一个常规程序集。
实际上,CLR更像JVM;“框架”实际上就是BCL的等价物。主要的MS framework+CLR当然有一些特定于Windows的优化,但是其他运行时/框架(紧凑、微、银光、单声道)会有不同的优化。
Re multi您有完整的线程支持(为自己做的)-但主要的自动化多核支持将(希望)在.NET 4.0与"并行扩展“工作。
关于最后一点:应该是非常熟悉的。实际上,如果您想做一些比较,"反射器“(免费)可以使用一个已编译的程序集,并向您展示C#或delphi (或其他几个)中的代码。
更新问题
IL =中间语言;.NET不编译到本机CPU指令,而是编译到运行时的CPU指令(在逐方法的基础上编译“刚好及时”(JIT) )。这意味着JIT编译器可以为本地机器优化相同的IL。您可以使用NGen提前完成此操作。
CLR =公共语言运行时;本质上是VM
BCL =基类库;这组类共享我的许多应用程序
重新部署:首先,在客户机上安装.NET框架;-p
之后-各种各样的选择。在最简单的级别上,您可以将exe/etc复制到本地计算机上并运行。例如,我使用“机器人复制”将代码推送到web服务器。
对于复杂客户端应用程序的完全本地安装,msi是一个选项(完整的VS IDE将帮助您完成此操作)。
对于简单的客户端,您可以使用ClickOnce -它将应用程序打包到一个有符号的包中,提供自我更新等功能,并允许您声明您需要什么安全性(完全信任等)。快捷版允许您编写ClickOnce包。ClickOnce甚至可以在用户无法安装应用程序的锁定客户端上使用,因为应用程序是孤立的和沙箱的。
最后,您可以在网络共享上运行.NET应用程序,但是存在一些安全问题:“代码访问安全”层不会给网络共享“完全信任”(尽管最近对此做了一些更改,因此映射(F: etc)共享是可信的)。因此,您需要在每个客户端使用CASPOL来信任代码。ClickOnce会更容易;-p
发布于 2008-10-26 08:57:21
除了马克的回答之外,在我从D6到C#的过渡过程中,这些都是小小的惊喜:
令人不快的小惊喜:
嗯,这就是我现在所能想到的,几年后。
发布于 2011-05-25 16:14:35
Delphi是由编写C#的同一个人编写的,所以语言的总体结构不会是最艰难的过渡。您还必须记住,C#是C类的,而Delphi是Pascal。我试着在使用C#后寻找德尔福,这是一个非常艰难的转变。第一,没有垃圾收集,第二,就像@Alan说的全局变量是困难的。您确实有C#的继承,但是您不需要声明表单、TForm变量等等。第三,部署是一个巨大的痛苦。使用.Net和GAC,您只需构建您的解决方案和off。第四,这是对德尔菲继续支持的更大担忧。现在是第三家公司了。我认为使用Delphi C#的反对方式要容易得多。
https://stackoverflow.com/questions/237715
复制相似问题