net姍姍來遲了.但是終于我覺得應該談論一下.net的未來了.原因很簡單,我現在每天都收到幾乎50封郵件詢問.net的未來以及與其它技術相比,它有什么樣的優勢等.所以在這里,我將介紹我個人對這項技術未來發展的看法.
我將從開發者的期望開始并以公司(軟件工業企業)的視點結束.
好了!
當一個開發者開始開發一個軟件的時候,他所要求或需要的是:
1.適當的編程語言知識來將商業邏輯寫成程序
2.數據庫知識來儲存他的數據
3.在分布式環境中將商業邏輯連接到數據庫的工具
4.懂得如何將應用程序打包
5.如果需要在客戶端提供用戶透明性則需要開發web解決方案
6.希望得到一些組件來復用他辛勤勞動的結果或其他人高效的解決辦法
7.希望能夠通過腳本或服務器端的邏輯來完成更新客戶端的任務
8.希望能夠授權一個團體來重用你的組件以便促進你的業務或工作
9.希望提供一個簡潔的用戶界面
10.希望避免建立一個你已經作過的web頁面的麻煩
還有很多...(我無法包括或討論所有的方面因為所有這些東西實際上隨個人的不同而不同)
但我認為上面提到的10點應該是所有認真的開發者都要考慮的.所以從技術上講,在.net到來以前,我們知道的對這些問題的解決辦法是:**這里我假設你們希望從列出了所有可能選項的列表中選擇一個而且我只會提供這些流行技術的名字.
1.適當的編程語言知識來將商業邏輯寫成程序:c,c++,和java.
2.數據庫:oracle,sol server 等.
3.在分布式環境中將商業邏輯連接到數據庫組件的工具:corba, rmi, dcom等
4.為分發應用程序打包:安裝程序(獨立于環境),二進制文件而后最終注冊組件
5.通過(顯示)提供在線解決方案:html, dhtml, css, 和xml等.
6.希望使用軟件重用機制:java beans, com等
7.客戶端更新:java script, jscript, applets 等和服務器端邏輯: perl, asp, php 等.
8.組件發售:進行物理拷貝和注冊組件或完全通過服務器訪問
9.簡潔的用戶界面:vb, vc++, gtk 等
10.可重用web組件:目前工業界還沒有任何一個流行的軟件被經常使用.
例如我曾為我的開發環境使用:c++, sql server, dcom, html, com, jscript, asp,服務器和客戶端注冊實用程序, vc++, gtk+ (在linux上) 和 xml .所以我所遇到的問題是我需要花費很長的時間來學會這些技術而且幾乎每次我都懷疑這些技術能否普及或者能否生存下去.我并不是說所有的開發者都要一下子學會這所有的技術但可以肯定的是,如果你要設計新的和有創意的東西那么你就必須對上面我們討論的每一點中的至少一項有很好的了解而且做到這一點的人的確是這個工業的領頭人.
但是對于.net,微軟在一個軟件包里依靠幾種擁有明顯界線的技術集成了幾乎所有的東西.意味著你擁有了所有的東西但不會把它們混淆起來.
因此如果你開始學習.net,你所需要學習的一切是:
主要技術:c#(vb.net也是一個好的選擇)
asp.net
xml.
只有三種....................是的!
c#可以用來編寫客戶端更新的腳本,創建商業邏輯,做服務器端編程,編寫windows應用程序,編寫控制臺程序,做組件設計,而且它可以將xml作為數據,元數據(自描述的數據),商業邏輯和數據庫之間的連接工具,但同時你需要ado.net的c#實現,更進一步的是如果你要將東西發布到網上,你需要在服務器端安裝asp.net,如果要創建可重用的web組件,你需要web services的概念,就象vc++開發的windows services一樣,但是沒有了物理上的局限.
只有一種語言,我們能將它用在幾乎每一個地方.沒有更多的混淆...是的!沒有了com/dcom里浪費系統主存的組件注冊過程也沒有了系統上的授權允許過程(除了一些特殊情況).
所以從程序員或開發者的視點來看這是一個高度的成功.
現在讓我們從公司的角度來想一想(當然!這里我討論的是小公司,它們以獨立項目的方式工作).例如一個公司招聘了四個vc++程序員因為他們的項目將用vc++開發,但是在后來的6個月里他們獲得了一個用vb開發的項目.
現在會怎么樣呢?
他們會要求他們的開發者學習vb開始工作,當然另一種方法是解雇他們而招聘一批vb開發者!
所以這是一個主要問題.
但是對于.net,由于極好的相互兼容性,你不需要學習一種新的.net語言因為你可以將一種語言的組件引入到另一種.net語言中來.
因此對于.net沒有必要將你的vb程序員轉變成managed c++ 程序員或把c#程序員轉變成jscript.net程序員.