网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > C#应用
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.C#3.0 中使用扩展方法来扩展接口.
.C#中的非安全编程.
.C#实现Socket传输简单数据.
.c-sharp开发应避免的几个小滥用.
.用C#实现由15位身份证号升级到1.
.C#中对注册表的操作.
.C#快速排序类.
.C#纯数学方法递归实现货币数字转.
.捕捉摄相头的数据流 .
.C#制作MID窗体.
.如何用C#语言构造蜘蛛程序.
.C# 制作出任意不规则按钮! (原理.
.用C#生成中文汉字验证码的基本原.
.用C#开发智能手机软件:推箱子(四.
.C# Enum设计和使用的相关技巧 .
.序列化和反序列化XML应用程序设置.
.Sql server存储过程和C#分页类简.
.在找C#语言规范吗?只要你装了VS.
.一点C#代码的使用心得.
.在Visual C#.Net中使用CWGraph控.

论C#变得越来越臃肿是不可避免的

发表日期:2007-8-1


  C# 2.0发布的时候,我们回头看Java,总认为这个语言怎么发展得这么慢?但当C#发展到3.0的时候,它也开始显示出臃肿之态了,这是否会也会带来什么连锁效应呢?

  6年前,我是个Java的拥护者,当时C#还是1.0版,我经常和师傅争论Java如何比C#好,于是他给我一个回答:“我们的COM比Java早了近5年,所以我们更成熟;我们的.NET比Java晚了5年,所以更先进”。虽然这么比较有“偷换概念”的感觉,但现在想想其实有另一层意思——“成熟与先进”的矛盾。

  Lisp、Haskell、Scheme这些语言也都可以被称之为“伟大”,但为什么很少有人去学呢?因为需要用太多的东西“充斥”我们的大脑后才可以使用。Java和C#之所以可以快速地被普遍接受,一个很重要的原因就是因为它们的简单与清爽。但当明年春天C# 3.0发布的时候会怎么样呢?虽然你可以将WCF、WF、WCS和WPF视为.NET的外挂,不予理会,但LINQ是个不好回避的内容,因为它在处理数据访问(关系型的、非关系型的)方面有比较明显的优势,所以即便你个人排斥它,其他还是会有很多人用。最后很可能成为这样一种局面:参与到一个项目组,自己只能从事一些表层业务开发,因为下层的公共封装机制都是用LINQ编写的,况且还有Enterprise Library这个“样板工程”在后面催着。

  可以这么说,C#越来越臃肿是个必然的趋势,作为.NET语言的“主力”,随着新的开发架构的出现,C#的复杂性还会增加,同时很可能导致革新特性越出越慢,毕竟牵扯的内容多了,作为“主力”除了要考虑语言特性间的协作外,还要充分考虑处理效率。

  不过比起“一条道跑到黑”的Java而言,.NET平台有个优势——CLS(Common Language Specification,公共语言规范)。相信Java的设计者不太愿意,也不敢随便为了一个“快速走红”但还没有2年时间市场考验的技术趋势就去修改Java编译器;.NET不同,“C#红旗不倒的同时,.NET平台可以彩旗飘飘”,比如Spec#就是个例子,为了避免null对于软件的影响,.NET家族诞生了Spec#,目的就是通过非null这个前提,提高数据验证、异常处理、堆栈管理的能力,利于开发者提供更高质量的软件;F#也是,虽然C#是强类型的,但动态语言式的开发一样可以基于这个“小兄弟”开发,加上它和其他.NET语言前辈基于同一个CLR环境,所以功能毫不逊色。

  综上所述,C#臃肿是不可避免的,而且很可能会像Visual C++一样,因为语言的复杂性,导致C#开发人员技术能力的两极分化。但同时,借助试验性.NET语言的支持,即便需要集成新的特性,也不会像某些语言一样从头开始。依靠试验性语言的积累,相信从MSDN中查看C#这些新语法的时候,可以少见一些标着“[Obsolete]”的内容。

上一篇:用C#监控并显示CPU状态信息 人气:9180
下一篇:C#动态生成树型结构的Web程序设计 人气:7747
浏览全部C#的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐