q1.问:搞了这么久,我一直都没弄明白,.net是运行库呢还是开发平台哪?
答:都是!并且还不止这些呢——微软的宏伟目标是让microsoft.net彻底改变软件的开发方式、发行方式、使用方式等等,并且不止是针对微软一家,而是面向所有公司!今年7月份在pdc展会上分发的是“.net架构”包,“.net架构”是microsoft.net计划中首先问世的一部分,它包括了两方面的组件:“.net通用运行库”和“.net类库”。最近传来好消息说这两个组件已经被打包到“.net架构sdk”中,放在微软的站上免费供大家下载,有兴趣的朋友一定要去试试看哦!另外,这个sdk中还包括c#、c++、javascript和vb的命令行编译器,使用这些编译器就可以开发应用程序和组件了,从这个角度来看,.net架构首先是一个开发平台,因为它提供了运行库和类库,并且,下一个即将面市的就是visual studio.net,其中包括了更加全面的sdk和图形化的开发界面、向导、工具等等,更象一个开发平台了。但是.net的运行库其实已经融合到操作系统中,所以说它为运行库也是可以的。
q2.问:c#成为一种通用性语言的可能性究竟有多大啊?我的意思是说,不仅仅是微软一家支持的语言。另外,如果真是这样,现在有否其他软件公司承诺在非windows平台上提供c#的编译器呢?
答:这个问题现在来回答还有点为时尚早。反正我就是喜欢用c#来编程!(晕倒...)因为它十分类似于c++,所以学起来几乎不花什么时间。微软现在已经将c#提交到ecma标准化组织,如果获得通过,那么任何一个公司都可以开发出c#的编译器。不过,设计c#语言最初的目的就是要将它作成一种完全依赖并且完全兼容于通用语言运行库的语言,没有运行库的支持,c#是不会如此强大的。要在其他平台上开发编译器很容易,但是移植运行库就是一件大工程了。
q3.问:能不能讲讲c#在哪些具体问题上比java有优势?
答:虽然大家很有诚意地看着我,但是我还是想告诉大家:我没学过java!不过,我不妨说说c#和c++的差别:c#有更简单的语法,紧密集成的组件和函数,类型安全等等。要是想知道c# 和java的区别——去问别人吧,别问我。
(本文来源于图老师网站,更多请访问http://m.tulaoshi.com)
q4.问:在c#语言中访问数据库,使用ado+是不是最好和最有效的方法?或者c#的运行库中有更好的oledb api封装函数吗?
答:.net类库中包括一个名叫system.data的名字空间,其中就有很多访问数据库的类。c#程序员可以很方便地利用这些类来访问数据库,不需要用到ado+。
q5.问:c#可不可以开发windows程序?不会只能开发分布式应用吧?
答:当然可以!c#可以开发任何古典风格的windows程序。不仅如此,不管是控制程序、图形程序、nt服务程序,还是普通组件,甚至是web页面,除了硬件驱动程序,都可以用c#开发出来。实际上,这些功能都是从运行库中实现的,而 c#语言本身并不提供。
q6.问:c#和winforms之间是什么关系?
答:winforms是.net类库中的类集,其中封装了win32类中的windows,brushes和pens类等等。任何使用了运行库的语言(包括c#)都可以建立这些类的实例并进行控制。就我所知,winforms和j++的wfc类库有些类似的地方。
(本文来源于图老师网站,更多请访问http://m.tulaoshi.com)
q7.问:传闻c#已经被提交到ecma标准化组织等待批准,是吗?
答:对!到q2去看看吧。
q8.问:atl和com在.net新技术中会扮演怎样的角色呢?
答:.net架构中取代了很多老技术,象atl、mfc、c运行库、标准模板库(stl)等等类库都不再出现了。.net统一了编程类库,开发起来比使用这些老技术容易多了。我猜很多程序员看到.net的这些优势后会义无返顾地选择离开老技术的。不过,老玩意还是有一定的优点的:它的性能相对来说比较好。如果你需要特别突出性能,那么还是可以继续摆弄这些老玩意的。另外,对于com来讲,用.net来开发相同功能的组件会比以前容易几个数量级,并且还能轻松搞定各个组件之间常常出现的互操作性要求。目前在.net代码中还不能直接使用com+和交易服务,但是可以通过间接的方法来使用,只不过在性能上要打些折扣。
q9.问:为什么c#没象c++那样提供模板功能?
答:啊……啊……又来了,再说一遍好啦,模板其实应该是运行库提供的功能,不关c#语言的事。在c#中没有提供模板功能大致有两点原因。首先呢,执行模板有一定的困难,所以微软没打算在c#的第一版中提供这样的功能,以后的版本中会有类似的功能出现的。其次呢,因为这里的运行库是支持多语言的运行库(不仅仅是c#),如果在运行库中引入模板,就意味着所有使用这个运行库的语言都必须支持模板功能,在这一点上,微软不得不慎重考虑,所以也不打算现在就把模板加进去。
q10.问:在c#中会不会用真正