当前位置:  开发笔记 > 编程语言 > 正文

我是否受限于C#和ASP?

如何解决《我是否受限于C#和ASP?》经验,为你挑选了1个好方法。

目前,我有基本的C++和PHP技能.但是,我想切换到C#和ASP(对于Web部分).为什么?你会问.因为我有机会很容易地学习C#(包括OOP-ed)到一个非常高级的水平.因为我读到ASP与C#非常相似,我正在考虑学习它.

那么,有很多东西在C#中无法完成?什么样的东西?ASP的相同问题.



1> Jon Skeet..:

C#的限制(以及通过关联,.NET):

不是一个系统级语言 - 通常不适合编写驱动程序等.(已经说过,有些像Cosmos这样有趣的项目.)

对Windows以外平台的有限支持.Mono做得很好,但它仍然与.NET本身不相称(比如在多个平台上同时发布的Java).

只有作为非托管语言运行的选项才是第三方语言 - ngen将"预先JIT"你的代码,但它仍然在.NET框架下运行.实际上C#被设计为在VM中运行,具有垃圾收集功能.

有些人不喜欢缺乏确定性破坏,这意味着C++ RAII技术不起作用.(相反,您依赖GC进行内存管理和IDisposable非内存资源的接口.该using语句使这更容易,但它不是一个完美的解决方案.)

这种语言有点像微软的心血来潮.如果MS决定放弃它,我认为它不会再进一步​​发展,很快就会失去对新开发的支持.话虽如此,我不希望MS很快放弃它.

在C#4发布之前,它对后期绑定没有太多支持.你可以用反射来做,但这有点痛苦.即使使用C#4,它仍然是一种基本的静态语言,但它具有动态工作的方式,它真正有用.

目前对不变性的支持不多.特别是,C#3引入了一些新功能(自动属性,集合初始化器,对象初始化器),这使得更容易编写可变类型 - 但是对于不可变类型没有相应的功能.C#4中的命名参数和可选参数应该在这方面有所帮助,但欢迎提供更多支持.C#3使得以函数式编写代码变得更容易,但这确实需要不变性.

对于桌面应用程序开发,您基本上可以在WinForms和WPF(Windows Presentation Foundation)之间进行选择.后者是更新,设计得更好的IMO,但在这两种情况下,您可能会看到托管应用程序和编写良好的Win32应用程序之间的"快速"略有不同.在启动时尤其如此,而框架正在加载并且许多UI代码正在被JIT等等.我个人认为这不是一个障碍,但......

推荐阅读
贾志军
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有