|
| |
名片设计 CorelDRAW Illustrator AuotoCAD Painter 其他软件 Photoshop Fireworks Flash |
|
数周前,微软公司在2000年6月份举行的“职业开发人员技术大会”(pdc)上正式发布了c#语言,自此掀开了一部新兴高级语言的篇章。关于这种新语言,有很多很多传闻,也有很多网友急于想了解它,对此,微软通用运行库开发小组的高级程序员jeffrey接受了网友的提问,并一一作了回答,下面就是有关.net和c#语言问答的整理。
答:都是!并且还不止这些呢――微软的雄伟目标是让microsoft.net彻底改变软件的开发方法、发行方法、使用方法等等,并且不止是针对微软一家,而是面向所有公司!今年7月份在pdc展会上分发的是“.net架构”包,“.net架构”是microsoft.net计划中首先问世的一部分,它包括了两方面的组件:“.net通用运行库”和“.net类库”。最近传来好消息说这两个组件已经被打包到“.net架构sdk”中,放在微软的站上免费供大家下载,有爱好的朋友一定要去试试看哦!另外,这个sdk中还包括c#、c++、javascript和vb的命令行编译器,使用这些编译器就可以开发应用程序和组件了,从这个角度来看,.net架构首先是一个开发平台,因为它提供了运行库和类库,并且,下一个即将面市的就是visual studio.net,其中包括了更加全面的sdk和图形化的开发界面、向导、工具等等,更象一个开发平台了。但是.net的运行库其实已经融合到操作系统中,所以说它为运行库也是可以的。
答:这个问题现在往返答还有点为时尚早。反正我就是喜欢用c#来编程!(晕倒...)因为它十分类似于c++,所以学起来几乎不花什么时间。微软现在已经将c#提交到ecma标准化组织,假如获得通过,那么任何一个公司都可以开发出c#的编译器。不过,设计c#语言最初的目的就是要将它作成一种完全依靠并且完全兼容于通用语言运行库的语言,没有运行库的支持,c#是不会如此强盛的。要在其他平台上开发编译器很轻易,但是移植运行库就是一件大工程了。
答:虽然大家很有诚意地看着我,但是我还是想告诉大家:我没学过java!不过,我不妨说说c#和c++的差别:c#有更简朴的语法,紧密集成的组件和函数,类型安全等等。要是想知道c# 和java的区别――去问别人吧,别问我。
答:.net类库中包括一个名叫system.data的名字空间,其中就有很多访问数据库的类。c#程序员可以很方便地利用这些类来访问数据库,不需要用到ado+。
答:当然可以!c#可以开发任何古典风格的windows程序。不仅如此,不管是控制程序、图形程序、nt服务程序,还是普通组件,甚至是web页面,除了硬件驱动程序,都可以用c#开发出来。实际上,这些功能都是从运行库中实现的,而 c#语言本身并不提供。
答:winforms是.net类库中的类集,其中封装了win32类中的windows,brushes和pens类等等。任何使用了运行库的语言(包括c#)都可以建立这些类的实例并进行控制。就我所知,winforms和j++的wfc类库有些类似的地方。
q8.问:atl和com在.net新技术中会扮演怎样的角色呢? 答:.net架构中取代了很多老技术,象atl、mfc、c运行库、标准模板库(stl)等等类库都不再出现了。.net统一了编程类库,开发起来比使用这些老技术轻易多了。我猜很多程序员看到.net的这些优势后会义无返顾地选择离开老技术的。不过,老玩意还是有一定的长处的:它的性能相对来说比较好。假如你需要特殊突出性能,那么还是可以继承摆弄这些老玩意的。另外,对于com来讲,用.net来开发一样功能的组件会比以前轻易几个数量级,并且还能轻松搞定各个组件之间经常出现的互操作性要求。目前在.net代码中还不能直接使用com+和交易服务,但是可以通过间接的方式来使用,只不过在性能上要打些折扣。
答:啊……啊……又来了,再说一遍好啦,模板其实应该是运行库提供的功能,不关c#语言的事。在c#中没有提供模板功能大致有两点原因。首先呢,执行模板有一定的困难,所以微软没打算在c#的第一版中提供这样的功能,以后的版本中会有类似的功能出现的。其次呢,因为这里的运行库是支持多语言的运行库(不仅仅是c#),假如在运行库中引入模板,就意味着所有使用这个运行库的语言都必须支持模板功能,在这一点上,微软不得不慎重考虑,所以也不打算现在就把模板加进去。
答:c++语言在微软的各种语言中是最独特的一种,它也是唯一可以答应程序员开发无限制低级程序的语言。所以,我们经常可以看见程序员们用c++写性能要求较高的无限制的算法代码,同时也用c++编写有限制的安全程度很高的组件代码。我认为微软会继承保留c++的现状,并维持很长一段时间。究竟,驱动程序需要它,windows的基础也是它,很多产品也使用它。
答:.net运行库提供了代码访问安全特性,它答应治理员和用户根据代码的id来配置安全等级。在缺省情况下,从internet和intranet下载的代码都不答应访问任何本地文件和资源。比方说,我写了个程序把它放到网络上,然后让它在网络上的共享目录中运行,假如它要访问我本地的一些资源,那么它将会无情地被非常扔出去,呵呵,当然,假如拷贝到本地硬盘上运行则一切正常。
答:对。所有的有限制程序都需要一个治理程序来限制它们;在这里,运行库就是治理程序。微软在以后将会把运行库打包起来免费分发,而现在最终用户必须从msdn上安装整个.net的sdk包才能运行c#。
答:确实是真的。实际上,只要是使用运行库的语言,都可以做到在一种语言中声明类,而在另一种语言中派生类。并且,visual studio的调试器将会完全支持跨语言的程序调试,在函数堆栈调试窗口的每个条目中都会显示堆栈中的函数是什么以及它们分别用何种语言写成;另外,你甚至还可以跨语言地处理程序中的非常错误。这种特性确实棒极了,在pdc上演示这段功能的时候,大家都热烈地鼓起掌来。在.net的sdk中有例子程序演示其做法,十分简朴。
答:上面提到过,假如你使用有限制的语言,那么自然就可以,不过要是你使用c++中无限制的部分,就不行了。
答:我平时没怎么关注mfc,不过我可以确信答案是否定的。mfc从来都没有被限制过。对于限制程序,大家应该使用winforms来治理。
答:我敢肯定mfc不可能这样,并且它从来都不需要什么运行库。
答:c#是针对“通用语言运行库”(clr)而开发的,而不是针对windows。假如运行库被移植到其他系统上,那么c#也可以被移植到那里。
答:绝对假闻。没有哪种语言可以创建运行库的静态链接。
答:.net架构设计器采用了一个新的资源模型。资源数据可以象win23相同嵌在exe或者dll文件中,也可以以独立文件的形式存在,比如一张bmp或者jpg图片。限于篇幅,这里就不再赘述了。 返回类别: 教程 上一教程: 使用 Visual Basic .NET 重载事件处理程序(zt) 下一教程: 通过网络域名得到这台主机的IP地址 |
| 快精灵印艺坊 版权所有 |
首页 |
||