我對(duì).Net應(yīng)用價(jià)值的一些思考-創(chuàng)新互聯(lián)

轉(zhuǎn)載請(qǐng)注明來源:http://www.cnblogs.com/xuesongshu/我對(duì).Net應(yīng)用價(jià)值的一些思考

曾經(jīng)有很長(zhǎng)一段時(shí)間我不知道.NET的應(yīng)用價(jià)值在哪里。剛學(xué)習(xí)的時(shí)候以為它能獨(dú)立運(yùn)行,運(yùn)行出錯(cuò)了才知道它需要.NET環(huán)境,不是拿幾個(gè)DLL就可以。于是我想不通啊,為什么有很多同學(xué)想用它編寫病毒呢?別人的計(jì)算機(jī)沒出問題他自己編寫的程序倒先出問題了。
  我想起了VB6.0。我沒有意識(shí)到它可以調(diào)用WINDOWS API,而且微軟已經(jīng)寫好了很多引用API的代碼,我全沒看到,我也沒有意識(shí)到許多問題是因?yàn)樗枰腄LL沒有跟隨,因?yàn)镈LL版本不同導(dǎo)致報(bào)表只顯示有多少數(shù)據(jù)卻不顯示數(shù)據(jù)的具體內(nèi)容,說白了,當(dāng)時(shí)不知道DLL是什么東西,一個(gè)出錯(cuò),兩個(gè)出錯(cuò),這也做不出來,那也做不出來,于是點(diǎn)到即止。直到找不到WINDOWS API而詢問江歡老師時(shí)才意識(shí)到三個(gè)平臺(tái)的相互獨(dú)立性——WINDOWS、.NET、JVM。
  實(shí)際上沒有絕對(duì)獨(dú)立運(yùn)行的程序。即使直接面向硬件編寫不需要任何環(huán)境能直接被硬件識(shí)別而運(yùn)行的程序也需要程序員熟悉芯片結(jié)構(gòu)。程序受制于硬件,所謂的程序是受硬件支持的指令序列,順著說,它給了程序員相當(dāng)多的功能,反著說,它只給了程序員這些有限的功能。它不能給程序員無限的功能,否則不是機(jī)器了。
  Windows也是一個(gè)平臺(tái),它也有它自己的環(huán)境,微軟定義了許多圖形化界面,將組成這些界面的共性部分稱為控件,如按鈕等等,在系統(tǒng)運(yùn)行環(huán)境庫內(nèi)提供了的繪制代碼。目前常見的Windows、Linux、Unix基于都有人編寫了基于x86指令集的系統(tǒng),可執(zhí)行文件除了文件格式有所不同之外,其可執(zhí)行部分在三個(gè)平臺(tái)都可以運(yùn)行。這一點(diǎn),Java和.Net有很大的區(qū)別。
  微軟自行研發(fā)的處理器目前我停留在道聽途說的階段,假設(shè)正在研究之中??梢試L試猜測(cè)MSIL指令能不能被它研究的處理器執(zhí)行,但是有一點(diǎn)是肯定的, x86指令集與它是不能兼容的,軟件不能空想,它要有實(shí)現(xiàn)基礎(chǔ)。每一條指令都有惟一電流信號(hào)序列指代著。當(dāng)前Intel和AMD公司的芯片不能識(shí)別,MSIL指揮不了主板的其它的電子元件。
  無論兩個(gè)軟件平臺(tái)有多大區(qū)別,如果它們使用的硬件平臺(tái)相同,那么兩個(gè)平臺(tái)下一程序文件僅僅因?yàn)楦髯宰R(shí)別處理可執(zhí)行文件的方式不同而不能直接運(yùn)行。在這兩個(gè)平臺(tái)之間移植是可行的。曾經(jīng)我錯(cuò)把WIN32軟件平臺(tái)上可以獨(dú)立運(yùn)行的程序當(dāng)成可以在任何平臺(tái)任何環(huán)境都可以運(yùn)行的程序。我沒有意識(shí)到編寫一個(gè)程序有哪些用到了別人的程序,哪些才是自己的程序。把自己的程序搬到第三方平臺(tái)運(yùn)行時(shí)有沒有把用到的別人的程序搬過去。實(shí)際上,我們處處在用別人現(xiàn)有的程序,哪怕是一個(gè)按鈕的圖形繪制代碼,至于基礎(chǔ)程序類如內(nèi)存管理、圖形繪制等等不用說了,有現(xiàn)成的就不想自己編寫了,更何況不知道自己有沒有這個(gè)能力、有沒有這個(gè)精力、有沒有這個(gè)時(shí)間把它編寫出來。當(dāng)時(shí)沒有環(huán)境、平臺(tái)、軟件平臺(tái)、硬件平臺(tái)的概念。軟件平臺(tái)的作用可以有很多,比如它可以翻譯MSIL指令到X86指令,也可以僅僅提供配置環(huán)境?!盁o論在哪里”,顯然我沒有意識(shí)到什么是平臺(tái)。應(yīng)當(dāng)學(xué)習(xí)一下WINDOWS PE以及PE國(guó)際標(biāo)準(zhǔn)以及這個(gè)國(guó)際標(biāo)準(zhǔn)是怎樣制訂的。
  我一一思考ASP、ASP.NET、JSP、PHP互聯(lián)網(wǎng)信息技術(shù)的商業(yè)取向。它們是世界公認(rèn)的從XML衍生的HTML代碼外加特定的服務(wù)端執(zhí)行的程序??蛻舳四_本常見的是ECMAScript(JavaScipt、JScript、VBScript等等)。服務(wù)端程序編寫語言有C#、Java、PHP、VB.NET。腳本受瀏覽器支持,用來提高頁面響應(yīng)速度和減輕服務(wù)器壓力。使用腳本可以與服務(wù)器通信。
  在Windows上運(yùn)行Java程序Sun公司做到了,前提是必須安裝JVM。底層的實(shí)現(xiàn)工作別人已經(jīng)做好了。曾經(jīng)我不知道,Java跨平臺(tái)究竟是怎樣實(shí)現(xiàn)的?當(dāng)我遇到手機(jī)功能列表中有支持Java擴(kuò)展才能運(yùn)行Java程序的情況,我漸漸意識(shí)到Sun公司把它想要做生意的手機(jī)的JVM編寫好了,跨平臺(tái)這樣實(shí)現(xiàn)的。手機(jī)程序員需要做的工作Sun公司大部分已經(jīng)做好了。JVM把字節(jié)碼翻譯成能被當(dāng)前所在機(jī)器識(shí)別的機(jī)器指令,就像不能同語言的兩個(gè)人交流一樣,翻譯需要學(xué)習(xí)兩種語言才能獨(dú)立工作,使用翻譯的只需要學(xué)習(xí)其中一門語言,就可以借助翻譯溝通,手機(jī)識(shí)別機(jī)器指令,人識(shí)別Java指令,JVM這個(gè)翻譯它都懂,于是人間接和手機(jī)溝通,指揮手機(jī)工作。
  至于Win32與DOS互不兼容,這個(gè)是表面現(xiàn)象,從商業(yè)目的來講是微軟當(dāng)初為了推廣它的圖形化界面系統(tǒng)Windows3.0而設(shè)置的限制,解除限制之后注意配置環(huán)境。尤其注意圖形繪制代碼有沒有跟隨到位。否則一個(gè)程序缺少一部分,可想而知。嫌它麻煩,就不要使用微軟的程序,自己從圖形開始,面向硬件編程,而不要這用微軟的,那用微軟的。使用別人的東西就要遵守別人的規(guī)則。我們不僅僅要使用別人的東西,還要學(xué)會(huì)使用別人的東西的技巧。
  使用什么樣的東西就要遵守什么樣的規(guī)則。如果不喜歡這個(gè)規(guī)則就找個(gè)替代方案。規(guī)則可以是程序運(yùn)行過程反映的處理數(shù)據(jù)的辦法或方法以及思想。操作系統(tǒng)也是軟件。使用Windows就得遵守Windows的規(guī)則。又愛又恨,就要想辦法突破規(guī)則。但不要嘗試突破法律保護(hù)的規(guī)則。如果編寫的程序面向Windows平臺(tái),那么突破規(guī)則之前必須遵守它的規(guī)則。在任何操作系統(tǒng)上使用任何資源都要有相應(yīng)的權(quán)限。每個(gè)程序啟動(dòng)時(shí)都有默認(rèn)的權(quán)限。我一直以管理員身份編寫運(yùn)行程序,所以容易忽視權(quán)限的問題。
  字節(jié)碼究竟是字節(jié)碼,中間語言究竟是中間語言,它們不屬于X86指令集(通用指令集還有IA64、X64,多媒體方面還有SSE等等,這里以X86為例),主流芯片沒有能識(shí)別它們的。它們的底層實(shí)現(xiàn)工作(將非X86指令翻譯成X86指令)已經(jīng)由推銷這個(gè)產(chǎn)品的商家實(shí)現(xiàn)了。它減輕了從事這個(gè)行業(yè)的程序員的工作壓力,降低了工作難度(這也是當(dāng)今社會(huì)高端程序員稀缺的原因之一)。這的確是跨平臺(tái)一個(gè)比較好的選擇。獨(dú)立運(yùn)行與跨平臺(tái)就像魚與熊掌不可兼得。它們各自都有各自的應(yīng)用價(jià)值。
  從目前潮流來看,處理器速度快得撐不死,內(nèi)存大得撐不完。和計(jì)算機(jī)剛面世時(shí)不可同日而語。當(dāng)時(shí)追求速度,現(xiàn)在追求體驗(yàn)。所以不要擔(dān)心這些中間語言耗費(fèi)額外的時(shí)間。界面做好,功能做全,就可以了。

創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比溧陽網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式溧陽網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋溧陽地區(qū)。費(fèi)用合理售后完善,十年實(shí)體公司更值得信賴。

分享題目:我對(duì).Net應(yīng)用價(jià)值的一些思考-創(chuàng)新互聯(lián)
分享路徑:http://muchs.cn/article24/pedce.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供動(dòng)態(tài)網(wǎng)站小程序開發(fā)、品牌網(wǎng)站制作、企業(yè)網(wǎng)站制作商城網(wǎng)站、企業(yè)建站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站建設(shè)