/ O% z; u7 j# z' l8 n6 N 其实我认为,对于Visual C++本身的理解不是向你上面谈到的那么简单,Microsoft * }$ J5 H& @4 @1 V5 C0 |6 @
在开发Visual C++的时候是希望为其开发人员提供一个可靠的开发平台,便于用户可以 / m1 H1 r8 B+ T# E- T, s- m
为Windows上面编写各个方面应用程序,包括:数据库应用程序,硬件驱动程序,网络程 : \, p# b; S( ^; }% d( I序,多媒体程序,游戏程序等等方方面面,试想如果一个开发平台要同时完成这么多个 ) P0 Q4 t2 @0 A4 N1 [! ~9 f方面的开发任务,是需要考虑多少的问题,因此Visual C++在设计的时候就考虑了提供 U+ p M6 | O
一套类库而不是直接提供黑匣子式的开发组件来完成开发任务,提供的类库MFC具有很灵 1 p# f2 D8 R( P3 {/ W1 j
活的设计结构,以及良好的继承性,同时配合DVS文挡视图结构来组织程序开发,虽然我 8 W1 J3 V4 g: ~4 ~
们承认利用VC开发程序(数据库方面的程序)没有其他的RAD开发工具来的快,但是如果 % q, ~: E( Y$ i' f: y) ?, T
你真正利用VC来开发的话,你会觉得你不会去选用其他的开发工具的,对了各位听说个 ( `) `3 ]2 _2 ~( @5 I/ q) K; i
多少开发人员是从VC熟练的开发师转向VB,Dephi的开发工具的吗,当然DVS结构本身也有 O) _1 _/ w5 L0 J
其很大的弱点,如很难重用。同时在CView中再嵌套CView的变得不可能。不过对于开发 6 b; H- R/ k9 E W" [% M
中小型的程序(代码在50万行以内的程序却是可以的了)。对于特大型的程序我想最好 - _" V: |! t! e
可以借鉴一种新的技术叫做MVC的开发技术来组织你的程序吧。好了各位此些文字,仅代 # K6 [% p, c! R6 k* N表个人之言,如果各位感兴趣可以到:http://www.ucancode.com上面看看。 9 I* U2 P( ~ x h V p' [ - G! o; K: t& c( Q zhangxiuyong 来自 <a href="http://www.ucancode.com" target="_blank" >http://www.ucancode.com</A> : ) c2 W7 V: |5 h8 V* U* K) ` I, u) z6 |( }( L4 w1 G
其实我认为,对于Visual C++本身的理解不是向你上面谈到的那么简单,Microsoft 1 s1 @* O" \' Q5 F# X2 R
在开发Visual C++的时候是希望为其开发人员提供一个可靠的开发平台,便于用户可以 8 q3 a9 W% r4 }2 y
为Windows上面编写各个方面应用程序,包括:数据库应用程序,硬件驱动程序,网络程 ) L9 v* j, X0 d! a ?, w序,多媒体程序,游戏程序等等方方面面,试想如果一个开发平台要同时完成这么多个 # {8 C. f' ^- V; C方面的开发任务,是需要考虑多少的问题,因此Visual C++在设计的时候就考虑了提供 4 Q+ P, z7 [) S. o3 I! q
一套类库而不是直接提供黑匣子式的开发组件来完成开发任务,提供的类库MFC具有很灵 3 A8 R0 Q9 Z, R) _/ T; i
活的设计结构,以及良好的继承性,同时配合DVS文挡视图结构来组织程序开发,虽然我 , ]" Y) y7 e+ d们承认利用VC开发程序(数据库方面的程序)没有其他的RAD开发工具来的快,但是如果 ! Z3 {: {. @/ g
你真正利用VC来开发的话,你会觉得你不会去选用其他的开发工具的,对了各位听说个 7 j) _9 r8 T+ X+ ]8 S( C. ^多少开发人员是从VC熟练的开发师转向VB,Dephi的开发工具的吗,当然DVS结构本身也有 : r2 D5 Q4 G4 |* s) ]其很大的弱点,如很难重用。同时在CView中再嵌套CView的变得不可能。不过对于开发 . `& O7 C6 q% l, k7 A" j/ X中小型的程序(代码在50万行以内的程序却是可以的了)。对于特大型的程序我想最好 0 t+ y- q9 {" B5 i. e可以借鉴一种新的技术叫做MVC的开发技术来组织你的程序吧。好了各位此些文字,仅代 . s2 T3 h, ^4 i. r
表个人之言,如果各位感兴趣可以到:http://www.ucancode.com上面看看。 5 X7 O( Y8 z( I7 c: J) [2 c ; ]& @7 W$ s: V
zhangxiuyong 来自 <a href="http://www.ucancode.com" target="_blank" >http://www.ucancode.com</A> : 5 E& H! A0 j0 e4 B7 e) C
! @" B# G. M4 ^6 V7 S9 z/ G% t Z 其实我认为,对于Visual C++本身的理解不是向你上面谈到的那么简单,Microsoft ) W) n3 O. {) A, Z+ i) _4 P
在开发Visual C++的时候是希望为其开发人员提供一个可靠的开发平台,便于用户可以 / m5 F( n3 x9 V0 o8 a9 H
为Windows上面编写各个方面应用程序,包括:数据库应用程序,硬件驱动程序,网络程 6 c% w% f) f& _( P" v4 @& O
序,多媒体程序,游戏程序等等方方面面,试想如果一个开发平台要同时完成这么多个 / ~2 g- O* o0 I; H/ i) `3 S5 S
方面的开发任务,是需要考虑多少的问题,因此Visual C++在设计的时候就考虑了提供 & O% ?7 e: |9 X3 O一套类库而不是直接提供黑匣子式的开发组件来完成开发任务,提供的类库MFC具有很灵 ) }1 y+ A+ \7 y0 Q, f* X9 G: E! {
活的设计结构,以及良好的继承性,同时配合DVS文挡视图结构来组织程序开发,虽然我 4 S# W- e: W# Z& T% i$ {们承认利用VC开发程序(数据库方面的程序)没有其他的RAD开发工具来的快,但是如果 , |0 K; _& L+ i& i* A6 {* Y- ]
你真正利用VC来开发的话,你会觉得你不会去选用其他的开发工具的,对了各位听说个 ! a, {2 u! {/ D! J* v7 N
多少开发人员是从VC熟练的开发师转向VB,Dephi的开发工具的吗,当然DVS结构本身也有 # j3 r' ^' Q7 @% M* j- d
其很大的弱点,如很难重用。同时在CView中再嵌套CView的变得不可能。不过对于开发 , C' h8 T% ~ S% U. D% {" w
中小型的程序(代码在50万行以内的程序却是可以的了)。对于特大型的程序我想最好 9 ^0 h/ T' B$ m
可以借鉴一种新的技术叫做MVC的开发技术来组织你的程序吧。好了各位此些文字,仅代 " ^8 b! c1 g) i3 }
表个人之言,如果各位感兴趣可以到:http://www.ucancode.com上面看看。 : l2 [) j" ~) f 8 ]4 K" X7 u7 h @& j6 ^3 ]/ ?. t
wenyy 来自 <a href="http://www.vchelp.net" target="_blank" >http://www.vchelp.net</A> : 8 B" w1 h$ B" D; g5 k . w7 O! s. q5 S5 p2 u3 C
我一定程度上同意 恶魔吹着笛子来 的说法, 1 \5 O1 F, E* d7 W: d0 Z3 Z6 e8 _ # ~" D. A# e# O 毕竟VC开发速度是比较慢的, 6 o. l5 d/ t5 G+ j0 g
; D+ S5 Z! ^0 R6 F 而且硬件速度的大规模提升也为使用JAVA开辟了道路, 8 ]3 W$ k# B; a% t
2 z. X7 S) v& {0 @" m
不过microsoft.net的目的是一定程度上改变MS的经营性质,和开发关系不是很大,但 3 ^1 }, R$ z& l S N
是MS的一贯方针都是在平台上为开发人员提供方便, $ P8 c( m/ c, e/ G5 E( i8 B
- h j M) c1 F 所以C#是为了.net服务的。 # }* L) |4 x$ f7 s8 @1 p % `. J" b& @8 _, M 5 \0 r/ {4 p: _' | 此外我想我没有精力再搞个c#help.net了。:-P 5 q. Y' u% R& Z: c
! b5 i8 F5 g5 k- w
果子 来自 http:// : - \, Y* n" n# d4 b8 \
% b! I0 m8 M* H g B' `6 n
"恶魔吹着笛子来"是比较“前卫”的一类程序员。我就听业界的人多次说过JAVA也是 1 r. N# h7 b- ]! ^9 v& g T 0 M5 F$ T- a8 Y8 `% t% ` D ! U7 w/ [4 S6 G$ t B 个吹得很响的东西,但实际如何,大家都看得见。至于认为C/C++开发工具(VC, : W* B3 }2 z7 z$ ~& n$ s1 F
# Z5 b/ @. ]5 i8 j. L
BCB等)会在一两年内退出市场,就是无稽之谈了。 3 v1 U5 s0 a. A. U+ F 4 J }) s$ ?$ y" S% w7 e6 D; H
Wesley 来自 http:// : * v8 [# V$ |; Z' W O8 j E
! p' S/ Z9 k5 s, c8 m 恶魔吹着笛子来,你的观点很有启发性。能不能写一篇或推荐一篇剖析、比较Java开 9 _; ?5 z( i0 J$ X发工具的文章?比如Visual J++, JBuilder,以及Symantec和IBM的对应工具。(可能和 6 ^" ^* B- @2 q( d
本站的初衷有些不合^o^) # _1 F3 u4 j3 P& i, n. ?, D% L 9 y. M* |5 T7 }0 s LeoCN 来自 http:// : 7 P* _0 ^) D. z 4 Q, O+ m% |: C3 |4 h
It's not a time for us to determine which language will more better! % W0 y; o. ]" A 7 p \& ]- Q% [8 T( D in factly,In China,too many corporation just writting some codes for * k5 b1 \. c7 s0 V ' V) J& X K; u; Y7 `: n
enterprise's MIS,OA,ERP or other application.It do not need so speed # i! ^* l! h1 u- E, a
$ T' A) I+ \ p0 Y
and do not need so good original code. just want more data,more easy and m ) p+ |; k3 [% |/ H. ~. S
ore quickly. 8 e- A }9 r- [- W' } " J6 R2 ~3 C% R9 Y5 o2 R so c++ is not a choice in such enviroment. and u know,many codes we write ) P1 ]4 V4 f+ Q/ L% }
today will be useless.and there r so many easy tools such as VB 0 [( v9 ?/ ]; g7 z * k( [- s4 J- \ for windows designer, Developer/2000 or PB for database,Domino Designer fo 3 {/ R- k) y. r+ T- m6 r/ u9 U% g# s; Jr OA application,why c++??? . H/ z' U7 I# { v5 W/ U$ D
5 u3 v9 \ Y( v2 z, w5 a) y7 k in DOS mode. i like Turbo c2.0, with it and MASM i can do everything. & u& @' v6 s/ ^$ L1 i% n& F" l3 e; J; N 6 C+ M& I! a0 v. ? but now i hate c++, it has waste my time! my corporation do not need 7 o; \9 a9 S, R* n; z1 K2 r
$ ~4 Y3 `/ s- l) Y1 F c++,just need java,xml,php,pb,vb,delphi,developer/2000,domino designer etc , j% H" H5 T2 I) E- X9 L
. . R* {7 n$ B: h q. q( K3 ~
: l. n. I$ t% R8 M' w so, a tool is just a tool,if the advantages in some aspect of the tool 6 O5 M% o! M* ?5 u9 c
9 w# h# J8 O6 j1 h( e
u needed. it's will be a good tool for u. others it can bring u unfortunat $ u* C- J6 s3 [2 k: w: \ly! ; e& v" b" R. D' f& k4 l# E : M4 [8 l" W7 Q; }) j
恶魔吹着笛子来 来自 : 9 i/ P& a) s) q
$ u6 L& \, l5 |9 r 果子,国内的Java应用不到10%基本上是ms的天下.这些可能是由于中国软件业规模太小 % X6 o- y8 }7 |
的缘故.而在国外40%的商务系统的开发都是Java,c/c++不到10%.譬如BEA公司一个有3个 " |1 b9 u# \8 i4 \* `
java程序员创立的公司开发了第一个基于J2EE的Application Server---weblogic.BEA公 8 S y0 X0 T8 L0 ^& ~
司依靠weblogic在短短4年里成为世界第四大软件公司仅次于CA公司.可见JAVA的功能是 , ^/ z) k, {8 M6 i+ X2 m如何的强大.微软的.NET的负责人说,你们想要知道.NET是什么样子,那就去看看JAVA.JA 7 p8 Z# F2 N# b# X' R7 pVA是什么样子.NET就是什么样子. 1 y( R L; y: p* ^2 I , v% }9 G8 `3 h ! q8 o1 ^' O$ i- c* f6 } 8 f. O$ O6 O% R# \: I8 }% Q
恶魔吹着笛子来 来自 http:// : 7 d) e+ s8 U+ Y' I2 o
2 Y' C% J( U3 g. @ y7 | j
Wesley你好.关于Java开发工具的问题.从我的观点来看,目前的Java开发工具没有一个 1 ^8 U {& N( h/ x2 x- Y0 T6 v令人满意的.最主要的是,在技术上考虑的太多,却不像MS的开发工具考虑到程序员的方便 , N; Q; Q6 a5 r) r% W3 z- o& b
(vj++是另外一会事情我后面会讲). - B1 T$ V4 Q, }! \1 Z 7 c/ S% u. p& G. G4 ]
基本上流行的是sun的jdk,ibm的visual age for jave,samtic 的visual cafe,和bor ' j& ^! c, Q3 A! t3 v% @land的jbuilder(vj++基本上没有什么人用). ) y/ V- J' N; }! k9 c
0 h# \* c0 H* L l 在这几个工具来讲,jdk是老大哥,但是仅仅是一个command line compile.在某些方面 o' i- b- V9 l6 d4 `& [
用ultreditor+jdk会比较方便,譬如你的机器的配置比较的低(memory<64M).一般来说,几 0 @9 p. l7 R7 J+ ]
乎所有的Java工具需要的机器配置都比较高. % C q* k0 G" D - c9 H$ ~! w) t& { visual cafe是第一个可以使用的Java IDE工具,我当初学习Java的时候就是用这个.它 9 ~0 ?& A1 j* j* g. E
的配置要求比较低.一些比较低的版本譬如1.5 2.032M就可以使用了.但是现在最新的版 ) I# w$ `; N2 o; J1 d% t1 K# C本5.0的要求就比较高了,可惜2.0以后的版本没有用过.cafe的IDE开发也不是很方便,懂 1 c8 ^: t% {+ [' d7 x一个窗口西一个窗口比较的乱.而且bug还很多.有的时候trace到一定的地方 : M8 ~# n/ P& C' H 5 P! e% W6 O, v. D 就会crash.samtic是一个系统安全公司不知道为什么cafe却那么不稳定.而且从技术上 ) Z" x' p% }9 [3 p; `
来说到目前为止还没有完全支持java2.更不要说j2ee了.从帮助来说cafe的帮助基本上还 9 M3 s7 @+ Y/ B4 D# c7 E7 v
是jdk的帮助没有什么特别的地方. ; U' f4 V# K9 M9 d2 |3 a% j " v X% u- Z6 t3 G _! V9 ~' m/ H+ I( i IBM的东西往往是吹的比做的好.visual age很复杂功能也很多.支持100%pure Java和 3 I& [3 O% z nJ2EE.但是使用起来不方便,当初为了设一个class path找了半天的help都没有结果.后来 # d2 p% D; k/ ^- y, b8 K1 P
听别人说要在nt下面设置环境变量才能成功.而且与其说是visual age还不如说是comma " n9 m0 w- y7 p/ z, C4 D
nd line套了一个windows壳子.做application还要自己写layout代码更本就不visual. + p: t1 L6 K8 ]) Z) v! P + \. S+ ]# L& S( F. o Jbuilder是我目前遇到最好的一个,它的界面基本上和delphi c++duilder差不多.他是 9 \1 H# U2 j. F+ D2 E; q
第一个真正的java的rad系统,第一个全面支持j2ee 13项Java技术的工具(bean,jsp,rmi 2 ~2 ~5 c! a/ h, @6 P
都实现了).100%的pure Java.相当全面的help document. 6 u7 V( V U# R) v, r / D- S$ [1 o5 k 但是他最大的缺点是系统要求实在高,没有128M别想用.64M下面慢的像乌龟,help更本 $ r; s8 k9 b5 b! H; W" G
不能开(它的help都是java写的64m下面打开help慢的能够看到一格一格awt画窗口的过程 ! `# o9 w! p& c; f& U) s# g) H
).但是不管怎么说他是一个比较理想的系统. $ W, [! F% U' M% ?& O, m& @
$ L B3 F/ {$ F0 N2 v 3 t+ r% u& w) @1 \3 S9 w- d f # L% _6 K, ?( |) C4 _* Z 0 @5 E3 y( A r9 }2 R 6 ]9 E1 O5 y' n% O) T) g
3 G( Z7 E8 T Q0 X5 ~4 e; ]
chenxiqi 来自 <a href="http://chenxiqi@yeah.net" target="_blank" >http://chenxiqi@yeah.net</A> : 6 W# c7 B2 Z% v6 [9 X
: _# Y. Z, ~& G7 A9 Z; |9 B VC++开发数据库软件确实比较慢,可有许多软件只能用C/C++来开发,如果VC++退出历 6 P6 C# m8 e. B, g) D! Y
史舞台,那岂不是说只有数据库软件才叫软件,我想世界不会如此单一。 ; F E* ~1 V' N* B. D 8 D! L( h' K' T# N5 t; u
6 c. \" o* m( @1 W2 V7 K$ F. ~ zhangxiuyong 能告诉我什么是MVC的开发技术吗 ( B2 A, k+ E! I6 s
0 _0 m% E" I" d$ I: i 恶魔吹着笛子来 来自 : " R8 X2 W' ~. a P5 |6 M) l/ P 5 R- [- ~% ]5 K# G) p7 _5 Z; w 什么样的的软件只能用c/c++开发? . U9 M4 g) h% I / |1 W2 H* T9 V- ]0 \. I# N* u( [ 操作系统?apple的OS7,os8,os9都是PASCAL开发的. 6 k6 n+ w/ v& |7 G' E, Y
- g+ r( e+ d9 a" G 数据库?oracle8i就是JAVA开发的 - c3 Z. \3 b5 [+ V, M. F
! W. F- J1 a) D0 V; a# X 游戏?你也许没有见过用DELPHI开发的<笑傲江湖><风云>,甚至有VB开发的<神龙教> % ?2 ?0 @( }& |$ |$ t; t6 x/ y Q4 y! V' J8 `* P* x 同时VB7.0全面支持direx8.0.可想而知游戏的难度会大大的降低吧. 1 s+ N, K7 j4 H) B6 H+ x7 c/ p
% L+ R1 P$ o; c- |4 J- g) ?2 g; B 所以我想讨论问题时首先是要排除敌视, . F+ W6 {+ X9 d7 }( C @8 |% j * f! i) `( [/ k) d a% k' u
然后才是透彻的分析。 - T V! o) [2 Z Z% T5 \ 3 |3 j/ j* z/ U3 }2 D& K2 _2 C1 |! ?
IT世界不光只有网络,还有其他很多。 + I1 r+ v' D5 G4 W8 ^* N" L
1 S6 Y" X' ^- m g
所以某些工具在一定范围内适用是正常的, 6 I. @7 Q( i( U - f e& y& N3 O
其实在国外, `. ~5 D! z% i5 T
. u+ w, S, b; ~8 d0 t5 f3 w
SERVER端软件大都用JAVA,而CLIENT却没有多少用JAVA, & Q. f1 J' H( z1 v) X
# o9 O( P' X# _/ R1 s3 q; C7 D
这和速度有关,当然也与MS对JAVA的态度有关。 & T" ]$ p: W8 L+ a" U, T4 l3 }' I( t
/ N! h5 _0 H' n2 ` , B; {- Z1 Y, F1 B2 U d
不过我一直认为C/C++不会因为JAVA的出现而消失。 ' p3 x# K" q- x( x _4 i$ Q, U+ O
就象COBOL目前为止还在使用一样, 7 t& m% c9 S) W2 m. _ . |; l: ?( D) v' [
/ O# _1 b+ ~5 l" k, o 不过以后会有愈来愈多的解释性语言出现,因为解释语言比编译语言的兼容性好,这 . d! z( Y% @% `$ r6 K
是不得不承认的。 ) r" | |* ]( Y5 ]3 @
) u/ C9 p" x4 [ l- e+ y
恶魔吹着笛子来 来自 http:// : " b- @$ _# ~( y) {: f# @ % t& c; Y; V6 z1 r0 [
是的wenny.也许我说c/c++的消失有点夸张化了,但是实事求是的说.java和c#的出现 1 Y) L2 U5 t% G! D" ` 6 k9 J5 y( p# `: |* ^7 G, H8 } c/c++的升级换代是在所难免的.对么. $ B8 Y* y9 X" R9 o f8 x3 R) n 0 K2 h$ O. H) B& Y& E0 U
恶魔吹着笛子来 来自 http:// : - e {% j& X9 P3 {8 G8 j+ j : v0 n- D0 W s4 z+ W6 @2 }. G 而且我一直认为java和c#不是另外一种语言而是c++的升级.就象是c到c++的升级一样 ! U! e Y3 C- C# b+ f8 P0 E* z.对不对. ' ^" k K: {6 G. ^* f
4 o% \5 a7 g5 b
xcc 来自 http:// : + b: ~6 F* }' g8 J0 g
( H d5 [- l& S4 f. @+ u" _8 c 同意恶魔吹着笛子,你简直是我的偶像,顺便贴一篇关于C#和.NET专访 7 I: d3 U5 ~" M7 ^4 i) a $ f1 B! E4 U8 h& Y& P NET and C# Questions with Jeffrey Richter 2 U( L% j! P5 `8 B$ w$ ~- S 4 K3 U# j( k" ~$ b
In the weeks after Microsoft made a huge splash in the development communi 1 M& }$ O0 r6 `+ j" R: l/ W- H
ty with their .NET and C# announcments at the July 2000 PDC, Jeffrey Richter ) Q: d$ g3 Q, M% W7 h3 }' ~
accepted our request to field 20 questions from our readers about these new : a6 {# a7 ]+ ]9 o0 J technologies. As many of you already know, Jeffrey is a cofounder of Wintel 2 T/ z7 L$ I+ olect, a company that specializes in Windows & Microsoft.Net training and deb - ^ o( C7 _+ W4 j, `6 @
ugging. Jeff is also a consultant at Microsoft working on the Microsoft.NET ; @7 [0 A) f( p, dCommon Runtime Language (CLR) team in which C# and Visual Basic 7 applicatio 7 f% ~: P. x/ Y. }5 v/ I e$ P* Rns operate. Below are the 20 most popular questions that were sent in and Je / \4 M* e5 X# q4 zffrey's responses. 4 W) E5 i. q8 O
( d0 @+ H& v0 f, h/ q4 R: t8 J8 G n For Visual C++ developers everywhere still trying to get a handle on all t 8 X. y8 U" x/ c4 A
his: Thanks Jeff!! 5 o- h) v, j* z8 q ; b' F' C6 J- p1 {6 p( P; C- \
& l* t7 F$ q1 K+ z4 D- j+ ~6 S. }
Question #1 Is .NET a runtime service or a development platform? 5 T6 a! o; [/ i2 ?/ ~ j2 o+ i- ?) o( Q
6 A5 K' a: L* ~- ~, X
Answer It's both and actually a lot more. Microsoft .NET is a company-wide 0 e( r) E% G; p' L- n: J+ X- U initiative. It includes a new way of delivering software and services to bu ) J2 O* J! s9 |) T# j. \8 s3 Ksinesses and consumers. A part of Microsoft.NET is the .NET Frameworks. The ' d9 \( F1 W$ k% ]frameworks is the first part of the MS.NET initiate to ship and it was given % T' ~9 ]( }8 f, c" ?0 U4 z
out to attendees at the PDC in July. The .NET frameworks consists of two pa + e9 t) s7 X# V. t0 Jrts: the .NET common language runtime and the .NET class library. These two * {* J( U3 @ m4 @2 D( |3 xcomponents are packaged together into the .NET Frameworks SDK which will be ; M+ J5 M7 }+ W0 F3 _
available for free download from Microsoft's MSDN web site later this month. * B+ E8 \- k5 Z- _: V9 ~# j5 p' P In addition, the SDK also includes command-line compilers for C#, C++, JScr ' u1 M8 T! O) x) l
ipt, and VB. You use these compilers to build applications and components. T ! |( n# }" E7 V" O6 Dhese components require the runtime to execute so this is a development plat ; t2 z( `. I- K, w( u
form. When Visual Studio.NET ships, it will include the .NET SDK and a GUI e 3 B+ B6 D* j# L5 h5 x/ M L6 z+ J
ditor, wizards, tools, and a slew of other things. However, Visual Studio.NE 3 P9 h; v5 M/ R# R8 X4 cT is NOT required to build .NET applications. p3 i) G, B4 | ?& o
: f2 H' |, y, O4 K$ s
' ~( c( s' m( b" @- Q3 \ Question #2 How likely it is for C# to become a general-purpose (meaning: % @3 t( W$ ^4 ^1 E9 S) L9 s& Q% @' pnot MS-specific) language and if so, have any other vendors committed to pro & K, a! A* t: J/ H# F7 u% i. aviding compilers on any non-Windows platforms? 6 p5 B0 y" `+ C/ ~9 g ) a0 w& L5 A0 {! o e' c Answer It's hard to answer this right now. I have been programming in C# a % H, I, h. r0 K1 y+ R: glmost exclusively for about the past year and I love it. It only took me a f ( u( |+ r5 @2 Zew days to learn most of it since it is very similar to C++. It was designed - m0 m; Z9 D% r
to compliment the common language runtime and I think that it's unlikely to 7 J( T4 w: [2 S1 P2 [. b/ A gain much momentum if decoupled from the runtime. However, you never know. / x& d9 ~# p& |& S& R$ }3 aMicrosoft is submitting C# to the ECMA standards body so any company will ea 1 h, i7 u0 f) c: j/ \4 e/ Isily be able to produce their own C# compiler however, without a runtime, th 5 |3 }# y: f, }e compiler itself is not that useful. I'm not aware of any companies current 8 {- g2 L8 } w3 A: s' O& Z
ly working on their own C# compiler. Certainly, porting the runtime to anoth ' f+ i" @) R% E4 y# aer OS is no small undertaking. , w: R6 a6 K' x/ T ; E/ b& |& d0 w; e- M6 E! N* x5 R
1 [% o8 r: v# G1 j+ Y
Question #3 Can you tell us specific practical problems that C# can fix be 5 R( {2 m4 W$ w! |tter than Java? - q* P7 _2 X: r. D 9 V( l$ v8 m: F
Answer I must be honest with you: I have never programmed in Java. I know 6 i. E9 l( S( e( T* k! J. Twhat C# offers the C/C++ programmer: simpler syntax, components that seamles 1 {2 ~, O6 [5 v+ }" \4 ysly fit together, type safety, and so on. Other people should be able to add : G0 ]) G6 D4 L( K' G Vress the C# <-> Java comparison. . z& L. S4 W6 Y* _1 R4 `3 m 7 \/ d' B8 l. W
" ]7 I& X! P5 {4 x5 z ~
Question #4 Will ADO+ be the preferred and most efficient method to access 5 j/ t0 [; A+ g# b databases from C# or will it have it own (or .NET) class wrappers for the O & l; o* o5 S( e3 R* s
LEDB API? ) r2 e6 m; Z6 t6 s4 y
' Q9 A, ]! I! F2 d
Answer The .NET class library includes a System.Data namespace with many t ) H3 a9 M) I0 y2 Q" h# mypes for database access. These wrappers will be the best (and most efficien / Y! [* a2 y3 ?0 H3 o
t) way for a C# programmer to access data. 3 S- F m" n" ~8 m; O3 ~5 j
( p8 F/ L! O4 O% q- U- E , |8 T) M; h& e
Question #5 Can C# be used to develop Windows applications or is it soley " F5 Y: {& O! l2 }: b) \used for developing distributed applications? % C3 N0 x' b, {& r
% a; n* S, P, m
Answer C# can absolutely be used to develop classic-style Windows applicat 3 G# ~+ v N- x% x8 u* s9 x
ions. Actually, this is more a function of the runtime, not the language. So ' m/ t6 A% m$ d0 v0 A) m, the runtime supports console apps, GUI applications, NT Service applicatio . m5 Z: u6 v9 s5 I1 ]
ns, simple components which can be used in applications, web pages and so on 0 o) H- [* f" e5 _5 J) H
. You can't write a device driver but that's about all I can think of that t ; l3 v4 J1 X% X
he runtime doesn't support. $ I' @" y: s! \' n
* `. B2 x- L8 Z) @' H ) F ~9 P$ E' H
Question #6 What is the C# relationship to WinForms? : s1 U3 ^1 i+ `3 G! P
6 G( l6 z ^' ^5 t( f' H9 Q+ s Answer Win Forms is a set of classes in the .NET class library that wrap W 7 M0 K6 |9 K1 \( I/ ]
in32 windows, brushes, pens, etc. Any language targeting the runtime (includ ( D' [; a- Y2 p! b$ `
ing C#) can construct instances of these types and manipulate them. This is / w) g; j6 R* T. m; Mhow you would create an app like Notepad, Calc, or Wordpad. I know that Win + d) x) }' m) ~7 oForms has similarity to J++'s WFC library but I also know that there have be / C1 Y3 m. C; X2 den some major changes. - W7 T. q" K% e; C% K2 }2 {
& |# w' Z$ K( U+ i$ r 4 m' B9 i3 `8 u5 {( W( d# x
Question #7 Rumor has it that the C# language has been submitted to the EC ' Y! F6 W1 N# ]% B5 z& ^MA for ratification. Is this true and what impact do you see that having on : z% z' s: U; {' I8 nother companies adopting it as a general language (such as C and C++)? 1 G2 v: J7 W5 N, w5 {
k7 c1 o3 q6 {0 ]5 b: Y7 C Answer Yes, it is true. I pretty much answered this in question 2. : C$ ?4 V* Y0 R$ e! K: B1 K1 _ / w/ s8 i3 r; ~ z6 {# Q # k5 n$ l& J( a Z2 F' o& ? Question #8 Which will be the role of ATL and COM in the new .NET technolo " v) A, A! m9 K" Mgies? 9 B# F7 I+ l7 r( w/ D " {' I0 |' D( l' G, e Answer The .NET frameworks offers a replacement for many existing librarie - i+ z2 f+ b1 D, v2 H. is, like ATL, MFC, C runtime library, standard template library and so on. .N # ^7 p& W3 R$ Q/ U3 g# p* cET programming is significantly easier than using any of these older technol + U% B. P ~7 V4 e% s& Mogies. For this reason, I suspect many developers will move away from using + D$ x# H# A- L$ A- t+ f" X: Athe older technologies. The older technologies can buy you performance howev ( `" ]$ }+ @ }( her; so, some people that are very concerned about this will stick with what' 7 o- v5 r! u0 q$ P. Bs around. As for COM, developing components with .NET is orders of magnitude 8 M* M, J2 R1 a& o3 `
easier and the interoperation between components pretty much happens for fr & d/ T, R' j+ J' @- z4 V: ?
ee. Again performance may be an issue for some. And, for the time being COM+ # ^0 @5 M9 O3 M3 u1 {& J( S( X
services, like transactions, are not being offered directly to .NET code. Y ( T* `# L0 v/ p& `0 ^: Vou can still access these COM+ services but .NET code must incur an interope 7 X, ]; J* b' G# M7 Orability transition, which translates to a performance hit. 2 Y3 Q1 j6 I- k7 G- d' B0 f
1 r) Y6 S+ T0 T, H + ~* W4 y q* n5 l, X Question #9 Why was the templates feature not carried over from C++ to C#? & @+ o: } l0 y, _+ a& _9 U
. M! c: s6 M5 d r7 H 5 D/ }8 N# X/ F
Answer Again, this is more of a runtime issue than a C# issue. First, temp + B1 W+ o" r/ C, Q+ O6 D% Y- B, ?lates are difficult to implement and Microsoft choose not to do the work for 5 `! f. @$ [8 ^: c Version 1 of the product. They may do templates or something similar in fut + H; B1 t" i+ `6 K2 `- p& L8 H5 Xure versions. Second, since the runtime is a multi-language runtime, introdu ( {/ l/ E" X- S, I! Ecing templates means that all languages targeting the runtime would be requi 7 _! Z0 E9 c, ? e& B7 R' f
red to support templates in some form. There are a lot of issues here that n ' { t; U% d* r N( ueed to be carefully considered. 2 C3 ~5 X3 U8 t! f# U1 T ) R1 z0 _3 a( u' U : O8 z% \; e+ B$ j) g) L Question #10 Will C# replace the pseudo keywords that clutter ATL COM code 5 b+ R5 i' J7 R5 ]8 p8 v
with real keywords? Examples: OLE_COLOR, BOOL, VARIANT_BOOL, and DISPID_XXX X! P. S# R9 o( I' u' kXXX. 4 ^* |3 I7 @! Q* V5 D; N ( l* `) n/ X& @3 @6 |( ^
Answer Absolutely, all types have new names as provided by the .NET class % q9 w8 {* @* j( N3 n; ^) k6 x( T& L( y
library. 3 A8 I: G. M$ \4 T) ]/ m1 ^
1 |' Y* ?1 q) I, Z
; V, c; i+ X& A. b: R: E, b+ B( }
Question #11 We've seen managed extensions, but aside from that, what futu % E4 \9 r' e, |* i! s) a' Dre does C++ have at MS and in .NET? 2 ]" E0 O: h+ F. \' I( a6 ~ 8 b, [3 p' M- X! ~# p9 M7 a( t! h
Answer C++ is unique in that it is the only Microsoft language that allows 9 r7 Q) n. i6 b" X8 E# @ the developer to write managed and unmanaged code. So, I can easily see dev % S4 o7 L5 @1 M9 J. @- d1 H2 w
elopers writing in unmanaged C++ for performance-critical algorithms and the 1 B' B' M* b- K+ w8 j: D
n using managed C++ for type-safety and component interoperability. I'm sure / M- V9 K! Q( V+ c
Microsoft will keep C++ going for years to come: device drivers need it, Wi ! E! P1 B$ I/ gndows is built with it, SQL Server< Exchange, and other BackOffice products , Q0 m8 ^+ C1 `1 Z
will probably use C++ for a long, long time. ' v) M. N. T. X0 v. I! c
0 {& h6 U+ g' {/ o) @2 j7 V9 w , n# s; G4 a e- A# A Question #12 If .NET supports ActiveX/COM, how will security be assured if & Z# q/ g6 G: g: D6 C9 N. L a C# application runs from within a browser? 5 V0 ]( n% q4 B' |& D2 ~3 ] ) {* f* i( v7 ?6 ^% p6 g9 d Answer The .NET runtime offers code access security, which allows an admin 9 `3 T: n4 H6 Q& c$ E' r
istrator/user to configure security based on code identify. By default, any 0 M# c" V* n* N) |% ncode downloaded via the Internet or intranet is untrusted and will not be ab ^1 k2 H l8 m4 z0 Zle to access files and other resources. In fact, when I build a console appl % Q! o# M) `& w$ U
ication and run it from a network share, I get an exception when it tries to - W7 h! ~3 H* V$ h5 G# ]/ v( `3 P access certain resources. If I copy the same file to a local disk directory . i' Y$ ]7 N% K0 w# j5 |4 Q9 w3 n and run it, it runs fine. Code access security is integrated with the runti 6 O/ N" Y# u# C7 X2 y' |# w1 Q
me and is too deep a subject to cover here. . F4 d8 T) m- n3 n
# u* A+ {9 `0 o, V6 K6 K1 d8 V* x
9 r4 `& E( W$ Q7 }( z' Z+ Y6 s
Question #13 With regards to the .NET runtime, do I need it on the machine - l1 c: |0 g# N
that I deploy C# apps on? ; C6 L) z8 }) e7 u
/ j9 t3 L) I9 N' V) K! L& E1 K1 H Answer Yes. All managed apps need a manager; the runtime is the manager. M 8 s/ J( |% ?) w0 B @ Q! |
icrosoft will eventually package the runtime so that it is freely redistribu ; _! }: }# \- y( p# bted. For now, end-users will have to install the full .NET SDK from MSDN web ( |) I$ ], V* X. [) ?: ?# | site (when available). This is similar to how VB developer must ship the VB ! ^, S) q* @; ^5 i runtime today. ! Y& U4 V `0 p/ L$ w ( L5 [5 T: _: u: Q! I+ K " F( {: R k- `. Y
Question #14 There has been mention of being able to derive C# classes fro ' }2 _3 P+ Q. u9 Cm VB classes. Is this true and where can we see an example of how to do this & D! A( W5 z5 b" Q8 [? 9 Z4 J' g) S) w; r1 L' Y
. s/ h. [/ F! s5 S+ H Answer This is true. In fact, any language that targets the runtime can de % O. }5 o' G E+ Lrive from any type created in another language. Also, the Visual Studio debu : z6 Q; P$ J/ a$ e; cgger fully supports debugging across languages. Each entry in the call stack & h+ a o$ I; h- o window shows the function on the stack and the language that the function w ; n3 A6 |2 b6 q8 N5 j
as written in. This is very cool and got a round of spontaneous applause whe 5 i @5 t( ]9 vn shown at the PDC. There are samples in the .NET SDK that demonstrate how t ; j9 N! S5 O1 l0 j) {& bo do this. It's really quite simple. Actually it just happens, there is noth ' t5 Q# x3 C; k" k' n
ing for you to do. You can also throw exception across language boundaries a 3 V8 Y0 _3 J5 y# Y" o0 D
s well for error handling. , ]+ C$ R5 H, y2 e% T
# T1 O/ D1 \0 j3 U4 l- A* i$ q/ W 6 ?/ [+ z2 O+ k
Question #15 Can I derive a C# class from a C++ class? If so, how? $ Y) }: Q6 Y$ t/ o4 y: a " Z$ Q v4 _2 L3 H& p Answer Same as the answer above: Any managed language can inherit from a t 7 w! [( `% K, g2 r9 r; M; Z8 G
ype in another other managed language. If you use native C++, then you can't 7 u1 V( L$ L$ y6 o
do this, however. 1 C" g# M4 D. w. o* t
7 p" P. D; E% r* T! ^6 B / B1 z- s+ d2 x* y, v
Question #16 Will the new version of MFC have the option of working in a m " y/ x" L7 n; P- a: V. s& l8 Z/ o
anaged environment? , @- l$ _6 W7 D7 w
W; A8 I! [1 p: {0 u
Answer I haven't been tracking the new version of MFC but I'm pretty sure * s5 K' z( f& ^& S" K7 _
the answer is no. MFC is all unmanaged just like it has always been. For man : I+ r9 H) X/ s6 }- ~) @aged applications, Win Forms is the window manager that people should use. . X7 u8 m) b# Q5 E
' G& g4 E& |3 U! R2 Z
' Q" U! C, y! T l Question #17 If the new version of MFC will operate in a managed environme 8 f! l1 z9 `" p& qnt, will it have the option of building desktop Win32 apps and not needing . 2 D# ]: [ Z% N# p5 uNET runtime support? - R1 ~2 D6 j& Y3 n `/ D' a7 [7 t" w Answer I'm pretty sure MFC is unmanaged and will never require the runtime - c6 i4 [3 ~+ g2 u. 5 M6 n5 t8 P I* f/ R% [7 i0 G
, Z2 M ?# y* G1 [8 F" u
1 q( F3 l; t5 Q" p. c1 W Question #18 Stroustrup has been quoted as saying "I have not expressed a - a2 g3 U+ S! A0 k9 H2 v
technical opinion on C#, and I don't plan to do so. C# is yet another propri ' s1 o7 ?) g7 o" z) k
etary language specialized for Microsoft's Windows system." Do you agree or 3 |3 }$ _) R: x$ e9 s/ A) N" y
do you think C# is more of a generic language open to other platforms? 9 P5 V/ e7 {+ N$ s
6 K1 ?* [7 c# ^$ \: Y( c* q: } Answer C# is a language designed for the common language runtime; not Wind / S+ D! P( e) Y' e3 }6 h, c: B, x
ows. The CLR can be ported to other operating system like Linux and Solaris 3 x; j/ s1 E3 `# V* g3 p
and if the CLR is there, then C# will probably be there as well. In the gran & }+ } B3 s X
d scheme of things, C# is not that important or interesting. It is a syntax 4 R/ G0 j8 S! f- z1 D
checker that spits out intermediate language consumable by the runtime. You 4 N1 ?' |5 B" {5 X* q& Y3 ccan love C# or hate C# - your choice. I happen to love it and think is the b % r( a+ i1 i. Q6 `
est programming language for the types of applications I write. ; C7 _ d* v3 g$ |# \' K 8 P6 L0 p0 B7 X3 N4 R' r
: U+ k% d8 b1 x: `! u# F Question #19 I heard a rumor that VB7 will allow static linking of the run ' R& l5 A6 _ U
time, like MFC. Is there any truth in this? If so, will C# also be able to c Q6 }, [9 n+ }; hreate standalone apps? ?; G" f& z: ?2 m$ O) B4 @4 Y2 }& N * a& s! D/ \! l7 ]9 d& w: g2 R Answer This is absolutely not true. No language will able to statically li 7 X: n& {5 C& p) V5 p) W5 Y5 |nk to the runtime. & v% j" u8 ^5 G9 x6 O& M0 u ' _- I/ @& G5 G/ [3 N7 g * z( y8 t& o% W8 J# t& y% x& d Question #20 Does C# still use resource files? If not, what mechanism is p : H! c0 \: C: P9 d0 [' Z- T; s
rovided to allow for localization? , a7 F3 |1 `# C
4 D/ W4 E! o5 \ Answer The .NET frameworks designers have created a new resource model. Re 5 k+ P* k+ A! W5 q) S% K
sources can be embedded in EXE or DLL files the way Win32 resources are or r ; M- G0 O% {; s P3 B) ?esources files can now be stand-alone files like a single jpg or bmp file. T , ]$ l% O l1 r' {& \( |$ i
here is also the concept of fall-back cultures. If the Swiss German resource * h* T) A9 J- X2 z" d0 d* r5 m( e
can't be found, the runtime looks for the German resource. If the German re ( |8 K9 d/ O, i z1 X- a
source can't be fond, it looks for the "default" resource. Each language wil ! {( d- b$ k' d% ?( A. _
l typically be built and shipped as a separate assembly rather than packagin , E, `# O, B. t3 k+ |
g everything up into a single file. Like code access security, a full discus $ B9 c! e) q* L4 C# f2 csion of the new resource model is too much to put here. " i: L! ^6 P$ r+ J& x+ A
& ?& v$ r$ r0 y3 g$ O8 ]- c+ y
. s4 v1 a$ `/ T* c. P5 b$ z
2 R% ^. Z% |5 M# g s