当前位置 : 主页 > 编程语言 > delphi >

Delphi到.NET C#

来源:互联网 收集:自由互联 发布时间:2021-06-23
我已经很多时候一直是Delphi(D7)开发人员,我一直都在想.NET C#的东西.我的意思是关于不是“Delphi for .NET”或“Oxygene”技术/插件,而是干净的.NET / C#. 与德尔福有多大不同?还有其他一些问
我已经很多时候一直是Delphi(D7)开发人员,我一直都在想.NET C#的东西.我的意思是关于不是“Delphi for .NET”或“Oxygene”技术/插件,而是干净的.NET / C#.

与德尔福有多大不同?还有其他一些问题……

> Mono / SharpDevelop(我应该知道的任何其他人吗?)和Non-Free Visual Studio一样能干吗?
>在部署方面,它是如何工作的?大会框架可执行吗?
>框架(3.5最新?)的工作方式类似于Java世界的JVM,对吗?它是否负责支持/利用多核技术或Windows特定优化等技术?
> C#与Object Pascal有一些相似之处,不应该太难以适应,对吧?

谢谢.

重申第一点:你试过(免费) VIsual Studio Express Edition吗?对于很多事情,这是完全有能力的.您只是没有那么多的帮助器/设计器,也没有插件支持(对于IDE扩展).

第二个:排除某些nasty tricks,你不能从.NET创建一个纯本机可执行文件;它在很大程度上依赖于本地机器上可用的框架.程序集只是IL的一个包,可以包含(通常)在dll中,或者引导到加载程序集入口点的exe中;但在这种情况下,exe只是一个简单的加载器加上常规程序集.

实际上,CLR更像是JVM; “框架”实际上只是BCL的等价物.主要的MS框架CLR肯定有一些Windows特定的优化,但其他运行时/框架(compact,micro,Silverlight,Mono)将有不同的优化.

多核 – 你有完整的线程支持(自己动手) – 但主要的自动多核支持(希望)将在.NET 4.0中使用“parallel extensions”工作.

最后一点:确实应该非常熟悉.实际上,如果你想进行一些比较,“reflector”(免费)可以采用编译程序集,并在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

网友评论