Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
与delphi/realbasic for windows应用程序相比,c#有哪些优势_C#_.net_Delphi_Realbasic_Xojo - Fatal编程技术网

与delphi/realbasic for windows应用程序相比,c#有哪些优势

与delphi/realbasic for windows应用程序相比,c#有哪些优势,c#,.net,delphi,realbasic,xojo,C#,.net,Delphi,Realbasic,Xojo,有人编写过比.NET更大的应用程序吗? 人们过去常常批评VB6的2MB运行时,但它很少让它附带的应用相形见绌 今天,尽管我的机器上安装了Vista,但我不得不下载35MB的3.5框架,然后重新启动,然后试用一个只有这个大小一半的应用程序 考虑到源代码安全性的降低,我想知道为什么有人会在.NET中开发windows应用程序,而不是使用允许构建本机可执行文件的语言 在编写在Windows上运行的应用程序时,.NET有什么优势可以掩盖这些缺点?使用它开发复杂(和简单)应用程序的“简单性”。框架中已经为

有人编写过比.NET更大的应用程序吗? 人们过去常常批评VB6的2MB运行时,但它很少让它附带的应用相形见绌

今天,尽管我的机器上安装了Vista,但我不得不下载35MB的3.5框架,然后重新启动,然后试用一个只有这个大小一半的应用程序

考虑到源代码安全性的降低,我想知道为什么有人会在.NET中开发windows应用程序,而不是使用允许构建本机可执行文件的语言

在编写在Windows上运行的应用程序时,.NET有什么优势可以掩盖这些缺点?

使用它开发复杂(和简单)应用程序的“简单性”。框架中已经为您编写了许多基本内容,您可以直接使用它们。今天下载35mb文件比8-6年前下载2mb文件容易得多。

举几个例子:

  • 自动内存管理、垃圾收集
  • 类型安全
  • 边界检查
  • 访问数千个不必创建的类

嗯,.NET Framework是为所有.NET应用程序共享的,因此您的计算机上只安装了一次,而现在35MB已经不算什么了(与Vista安装的大小相比)。对于第二个.NET应用程序,您不必再次下载它。

原因很多。我对RealBasic了解不多,但就Delphi而言:

  • 与.NET相比,它的应用范围更小,开发社区更小。网上的许多Delphi资源都是古老而过时的

  • 直到Delphi2009年,Delphi还没有完全的unicode支持

  • 我不知道Delphi 2009的情况,但2007年的垃圾收集效果不太好。它有一些笨拙的引用计数,需要代表开发人员进行一些干预。NET有一个更高级的GC,它几乎可以为您做任何事情

  • .NET具有更大的标准库和更多最新的第三方库

  • 可以说,像C#这样的.NET语言更好,而且对于新手来说更容易理解

对于Windows app,.NET(使用C#或其他工具),您可以更直接地访问最新和最强大的Windows功能。它也得到了微软的大力支持,拥有一个庞大的社区和许多关于它的书籍

REALbasic(现在)用于跨平台应用程序。仅在Windows上使用它有时是有用的,但这并不是它的优点(它非常容易使用)


我对德尔福了解不多。

人们:请注意,这是在2009年2月写的,当时所说的话是恰当的——在2012年末(3年多之后)对我大喊大叫毫无意义。:-)

Delphi对于Win32有一些相当大的优势。并不是说.NET应用程序天生就不好,但请尝试:

  • 在Win95/ME上运行.NET应用程序(任何版本),其中.NET不存在(AFAIK)
  • 分发任何小型(<1.5 MB).NET应用程序(是的,软盘驱动器仍然存在)
  • 在无法访问Internet的系统上提供任何.NET应用程序(是的,它们存在)
  • 在没有广泛高带宽的国家/地区分发.NET应用程序
  • 避免人们看到你的源代码而不花一大笔钱(反射,有人吗?)
NET中的垃圾收集可能非常好,但是任何了解编程的人都可以使用Delphi轻松地处理内存的手动分配/释放,并且GC可以使用引用计数接口。让所有非编程人员激增的不是VB的伪GC吗?在我看来,GC是使.NET变得危险的因素之一,就像VB变得危险一样——它让事情变得太简单,让那些真正不知道自己在做什么的人编写软件,最终把事情搞得一团糟。(而且,在我被烧死之前,这对那些知道自己在做什么的人来说是很好的,VB也是如此;我只是不太确定技术人员的优势是否大于非技术人员对我们的危害。)

Delphi Prism(又名Rem Objects Oxygene,前身为Chrome)提供了Delphi的GC版本,需要它的人正在寻找它,还有ASP.NET和WPF/Silverlight/CE,具有Delphi的可读性(并且没有花括号)。对于那些(像我一样)Unicode支持不是主要因素的人,Delphi2007提供了ASP.NET和VCL.NET,以及本机Win32支持。而且,在我工作的地方,工作站每三年才升级一次(至少升级一次),而且我们刚刚扔掉了最后一台Win95机器,因为它不是升级的重点,所以.NET framework是一个问题。(特别是公司代理要求只允许少数人访问互联网,限制带宽和下载能力,以及不允许使用USB设备的适当非管理员帐户,所有这些都仍然在Netware网络上运行-没有Windows Update之类的东西,而且到目前为止还没有病毒,因为没有任何东西进入。)


我用.NET语言(C#,Delphi Prism)工作过一些,但主要工作是全职和兼职,都来自Win32和Delphi

这里有许多被.NET开发人员引用的假定优势不应该在这种比较中,因为Delphi也有这些优势:

  • 类型安全
  • 边界检查
  • 访问数千个不必创建的类(组件)
然而,在.NET中有些东西是Delphi没有的,只有一些东西可以通过库和自己的代码添加。举几个例子:

  • 支持在同一运行时上使用多种语言-允许为问题选择匹配的语言(例如功能pr