与德尔福有多大不同?还有其他一些问题……
> 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