.net开发中几个重要的认识误区小结

 更新时间:2010年04月06日 17:26:29   作者:  
.net如今已经很流行,成为赶时髦的程序员的首选。但是,大量刚刚接触.net的程序员的确存在一定的认识误区,这里先介绍一部分。

一、.net程序再运行一次就会更快

许多人对此的解释是:.net程序第一次运行时会被编译成本地代码,所以再次运行会更快。但遗憾的是,其实每次运行,那些IL都会被翻译一次,不会保留下来。所以并不会变快。但为什么有时候真的觉得快了呢?其实所有程序都是这样,这是Windows再为你缓存用过的组件。真正需要CPU时间的程序,多运行是不会加快速度的。

二、.net程序运行起来一定很慢

由于存在IL被翻译成本地代码的过程,.net程序的确要消耗一部分时间。但是.net程序仍然具有很高的效率,这一点许多Java虚拟机都比不上,这是为什么呢?因为多数.net程序内含的代码很少,几乎都是调用.net Framework中的类库,而这些类库在.net Framework安装的时候全部编译成为本机优化的本地码,并保存在程序集缓存里面。有了这个程序集缓存,你程序事实上的大部分已经是高效的本地代码,所以当然快了。但是,如果你进行大量数值计算类的操作,还是能够感到第一次运算的速度明显下降。所以建议大家将计算密集型的程序分离出来,编译成本地代码并保存在程序集缓存中,以后使用起来就很快了。

三、C#比VB.net快,功能更强大

必须得承认,C#编译器和VB.net编译器在处理某些细节上确实有些不同,导致两者编译功能类似的程序效率通常会有差异。但对于一个编制完整的项目,是不会有任何差别的。原因是首先VB.net编译器并没有比C#有实质上的缺陷,其次大部分代码都是.net Framework类库中的代码,两者调用起来没有差别。至于C#比VB.net功能强大,这牵扯到心理学问题。VB并不比C#差,也没有“语法混乱”、“为了兼容而设计”之类传说中的毛病。用VB.net一样可以写出出色的、结构完美的应用程序。而且VB.net也是Visual Studio.net唯一的宏语言。

这里面还有一个问题,著名的Linux下的.net——Mono中是否只支持C#?当然不是,用VB.net开发出的程序一样可以在Mono中正确运行。而且最新的Mono将包含Mono Basic语言,这样,掌握VB.net语法的人,就可以完全在Linux等系统下开发。

四、微软只想推广C#,他想放弃VB.net

不要听信杞人忧天的话。微软无时无刻不在推广VB.net上用心。MSDN上关于.net开发的文章,用VB.net做例子的比用C#还要多。微软还专门推出VB技术节目——VBTV,帮助开发者更好地了解VB.net。微软在列出Visaual Studio中的开发工具时,Visual Basic总是排在第一个——这是微软5年来的传统。所以担心VB.net会被淘汰的人,现在该松口气了。

五、微软用.net对抗Java,所以我也要支持.net,反对Java

千万不要有这种想法,MS当然想占领Java的市场,Sun当然不愿意,但这不关你的事。哪一方赢了你都不会有实质上的好处。还是两个都学吧。与其在网上挑起争论,不如多学一个本事,你马上就会看到回报的。

好了,从下一次开始,将着重介绍技术上的误区。祝大家好运。

相关文章

  • 如何利用HttpClientFactory实现简单的熔断降级

    如何利用HttpClientFactory实现简单的熔断降级

    这篇文章主要给大家介绍了关于如何利用HttpClientFactory实现简单的熔断降级的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-07-07
  • .NET或.NET Core Web APi基于tus协议实现断点续传的示例

    .NET或.NET Core Web APi基于tus协议实现断点续传的示例

    这篇文章主要介绍了.NET或.NET Core Web APi基于tus协议实现断点续传的示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-11-11
  • 如何将数据绑到gridview然后导成excel

    如何将数据绑到gridview然后导成excel

    这篇文章主要介绍了如何将数据绑到gridview然后导成excel,需要的朋友可以参考下
    2014-02-02
  • Entity Framework使用Fluent API配置案例

    Entity Framework使用Fluent API配置案例

    本文详细讲解了Entity Framework使用Fluent API配置案例的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-03-03
  • asp.net fileupload控件上传文件与多文件上传

    asp.net fileupload控件上传文件与多文件上传

    这篇文章主要介绍了asp.net fileupload控件上传文件的方法,fileupload控件多文件上传,以及fileupload上传时实现文件验证的方法,需要的朋友可以参考下
    2014-11-11
  • asp.net fileupload 实现上传

    asp.net fileupload 实现上传

    在vs的视图模式下,添加上传组件,以及添加一个按钮button,随后在后置代码中加入如下信息
    2009-05-05
  • Asp.Mvc 2.0实现用户注册实例讲解(1)

    Asp.Mvc 2.0实现用户注册实例讲解(1)

    这篇文章主要介绍了Asp.Mvc 2.0如何实现用户注册,实例讲解很细致,注册功能是每个网站必不可少的组成部分,感兴趣的的朋友可以参考下
    2015-08-08
  • ASP.Net中的Server.MapPath()用法

    ASP.Net中的Server.MapPath()用法

    Server.MapPath(string path)作用是返回与Web服务器上的指定虚拟路径相对应的物理文件路径,这篇文章主要介绍了ASP.Net中的Server.MapPath()用法,需要的朋友可以参考下
    2023-08-08
  • ASP.NET设计网络硬盘之查看文件夹实现代码

    ASP.NET设计网络硬盘之查看文件夹实现代码

    下面要介绍的实例包括网上硬盘的许多功能,将一步步为大家进行介绍。首先创建工程实例,然后进行主界面的设计,最后对各个功能的实现分别进行介绍
    2012-10-10
  • ASP.NET MVC实现下拉框多选

    ASP.NET MVC实现下拉框多选

    这篇文章介绍了ASP.NET MVC实现下拉框多选的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-09-09

最新评论