6 [8 \: m" u9 b. p: R7 i zhangxiuyong 来自 <a href="http://www.ucancode.com" target="_blank" >http://www.ucancode.com</A> : 7 u, ^; T# Z! @* q; u5 C6 ~: ?
$ B6 O( t( P- i6 K 其实我认为,对于Visual C++本身的理解不是向你上面谈到的那么简单,Microsoft 8 W; E1 k, O+ E) e9 ~+ Y在开发Visual C++的时候是希望为其开发人员提供一个可靠的开发平台,便于用户可以 . v- s' P* X$ M' m为Windows上面编写各个方面应用程序,包括:数据库应用程序,硬件驱动程序,网络程 2 r( A3 I3 c& G+ o/ T1 W. g
序,多媒体程序,游戏程序等等方方面面,试想如果一个开发平台要同时完成这么多个 K H, S1 ]3 n- t: C4 V& t
方面的开发任务,是需要考虑多少的问题,因此Visual C++在设计的时候就考虑了提供 * L8 B( P& Q! l% r# r5 [7 P& G0 F
一套类库而不是直接提供黑匣子式的开发组件来完成开发任务,提供的类库MFC具有很灵 0 x/ `2 W# e6 M0 ]3 E, i, ^5 W活的设计结构,以及良好的继承性,同时配合DVS文挡视图结构来组织程序开发,虽然我 L5 z) O6 } K& G0 u# V# y" a$ k
们承认利用VC开发程序(数据库方面的程序)没有其他的RAD开发工具来的快,但是如果 ' P+ }& x5 k0 p/ h你真正利用VC来开发的话,你会觉得你不会去选用其他的开发工具的,对了各位听说个 # |* F5 v! g( W3 O: c
多少开发人员是从VC熟练的开发师转向VB,Dephi的开发工具的吗,当然DVS结构本身也有 ! n* e7 \2 } c" l' v其很大的弱点,如很难重用。同时在CView中再嵌套CView的变得不可能。不过对于开发 7 G7 u) @1 D% p0 {" r! d( b中小型的程序(代码在50万行以内的程序却是可以的了)。对于特大型的程序我想最好 ! i+ I4 R7 x; M+ e, H$ c可以借鉴一种新的技术叫做MVC的开发技术来组织你的程序吧。好了各位此些文字,仅代 $ j" d* y9 P+ w; \6 l6 U表个人之言,如果各位感兴趣可以到:http://www.ucancode.com上面看看。 4 Q4 {+ s# o W7 ]+ j1 }! u9 W4 d
( g# |' |0 T3 c) L% f) d5 c wenyy 来自 <a href="http://www.vchelp.net" target="_blank" >http://www.vchelp.net</A> : : u9 u' H% A! W. [. o# `
! z& ~& ?. v% Q& S
我一定程度上同意 恶魔吹着笛子来 的说法, ; A5 L$ ^# q, w
4 G" q( D+ J* w P
毕竟VC开发速度是比较慢的, 5 o& A0 M7 P( S, u9 [5 S , d% A2 x1 [% g+ q. b+ W
而且硬件速度的大规模提升也为使用JAVA开辟了道路, # G$ r. j1 l" x0 v8 ]5 f! p9 _
B$ i+ H6 ?; `4 m n9 u# M+ i. Y# ~# u
不过microsoft.net的目的是一定程度上改变MS的经营性质,和开发关系不是很大,但 P+ v% E& d# q4 D5 ?' F是MS的一贯方针都是在平台上为开发人员提供方便, . d+ y5 g/ E0 J9 L, {+ W8 G
9 ]8 @0 S: q" o1 R) o
所以C#是为了.net服务的。 5 `$ p( i- L0 T/ m1 [+ X 4 k7 g1 N* s" V% E" h 3 z8 x7 F0 m# D: F 此外我想我没有精力再搞个c#help.net了。:-P 5 F, `; W/ E2 W" j ( J) Z4 f ^0 @6 g
果子 来自 http:// : + ]* y0 D- E; r$ N. f/ }/ O" O 7 x9 m8 l4 X! j; `
"恶魔吹着笛子来"是比较“前卫”的一类程序员。我就听业界的人多次说过JAVA也是 - L/ d) U# L! N# T U( \ 1 u- M3 C; j, @9 B: U# [ 7 O' a; S8 P( G7 O' M' {, i. H
个吹得很响的东西,但实际如何,大家都看得见。至于认为C/C++开发工具(VC, : e9 P. g5 ~& p8 \8 Y
2 S% H$ ~; m2 v3 u4 Y BCB等)会在一两年内退出市场,就是无稽之谈了。 6 `2 \" j4 \) Y$ \& L L
/ H6 P6 f) g/ }" c
Wesley 来自 http:// : 9 b, i6 L! v/ n% F
4 G! a$ o0 d6 m' v8 ]; a
恶魔吹着笛子来,你的观点很有启发性。能不能写一篇或推荐一篇剖析、比较Java开 ' ~3 F" z$ R7 H: v
发工具的文章?比如Visual J++, JBuilder,以及Symantec和IBM的对应工具。(可能和 ' E# g/ k" D' W本站的初衷有些不合^o^) 9 B. ?: C' p! E" C' {' Z1 d
1 @+ A% L. y8 i1 l' F1 E LeoCN 来自 http:// : 9 X$ N4 L @0 C- q( E& W 7 a% V5 S$ @1 O6 g+ v( n p
It's not a time for us to determine which language will more better! 6 V7 y4 o0 p& q4 E # G, g# ?0 Y) M% O3 P in factly,In China,too many corporation just writting some codes for 0 `- l1 [: l0 _4 Q% i7 J, n# R
# ~5 K5 Z o8 ~1 y- x! _% \ enterprise's MIS,OA,ERP or other application.It do not need so speed ' g8 U9 u4 z3 t( z 9 R$ f" C2 Y7 ] and do not need so good original code. just want more data,more easy and m ) d, O* Z* ?/ K& L* v O8 ~
ore quickly. 8 i& X9 X' z! @1 f% |" M5 u) Q) }, d6 W 8 s4 l$ C/ B/ K) b% a so c++ is not a choice in such enviroment. and u know,many codes we write - r* d" ~% b' ~! I( Z4 l5 O" ^today will be useless.and there r so many easy tools such as VB % | W$ x& }) R8 y- ` T0 q7 D
, E, m* U V! X3 C* w F+ q# s" ?
for windows designer, Developer/2000 or PB for database,Domino Designer fo 6 y# ], j$ o m0 ^r OA application,why c++??? % x# }: |& h5 ]6 Z7 x4 N# T
1 M5 B6 {+ m- w* i& ?/ m! _# @
in DOS mode. i like Turbo c2.0, with it and MASM i can do everything. / V6 h9 x% |% ^( i6 T, `
: ~) V7 M5 ]1 A4 |, r1 i5 h but now i hate c++, it has waste my time! my corporation do not need & U- C! t, g- j* Y& }* }' F / e K! N+ [8 W/ [ c++,just need java,xml,php,pb,vb,delphi,developer/2000,domino designer etc 5 P2 w+ D( Y+ C" A
. ! `8 ]: K) o9 c
- l. j }/ j" f9 x/ s; D% H& } so, a tool is just a tool,if the advantages in some aspect of the tool # W* ]- m# l0 m" P * f. ~( \, b# F0 k, |7 p$ Q E" d( ~
u needed. it's will be a good tool for u. others it can bring u unfortunat 1 s4 v2 N) m: n: ^; e6 P# E& ]
ly! w1 ?! `: m! ~' T& y 0 h" P) f# C: P2 Q" m
恶魔吹着笛子来 来自 : + W, A- u6 A5 p) p% J
( D5 }; v5 }: B- ^
果子,国内的Java应用不到10%基本上是ms的天下.这些可能是由于中国软件业规模太小 ' t2 o6 T$ L+ b1 k0 ~
的缘故.而在国外40%的商务系统的开发都是Java,c/c++不到10%.譬如BEA公司一个有3个 6 c9 B# ]( z( ?: C1 @. j8 a. D9 Bjava程序员创立的公司开发了第一个基于J2EE的Application Server---weblogic.BEA公 ) H5 W9 O7 o) p* U7 W6 Z! H
司依靠weblogic在短短4年里成为世界第四大软件公司仅次于CA公司.可见JAVA的功能是 / \! e+ s" Q" I4 D# h; [如何的强大.微软的.NET的负责人说,你们想要知道.NET是什么样子,那就去看看JAVA.JA 9 ~/ \5 X: P+ Q/ hVA是什么样子.NET就是什么样子. & | F0 ~' W8 J; K0 E # I4 a5 h2 f/ ]( }( Z+ j$ X # D, ?9 B) S. D( }( S5 u- ^3 }2 W! c1 E ) B7 { _" A0 H3 j7 s5 g
恶魔吹着笛子来 来自 http:// : , k) @1 W3 a- o% x5 R/ g$ C2 F 0 }5 {0 e, S, h/ I$ n" I' @% A
Wesley你好.关于Java开发工具的问题.从我的观点来看,目前的Java开发工具没有一个 & @) h7 b, s1 U6 j# }4 k6 o4 D
令人满意的.最主要的是,在技术上考虑的太多,却不像MS的开发工具考虑到程序员的方便 1 W! ~8 n+ O7 H+ D
(vj++是另外一会事情我后面会讲). 4 e1 z9 y# k) _: A$ f4 H + W1 ~" t3 b% i 基本上流行的是sun的jdk,ibm的visual age for jave,samtic 的visual cafe,和bor 7 M% B; S6 O B' A: d; v
land的jbuilder(vj++基本上没有什么人用). ( c' L" Z$ n& U+ X2 S2 z
% V% z# S" d) }' J$ P/ d" ? 在这几个工具来讲,jdk是老大哥,但是仅仅是一个command line compile.在某些方面 7 s8 Y4 I6 m2 ~; t用ultreditor+jdk会比较方便,譬如你的机器的配置比较的低(memory<64M).一般来说,几 % n( g: I& U8 e; z) R, n. ?乎所有的Java工具需要的机器配置都比较高. # K8 Z" V0 b F + {9 [5 `6 J: `# @# s1 T
visual cafe是第一个可以使用的Java IDE工具,我当初学习Java的时候就是用这个.它 " d! F$ E7 }+ F的配置要求比较低.一些比较低的版本譬如1.5 2.032M就可以使用了.但是现在最新的版 3 s, o0 u, B* W" C" Y7 V2 S本5.0的要求就比较高了,可惜2.0以后的版本没有用过.cafe的IDE开发也不是很方便,懂 2 W8 B0 O9 y. F/ \* q& i5 v# Q, v! k一个窗口西一个窗口比较的乱.而且bug还很多.有的时候trace到一定的地方 4 _5 b: H* o7 t. n+ l+ H" y * R8 l9 C. u. Z! _2 T1 G4 V1 Q, }
就会crash.samtic是一个系统安全公司不知道为什么cafe却那么不稳定.而且从技术上 $ L, ^+ y; ]) a
来说到目前为止还没有完全支持java2.更不要说j2ee了.从帮助来说cafe的帮助基本上还 4 c- A/ d$ E6 _' q
是jdk的帮助没有什么特别的地方. 6 E5 g" L, ]' d7 R5 {7 m
- t! N5 G( I- g9 c- s6 U3 |* z
IBM的东西往往是吹的比做的好.visual age很复杂功能也很多.支持100%pure Java和 ; M+ \2 p( m- }3 N$ mJ2EE.但是使用起来不方便,当初为了设一个class path找了半天的help都没有结果.后来 7 N- u9 K+ \$ B- Z7 q听别人说要在nt下面设置环境变量才能成功.而且与其说是visual age还不如说是comma ) ]1 g8 p8 l: x8 L& Q: h. n
nd line套了一个windows壳子.做application还要自己写layout代码更本就不visual. 9 n/ ?. x! E, Y H' g' n: C % t& Q. |% ~$ Y, @
Jbuilder是我目前遇到最好的一个,它的界面基本上和delphi c++duilder差不多.他是 % ^2 u* S/ _/ C+ M6 z7 R第一个真正的java的rad系统,第一个全面支持j2ee 13项Java技术的工具(bean,jsp,rmi 1 v$ N) P0 R/ P9 d2 b
都实现了).100%的pure Java.相当全面的help document. 6 j# T# D* o9 h- d' a( j 7 G# @$ J2 @4 G: m5 v" o 但是他最大的缺点是系统要求实在高,没有128M别想用.64M下面慢的像乌龟,help更本 1 F& T1 w% y$ K& h6 `9 }
不能开(它的help都是java写的64m下面打开help慢的能够看到一格一格awt画窗口的过程 ' ~7 P1 Q' T7 E8 }; o+ P( y6 Y, N).但是不管怎么说他是一个比较理想的系统. # y& I7 h8 J' L$ y5 Z+ G7 c0 L5 Y" t1 b 1 _3 @" V* q/ F 至于visual j++.MS更本不是想用他来打开java市场,而是想用他来分裂java.从很大程 & a& H' e& R9 L" j! \
度上来说vj是一个windows 程序的java开发工具他不是100%的pure java.在windows平台 % h' ]" Z6 @! D+ W上他是最visual的.用他开发application,你不必用复杂的layout,只要像vb一样填写坐 ; a! o: I1 v3 x4 l- A r* }
标,而且开发的windows程序速度很快完全100%的本地代码.你可以把它看成java版的vb. # I( k- B' h U! D2 ]他的wfc库仅仅在windows上能够用,而且使java和com捆在一起.他自己开发jvm,java库. , ~: i7 n3 f8 X/ Z; T, P) A但是ms污染java的策略相当的成功,不仅把java逼的走投无路还在法庭上赢了sun的java . N+ |9 Q, _8 Y: ]9 R# l* M
官司.因此ms的目的一达倒就把vj便卖给另一个公司而且随着c#得开发和得不到sun的j2 1 i. z9 O3 f A# Q% ~9 y
ee的许可我想ms不会再开发任何关于java的工具.如果你开发java的同时还想使用ms下的 # \# d5 q: S+ K" R
com,ado那么vj可以适合你的需要. ! j# t8 f: u7 U* r9 k ; Z! [$ Z$ o5 Z+ m
: S& ^- q8 \& k! x 8 M, Q+ B: M, E, w( f
9 b0 z( P3 ?4 [
" g3 ~- @- H* @4 K# g3 [! L/ ? , R) L" F* p6 Z* F6 v1 {7 H6 d0 D 6 F+ M p& \3 Y
. v9 h% k" d( z5 M, m
chenxiqi 来自 <a href="http://chenxiqi@yeah.net" target="_blank" >http://chenxiqi@yeah.net</A> : & |7 k. n9 b/ W7 [0 }
! B" y$ y+ O# {( q; `1 ?8 t$ d VC++开发数据库软件确实比较慢,可有许多软件只能用C/C++来开发,如果VC++退出历 & j" Z. i3 C; F史舞台,那岂不是说只有数据库软件才叫软件,我想世界不会如此单一。 - @( z) K) t i, g" T/ ]; s 6 ?/ k4 C' ~2 t4 z; w6 F+ }. k* n $ K2 _8 M! R! J' d' b) q4 j, y zhangxiuyong 能告诉我什么是MVC的开发技术吗 0 x$ ]$ G, L$ O0 b9 A0 _( r& y
: z/ S9 b* b& ], o
恶魔吹着笛子来 来自 : 3 I, r5 u+ b+ b
$ m0 B0 X a" u! { 什么样的的软件只能用c/c++开发? & J* c5 _9 S3 {3 b
& }* Z; Q, T$ }
操作系统?apple的OS7,os8,os9都是PASCAL开发的. + |8 R4 F, y) e4 Q - }/ ]: o/ Z/ `
数据库?oracle8i就是JAVA开发的 , x# E: M% V1 Y. ~' S* `6 x% ?
% m o$ R* ?$ q
游戏?你也许没有见过用DELPHI开发的<笑傲江湖><风云>,甚至有VB开发的<神龙教> 3 M/ Q+ Y$ }% F8 P: ], q6 A - W$ G3 q. r3 f, m7 }& S1 a1 C 同时VB7.0全面支持direx8.0.可想而知游戏的难度会大大的降低吧. / @, ]7 B! a% I$ z4 f2 N4 ]( I3 x " p$ i, F1 M! I+ f6 z9 f MVC=Model, View, Controller Design Pattern 3 y& \- ?+ e. z
2 N9 I. Y9 m) ?) J& B" {$ R% h 1 }1 K7 `: H3 | O9 N) g * u1 Q/ B* |" W- N8 U+ T* M 恶魔吹着笛子来 来自 : 5 g8 K4 D! A0 X# x1 L0 H
! T0 H1 W- q/ G! b/ k' h4 W- @ 什么样的的软件只能用c/c++开发? 1 |2 H6 [; y1 N: E3 Z. h/ u 0 x% i8 k g. ^ B5 ]6 p% f
操作系统?apple的OS7,os8,os9都是PASCAL开发的. & a- S9 G. A4 F* W0 A4 Q u
% } Q* j/ |: M! q 数据库?oracle8i就是JAVA开发的 + J* i+ q& {) @% L/ i - @% {: X2 h. k9 j' a8 g# d6 L 游戏?你也许没有见过用DELPHI开发的<笑傲江湖><风云>,甚至有VB开发的<神龙教> ; D% m# w( I; \9 z7 [1 o. K/ P M1 N5 `: R/ M5 ]! ~
同时VB7.0全面支持direx8.0.可想而知游戏的开发难度会大大的降低吧. ) r" x' g# y( P U3 J) j) q; `
" g. m+ A# {# C1 F; Y 我的意思不是说c/c++会消失而是应用的范围将会大大的降低并且将会进行脱胎换骨的 2 Y* p7 J: ]0 z; h% Q
升级(用了20几年升升级总可以吧,java的升级不算太成功,但是是一个不错的先例我想c " V! ` b' I6 g+ z#的前景会更好). 3 c9 z" ]' g+ ?0 s0 _% X2 {
" n; {7 P; m, m% e
BTW: * |1 e# k$ j5 w0 o4 |/ Y% k 1 y/ D! b3 D. q6 ^! K4 ~3 Y
MVC=Model, View, Controller Design Pattern ' J5 o6 K: _6 M( W+ A* c2 {
1 _3 C1 {1 a3 h 0 ~; U: ?8 N$ ]- X
: d* a$ ?- ?' R4 m* D
xubin 来自 http:// : 4 G/ n% H# U- ?* I% X N
2 w! T. W! W# s4 L1 [, o
在工业控制中,直接对I/O地址操作,就要用C++。 , I' u, G2 _; T4 Z+ l7 s- X& c
J( i4 `' N; N) L3 M0 X
恶魔吹着笛子来 来自 : 6 u x; m5 w) B4 D
: x2 j3 b8 A) J, l4 \
俺有一个同学毕业设计用VB做单片机。你这不是在讨论问题是在抬杠。 3 K2 ^7 }- l# E' W% `
$ h6 I& W4 J _! c' @7 | R 同意恶魔吹着笛子,你简直是我的偶像,顺便贴一篇关于C#和.NET专访 6 Y) @6 W/ B8 r, t2 W
) H t3 f; U9 W l; [9 J
NET and C# Questions with Jeffrey Richter # i5 e7 V1 F# I. J9 d + k/ ?5 R4 J6 w$ G In the weeks after Microsoft made a huge splash in the development communi ! f& b/ [& Z) P( D) t a- zty with their .NET and C# announcments at the July 2000 PDC, Jeffrey Richter 7 L: H: E; |; T) y: h. L; s accepted our request to field 20 questions from our readers about these new , @; N6 E+ B3 W6 R& U" V3 K5 F
technologies. As many of you already know, Jeffrey is a cofounder of Wintel . H/ o( o) b9 ?. rlect, a company that specializes in Windows & Microsoft.Net training and deb & u- h' T% B3 W
ugging. Jeff is also a consultant at Microsoft working on the Microsoft.NET 3 q2 O+ Y! Q+ _/ e6 m
Common Runtime Language (CLR) team in which C# and Visual Basic 7 applicatio $ C K' s8 O( _) O: _! P) uns operate. Below are the 20 most popular questions that were sent in and Je 3 N" \+ K8 D# @1 W- A+ m7 gffrey's responses. ; j8 T8 l! e8 I! A ; d3 Q: e- u5 D d1 j For Visual C++ developers everywhere still trying to get a handle on all t : K V1 ~5 Z0 b5 p# [: z+ Q
his: Thanks Jeff!! ) O# B8 N7 T; Y + K* t+ V) H: e ' m G- P* L2 G0 t6 G/ }7 \8 M Question #1 Is .NET a runtime service or a development platform? - Q$ ~/ z9 d9 D4 I% L( Q
8 v3 q4 Z8 J/ I( m% a4 N3 l1 ^ Answer It's both and actually a lot more. Microsoft .NET is a company-wide ! k( d4 _+ x5 U6 J B1 N/ @" D
initiative. It includes a new way of delivering software and services to bu / b5 l5 L5 e S% a6 |
sinesses and consumers. A part of Microsoft.NET is the .NET Frameworks. The 7 Q$ X; l- V( j, K, p3 f: qframeworks is the first part of the MS.NET initiate to ship and it was given : R8 L0 G% x& G, G out to attendees at the PDC in July. The .NET frameworks consists of two pa 8 `6 ?1 A0 f1 _1 X; i1 _( f9 N) { yrts: the .NET common language runtime and the .NET class library. These two $ k* ^$ _, A8 y- e6 qcomponents are packaged together into the .NET Frameworks SDK which will be . i! c: l2 h* Z8 h/ ~+ Bavailable for free download from Microsoft's MSDN web site later this month. + ^' x( u- F! ]( e( s9 {4 A In addition, the SDK also includes command-line compilers for C#, C++, JScr ) Q6 ?5 }1 c( @8 U- |( ^; l. Hipt, and VB. You use these compilers to build applications and components. T ! k2 ^) z. T t- [4 I& v
hese components require the runtime to execute so this is a development plat 8 d; S" X) Y$ g% C3 F9 O
form. When Visual Studio.NET ships, it will include the .NET SDK and a GUI e ' C# h6 i& q# I
ditor, wizards, tools, and a slew of other things. However, Visual Studio.NE 8 W/ H1 N9 }& V2 {! s2 p' f$ V9 y
T is NOT required to build .NET applications. . \$ X$ v$ K+ ^$ q* k
9 X& f/ z5 ?; B & _: Q& e) Z' S) _+ g- g5 z Question #2 How likely it is for C# to become a general-purpose (meaning: $ w( z; X$ V$ k5 \! K4 o
not MS-specific) language and if so, have any other vendors committed to pro % r" L+ r7 D* |7 [
viding compilers on any non-Windows platforms? r4 E a$ S0 o3 O% ]
. r- s, H* @ V4 V0 t% t' K2 t; `' `+ e/ T
Answer It's hard to answer this right now. I have been programming in C# a ; g' Y7 M4 a+ D; e Plmost exclusively for about the past year and I love it. It only took me a f % n: X, k. L0 z# A9 ]) K, n4 c' K+ C+ lew days to learn most of it since it is very similar to C++. It was designed 1 t* ]. K: K: s' M& G; q4 L; N; {
to compliment the common language runtime and I think that it's unlikely to u, G5 X: L5 h0 Z( w. y gain much momentum if decoupled from the runtime. However, you never know. + ?5 X7 b* Q, ^0 I' c
Microsoft is submitting C# to the ECMA standards body so any company will ea 8 W4 U; M) E, d: G5 P! B( S
sily be able to produce their own C# compiler however, without a runtime, th 7 D3 ?, W5 O7 k3 ue compiler itself is not that useful. I'm not aware of any companies current " [! G# A. w b1 }ly working on their own C# compiler. Certainly, porting the runtime to anoth ! T4 f' z$ J1 X
er OS is no small undertaking. # J9 _+ ]) t& P4 B: a/ a" e
8 j: ^$ @8 h F0 K3 ` ) d* u$ ~0 ~+ a6 z
Question #3 Can you tell us specific practical problems that C# can fix be . A) w4 ^9 y5 N k( N: `" ?tter than Java? 1 d2 L3 o3 T( N" K! B1 J" a 5 m' ?# d$ C+ |3 I3 O* E Answer I must be honest with you: I have never programmed in Java. I know ! D1 g% a; x7 O$ L4 |7 w0 Pwhat C# offers the C/C++ programmer: simpler syntax, components that seamles , k# v- A/ Q, i6 f
sly fit together, type safety, and so on. Other people should be able to add $ x, C7 b$ u5 P' t
ress the C# <-> Java comparison. ; L9 J8 C& X+ d; x) e4 z/ ~" {) u# U . q0 Z* p0 X% e5 T- ^3 N $ V* ? S! z: s, G Question #4 Will ADO+ be the preferred and most efficient method to access 2 L, U3 e+ k, A. o0 y- r, v W
databases from C# or will it have it own (or .NET) class wrappers for the O 1 t1 @- _' o2 t- `& ^- J5 ^& F- pLEDB API? 6 T: Y4 c% k9 i7 { 9 `9 K4 `" R: T( @
Answer The .NET class library includes a System.Data namespace with many t 7 Y1 L+ x# O; M1 ]7 o) ]ypes for database access. These wrappers will be the best (and most efficien 7 E' p5 z$ F, h: L* Ht) way for a C# programmer to access data. 1 |: X& ^8 n. j ' p8 g" @6 E0 A* e
! `7 l2 E+ @2 r- \+ x
Question #5 Can C# be used to develop Windows applications or is it soley . Q: i/ Z6 Z: u( Hused for developing distributed applications? 1 S+ C; o3 K8 S4 s' \ Y# c
9 w* ~: V! `' g! ~" \8 |. S
Answer C# can absolutely be used to develop classic-style Windows applicat * K r/ a. M+ m. W$ R2 `# u* M
ions. Actually, this is more a function of the runtime, not the language. So ) _5 n; V4 s( k% e1 y+ v, the runtime supports console apps, GUI applications, NT Service applicatio 2 z& i- Y% D, w7 X# W' r1 p7 D- E" e
ns, simple components which can be used in applications, web pages and so on ! V) W2 a& @0 x0 h3 w' k) a. `. q/ u. You can't write a device driver but that's about all I can think of that t # J4 O( d2 Z1 z& g; lhe runtime doesn't support. ! n U, E0 E6 [$ [) l7 O 9 P x) [5 ^* ^* H+ O/ L; q* n 8 e9 l$ I- g7 r! y
Question #6 What is the C# relationship to WinForms? % |! @) R% c. a, E$ r( a$ s' H" H
& j' N3 {7 R+ _3 q ~# l0 d' l# \4 K4 ^
Answer Win Forms is a set of classes in the .NET class library that wrap W : M4 `+ _; r4 H |
in32 windows, brushes, pens, etc. Any language targeting the runtime (includ 2 k* [' M0 g" }, f7 I
ing C#) can construct instances of these types and manipulate them. This is - _' y+ W9 T3 _
how you would create an app like Notepad, Calc, or Wordpad. I know that Win . N* c( `. G1 L
Forms has similarity to J++'s WFC library but I also know that there have be 2 B- C! C( K7 y2 a/ z4 H' O9 g# J
en some major changes. : A3 V3 y, e9 [: a+ w1 [! W4 d2 ^
$ v% j- l8 j# E9 ] * M# V" {3 C8 z: U, ` Question #7 Rumor has it that the C# language has been submitted to the EC " w4 D7 L Q: k( o
MA for ratification. Is this true and what impact do you see that having on 3 c$ Z. v2 u7 E4 b6 K* m5 {
other companies adopting it as a general language (such as C and C++)? * V, R2 p' i; p$ f ?
6 z/ [7 K; _+ h4 _$ G7 N4 Y7 i
Answer Yes, it is true. I pretty much answered this in question 2. ! o9 W# i) z( l9 ` 3 V+ c1 [* b" _/ J
2 P) U2 O) |2 j8 G$ {
Question #8 Which will be the role of ATL and COM in the new .NET technolo 8 i2 L9 s" j4 f4 sgies? ( v. B9 J2 l% I1 E
{8 T& Z! a9 z' q3 z' i) z Answer The .NET frameworks offers a replacement for many existing librarie 2 ?( O1 Q. _# zs, like ATL, MFC, C runtime library, standard template library and so on. .N # i" U' e( @: M* N/ u$ v Q! _
ET programming is significantly easier than using any of these older technol / k$ f, O; H/ rogies. For this reason, I suspect many developers will move away from using 5 l& J0 K7 ^; r( j6 fthe older technologies. The older technologies can buy you performance howev & f. ]( \9 p; f8 |# }; z: z8 g
er; so, some people that are very concerned about this will stick with what' 3 K, s# z6 A! V' y9 ms around. As for COM, developing components with .NET is orders of magnitude " k0 _& Z+ X3 U3 W6 P8 L easier and the interoperation between components pretty much happens for fr ! r5 P2 b. |! v ]ee. Again performance may be an issue for some. And, for the time being COM+ & z7 L3 O8 c- `0 g" F* _ services, like transactions, are not being offered directly to .NET code. Y 8 l) d; g1 G# u# [
ou can still access these COM+ services but .NET code must incur an interope , e. w& \4 F5 Frability transition, which translates to a performance hit. 9 `, R8 O3 w, g / X7 R% Z0 Q. i9 T8 S! s
+ y1 z v, S( h4 H v& I3 a
Question #9 Why was the templates feature not carried over from C++ to C#? 4 j2 f& S4 X5 B5 k/ N + N6 N3 [0 y# F- N$ I& z) A# J ! T5 M& C/ @6 o8 {5 X7 n1 z
Answer Again, this is more of a runtime issue than a C# issue. First, temp 7 f' x1 C4 G1 o8 D$ Z
lates are difficult to implement and Microsoft choose not to do the work for 5 ^8 n! o& I) g( B
Version 1 of the product. They may do templates or something similar in fut 1 M9 e* S, v; G/ `6 {" mure versions. Second, since the runtime is a multi-language runtime, introdu * }/ r+ h. Q/ z [" @4 y) [. S' u& m' e6 zcing templates means that all languages targeting the runtime would be requi 1 s/ G' U, Q, x$ S6 s6 y3 r# I. `' zred to support templates in some form. There are a lot of issues here that n 6 `# G( ]! K. A* n$ x( c0 beed to be carefully considered. " S& S, [% s0 q' h0 T
]8 H, `7 w8 C9 a) f1 ?
( Y5 |- o2 k: T Question #10 Will C# replace the pseudo keywords that clutter ATL COM code * q# O6 t, `8 m; P) Z$ ?; | with real keywords? Examples: OLE_COLOR, BOOL, VARIANT_BOOL, and DISPID_XXX : E' H' ^% V" n8 F7 bXXX. ; {* s# q$ Z) H! G$ F5 V. B/ c + Q7 X" Q T) c( @% A2 ?
Answer Absolutely, all types have new names as provided by the .NET class 9 Q' U R: o" u: ^( i N( w
library. 1 B- a9 v5 \6 R
, G8 @3 S5 |1 }) O 4 y: ^# J! p) L Question #11 We've seen managed extensions, but aside from that, what futu % }6 a v/ I. G7 ?! Ure does C++ have at MS and in .NET? 5 S! B$ |4 ~" u' F' u3 Y $ S/ {1 m/ P% `7 }# f$ K Answer C++ is unique in that it is the only Microsoft language that allows ; m6 c8 O. s! _6 ?- W) I. D/ j
the developer to write managed and unmanaged code. So, I can easily see dev 3 y" w4 G/ z5 s, u |elopers writing in unmanaged C++ for performance-critical algorithms and the E$ j8 C' R- f# ^0 g& hn using managed C++ for type-safety and component interoperability. I'm sure 8 X8 J" A% T9 ?0 L; v$ G# g$ C Microsoft will keep C++ going for years to come: device drivers need it, Wi : J) }# H* Z. u/ A6 endows is built with it, SQL Server< Exchange, and other BackOffice products 2 [" U' L; q- Lwill probably use C++ for a long, long time. 2 h6 o' n6 g8 S; B* v8 M% E1 a" h
+ n" } n, s& G @6 S h3 p/ E p3 z " q+ a5 Y9 ]: b# w ^0 |6 l
Question #12 If .NET supports ActiveX/COM, how will security be assured if 0 @ E1 S9 H/ C8 A+ e0 x
a C# application runs from within a browser? $ s6 e0 O% @! [- w+ u
C# T% o2 L/ Z* R
Answer The .NET runtime offers code access security, which allows an admin & w% m2 ?, j7 A; h0 S) t0 W9 n- Distrator/user to configure security based on code identify. By default, any 6 c/ [ ^% d3 f
code downloaded via the Internet or intranet is untrusted and will not be ab & O0 a& `: | |9 c! h5 t# h
le to access files and other resources. In fact, when I build a console appl 3 N# o7 ~3 ]$ a7 D$ L' H A
ication and run it from a network share, I get an exception when it tries to ; }+ h' R J$ i6 `! X. R access certain resources. If I copy the same file to a local disk directory / N4 `- c! b. E9 E" U# R
and run it, it runs fine. Code access security is integrated with the runti 4 \$ W2 U( ^) {8 cme and is too deep a subject to cover here. ; O- Y* T Y) e2 Z # n! X; Y% t7 _+ B3 c : j+ m/ j7 L' W5 B3 w- `
Question #13 With regards to the .NET runtime, do I need it on the machine 1 p+ ^7 D( x! W: q0 a! D that I deploy C# apps on? 4 Y! w% x I: Z
J/ K6 ^ ~7 U% b2 _" C3 p Answer Yes. All managed apps need a manager; the runtime is the manager. M 0 g" N E; A8 Y$ A0 F/ licrosoft will eventually package the runtime so that it is freely redistribu 5 H v, O7 W! `' a! ^0 F3 \ted. For now, end-users will have to install the full .NET SDK from MSDN web * M# `1 Y# Y) p" `0 {$ c
site (when available). This is similar to how VB developer must ship the VB 9 D2 H$ C5 q) v7 {0 i runtime today. $ ]9 o6 I$ I4 Q4 n$ n2 p/ x4 H" c ( m& |- p9 E! K+ H : I5 L. H2 Q* t: y* X
Question #14 There has been mention of being able to derive C# classes fro 3 P7 Q5 S* C; d2 {* `" Um VB classes. Is this true and where can we see an example of how to do this 3 h3 }% T( B3 H* Q? ' K9 u; A' x& Q" a( q4 V6 u ) ^; S9 {( u) r
Answer This is true. In fact, any language that targets the runtime can de 9 }- }. c& C) u2 b
rive from any type created in another language. Also, the Visual Studio debu 1 q4 O/ C2 G, z' U2 h( C$ `gger fully supports debugging across languages. Each entry in the call stack / q3 }: N: H+ H! x( S/ W" d
window shows the function on the stack and the language that the function w ' m5 e+ s4 G4 T' ^4 v# D8 o
as written in. This is very cool and got a round of spontaneous applause whe , f5 r/ h$ z+ ]' X& B4 v1 Rn shown at the PDC. There are samples in the .NET SDK that demonstrate how t 2 ]5 m, J) i9 L
o do this. It's really quite simple. Actually it just happens, there is noth 2 v1 X1 @5 I$ R: I" e
ing for you to do. You can also throw exception across language boundaries a 2 |! ] M {3 q* v+ ^ t9 t [
s well for error handling. / @1 g( A6 [& G: P
. |3 R- Y# }3 {8 j
3 l* {! I* d3 I" a& X& F- n Question #15 Can I derive a C# class from a C++ class? If so, how? & g* f1 m/ G; X4 _ z, k$ _' A, N
9 [0 x* q/ i9 x, r- w Answer Same as the answer above: Any managed language can inherit from a t + w$ g l6 @. E
ype in another other managed language. If you use native C++, then you can't 4 j: \& L7 F( `8 U6 K0 t* ~ do this, however. - i4 r2 y/ d& g% @4 D+ J
2 P; [2 ~' X) ]& H: | B4 ? 4 a [% l7 h' B7 J! L, Y
Question #16 Will the new version of MFC have the option of working in a m 2 ]7 F0 F1 X# V% a2 j/ xanaged environment? / }' P! w4 ?- k7 w+ d) [% ]
6 k: s; }) g8 P4 B1 ]. a' A7 {+ ?
Answer I haven't been tracking the new version of MFC but I'm pretty sure . F0 H1 o# H$ I+ _! f" Wthe answer is no. MFC is all unmanaged just like it has always been. For man 8 [) H6 T) G7 C! r5 o! ]& w5 Taged applications, Win Forms is the window manager that people should use. + U, f! O( I" x$ A5 I- D+ u
6 ~/ p- o7 x( ]- H' o
3 J: Z9 a- k# r3 r9 j3 k
Question #17 If the new version of MFC will operate in a managed environme w* t, U; ?7 x
nt, will it have the option of building desktop Win32 apps and not needing . * u: J" k- @: |* v, t0 ~
NET runtime support? ( c7 O9 x* _8 c7 q. s: { V! y: J# u$ M
3 ?$ O! y. {6 k Answer I'm pretty sure MFC is unmanaged and will never require the runtime * K0 T) F/ P X" |( n) b. ) x# i1 t9 f9 I( }& T6 E
G& N7 l I3 y8 a: l: d6 o& ?$ p
3 K: ?% @0 c" D+ [$ U7 p9 Y) x Question #18 Stroustrup has been quoted as saying "I have not expressed a 6 i1 _) X B1 \+ `9 O9 r8 Dtechnical opinion on C#, and I don't plan to do so. C# is yet another propri 4 T+ ]: T0 |3 U3 Z N/ @9 B
etary language specialized for Microsoft's Windows system." Do you agree or $ ?0 n% O8 u8 j
do you think C# is more of a generic language open to other platforms? $ P! m) j) z7 H. Z N% C, S- [2 E# [ ; Z' J K+ R* ^ @& G
Answer C# is a language designed for the common language runtime; not Wind ! f; A1 A9 }" Q8 M6 l4 f
ows. The CLR can be ported to other operating system like Linux and Solaris \7 l6 \8 R# v( I) iand if the CLR is there, then C# will probably be there as well. In the gran & [" B( F* S1 l
d scheme of things, C# is not that important or interesting. It is a syntax 3 L; V7 k0 J& k) ^
checker that spits out intermediate language consumable by the runtime. You 3 j/ }0 t$ X2 X0 _" ^7 u# ocan love C# or hate C# - your choice. I happen to love it and think is the b 9 |2 C( x- S; Lest programming language for the types of applications I write. ! G) y0 M0 H# @1 G8 y/ T
& v9 B g8 b" b, W, o: O ; d( M, X, C/ `* J" ]8 f% U5 @ Question #19 I heard a rumor that VB7 will allow static linking of the run % @9 ]* E* S) W5 J
time, like MFC. Is there any truth in this? If so, will C# also be able to c # Z1 N- d7 t0 F- mreate standalone apps? / k7 ^' J t: m5 I O0 G 0 L2 p) m8 N M) Z8 G1 m& p
Answer This is absolutely not true. No language will able to statically li V+ t; {* d& W4 m) i; wnk to the runtime. - T! _* A& n5 ^5 o1 W8 S * @; J4 e) `/ ?2 n3 o & }3 q) k2 {: e Question #20 Does C# still use resource files? If not, what mechanism is p ; o; t9 p% B" C
rovided to allow for localization? ' m8 z+ W/ d# E; o' j 2 \; [5 Q3 ]* ~
Answer The .NET frameworks designers have created a new resource model. Re ( d: m4 S N) R" J0 V3 c- y# ]/ nsources can be embedded in EXE or DLL files the way Win32 resources are or r - o) N4 m/ y u$ o& a; ~& f- K
esources files can now be stand-alone files like a single jpg or bmp file. T ' c& ~- Y8 T) Y) O6 q( Q/ where is also the concept of fall-back cultures. If the Swiss German resource 5 `+ S$ f3 a/ R3 M! b6 ]
can't be found, the runtime looks for the German resource. If the German re 9 i; h8 {* ]) r9 @: @source can't be fond, it looks for the "default" resource. Each language wil " J3 u! J- y- B$ q, O W9 z1 u
l typically be built and shipped as a separate assembly rather than packagin . D7 F. c2 C& B) y* R( C
g everything up into a single file. Like code access security, a full discus ! w; T' F) u) z% R& B7 w0 _sion of the new resource model is too much to put here. % o& `9 j+ I! k# k% N" R5 C! w" C
. ?, M5 C6 _6 i/ p6 P
3 |# j5 F* I# G. u0 R ' n" S, K7 r: E4 C
' G- ^( V4 A& T" L4 Z$ {
wenyy 来自 <a href="http://www.vchelp.net" target="_blank" >http://www.vchelp.net</A> : 6 O e3 I2 I/ n$ s9 f6 g" j6 E
) X" @& g- v/ l! q! ]
我想应该这样说,一种新语言的出现会在一定的功能领域上替代其他的开发语言,以 0 W! e; |3 q% c; n) [
前的开发语言的使用范围会缩小,但不会消失。(就算是出于保护现有资源的目的) + @! I Y* k9 [+ l
[. J* F8 R! \( y( q; g* {: ]5 O
但没有一中语言是十全十美的, ) c! e! k+ R8 b% ~& |
% C6 ?/ `/ j& R4 w6 h: H( b! U/ Y
JAVA,C#都不是。 5 q! I& {4 ?, G, }9 z9 b . d- t% M7 v- R. b- X# l* q+ n
9 b0 \0 }/ |+ a8 W3 e ' f& M- O5 j+ `- ]0 g! ^
wenyy 来自 <a href="http://www.vchelp.net" target="_blank" >http://www.vchelp.net</A> : 1 f( J7 W6 `- p : Q u1 ]) s! S' k
》》恶魔吹着笛子来 3 h7 I) c6 L0 ?: b M# T3 i
) z2 [( J' e3 J. _; }$ {
你好, * L+ [% |4 u3 i # X$ d' n2 w: k8 h 很高兴能够与你进行讨论, 2 F+ Q, r6 N/ ?( ?5 _0 j5 G 1 f( f( L5 y# Y5 X5 ` J& e 虽然本站名字叫做vchelp.net , g* T7 l6 F9 p' G! z4 ~3 I+ g. X" R 8 Q% I" r) P& _7 L4 p8 H! i
但我不排斥其他的开发语言,只是自己的能力有限不能将本站内容扩展到其他的语言 - o( x2 {$ v' P. v+ T* N, ' @% c+ H9 i2 ^; e1 A9 g! [+ H% k
8 ~3 t# `3 q% o
但我很希望大家在本站对开发中可能遇到的问题和矛盾进行讨论,不论是关于语言还 ! ]1 D* y5 N) b9 O# ^
是开发方法的。 4 A, q, L- A( e* s3 D$ U
" S5 g: y" W$ H 我想邀请你成为本站个人专栏的作者, $ A0 o4 A+ Z( q3 Y. v% Z' f/ Q( g
* q" n2 b) r" V$ @* H8 g- N 你可以发表一些你关于开发的想法,就算是与VC无关也没关系。当然在时间上也没有 / N; o* n; P7 V8 N3 w要求,你有时间就写写。 * j6 v9 z7 v6 R2 F* B / D! e% O& I" B6 c
盼复:<a href="mailtwyy_cq@21cn.com" target="_blank" >wyy_cq@21cn.com</A> # e9 d& y6 `# N- c, G7 R
" s w5 C" \: B' X! f* v- | cuixue 来自 http:// : 7 ` j% b! ^7 L$ n, B 3 E" ~5 D' i8 K. E& }9 ?/ U 看了各位大侠的话,觉得好像在讨论java,其实历来有两派,smth几乎天天在吵, , f+ H# X+ S D) e* @% v, N" A3 h
1 _, ?& u1 T9 |8 X 喜欢java的同志到各个地方布道,连perl也不放过。呵呵。我个人觉得java先天有一 * i- ?- o2 s3 z- W
些劣势使得他无法取代c/c++的,他的垃圾收集只不过通过一个线程来完成,这对实时系 5 u+ _: g0 U5 i2 E" J4 q$ X/ ]
统是来不及的,EJB的推出也说明java原来是不适合企业级开发的,没有语言是天生完美 o- S) V8 B( N9 G# z- A- }的。java最大的困难我觉得来自microsoft的刁难,c#的推出无疑会夺走windows平台上 3 v9 \ H. k' R9 H$ _. b的java份额。java的速度也就不说了。jbuidler的速度不能够忍受阿,可是这样一个产 ( E0 S0 `6 n k品就是java写的。由于个人见识不够,实在不能理解海量吞吐的 6 C9 w+ U4 c& E- k2 Z7 T3 X C. h3 `2 ~ s% n l) L
server用java.oracle用java是实现了ejb的集成把,他的数据库engine是不是java 的 4 L+ G7 |( U0 U* ]8 ^
那?请大侠指点。而且当时号称8i不要操作系统,结果市场反应平平,还好 4 d: a5 @3 G! h* T& ~0 A
* y- x! H5 y( Z, A0 d& h2 a0 ?
搭上了e-commerce这班车,:) + V0 Q4 l9 Q: e+ s( h _
- {1 ]" d/ V) Q& V) n$ c8 R3 y 在说说我对vc和bcb的看法,这两样我都算粗粗用过,紫云影说得挺好的,比较公正。 # V$ U. H* K' \. G( _' f2 K9 v+ w
MFC的确稳定,ATL未免有点复杂,要不WTL就不会出来了。vcl的源码有一部分是pascal . M. d2 u; y5 u1 g6 s' m/ ~+ r写的,这点有点差,不过他的扩展性很好,用用就知道了,决不是好多人认为的vb式的 " `2 _; w6 J Y- c+ i7 J" T
傻瓜工具。道理很简单,应为他是符合ansi标准的c/c++语言。其实vc是不够ansi的,C , k6 `( m- Y& B& O p; d9 FString就是不符合的,所以bcb用了 AnsiString.可惜bcb不够稳定。 ! [% ^. Q* [8 T8 N5 P + y Q) M- g! u8 ^: ] 提示太慢。帮助的问题我是这样看得,msdn不是专门给vc的,他是windows开发的指南 ) z: L. Q8 s- f, r- q- _. X
,用bcb一样也很有用,是个宝贝。 7 W9 h" y! A5 S; M
0 _2 c+ w' t2 x0 B' W 好了,不说了,反正按需所取把。 ) \& \! k _. r* m
, }- e8 _9 r- G3 j$ w cuixue 来自 http:// : : l- M3 T8 @( R+ k; E2 k y 8 h! o# W4 O, B7 n2 L! } xml远程调用无疑是平台无关调用的一大进步,可是这也不能说corba就要消失了, - \% a3 D# l& L
# Y& h# y+ b) u+ p0 |* ?- T) ?
xml这种标记语言虽然提供了强大的标志检索的能力,可是它本身的缺点是与以前系统 ; `1 _7 A- Z7 T) A1 Y3 X的兼容性,所以最近推出了xhtml以兼容以前的应用。电子商务的应用有不同的类型, ' g/ w4 T9 o! }' M" Y% V , \2 V# w. G* E7 K- f3 b
对于一般的b2c的应用,sun e1000上跑跑java或许可以,如果是银行的主机,起码 3 T3 R6 |: _0 e4 f1 t2 z8 g ! e' A7 y/ W% T. p 1000笔每秒,java是不是可以 那?硬件的提高不是没有限度的,而且现在数据中心和 9 s3 [* T$ J' [: W' ?
OLAP的流行,对实时的要求更高了,实际上对于单位应用硬件资源并没有什么起色。而 9 J& W0 B. p. k4 J! x! p; ^9 k' X* o且数据发掘的应用要求对原有资源的兼容,对于中间件而言java开发是有优势的,corb 0 e/ }- E* u+ O* O
a提供了对异构网络的良好支持,ejb也在向它靠,毕竟在这个年代,不可能只存在一个 7 S. h9 C/ E) Z: V M% [
系统,一种语言,对自身的改造和对异构网络的支持以及原有应用的支持是每种语言都 / n" i( p5 x$ Y {0 v/ ` d要面对的难题。 3 \: o3 C8 P2 i4 p; K) j 5 t* G0 T/ r7 k+ J. i1 a $ U4 E: W& M' n: @: p4 J5 d * G) e4 _* A" u' ^. n$ l# a; P 杨宁 来自 http:// : 9 I/ {7 Z+ e& y( i) l+ x
9 }% E7 M, F x 世界是多样性的世界。 6 I% u+ m9 i" p5 c: y8 Y
% M/ m% ~0 r1 C N1 v
不面向应用,一切都是废物。 2 L$ Q* n4 }/ F4 d9 f* c , c& U/ g, s& O. A" d/ Y
学好编译原理和操作系统,以不变应万变。 , e3 X( ?" w' ] " l/ w/ O% W5 J8 p 人的精力有限,面面俱到等于面面难到! 4 ?" c7 L% I1 H: m% p; r # B& C$ ^9 d# X0 k8 ]6 t7 _ 妖刀 来自 http:// : ' u/ J8 x3 m6 C& c# O, y % Q8 {+ P* u7 q
我不会编一辈子程序,我需要简单,快速.我只要他好掌握,能实现功能. O" i! u2 M- Z' e 2 M j. d6 ^! W+ i& I) X. J 至于是专家型的C++还是傻瓜型的VB(Delphi也差不多)我不在乎. * u( S- b ?5 {
- L& K/ T R% \5 J. i 整体面上思考问题,才是中国软件技术进步的道路和方向,而不是去争论用 " H2 `; M. V% O, Q% }) D* [
9 |( ]2 e4 Z$ k; c. r- A# n, M+ V0 O
什么工具。另外,本人认为VCHELP网站在中国还是办得不错,但欠缺的是整体 ; K% d1 E7 \; z- T ( B1 [8 w8 y: F1 | 技术层面上的东西,而这一点在中国是尤其重要和迫切需要。