这是一个主观问题.
在进入.NET空间之前,我在Visual Basic 6.0中工作过.
有一点我看到有很多东西,需要处理Win32 API.作为Visual Basic 6.0开发人员,存在很多限制..NET修复了一些旧问题,但是依赖Win32的需求还没有得到解决.
是否有任何时候不需要依赖Win32?(我想只有当.NET在操作系统级别提供支持时才会这样做.)
据我所知,.NET(写作领域LOB应用程序/网站)和C/C++不同的是,到目前为止.
.NET或任何其他基础架构真的可以使C/C++不那么重要吗?我期待太多了吗?
编辑:难道不是模样,建筑包装在另一包装(和带来新的一套复杂的沿与它)?
Bri*_*sio 17
它不会很快消失,但在Windows中,至少,使用C/C++的新项目越来越少.你甚至可以看到微软开始吃自己的狗粮的例子.
一个很好的例子是C#编译器.目前,它是用C/C++编写的.C#团队目前正在使用托管代码重写它.其中一个重要原因与.NET中的CAS策略有关.调用非托管代码需要FullTrust,因此编译代码也需要FullTrust.当他们转移到托管代码时,这种限制就会消失.
随着越来越多的开发人员将.NET作为他们的开发平台,我们看到微软效仿.
另一个很好的例子是Visual Studio 2010.它们使用WPF和MEF重写IDE的大部分内容,以便它可以轻松扩展.
接下来,查看Silverlight运行时.它根本不依赖于(特别是)Win32.它在Mac上运行,就像在Windows上运行一样.随着Silverlight变得更强大,我们可能会发现许多目前依赖Win32的.NET调用不再这样做.
我想我的观点是,我们至少开始在Windows世界中看到一些变化.
当然,只要你需要更加跨平台,C/C++就会变得更有吸引力......
.NET已经在其设计的域中接管了C/C++.在.NET中编写设备驱动程序或其他系统级别的东西的人并不多.但它擅长于业务应用程序,这可能构成了大部分编程工作.
即使是C/C++也没有消除人们在某些情况下编写程序集的需要,因此.NET不可能消除它.但它并不意味着.
在某些情况下,C#/ .NET永远无法取代C/C++:
目标计算机没有.NET运行时环境,您不能/不想强制安装.(这也是Java或Parrot/Perl6的问题).如果目标具有比您的程序更旧的.NET环境版本,这也可能是一个问题.
代码需要在Windows,Linux或OSX上运行.即使是Mono,C/C++也比C#更便携.
好吧,首先,MS 正在开发基于托管代码(.NET)(Singularity)的操作系统.现在,这只是一个研究项目,所以不能保证会有任何结果,但它确实显示了MS的想法.
接下来,我们必须考虑,我们是关于Windows世界还是一般的计算机应用程序.C#并未在Linux/Unix世界中取得重大进展,因此C/C++将在那里保持强势.
如果我们仅限于Windows,那么我认为,对于新的桌面应用程序,.NET可能已经通过了C/C++(由于现有的代码库,C++仍然具有整体优势).但是,对于Web开发来说,C/C++从来都不是很大,所以.NET很久以前就通过了它们.
| 归档时间: |
|
| 查看次数: |
2202 次 |
| 最近记录: |