| NET是 Microsoft XML Web services 平臺。XML Web services 允許應(yīng)用程序通過 Internet 進(jìn)行通訊和共享數(shù)據(jù),而不管所采用的是哪種操作系統(tǒng)、設(shè)備或編程語言。Microsoft .NET 平臺提供創(chuàng)建 XML Web services 并將這些服務(wù)集成在一起之所需。對個(gè)人用戶的好處是無縫的、吸引人的體驗(yàn)。 .NET在客戶端的應(yīng)用 組成.net軟件技術(shù)的組件,組件之一,“智能”客戶端應(yīng)用軟件和操作系統(tǒng),包括PC、PA、手機(jī)或其他移動設(shè)備通過互聯(lián)網(wǎng)、借助Web Services技術(shù),用戶能夠在任何時(shí)間、任何地點(diǎn)都可以得到需要的信息和服務(wù)。例如:可以在手機(jī)上閱讀新聞、定購機(jī)票、瀏覽在線相冊等等。CRM系統(tǒng),應(yīng)用了.NET的解決方案后所有的業(yè)務(wù)人員便可以通過手機(jī)或PDA直接訪問客戶信息了 .NET的優(yōu)點(diǎn): 1、C#保留了對底層操作系統(tǒng)API的直接調(diào)用和指針??隙ㄊ且?yàn)榭吹搅薐ava的速度問題以及JNI的笨重,所以在設(shè)計(jì)C#時(shí)特意保留了這些C++的特性,避免了重導(dǎo)覆轍,也使得C#可以用來開發(fā)系統(tǒng)軟件。普通應(yīng)用都是調(diào)用.Net的程序集(相當(dāng)于Java的類庫,程序集里面都是byte code,不是native code),對于速度敏感,或者平臺相關(guān)型應(yīng)用,直接通過特定聲明來調(diào)用Windows API。這樣就可以功能,效率和速度都兼顧,解決各種各樣的應(yīng)用層問題和系統(tǒng)層問題(可以用C#來寫系統(tǒng)軟件了),用一種語言來解決所有場合的大部分問題,所以MS對C#很有信心。 不過實(shí)際上完全用C#開發(fā)系統(tǒng)軟件還是不太可能的,畢竟經(jīng)過C#的包裝以后,比純種的C還是要稍微慢一些,但是肯定比純種的C#字節(jié)碼快太多了。但是當(dāng)你用C#開發(fā)應(yīng)用軟件的時(shí)候,卻不可避免的涉及到底層調(diào)用的時(shí)候,可以方便的直接用C#來實(shí)現(xiàn),不用像Java那樣束手無策的去向C++求救,通過笨拙的JNI調(diào)用,顯得高明。 2、在Windows平臺上.Net CLR比Java的JRE速度快,聯(lián)想到當(dāng)年MS做的JVM,所以也不是很奇怪。只不過CLR速度足夠快的話,C#字節(jié)碼運(yùn)行起來,普通應(yīng)用就不會感覺出來速度比純本地代碼慢。我的感覺就是這樣,基本上感覺不出來CLR啟動和加載程序集的明顯延遲,而不管用AWT,Swing還是SWT,JVM啟動和加載類庫的延遲是非常明顯的,這就是真正不妙的地方了,不管Sun,IBM,BEA還是Open Souce 社區(qū),在JVM的效率上還要繼續(xù)加油。 3、開發(fā)工具IDE,老生常談了,不過確實(shí)也很重要,對比一下Visual .Net Studio和做的最好的JavaIDE,JBuilder或者Eclipse吧,不在一個(gè)級別上。寫普通的軟件,甚至Web應(yīng)用,IDE作用不明顯,特別是對于有Unix背景的人來說,更愿意使用純文本工具。但是涉及到GUI開發(fā)和企業(yè)應(yīng)用的開發(fā),一個(gè)強(qiáng)大的工具是必須的。 GUI開發(fā)來說,Visual .Net Studio開發(fā)GUI就如同使用VB開發(fā)GUI,方便和快捷的難以想像,再加上C#的程序集比VB的控件集,比VC的MFC的設(shè)計(jì)優(yōu)秀的不在同一個(gè)級別上。所以在開發(fā)GUI方面,C#比VB還更加優(yōu)秀,基本上和Borland的C++ Builder的水平相當(dāng),其操作的便捷還在其之上。 反觀Java,Eclipse空有一個(gè)SWT,也不去做一個(gè)好點(diǎn)的GUI開發(fā)環(huán)境出來。JBuilder是公認(rèn)的最好的Java GUI開發(fā)IDE,但是仍然難用的很,為什么?關(guān)鍵處還在于AWT,Swing和SWT圖形庫的布局設(shè)計(jì)上。 這3個(gè)圖形庫統(tǒng)統(tǒng)都是使用布局管理器來布局,布局好了以后才能放控件。不能夠直接拖放控件實(shí)現(xiàn)絕對像素定位,也很難實(shí)現(xiàn)對控件大小,位置的操縱。 這也是有一定的原因,Java為了實(shí)現(xiàn)跨平臺的GUI,因此不能夠使用像素定位,否則在不同平臺會有不同的外觀表現(xiàn)。 而C#就不管那么多了,既然只在Windows平臺上實(shí)現(xiàn),直接就采用像素定位(當(dāng)然布局定位也可以用),外觀的控制自然可以“所見即所得”了。 由于這個(gè)先天的原因,Java的GUI開發(fā)是不可能比C#更方便的,JBuilder能做到這樣,也差不多到極致了,大家也只能忍受了。 企業(yè)開發(fā)方面,C#需要SQL Server(Oracle也可以,但是不如SQL Server方便),IIS和MTS的配合,Java需要DB,App Server的配合。由于C#只管SQL Server和IIS,甚至只管IE瀏覽器,所以Visual .Net Studio可以做的很方便,整個(gè)開發(fā)過程一體化,不用考慮其它的實(shí)現(xiàn)。而JBuilder需要考慮各種不同的軟件實(shí)現(xiàn),特別是App Server,簡直就是五花八門,JBuilder能夠做到這樣,在圖形設(shè)計(jì)器里面設(shè)計(jì)EJB,從DB里面導(dǎo)入Entity Bean,方便的在所有的主流的App Server上自動編譯EJB,部署EJB,測試EJB,也算做到極致了。 由于App Server五花八門和EJB部署本身的高度復(fù)雜度的原因,Java的企業(yè)開發(fā)也是遠(yuǎn)遠(yuǎn)不如C#來的快捷和方便。 這些原因?qū)е铝擞袝r(shí)候一個(gè)J2EE項(xiàng)目會比.Net開發(fā)周期長兩三倍的現(xiàn)象。 因此企業(yè)快速開發(fā)軟件,.NET確實(shí)是一個(gè)不錯(cuò)的選擇,另外,啟達(dá)軟件有著20年的開發(fā)經(jīng)驗(yàn),在這一方面也很得心應(yīng)手。所以對于技術(shù)來說.NET確實(shí)是一個(gè)不錯(cuò)的語言。 | |