Ric*_*ter 20
这些都来自我的POV.你的旅费可能会改变.
.NET的优点:
.NET的缺点:
WIN32的优点:
WIN32的缺点:
两者都有自己的位置,并且可能会继续存在,直到真正的替代操作系统(Midori?某种形式的基于Web的操作系统?)上线并获得广泛认可.
Joe*_*orn 15
.Net(或WinForms部分,无论如何)位于Win32 之上.或者,换句话说,Win32用于构建.Net表单组件.所以从这个意义上说,你可以将.Net视为一组预先构建的win32小部件.您还可以将.Net视为MFC的逻辑继承者.
.Net还可以在必要时直接调用Win32 API,为您提供垃圾回收,BCL中非常好的类库,以及C#和VB.Net中C/C++的许多优秀语言功能.
你得到所有这些东西所失去的是一定程度的独立性..Net是一个附加框架,默认情况下不附带所有版本的Windows,因此您在部署时需要额外的依赖关系.在使用任何高级垃圾收集语言时,您还需要考虑性能因素,其中看似简单的代码可能比您在幕后所做的要多得多.对于某些winforms组件尤其如此.
您似乎已经意识到简短的答案,但为了清楚起见,我将在此重申:
Win32:功能强大且完整.Windows平台上的任何记录行为都可以通过Win32编写,但是功能带来了责任和难度.在创建丰富的Win32体验方面存在相当大的微妙和难度.
.Net:功能强大,但是Win32的一个子集..Net为绝大多数业务线应用程序提供了足够的功能,但是丰富的用户界面和特定的专业情况根本就不存在,因为无论出于何种原因,BCL都不相信它感觉支持它.我遇到的最常见的例子是新版Windows中的UI功能,尽管PInvoke还有其他领域很有用..Net是一个更简单的模型来掌握和工作,然而,(根据我的经验).net的微妙性比用Win32射击我的可能性要小得多.
如果你包括dllimport和PInvoke,那么我猜想.Net是一个合理的替代方案,能够在90%以上的任务中表现得相当好,而且WPF为托管世界带来了完全不同级别的丰富UI.
这不是一个公平的比较,两者之间没有比较好的,这完全取决于你想要完成的事情.对于大多数开发任务,.Net非常复杂,甚至可能比Win32具有更好的性能.另一方面,.Net甚至可以在窗户外运行,只需看看Mono.现在,为了开发驱动程序和低级别的东西,你可以更好地使用Win32.
.Net没有取代Win32.Win32是操作系统级别的界面,您可以将.Net视为一个位于Win32之上的小型OS环境或虚拟机..Net提供硬件架构中立性(如果您的客户端运行在Pentium IV,Core 2 Duo,Itanium,32位,64位或其他任何设备上,则无关紧要.).Net提供了一个了解这些环境的优化安装程序,因此如果一条指令说"移动一百万字节",它将使用平台上可用的"最优化"移动指令.
.Net使开发人员更容易:内置垃圾收集可以防止一个非常常见的错误,即忘记释放内存.Visual Studio IDE集成可以说是任何语言的最佳开发环境.原型屏幕和代码肯定很快.(当然,Visual Studio为编写Win32 API的C/C++编码器提供了许多相同的优势.)
但是.Net以性价格实现了这些目标.代码必须在最终用户的机器上进行"即时"编译(JITted)才能运行..Net框架需要5-15兆字节的RAM才能加载足够的代码来执行"Hello World"..Net框架在速度低于400MHz或RAM少于512 MB的机器上表现不佳(您可以在更小,更慢的盒子上运行它,但其性能必须在逐个应用程序的基础上进行评估.)
| 归档时间: |
|
| 查看次数: |
13175 次 |
| 最近记录: |