* O$ Q) F0 T3 L; Z& s 而不是各种平台之间的通信和管理.那么我们最迫切需要的就是一种与各种平台调用无 8 ?2 j3 D9 J. M# }* N关的语言,这中语言只注重程序逻辑的设计而不涉及平台的调用.而我们熟悉的c/c++却恰 : G6 ~. Z Q+ p2 d恰不是为这个而设计的(赫赫这也不能怪c/c++在70年代谁能知道现在internet的情况呢 : e( X" C; Y% [/ j
).c/c++的最初设计目的是为了设计unix产生一种介于汇编和高级语言之间的一种开发高 ) F% K7 A4 @! \7 I4 D i效而性能不低的语言.他要比其他任何高级语言都要关心系统的物理结构,譬如一直是毁 ! I& H9 y: a4 y* F- X8 Y誉搀半的指针.指针之所以强大就是应为涉及了系统物理内存的管理.他可以使得程序员 % Z" z3 B$ h. v S3 g和系统之间成为一种半透明状态.但是就是这种半透明的状态让指针带来了更多的不稳定 5 z6 \, Z/ H) o- D6 V; b
性. ; r0 P0 E$ e. a m6 q8 f % L, a5 @8 w) \) K
c/c++在面向Internet的编程中却无任何优势可言.跨平台的电子商务软件最害怕顾及 8 `% \4 b" v5 B* d
各种平台之间的天差地别的系统调用,最害怕时不时的由于内存泄漏而crash.c/c++的优 6 [3 x2 q8 y0 J& W: o, S2 J
势在这里却成为了劣势.即使在windows平台上开发基于windows dna的solution 9 l2 t0 R& I* H! U; o% b$ S
" p8 u% l' c5 P$ f l* J$ S1 ~5 G 用的最多的还是vb做的dcom而不是vc的atl做的dcom,因为c/c++虽然高效但是太容易 8 O& u! R, Y3 }2 v( A% [$ N
{8 D3 l& L9 m C* ^! ^4 w! r
出错,如果不是很小心的释放内存nt很快就会资源不足. 7 d, E# t0 {+ H3 ] 2 Y" j# j- L. q1 T java就是最先看到这种情况,他用jvm实现了平台无关用内存回收实现了稳定健壮.但是 + a0 b' R+ V8 |3 [4 ~9 Z3 K相当多的c/c++程序员抱怨java太慢了.的确即使到java2速度仍然是一个大问题.我曾经 * `9 c, [; |- S5 O
是一个c/c++坚决拥护者在许多论坛里和java程序员打笔仗.但是我逐渐意识到面对与in - b( d% [0 J( d p& v9 c
ternet平台而不是特定的操作系统的时候java的速度问题往往是一个小小的瑕疵.我们可 " R6 C: X8 ]( D以想象那一个电子商务网站会用我们手头的pc做服务器,他们不是sun的e1000就是ibm的 % a* ~7 ^& t' Q: g: Zrisc6000.在这种平台上java这点速度问题只是a peice of cake.程序员只需要专注与商 ' _, v8 \" |) p
务逻辑的编程,而不必要关心数组是否越界,对象内存是否释放更不需要关心是不是unix # v3 l( l' f- ~* p, h$ g: h和windows的系统调用不一样. ( @9 f7 T" a$ n; a! o9 I- F / v1 L5 |# L9 F/ r. z& M% y
微软的c#可以说是一种java与c/c++的杂合体,他可以回收内存,可以平台无关.但是 $ b! ] \! A8 n0 v( W# D6 } / ]3 \3 M. n7 \, d# Y2 M5 ~ 他又可以实现一些java没有的功能譬如在标记的程序段内用指针自己管理内存,可以实 4 F3 _; j6 l; _! W X$ }: I8 ~现操作符的重载等等.为什么要这样做我想也许c#还肩负了一定的面向操作系统开发的任 " u0 j& N9 F+ y" g( s# \ F务例如winform.他基本上的思想和java类似,但是实现的方法又不一样他不通过jvm解释 % e% g8 i8 s$ Q# c中间代码,而是吧源代码编译成p代码然后通过CLS库和JIT在平台上及时编译为100%的本 , J. y# y9 p9 L$ l' T- E地代码来执行.他的pe代码是独立于平台的,但是cls和jit却根据不同的平台而设计.因此 / ?" S+ a& E' p5 t0 U8 N6 V
c#的平台独立有点类似于c/c++在不同平台上的移植使得c#比java来的更快.而且微软还 % D& Q0 g$ {, B# p' w许诺cls和jit不仅针对c#还可以针对任何语言譬如pascal,smaltalk,basic因此将来有可 6 g$ q! _1 ?. J2 c- V
能所有的编程语言都是可以平台无关的(ms真是毒,所有的语言都平台无关java还有什么 1 @( U8 i6 ^6 G, q$ m+ |! k8 f( g3 _# n
优势呢,据说ms正在开发基于pascal smaltalk的asp+). ( \) F Y! [/ b+ ?' f% u" }
/ [ L* `1 r8 t
xml很多人可能认为与html相类似的语言和c/c++,java,c#完全不在一个档次上的语言 % Q( c& B+ L% E% Y.其实不然.我们知道不管是c#还是java都是通过统一地层计算来实现平台无关.那就必须 2 e+ N, _+ H. ^; C* Z在性能上付出一点代价.而xml却能够实现不同的语言之间的调用.譬如说一个网占用jav 8 V* j8 W$ |( J7 v) F
a用bean实现一个出货功能,另一个网站用dcom实现一个入库功能 .如果这个网站需要实 1 K9 I& e% P8 |4 ^现b2b,用一般的方式就是在他们之间写转换程序.而xml通过标记语言来描述各自的借口 & M# U) I; z- X4 ]& ^9 v* \ |
特性.两端通过解析xml文本来实现互相的调用,无需任何中间转换程序 & g& d) \ y1 m; E) ]6 X/ n4 x : I" a5 J, G: {% o 只要一张xml文本就能实现bean和dcom之间的通讯(要说清楚其中的机理,需要很多xml ) u3 ~$ ^! j! V" | B+ c2 B1 v
概念如果有兴趣可以到msdn.microsoft.com/xml或者<a href="http://www.s3c.org" target="_blank" >www.s3c.org</A>去看看).目前ms的.ne + T/ w% [; Z/ W7 D/ t% P
t中最核心的技术soap就是完全基于xml的远过程调用. & \5 M: u+ c+ X7 |3 D
( d! ]$ j7 @7 P 介绍了那么多可能有点跑题,其实我最想说的就是21世纪的程序员应该从面向操作系统 2 _4 u/ N4 u% t% \* @ c的传统方法中走出来,学习一点如何面向Internet平台编程的技术和概念.不要在无畏的 - K! F9 k8 J+ n0 J2 V, \
那种c/c++工具好之类的地方争论.我想不出一两年不管是bcb还是mfc都要淘汰, ( H: ]9 l6 d/ a3 l9 S . S$ U: x! B# Z6 g 到那个时候要争论的不是bcb好还是mfc好而是c#好还是java好.至于xml那是不管sun和 7 T8 b# e9 U$ D+ n& @ms以至于世界任何大的IT公司包括Intel,hp都在奋力研究的技术,不学习可能就要被淘汰 7 Z) V9 q- p3 D) U" q.至于c/c++可能就会沦落到现在汇编的地位在某些系统效能敏感的地方还能见得到. + M1 g, j% {- U
" M+ Y4 G. [! r' f P
如果是编程语言的初学者那么我建议学习java同时关注c#,他们首先比c/c++简单没有 ( o. V0 z& o) q7 J0 D复杂的宏,指针,摸版等等让人摸不招头脑的概念.而且是完全面向对象,比c/c++的半调子 * ]: G" i% L4 _6 ?: g; }
面向对象清楚的多好学的多.(我推荐目前学习java,毕竟c#还没有发布而且刚发布的bet 3 z9 @. k ]5 s, n
a版的编译器要求高的吓人需要win2000 adv server没有128M内存的别想跑.话说回来c# 7 Y. K1 ^9 |# R) u* ^和java一摸一样没有什么太大的区别学好了java将来的c#将会信手拈来) , P, h6 ]9 q+ ~/ U% k 3 S! q& s" R. ]$ h! v5 O( W 对于目前的windows下的编程者来说学习mfc的价值还是有一点的但是不是太大.至少可 2 F0 Z( W( S- n) s以熟悉windows内在机理.但是我还是推荐关注一下c#将来的windows.net都是基于c#而不 9 F5 O0 k& E& E4 q' B- R( N/ B
是mfc.而且c#要比mfc简单的多实现一个同样的windows桌面应用c#的开发速度是mfc的两 , J% o/ A, t+ [1 ?% P9 S$ h到三倍而且几乎看不见性能的损失. visual studio 7.0中 vc将是一个次要的开发工具 2 V" o& M8 L* K4 Z) p, Q6 l
最主要的开发工具就是c#和vb7.0.至于borland我想是不可能不跟着ms走至少windows平 % R+ U, q7 A6 ^3 |) J
台上是这样说不定明年就有一个c# builder出来作为borland的主打产品而不是c++buil 2 @/ \ ?9 O$ R) G f6 m8 ~% e! |5 Sder了.说一句玩笑话wenny说不定很快会把这里变成<a href="http://www.c#help.net" target="_blank" >www.c#help.net</A>了 + W5 s( j2 W) r4 g& ?% z C2 O
7 S7 m% y& k) C `/ ? h
H/ v( u& D( o 3 b5 d6 N+ s& l* ~ 2 S2 K2 `3 @% c# M3 R ) l, X1 h* o/ k- W6 x' R
zhangxiuyong 来自 <a href="http://www.ucancode.com" target="_blank" >http://www.ucancode.com</A> : : H* t |" h$ u+ J" D 7 Z! h1 X8 l8 z9 c% q, d 其实我认为,对于Visual C++本身的理解不是向你上面谈到的那么简单,Microsoft 6 X' [ j, ]% q) d在开发Visual C++的时候是希望为其开发人员提供一个可靠的开发平台,便于用户可以 0 Z, ~ ]8 M) }8 I, F e: Q
为Windows上面编写各个方面应用程序,包括:数据库应用程序,硬件驱动程序,网络程 4 [) d. g. M/ g7 h2 X
序,多媒体程序,游戏程序等等方方面面,试想如果一个开发平台要同时完成这么多个 ! e- z- L# H( _% Z9 m
方面的开发任务,是需要考虑多少的问题,因此Visual C++在设计的时候就考虑了提供 ( B! V9 J- @% L9 q o! f一套类库而不是直接提供黑匣子式的开发组件来完成开发任务,提供的类库MFC具有很灵 # z, e2 l* `5 j5 M/ U2 i+ M8 `. ?; w
活的设计结构,以及良好的继承性,同时配合DVS文挡视图结构来组织程序开发,虽然我 1 v, V3 h- x$ A7 d: F们承认利用VC开发程序(数据库方面的程序)没有其他的RAD开发工具来的快,但是如果 & G" w2 P8 |4 W% m
你真正利用VC来开发的话,你会觉得你不会去选用其他的开发工具的,对了各位听说个 " L6 ]6 I. |' S$ |
多少开发人员是从VC熟练的开发师转向VB,Dephi的开发工具的吗,当然DVS结构本身也有 7 |0 |" |9 i. y* e% `% L
其很大的弱点,如很难重用。同时在CView中再嵌套CView的变得不可能。不过对于开发 7 l$ x6 {. @) N; s3 {4 T; e中小型的程序(代码在50万行以内的程序却是可以的了)。对于特大型的程序我想最好 0 Z4 P% f8 V5 T8 V* H+ x$ d H( p
可以借鉴一种新的技术叫做MVC的开发技术来组织你的程序吧。好了各位此些文字,仅代 # B/ L$ @6 ]+ x3 ?% |' R: E
表个人之言,如果各位感兴趣可以到:http://www.ucancode.com上面看看。 9 J: ~% D8 `. Q. w. n2 @9 N J
* e& G' W* I7 L! j2 l6 P
zhangxiuyong 来自 <a href="http://www.ucancode.com" target="_blank" >http://www.ucancode.com</A> : / y% B" B3 V g # w; _3 D/ {! k* U 其实我认为,对于Visual C++本身的理解不是向你上面谈到的那么简单,Microsoft 3 `0 k5 | i( l& M在开发Visual C++的时候是希望为其开发人员提供一个可靠的开发平台,便于用户可以 4 ?9 X# d" C+ a/ b
为Windows上面编写各个方面应用程序,包括:数据库应用程序,硬件驱动程序,网络程 W0 }! ?8 ]" J
序,多媒体程序,游戏程序等等方方面面,试想如果一个开发平台要同时完成这么多个 0 C3 G6 y0 S0 ~) q/ [7 S方面的开发任务,是需要考虑多少的问题,因此Visual C++在设计的时候就考虑了提供 0 O5 e* G# g( @- k1 k* ^
一套类库而不是直接提供黑匣子式的开发组件来完成开发任务,提供的类库MFC具有很灵 G, L3 |0 a' W6 N9 d
活的设计结构,以及良好的继承性,同时配合DVS文挡视图结构来组织程序开发,虽然我 T2 q: w+ U$ W0 V9 _$ [& X
们承认利用VC开发程序(数据库方面的程序)没有其他的RAD开发工具来的快,但是如果 ! X8 s7 P( Z' {/ L4 F你真正利用VC来开发的话,你会觉得你不会去选用其他的开发工具的,对了各位听说个 1 c7 b' z2 A- ?' d
多少开发人员是从VC熟练的开发师转向VB,Dephi的开发工具的吗,当然DVS结构本身也有 1 d. p9 g) d9 p; Z( W4 L其很大的弱点,如很难重用。同时在CView中再嵌套CView的变得不可能。不过对于开发 , n: ~" m8 b8 Q( @( C+ T% B
中小型的程序(代码在50万行以内的程序却是可以的了)。对于特大型的程序我想最好 ) R6 ^3 Z+ ^4 n$ a1 }# \可以借鉴一种新的技术叫做MVC的开发技术来组织你的程序吧。好了各位此些文字,仅代 * z" F: ^3 y5 k5 Y ]: C表个人之言,如果各位感兴趣可以到:http://www.ucancode.com上面看看。 5 _7 T9 \. f$ Q2 o2 R' x # c( M$ x6 e! @( S( P: p
zhangxiuyong 来自 <a href="http://www.ucancode.com" target="_blank" >http://www.ucancode.com</A> : : U3 A3 N; U3 H) D9 c ) C+ i& F' V: e/ b) Y* C 其实我认为,对于Visual C++本身的理解不是向你上面谈到的那么简单,Microsoft ! ~! y. A U, R- S( j7 a# Z$ W' Y" b# h在开发Visual C++的时候是希望为其开发人员提供一个可靠的开发平台,便于用户可以 9 r T" a- M5 }9 ~) U7 r为Windows上面编写各个方面应用程序,包括:数据库应用程序,硬件驱动程序,网络程 ; m" ]$ `5 O$ `! R
序,多媒体程序,游戏程序等等方方面面,试想如果一个开发平台要同时完成这么多个 , N+ z+ u( T8 f T: F; Z7 p( y2 F方面的开发任务,是需要考虑多少的问题,因此Visual C++在设计的时候就考虑了提供 , @; Z* Y+ S4 U( `/ _0 Z6 D- t" I- ~! C
一套类库而不是直接提供黑匣子式的开发组件来完成开发任务,提供的类库MFC具有很灵 0 u, Z/ F. l" x: N" n' j: A( y
活的设计结构,以及良好的继承性,同时配合DVS文挡视图结构来组织程序开发,虽然我 2 w# f* y/ C2 }: R$ m们承认利用VC开发程序(数据库方面的程序)没有其他的RAD开发工具来的快,但是如果 $ @3 K* e$ c9 F) n8 }% M
你真正利用VC来开发的话,你会觉得你不会去选用其他的开发工具的,对了各位听说个 ( z& p- R! x h8 N
多少开发人员是从VC熟练的开发师转向VB,Dephi的开发工具的吗,当然DVS结构本身也有 2 ]" U' _7 n/ e# i& V
其很大的弱点,如很难重用。同时在CView中再嵌套CView的变得不可能。不过对于开发 - _# [# Q) j. h1 y& n
中小型的程序(代码在50万行以内的程序却是可以的了)。对于特大型的程序我想最好 * V, l; h$ Y( ?5 m可以借鉴一种新的技术叫做MVC的开发技术来组织你的程序吧。好了各位此些文字,仅代 ( A3 h! S3 Y0 X6 e
表个人之言,如果各位感兴趣可以到:http://www.ucancode.com上面看看。 9 C* \$ e1 d- E# X \% Z ! M, i) M" {4 o5 w* Z, c9 o& N5 f' |
wenyy 来自 <a href="http://www.vchelp.net" target="_blank" >http://www.vchelp.net</A> : $ G" v0 O0 z) [5 i 6 X8 b$ E7 S& e
我一定程度上同意 恶魔吹着笛子来 的说法, : k) Q4 b0 k; f' Q
! _* X2 t$ K9 k- P7 v7 q/ e( S 毕竟VC开发速度是比较慢的, 8 |& J- d9 L7 C! k 1 G1 l g) E N0 d, ]# y. @ 而且硬件速度的大规模提升也为使用JAVA开辟了道路, 8 ?, ~# C9 Y' q* [% x 5 N+ |+ S) b2 A/ ]9 E J 不过microsoft.net的目的是一定程度上改变MS的经营性质,和开发关系不是很大,但 : ]3 G9 K- W9 b: c4 {/ g7 j是MS的一贯方针都是在平台上为开发人员提供方便, ) ~, V1 \4 g9 P, v4 y7 W5 H4 ?
4 `( w2 w1 f# S. U$ y0 X& {4 q; P 所以C#是为了.net服务的。 9 v6 O; y9 B( j1 B- ?
0 u3 ]& [: g. U2 i! C. b
# l, ~# _) G5 e& A$ }; M
此外我想我没有精力再搞个c#help.net了。:-P 8 L7 v! Q$ R, l6 p5 q t
% d( s; {% f. s2 i 果子 来自 http:// : ! z2 q4 ?. T# t; ?: }+ m# ~ - H' S/ W- k" T. R( g
"恶魔吹着笛子来"是比较“前卫”的一类程序员。我就听业界的人多次说过JAVA也是 6 [5 c9 U/ s$ v0 J1 j
$ V# S1 W* n4 B; [7 L$ G2 S. ?
5 Z# o. n8 E* N. T9 {2 G 个吹得很响的东西,但实际如何,大家都看得见。至于认为C/C++开发工具(VC, ' L+ m' e" H8 `6 o8 H+ K
6 X) y4 b7 d) d& q4 H
BCB等)会在一两年内退出市场,就是无稽之谈了。 6 U& r. B$ T' Z' Q9 I
5 G! E: y4 `1 [
Wesley 来自 http:// : ) A0 r/ \/ H+ K$ J% [ - h$ x. N1 q5 V+ ^5 I& [- l* ^+ V; p 恶魔吹着笛子来,你的观点很有启发性。能不能写一篇或推荐一篇剖析、比较Java开 9 L: Q6 H3 E* A" W! B$ G2 v
发工具的文章?比如Visual J++, JBuilder,以及Symantec和IBM的对应工具。(可能和 " _5 G. y, J7 _1 ^4 z3 E- k; {% f本站的初衷有些不合^o^) $ u: A' q! Y& Y% u) O
`# B" f" v1 \1 @4 g# s, k
LeoCN 来自 http:// : $ |% ?3 t3 y$ s1 k) ~/ D* m- E0 S 8 e3 k$ \4 k5 r8 a; X It's not a time for us to determine which language will more better! 9 N5 @/ V" b7 D. `: y0 H: R# t# ^$ z ( P; |3 R) w/ E Q j4 m4 N
in factly,In China,too many corporation just writting some codes for 8 ?/ S, ^: @$ A ) ?& ]! o7 _9 u9 }
enterprise's MIS,OA,ERP or other application.It do not need so speed 5 D( p' B5 R! \1 a% U ( t% {3 q2 W. N* K( [2 M9 w( C and do not need so good original code. just want more data,more easy and m ' \% [% g8 n7 y
ore quickly. ' u* E, G, _) q2 } * Z1 k: V, p. ^& G* |9 f( ~ so c++ is not a choice in such enviroment. and u know,many codes we write 5 K9 X. {4 {. P/ m. U7 V r# }
today will be useless.and there r so many easy tools such as VB / s: W F. X( n: D6 Y9 P0 K2 a) I2 Q : @2 j& ]8 Z# [% j
for windows designer, Developer/2000 or PB for database,Domino Designer fo # c$ ^6 M) b% \. U: |3 Er OA application,why c++??? ) `4 ^4 C3 o; X O3 i( k$ ] . V$ ?$ k/ y1 h) f; ]. ?2 H
in DOS mode. i like Turbo c2.0, with it and MASM i can do everything. 6 U# u3 S7 X2 q( H
4 k; e- D3 P* _( Q0 ^ o% Z
but now i hate c++, it has waste my time! my corporation do not need # W1 }, ^4 d: T" n: I2 \7 W - q) [% A* J- {0 F! a
c++,just need java,xml,php,pb,vb,delphi,developer/2000,domino designer etc 9 G* O3 \$ V, y2 {% q
. 4 y, O( @ j$ u" d& T / }7 b7 C/ O* n4 I$ k% {3 b
so, a tool is just a tool,if the advantages in some aspect of the tool 3 d( F0 {) [ x& E& e/ e1 X , @' I# A4 `+ h+ t) ?
u needed. it's will be a good tool for u. others it can bring u unfortunat 5 Z& a# I1 O& o& |- P9 f
ly! * q, P+ y+ f9 `* F, Q. I
- u) c2 o6 w) r6 E1 ]
恶魔吹着笛子来 来自 : 0 _7 b; `, u! E1 Q % v! J) U& M5 j# |) @3 `5 b
果子,国内的Java应用不到10%基本上是ms的天下.这些可能是由于中国软件业规模太小 # I8 M, b, P3 W2 f O
的缘故.而在国外40%的商务系统的开发都是Java,c/c++不到10%.譬如BEA公司一个有3个 % J6 Y" h8 K- R& w
java程序员创立的公司开发了第一个基于J2EE的Application Server---weblogic.BEA公 4 j2 n/ T H, n ?! F8 e
司依靠weblogic在短短4年里成为世界第四大软件公司仅次于CA公司.可见JAVA的功能是 i) e2 }# }3 s$ d2 W如何的强大.微软的.NET的负责人说,你们想要知道.NET是什么样子,那就去看看JAVA.JA ; W$ m5 _6 e) z3 i) e) y9 F$ yVA是什么样子.NET就是什么样子. 9 c9 a: X$ l Y : C) j. V- J+ r7 Z" t
! c+ [3 Q: H( G* t/ _& B 但是他最大的缺点是系统要求实在高,没有128M别想用.64M下面慢的像乌龟,help更本 - U2 _8 @ t6 t6 C不能开(它的help都是java写的64m下面打开help慢的能够看到一格一格awt画窗口的过程 + c8 B; G. B- }; R1 g% p
).但是不管怎么说他是一个比较理想的系统. ) h/ C$ ? u+ p L( m% m; t
* E" L; G+ g. K p 至于visual j++.MS更本不是想用他来打开java市场,而是想用他来分裂java.从很大程 1 }: Y& v5 r8 V. q
度上来说vj是一个windows 程序的java开发工具他不是100%的pure java.在windows平台 5 w. P% ^+ w* V* y, r# E6 ~* K
上他是最visual的.用他开发application,你不必用复杂的layout,只要像vb一样填写坐 1 d+ D6 G# t5 ~9 C
标,而且开发的windows程序速度很快完全100%的本地代码.你可以把它看成java版的vb. ! s' X) ]/ \8 D' |他的wfc库仅仅在windows上能够用,而且使java和com捆在一起.他自己开发jvm,java库. 0 C' g% ?! _& A. Q, p4 x但是ms污染java的策略相当的成功,不仅把java逼的走投无路还在法庭上赢了sun的java $ e- K& V% a2 s: L; k& h; F: [4 J
官司.因此ms的目的一达倒就把vj便卖给另一个公司而且随着c#得开发和得不到sun的j2 # `3 E3 I7 Y% h' j$ m5 \' _
ee的许可我想ms不会再开发任何关于java的工具.如果你开发java的同时还想使用ms下的 % m8 |6 u j% O
com,ado那么vj可以适合你的需要. ( c* @+ q4 M1 r
; a8 w& I, H* i8 `: _& M 4 D" S0 ~9 N$ M# H4 W
6 |1 i) O! \; M
2 ?& m. g9 y# @* q* W8 P $ z3 d. [& g9 ~# G+ {* v# R4 ]) Q1 [
1 \5 L9 [! N" {2 D# f
" ^5 Y/ B; b! i5 v% D4 y# Y) {
+ J# E, o5 r) C9 ^$ e6 E. F
chenxiqi 来自 <a href="http://chenxiqi@yeah.net" target="_blank" >http://chenxiqi@yeah.net</A> : 1 x4 O9 z+ R+ U8 \# n
6 K* G" c$ Q# Y$ M
VC++开发数据库软件确实比较慢,可有许多软件只能用C/C++来开发,如果VC++退出历 - ?4 p8 L7 m0 n7 I. m史舞台,那岂不是说只有数据库软件才叫软件,我想世界不会如此单一。 0 R% ?* [& Z/ C8 I & R; C2 R' p+ R' Z $ i, A- o3 @2 ~# h
zhangxiuyong 能告诉我什么是MVC的开发技术吗 & K7 O& x. w9 n , S7 a4 x6 B0 G, t" x Q 恶魔吹着笛子来 来自 : 2 y3 X% y. d6 V 8 d; J! ]& E& z2 w
什么样的的软件只能用c/c++开发? ( c1 ]) J1 l2 |
& f7 z. W' n: G7 t/ X$ _ ]) d
操作系统?apple的OS7,os8,os9都是PASCAL开发的. 5 A" S7 s5 r1 ]( D5 c5 s& u' ?$ p
$ z$ k7 m1 x, m- X
数据库?oracle8i就是JAVA开发的 . {2 i4 `; w) W3 q * a' X. O" m1 u2 `) F( Q8 h( K 游戏?你也许没有见过用DELPHI开发的<笑傲江湖><风云>,甚至有VB开发的<神龙教> ; }9 s* \$ D& r) f4 i& U( v
4 Q; l* f! d, S! t+ d
同时VB7.0全面支持direx8.0.可想而知游戏的难度会大大的降低吧. 2 w3 z0 X- i6 {4 W6 ]( _ 0 |! P7 L; G2 f* h( T# V
MVC=Model, View, Controller Design Pattern , a# k! _3 z( W6 ~. b/ ]
; A8 \% h7 d2 t0 _% J$ R/ I5 j/ Z9 X: w . X/ T# I: V8 ]
' A2 |2 F3 k+ J& S z: W- K+ M. Q7 u
恶魔吹着笛子来 来自 : ( p. {. s4 @0 a! q+ {/ s ) R" V; R5 M+ ^! h! Q 什么样的的软件只能用c/c++开发? ) ? C# _2 _/ D5 z" G T5 h W
0 t1 [8 R- c1 H- w4 S
操作系统?apple的OS7,os8,os9都是PASCAL开发的. X4 @9 L. C) s4 n! b( p1 {' u
' P9 f! f2 N2 s- a, R- W* i1 u9 i
数据库?oracle8i就是JAVA开发的 ) v7 Y; i, y# A1 L: r
' V j) b" X$ f- g& B, w3 b/ v 游戏?你也许没有见过用DELPHI开发的<笑傲江湖><风云>,甚至有VB开发的<神龙教> - f$ |0 f2 }+ [% F
3 a) f ` M* n* k, o
同时VB7.0全面支持direx8.0.可想而知游戏的开发难度会大大的降低吧. ) M; {, }& G$ t " ]& v8 |% Y2 s
我的意思不是说c/c++会消失而是应用的范围将会大大的降低并且将会进行脱胎换骨的 ?: x+ M! I( Z升级(用了20几年升升级总可以吧,java的升级不算太成功,但是是一个不错的先例我想c * k' K9 }% \% g1 ]2 y- k( ]
#的前景会更好). ' R3 d! D5 x5 q b# {
: e" d( T4 N% ]) B0 a BTW: @' A4 Z1 I9 Y
/ }, y6 f+ ~! b4 I8 `6 F
MVC=Model, View, Controller Design Pattern 9 u9 ]8 P; ~5 b! T* ]6 q 5 J4 m( R2 t" X6 I% a5 {; B 4 W; k9 `- ^6 i K0 G! P7 C" m9 ~
xubin 来自 http:// : 3 y' O: q( C# t Y9 A+ L ! m& Q ^. J% j5 X2 O$ p 在工业控制中,直接对I/O地址操作,就要用C++。 : ^" ^# L. q3 @) V1 p* i3 Z : }8 d9 ], p/ R" w 恶魔吹着笛子来 来自 : ) V" t U( r0 n+ \* G 4 @* w1 f: j5 a# C! _ 俺有一个同学毕业设计用VB做单片机。你这不是在讨论问题是在抬杠。 ; O4 f) X) y9 H! D
& t' y$ {' q* n0 \. Z- r wenyy 来自 <a href="http://www.vchelp.net" target="_blank" >http://www.vchelp.net</A> : ) E1 G5 }9 }3 k. j! B 7 z; y# T# o5 b6 e: a1 o
我想一种语言并不会因为其他语言的出现而消失, ! P/ ~ y7 ~( y% Z" h " h) j, k" q: ? 比如说c与C++,C++与C#的关系。 8 C7 U1 M* X) @; n# y
( `8 j5 A7 v5 w4 @% q7 ?$ P8 ? 所以我想讨论问题时首先是要排除敌视, n9 j8 U2 N8 q, D& k0 H% P 1 w8 W D M/ B* {, _; p8 i( X
然后才是透彻的分析。 * f7 C+ S) \0 ^7 e$ N5 f& J/ j
) s0 Z# \6 v; s1 E5 P ~ IT世界不光只有网络,还有其他很多。 2 ]# U2 a$ i' i8 M4 L 2 n* V$ `: H6 C
所以某些工具在一定范围内适用是正常的, 0 l: Y8 d5 s" C. A
; e- k. k, M% m# q 其实在国外, . J# N6 n! _& P8 E* h. x! ^ 0 `: t m4 T' m+ `6 e
SERVER端软件大都用JAVA,而CLIENT却没有多少用JAVA, , y' v1 U3 n$ c
. O( r3 |/ A. g
这和速度有关,当然也与MS对JAVA的态度有关。 : Y: C7 N- N* W T
! g; v$ K( \* {, A d3 F, q
6 ~2 s2 T, Z- C# {( a" S% ~ 不过我一直认为C/C++不会因为JAVA的出现而消失。 . I$ p3 S i4 l7 E6 `, w 0 q% X2 P* U, B. {9 s
就象COBOL目前为止还在使用一样, 7 G- J" v4 W' t6 `7 X: r. c
: T& s: c: R, t1 X/ a
; f/ k; t1 q2 E% [6 X4 i
不过以后会有愈来愈多的解释性语言出现,因为解释语言比编译语言的兼容性好,这 ' x! J* o" _$ W5 \% l+ x: r1 O* ^4 R
是不得不承认的。 . n8 m, v2 ]. s ' l+ R; \( X' G6 c
恶魔吹着笛子来 来自 http:// : ! i. t9 H; @8 L1 w1 ~ g
" \. x" ]+ B; B# ]0 N+ t 是的wenny.也许我说c/c++的消失有点夸张化了,但是实事求是的说.java和c#的出现 - @* Z( J5 T" @
! e' f- J) _& ?
c/c++的升级换代是在所难免的.对么. $ [" a$ ]4 _' a( g. H ' k& K( B* X, h
恶魔吹着笛子来 来自 http:// : : {' p) q' R ?+ _4 { * {: I1 w h B5 p+ g8 B* d3 u 而且我一直认为java和c#不是另外一种语言而是c++的升级.就象是c到c++的升级一样 2 E; H* C* O6 V7 f3 f7 `
.对不对. 7 i! y1 L1 U6 N( N% H; x$ J4 o/ }/ W
: a# n5 \% l i7 n* t& D/ Q
xcc 来自 http:// : 6 `* j- D3 r0 i4 m" T) U
5 J: H- f6 h9 {" h
同意恶魔吹着笛子,你简直是我的偶像,顺便贴一篇关于C#和.NET专访 ; y. R5 m3 ?2 N m- u8 e9 J! k |: |8 H6 Z% H
NET and C# Questions with Jeffrey Richter * b5 l0 G$ \& m4 C& f' f3 m0 C3 { + B6 w" z8 t& U) q( T
In the weeks after Microsoft made a huge splash in the development communi / p% ?% w) A1 V) b& u9 g( q) h/ s# f
ty with their .NET and C# announcments at the July 2000 PDC, Jeffrey Richter ( p4 G% `% G r4 w) G, \9 U" |, U
accepted our request to field 20 questions from our readers about these new " V# n- P1 T# s technologies. As many of you already know, Jeffrey is a cofounder of Wintel ( M& W4 y Z( v0 N; Q' M
lect, a company that specializes in Windows & Microsoft.Net training and deb ! q: O. {) ^4 \ugging. Jeff is also a consultant at Microsoft working on the Microsoft.NET * k# P! q5 M. `" M+ Y0 _Common Runtime Language (CLR) team in which C# and Visual Basic 7 applicatio ' l/ u# }" u. a3 ~5 y) S1 ons operate. Below are the 20 most popular questions that were sent in and Je 3 c6 b* w# u6 j" Y7 l8 d' S
ffrey's responses. 6 J- ?2 h0 l B" v. x
' _0 Y) P# z' s% Y; K0 v- m
For Visual C++ developers everywhere still trying to get a handle on all t / a; `7 g" V6 h; H
his: Thanks Jeff!! 4 n# d5 _& _/ d6 h# P
2 v. X+ m- v) u2 Z4 G
# d" `- S, f+ j" V* }5 i( z Question #1 Is .NET a runtime service or a development platform? ; F1 k' p. g2 z* u* t, Y8 x* z1 E1 D' O1 v
, P X3 b8 T+ E2 z" R
Answer It's both and actually a lot more. Microsoft .NET is a company-wide 5 ^( T: g5 w h) J9 d. q; j
initiative. It includes a new way of delivering software and services to bu $ K7 a. }, Q. m( r7 F* ysinesses and consumers. A part of Microsoft.NET is the .NET Frameworks. The 6 u! M6 ^8 J# a; Z; j9 r
frameworks is the first part of the MS.NET initiate to ship and it was given / b$ ^! W ~9 |5 U: b) w
out to attendees at the PDC in July. The .NET frameworks consists of two pa " W) `% j+ p! ?5 S% drts: the .NET common language runtime and the .NET class library. These two i- H* v, L9 Y0 g1 P) o; c
components are packaged together into the .NET Frameworks SDK which will be 1 r6 ^8 T7 _# H" @6 G: Y5 V
available for free download from Microsoft's MSDN web site later this month. 2 a l$ V, {0 C1 x8 J, b* y5 g
In addition, the SDK also includes command-line compilers for C#, C++, JScr " P" T$ a ]' Wipt, and VB. You use these compilers to build applications and components. T ' W/ T& s) z8 \5 t8 \ Ihese components require the runtime to execute so this is a development plat i/ Z. }' s6 w
form. When Visual Studio.NET ships, it will include the .NET SDK and a GUI e % N3 z/ m3 x- t) `4 C. t
ditor, wizards, tools, and a slew of other things. However, Visual Studio.NE ( p; A% N' F9 b2 z- F& C A. ST is NOT required to build .NET applications. 3 o# E" O0 e3 L N' _
4 s8 ]% u- K9 m( e, b5 y7 h
5 t+ [( s9 S! K Question #2 How likely it is for C# to become a general-purpose (meaning: * l0 n% H0 o3 o& d. ]; v
not MS-specific) language and if so, have any other vendors committed to pro - u0 _6 W7 Y1 `6 |4 h6 H; H1 Y9 vviding compilers on any non-Windows platforms? / L2 A5 l/ X. \ : q1 M" a' l. |6 b& u: C Answer It's hard to answer this right now. I have been programming in C# a . z: D: \$ N- h, v) _! z* `lmost exclusively for about the past year and I love it. It only took me a f ' e4 H! P& s& }0 w7 k- aew days to learn most of it since it is very similar to C++. It was designed 1 j) ^1 y. E& @$ L& x
to compliment the common language runtime and I think that it's unlikely to / f% ?8 G! B& G* G0 k4 ~ gain much momentum if decoupled from the runtime. However, you never know. 9 P ^% y% ` T" C. V
Microsoft is submitting C# to the ECMA standards body so any company will ea 2 H# D5 x7 b" Fsily be able to produce their own C# compiler however, without a runtime, th " Y- G( R+ k" N2 ?1 oe compiler itself is not that useful. I'm not aware of any companies current # n& b# f0 e C! `ly working on their own C# compiler. Certainly, porting the runtime to anoth 4 C8 ~2 l( m# ^) i
er OS is no small undertaking. , Y' T7 H+ X$ d7 V& b- a! c ! o/ k- z- Y8 ]) a: Z$ W: E, l
; ?* E- i: t- S- E Question #3 Can you tell us specific practical problems that C# can fix be 6 \1 G2 I$ v+ K; M/ i1 J* `% ^5 u
tter than Java? ' H$ K% r% v" u" _ ! [9 j4 C/ u0 y- q% J3 ?
Answer I must be honest with you: I have never programmed in Java. I know + f5 S* r9 z, a' |7 o8 F1 Q* M& Lwhat C# offers the C/C++ programmer: simpler syntax, components that seamles ' ^8 ^+ s, G2 vsly fit together, type safety, and so on. Other people should be able to add 9 G. @' T/ ~+ C2 y5 @ress the C# <-> Java comparison. 8 b+ a. g* l0 i
- i' W3 Z! {/ @: J- \
& X- m) m5 T' U
Question #4 Will ADO+ be the preferred and most efficient method to access * l5 B. ^2 h1 f# i* G$ y2 q
databases from C# or will it have it own (or .NET) class wrappers for the O + _- m$ y9 j6 F8 f) s+ A# T- ULEDB API? ( o4 {+ Y7 S. a. n. M
1 ~+ Y& [( F0 R3 X1 k r: C; { Answer The .NET class library includes a System.Data namespace with many t 6 K" G1 U7 S' d8 {2 T0 M9 G. X
ypes for database access. These wrappers will be the best (and most efficien . G5 a3 Q" c0 e6 S) t% e
t) way for a C# programmer to access data. ) O. W. R+ ^* f4 B8 Z/ i8 q
0 x- \8 }' C9 z' c2 s" G- `9 L % M0 H( U. {# N1 d3 }# d Question #5 Can C# be used to develop Windows applications or is it soley 6 t% o" q( m: o% k8 Gused for developing distributed applications? $ c( Q: W5 P( U* V9 _8 ] \ 6 L# Y$ U. r, q B) _
Answer C# can absolutely be used to develop classic-style Windows applicat % S6 r3 R! u, Q! V! \6 G2 H
ions. Actually, this is more a function of the runtime, not the language. So ' |' T8 V- ^$ i# {# H
, the runtime supports console apps, GUI applications, NT Service applicatio 4 J7 i3 } v( V! \. @: S
ns, simple components which can be used in applications, web pages and so on 6 y' F4 r) g, W9 L3 f
. You can't write a device driver but that's about all I can think of that t : P# o5 A. d: ?# xhe runtime doesn't support. ) i5 ?/ f$ o7 \, F* W h2 H + T# @ {- ?, v) B1 ^. k
+ K: Z) g2 t% n Question #6 What is the C# relationship to WinForms? / U3 b. g2 x- r& ] + }0 x A6 r! {# h# d
Answer Win Forms is a set of classes in the .NET class library that wrap W - k+ X; Q% b6 e
in32 windows, brushes, pens, etc. Any language targeting the runtime (includ & Z, Z0 s1 y- R P; a4 W- Ying C#) can construct instances of these types and manipulate them. This is 5 w# e& B8 ~- J6 w- L- K0 w
how you would create an app like Notepad, Calc, or Wordpad. I know that Win $ L( R8 W }& B" }Forms has similarity to J++'s WFC library but I also know that there have be , q8 u n8 s { r( b
en some major changes. 1 v+ o8 G$ G9 {4 M+ w: z) r) B # N2 O# z2 @* M1 G; R 2 i( K/ V0 b* u
Question #7 Rumor has it that the C# language has been submitted to the EC 3 Q( @# k/ R( c# X- h% _: _+ {MA for ratification. Is this true and what impact do you see that having on 8 t8 i6 h W$ P
other companies adopting it as a general language (such as C and C++)? & q. N# U! z$ ^) e, R% @ / W& j1 O8 Z3 _6 Q% C8 x" d1 [! @5 H6 q6 w
Answer Yes, it is true. I pretty much answered this in question 2. + }' [" g/ ~3 U
. S0 j" w z& d, {' f6 F- o* h 8 ?( ~( v' G6 d& J w3 l5 c4 o) X( u Question #8 Which will be the role of ATL and COM in the new .NET technolo + @: [# Z2 H1 b1 d3 i u: o' x$ wgies? ; U2 h) s- i, K, R% U . \; Q4 f* S0 ?( g$ R* j9 F N2 G
Answer The .NET frameworks offers a replacement for many existing librarie 9 j7 u' r! L8 f: s: \s, like ATL, MFC, C runtime library, standard template library and so on. .N : c+ A4 }7 H" U4 x6 m: I2 X& l2 EET programming is significantly easier than using any of these older technol : W2 c5 W( H( q: C6 d* ` @ogies. For this reason, I suspect many developers will move away from using 6 r2 u$ j# z: K/ g3 f8 L: f2 z4 k% ?the older technologies. The older technologies can buy you performance howev / h8 ~ f8 {1 A* x" T5 y" d6 Ker; so, some people that are very concerned about this will stick with what' 4 a) \ p" c' i' V& b" |; \s around. As for COM, developing components with .NET is orders of magnitude % |! L9 w, z" C% u7 W% V" `( T easier and the interoperation between components pretty much happens for fr - w0 n7 i0 [5 Y9 ^ee. Again performance may be an issue for some. And, for the time being COM+ 9 S1 Y, {" N6 j services, like transactions, are not being offered directly to .NET code. Y ' @$ `, L3 |9 N2 A# k5 O1 j A
ou can still access these COM+ services but .NET code must incur an interope 3 G* Q c4 J. _+ [
rability transition, which translates to a performance hit. * ^( C. ~" p2 P8 O7 m
0 X- m9 g8 e! s. P0 p: o$ N, g 7 z1 j/ F' m: a# D
Question #9 Why was the templates feature not carried over from C++ to C#? * D& r$ K: Q; n1 {6 N! ? : b1 a* o) k+ h/ K& Q% x8 B
8 _) ~/ `/ n; a Answer Again, this is more of a runtime issue than a C# issue. First, temp $ { P4 M0 J1 Elates are difficult to implement and Microsoft choose not to do the work for # J" s0 i" K6 i1 n
Version 1 of the product. They may do templates or something similar in fut 9 z1 w/ a* d" d7 p$ }* X. x3 d
ure versions. Second, since the runtime is a multi-language runtime, introdu / _: u5 s% I5 o; H1 n
cing templates means that all languages targeting the runtime would be requi " h/ {0 i. @7 k# w% j1 n% `. o+ A5 ]
red to support templates in some form. There are a lot of issues here that n 0 u$ o4 ~ h: ?% R" o1 {eed to be carefully considered. * u' A5 x% U5 \
4 B, E# @- k/ x3 |' \$ y / L- y' V5 X2 k2 M1 A+ l8 N0 `* T( ]3 ~
Question #10 Will C# replace the pseudo keywords that clutter ATL COM code 4 z4 C; z% V9 r# d3 M7 p: E+ o2 s with real keywords? Examples: OLE_COLOR, BOOL, VARIANT_BOOL, and DISPID_XXX ! F5 V8 g' O$ ]% Q5 D7 V
XXX. 2 W- y. j7 A) S5 | 9 M, n; }, Z% p
Answer Absolutely, all types have new names as provided by the .NET class : ]5 ~- k+ i2 e9 A
library. ( s8 O: { M* y" ?6 X ) c4 G* X. U \7 a$ n0 y
( q$ e/ k/ `# o/ a. z) ^4 j Question #11 We've seen managed extensions, but aside from that, what futu z! _, _$ D5 K- E5 wre does C++ have at MS and in .NET? 4 _3 W7 I# t; a5 T! \% e # D6 R* ^% w! D2 G6 B5 g9 C$ K9 w! m
Answer C++ is unique in that it is the only Microsoft language that allows , O# k- t: Q" e0 x# y" c% J2 Q' g3 B% j
the developer to write managed and unmanaged code. So, I can easily see dev 3 y [+ _5 {' ?( jelopers writing in unmanaged C++ for performance-critical algorithms and the ! Y5 m! g/ C2 cn using managed C++ for type-safety and component interoperability. I'm sure - \, j& m/ x5 G) O) J Microsoft will keep C++ going for years to come: device drivers need it, Wi 1 U- V% \' ~# J* ?
ndows is built with it, SQL Server< Exchange, and other BackOffice products 1 G7 T& t5 V( {% H; \( g% ?* pwill probably use C++ for a long, long time. / d- H" ?+ U+ q$ y: F7 o
9 |* u5 r+ w! }7 b r
) x: ?) B Q P
Question #12 If .NET supports ActiveX/COM, how will security be assured if - K& ~) B' S# z0 ?1 S
a C# application runs from within a browser? ; J& p8 x0 p$ y% q; J; c 4 x2 `3 ?; X7 W0 ?& k( T9 @
Answer The .NET runtime offers code access security, which allows an admin / t! H+ [1 p, ]' @! F3 ]2 X4 Gistrator/user to configure security based on code identify. By default, any 7 r, { c) J, l& k7 R: A
code downloaded via the Internet or intranet is untrusted and will not be ab # ^, N& V9 t) B. f1 M# Ole to access files and other resources. In fact, when I build a console appl 2 H! r0 g+ [* k' |9 | f8 a
ication and run it from a network share, I get an exception when it tries to ( p2 o+ f$ a# u7 j- q9 W+ I* Y) [: X
access certain resources. If I copy the same file to a local disk directory ; Z; K( G/ L8 K& |+ m9 ^ and run it, it runs fine. Code access security is integrated with the runti * D4 T9 y& ` y7 P5 Pme and is too deep a subject to cover here. , I! [- ~+ i9 f1 B6 l; Z0 u
( J! |6 J$ o, [0 F
8 _& r' E* A+ _, D- L0 L H Question #13 With regards to the .NET runtime, do I need it on the machine 5 \0 k- U+ u6 o- r1 K1 b8 V- _
that I deploy C# apps on? * I5 |2 p7 s2 [: s1 o 0 c3 h* W8 r e1 c1 o. T) b) M1 |. M
Answer Yes. All managed apps need a manager; the runtime is the manager. M 0 |) D4 m! ?, O( t& }# Oicrosoft will eventually package the runtime so that it is freely redistribu + j( g" w5 f6 ^3 L& g0 u4 z
ted. For now, end-users will have to install the full .NET SDK from MSDN web % S1 V2 E, k' _6 E3 ?4 l y
site (when available). This is similar to how VB developer must ship the VB " X% o, Q6 [3 t( T* V" B
runtime today. ( N$ R) y" P% o& p2 F+ D& M 9 v9 A0 s6 G' e ) ?$ [& Q+ ?% ^9 ~
Question #14 There has been mention of being able to derive C# classes fro " o4 [5 v/ E4 N1 ?+ f/ }$ v. q' t2 D% fm VB classes. Is this true and where can we see an example of how to do this + M4 y+ M+ m8 F2 X? + C% j& R+ _, T# {8 E3 i8 d
9 v; _6 @/ X. l9 R
Answer This is true. In fact, any language that targets the runtime can de ; p i5 e5 |" `rive from any type created in another language. Also, the Visual Studio debu # @4 W1 A; q2 G/ H- ?$ j7 r: z0 z
gger fully supports debugging across languages. Each entry in the call stack % M7 Z# v; c* x* h1 t. s, s: @ window shows the function on the stack and the language that the function w 2 Q/ d* c* q5 L( A% nas written in. This is very cool and got a round of spontaneous applause whe 5 U' [: \ J7 J, qn shown at the PDC. There are samples in the .NET SDK that demonstrate how t , e2 B E( D4 l* Go do this. It's really quite simple. Actually it just happens, there is noth # H$ ?) s! S9 A2 w6 o
ing for you to do. You can also throw exception across language boundaries a % X; g: `; w" z) N
s well for error handling. : C7 r8 G: X$ |& T( f7 f- X
; J, D9 ^. M$ H( Q$ A+ m 6 b; h$ }, L* m# p
Question #15 Can I derive a C# class from a C++ class? If so, how? ! K4 S4 P0 D) I% i. g - {" f, Y) E' H( T& ~0 ^4 i. B
Answer Same as the answer above: Any managed language can inherit from a t ( A* l2 ]. J7 z' T& V
ype in another other managed language. If you use native C++, then you can't 7 R. i" u7 F @" M3 f+ E3 S do this, however. 9 @0 [- q, @) _ j9 {
7 ]9 t8 e* M9 Y8 p4 o6 U 2 C* o% w4 A7 t Question #16 Will the new version of MFC have the option of working in a m / z3 G( i0 s5 w" Sanaged environment? ! B+ r7 \, i. ]+ D3 h8 s# T T$ f0 x: Z; S7 }* Z* A
Answer I haven't been tracking the new version of MFC but I'm pretty sure : Z2 x7 I5 G1 U0 S
the answer is no. MFC is all unmanaged just like it has always been. For man 0 i9 V J1 l7 A3 p
aged applications, Win Forms is the window manager that people should use. ' \* u% @4 q1 f# n( u3 S# m
2 G& ~+ Y* j5 s$ V' {% | ' B; c7 D& a+ y! W6 b
Question #17 If the new version of MFC will operate in a managed environme ' ]3 L. _1 |. X2 b& d; |; wnt, will it have the option of building desktop Win32 apps and not needing . ; t6 a3 B2 S0 H, X; i' n# ~& A
NET runtime support? . H/ s G8 }+ Z7 y b! o+ r
4 ]' I6 V' G/ l2 Y; O0 W
Answer I'm pretty sure MFC is unmanaged and will never require the runtime ) ^# B5 Q: [% y% ]+ X# R. / ^% N8 Y5 E( {7 `
+ |: A+ Q' \- w# [+ k" D8 x
T1 F8 v" J" U1 [: j( p1 _
Question #18 Stroustrup has been quoted as saying "I have not expressed a - c7 P2 [& R* L8 x- o9 ltechnical opinion on C#, and I don't plan to do so. C# is yet another propri ! m: n! m8 w( T) |5 Oetary language specialized for Microsoft's Windows system." Do you agree or 0 W. _8 z! ?4 q+ t) ado you think C# is more of a generic language open to other platforms? 8 Z/ P# t* I% F1 _4 r u
0 \7 R* F/ W" a& z
Answer C# is a language designed for the common language runtime; not Wind 0 C/ _/ L: {* G8 Q
ows. The CLR can be ported to other operating system like Linux and Solaris 4 ^4 R! n. [! s
and if the CLR is there, then C# will probably be there as well. In the gran 1 e1 [2 S0 V3 c i+ M
d scheme of things, C# is not that important or interesting. It is a syntax & o( F- t+ U. e4 Y, @$ k @9 xchecker that spits out intermediate language consumable by the runtime. You ) b/ `0 [( I1 B9 {can love C# or hate C# - your choice. I happen to love it and think is the b ( u/ k, z& k8 y9 W2 A5 {0 a5 xest programming language for the types of applications I write. ; G+ l; _: v0 q' V' s
% o M6 q- r# c P% R# D
8 z0 d3 P0 w6 }) X" a
Question #19 I heard a rumor that VB7 will allow static linking of the run ! ?/ \0 \9 L# ]2 `
time, like MFC. Is there any truth in this? If so, will C# also be able to c # _) f" ]3 i5 z
reate standalone apps? 7 `! v+ e7 R7 s% z! L) q" ^2 J5 E 7 O6 `$ \6 ^. ^) W' g0 X
Answer This is absolutely not true. No language will able to statically li 1 }" {: D$ T0 v9 V# znk to the runtime. - O% U6 ?' i' _ . Q; J2 M2 Z* {1 p N, ] 9 b# q, m0 R7 | Question #20 Does C# still use resource files? If not, what mechanism is p ' E! V* @* d1 V% krovided to allow for localization? ; G. {8 T8 z$ E" h* r
9 r" g9 {* ~9 w
Answer The .NET frameworks designers have created a new resource model. Re 1 I9 i- T% C5 u* Zsources can be embedded in EXE or DLL files the way Win32 resources are or r % \3 g6 i# B! |7 ?/ iesources files can now be stand-alone files like a single jpg or bmp file. T 8 `" |$ |4 y7 }$ L5 |, Ehere is also the concept of fall-back cultures. If the Swiss German resource % I m: d% ~$ ^3 a5 z$ J, i' s
can't be found, the runtime looks for the German resource. If the German re . V, G- p6 W# @0 c3 h3 nsource can't be fond, it looks for the "default" resource. Each language wil 2 r$ c! ]6 t- \4 w, x+ \
l typically be built and shipped as a separate assembly rather than packagin & ?. B6 t2 h% G7 }+ m' \
g everything up into a single file. Like code access security, a full discus # V* G) x. V- S; U& `+ ?
sion of the new resource model is too much to put here. 3 E6 p2 s) ?0 z/ x0 y
2 F9 _% V# r E# v 8 r$ G8 R; k1 V! ^* {4 R
{/ p/ e1 Z$ b- r* d v* U* q
4 g/ U5 F- W0 F; o" j! U 不要再去争论什么DELPHI、VC了,语言只是工具。软件的关键是创新和设计, 3 ]$ g1 m L' Y" o
( ]/ H; {' n& F4 b2 R6 M 有了这个前提,用什么工具去做就看你熟悉什么工具了,看你的工具能不能 : K9 C! d$ ^1 V8 w2 Y
' j c8 a9 m5 Q( K) x7 f0 h$ x. A
满足你的设计目标,有限制就选择别的工具。就这么简单,有必要去争论用 5 I4 V" B% j m4 N1 f5 M
?) B" E( m! a; _( ^2 y, L 什么工具吗?应该是争论一个软件的创意和设计有没有前途,而不是先去争 ( J" ~7 i7 o Y8 F0 T+ J1 L
8 ^8 T7 m! p- @8 ^' O! o+ ? 论用什么工具。每个工具都有它的优缺点,主要是看你是否熟悉它,它能不 & J; ?* Z& V0 b" y8 u; k
: Z" S* t; H5 K+ ?* W* z5 d
能顺利实现你的目标。如果不能,没办法,选另外一个工具。做界面还是 0 n% ?5 W5 V c/ S2 X
! g# D% i: j1 C! }% r. b DELPHI合适,做高效率的通信,还是VC,要做大量涉及SDK或底层的东西,还 ' W# D7 f' O# S6 d " I% O' l B1 ?) V; e* c' W3 u 是VC,就看你项目的目标是什么,而且是每个目标,不是其中某一个目标。 , [* Y4 i) Z0 _ K' Y1 r, B
# m5 o9 ]2 E* C) V/ z
中国的程序员都受中国教育的限制,老是在一些细节和工具的层次上思考, - e1 u9 y4 h( f
* W+ J* t4 i6 z: L' W) Q2 t 没有在全面的系统层次上思考,在整个计算机技术、通信技术、软件技术的 * o, X- G( `5 F. k3 i8 } / i! i0 j, o& B! R" K+ a& E; r1 i 整体面上思考问题,才是中国软件技术进步的道路和方向,而不是去争论用 & F( i4 a) a; K8 y) }# Z
4 e2 [- K; H4 f/ M0 q e 什么工具。另外,本人认为VCHELP网站在中国还是办得不错,但欠缺的是整体 * F' |3 k6 u* C" I5 X. n# d ! |5 i% y$ u8 T
技术层面上的东西,而这一点在中国是尤其重要和迫切需要。