談.NET平臺編程語言的未來_.Net教程
推薦:ASP.NET如何防止用戶多次登錄常見的處理方法是,在用戶登錄時,判斷此用戶是否已經(jīng)在Application中存在,如果存在就報錯,不存在的話就加到Application中(Application是所有Session共有的,整個web應(yīng)用程序唯一的一個對象): 以下是引用片段: string strUserId = txtUser.Text; ArrayLi
在去年的PDC2008召開期間,微軟逐步公開了圍繞.NET和編程語言的很多想法,據(jù)此我們可以饒有興趣地對.NET的未來預(yù)測一番。
.NET平臺以運行在通用語言運行時(Common Language Runtime,CLR)上的C#和VB.NET作為開端。CLR是通用語言架構(gòu)(Common Language Infrastructure,CLI)規(guī)范的一種實現(xiàn)。任何希望創(chuàng)建新語言的人都能實現(xiàn)CLI規(guī)范,它允許開發(fā)人員從大量的編程語言中選擇一種。2008年10月,微軟發(fā)布了構(gòu)建于CLR之上的動態(tài)語言運行時(Dynamic Language Runtime,DLR)的0.9版本,它使語言開發(fā)人員也可以為.NET平臺創(chuàng)建動態(tài)語言。
一些語言是由微軟開發(fā)和維護(hù),比如C#、VB.NET和F#,但是大部分語言都是由社區(qū)創(chuàng)建的開源項目。一些比較知名的語言有IronPython、IronRuby(兩者都是動態(tài)的)和Boo(靜態(tài)的)。前面兩個語言作為開源項目由微軟積極推動,它們是基于兩個現(xiàn)存語言Python和Ruby的。Boo從2003年就開始出現(xiàn)了,由Rodrigo B. De Oliveira創(chuàng)建,現(xiàn)在依舊在積極地開發(fā)當(dāng)中。你可以在Wikipedia上找到一個包含了更多.NET語言的完整列表。
要掌握.NET語言的走向,首當(dāng)其沖要了解的就是Anders Hejlsberg(C#的創(chuàng)造者)如何談?wù)揅#的未來的。在之前的幾個C#版本中,微軟關(guān)注了托管代碼(C# 1.0)、泛型(C# 2.0)和語言集成查詢(LINQ)(C# 3.0)。而大家期盼的將伴隨Visual Studio 2010而來的C# 4.0,主要關(guān)注之處則是動態(tài)編程。在他的PDC2008演講中,Anders談?wù)摿水?dāng)前語言的趨勢:
我認(rèn)為發(fā)展趨勢涉及到三個主要方面。第一個就是我們所看到的更加聲明式的編程風(fēng)格。下一個就是我們過去幾年在動態(tài)編程語言上所看到的某種形式的復(fù)蘇,以及它對我們的影響。還有就是多核所帶來的變化——如果你有這方面需要的話。
對我而言,這些趨勢里最感興趣的就是——所有這些趨勢,另外我也認(rèn)為經(jīng)典的編程語言分類法正在被打破。之前,我們習(xí)慣上把語言歸為面向?qū)ο�、函�?shù)式、動態(tài)的或結(jié)構(gòu)化;而現(xiàn)在我們正在逐漸看到各種語言都從其他語言那里借鑒很多思想。我確實認(rèn)為,從某種意義上說,新編程范例將是一種多編程范例。
這些解釋了,為什么C#會具有聲明式編程(LINQ)和動態(tài)編程(在C# 4.0中的dynamic關(guān)鍵字)的元素。
在稍早對Anders和Guy Steele的關(guān)于并發(fā)和語言設(shè)計的訪談里,Anders指出:
我們雖已擁有了名為C#的編程語言,但并發(fā)處理已經(jīng)來臨,所以我們需要考慮這意味著什么。我認(rèn)為在C# 3.0和LINQ上的大量工作和并發(fā)問題已經(jīng)非常相關(guān)了。類似Lambda表達(dá)式和我們已經(jīng)添加進(jìn)來的一些特性,可以讓我們更好地構(gòu)建這種類型的API。
當(dāng)然,我們也缺乏一些語言內(nèi)部的機(jī)制來控制或標(biāo)識這些副作用。對于純函數(shù)和不可變數(shù)據(jù)的形式化應(yīng)該有更好的語言支持,另外,對于編譯器需要確定一個對象是否要暴露給任何人這樣的情況,也應(yīng)該提供一些可能的支持來以進(jìn)行某種形式隔離。只要對象不暴露給任何人,我們在本地變量中處理它,就能保證其變化時是真正安全的。
微軟已經(jīng)開展了一個和并發(fā)相關(guān)的項目,叫做并行計算初始計劃。S. Somasegar,開發(fā)部門的高級副總裁,最近在一個Q&A論文中,談到了在Visual Studio 2010中期望包含的東西:
它將包含一些新的.NET Framework函數(shù)庫,比如任務(wù)并行函數(shù)庫(Task Parallel Library,TPL)和并行LINQ(PLINQ),以及并行模式函數(shù)庫(Parallel Pattern Library,PPL)和使用C 開發(fā)原生應(yīng)用程序時可用的并發(fā)運行時(Concurrency Runtime)及調(diào)試工具。微軟也通過在Windows Communication Foundation(WCF)和Windows Workflow Foundation(WF)中額外添加一些新的功能來持續(xù)地對.NET Framework進(jìn)行投入。
這個項目自然成為微軟獲取反饋的一個途徑,來了解如何在.NET編程語言當(dāng)中進(jìn)行改變以輕易地支持并發(fā)。莫爾定律依舊適用于晶體管密度,但對于CPU速度(GHz) 已經(jīng)不適用了,所以需要轉(zhuǎn)向并行計算而不是停止前進(jìn)。當(dāng)然微軟也明白,使用一致的基礎(chǔ)功能來解決和其他語言共同工作的問題具有很大的挑戰(zhàn)。所以,下一步要著力解決的就是類似C#這樣的語言。
在.NET平臺上談?wù)摼幊陶Z言往往會提到VB.NET vs C#的主題。Anders談到了C#和VB.NET之間共同進(jìn)化(Co-Evolution)的問題:
當(dāng)我們盡力在某個之中開發(fā)出一些不同的特性之時,其他的團(tuán)隊也打算實現(xiàn)這個東西�,F(xiàn)實是,促進(jìn)這些語言發(fā)展的正確方法便是共同進(jìn)化。
可見,并發(fā)處理將成為下一個重要的事情是無容置疑的。動態(tài)編程將在C# 4.0中出現(xiàn),不過人們還是希望未來的版本能夠包含更多的特性。VB.NET被承諾和C#共同進(jìn)化,以實現(xiàn)兩個語言具有不同的語法但可以給出同樣的輸出結(jié)果。隨著和Visual Studio 2010一起發(fā)布的DLR的出現(xiàn),隨著IronPython和IronRuby的可用性的提升,動態(tài)語言將在未來幾年里成為主流。
分享:ASP.NET 2.0中文驗證碼的實現(xiàn)在判斷的時候只要把取得的文本框的值與Session[valicode] 進(jìn)行判斷是否一致就行了。 //建立位圖對象 Bitmap NewbitMap = new Bitmap(90, 22, PixelFormat.Format32bppArgb); //根據(jù)上面創(chuàng)建的位置對象創(chuàng)建繪圖面 Graphics g = Graphics.FromImage(NewbitMap)
- asp.net如何得到GRIDVIEW中某行某列值的方法
- .net SMTP發(fā)送Email實例(可帶附件)
- js實現(xiàn)廣告漂浮效果的小例子
- asp.net Repeater 數(shù)據(jù)綁定的具體實現(xiàn)
- Asp.Net 無刷新文件上傳并顯示進(jìn)度條的實現(xiàn)方法及思路
- Asp.net獲取客戶端IP常見代碼存在的偽造IP問題探討
- VS2010 水晶報表的使用方法
- ASP.NET中操作SQL數(shù)據(jù)庫(連接字符串的配置及獲取)
- asp.net頁面?zhèn)髦禍y試實例代碼
- DataGridView - DataGridViewCheckBoxCell的使用介紹
- asp.net中javascript的引用(直接引入和間接引入)
- 三層+存儲過程實現(xiàn)分頁示例代碼
.Net教程Rss訂閱編程教程搜索
.Net教程推薦
- 數(shù)據(jù)庫SqlParameter 的插入操作,防止sql注入的實現(xiàn)代碼
- .net中as和is之間的區(qū)別分析
- Asp.net三層結(jié)構(gòu)中的變量引用與傳遞
- ASP.NET筆記之 行命令處理與分頁詳解
- 淺析C# 2010命名和可選參數(shù)的新特性
- 在網(wǎng)頁中動態(tài)的生成一個圖片
- 用 asp.net 動態(tài)設(shè)置 WebService 引用
- 解析虛擬主機(jī)上用Asp.net實現(xiàn)Urlrewrite
- ASP.NET如何應(yīng)用XML技術(shù)實現(xiàn)Web報表打印
- asp.net將Execl讀到DataSet或DataTable中
- 相關(guān)鏈接:
- 教程說明:
.Net教程-談.NET平臺編程語言的未來
。