說明Framework 1.1框架配置兼容性
一直以來,我都是使用同一臺(tái)機(jī)器上運(yùn)行VS.NET 2003 beta版和最初版本的VS.NET。每個(gè)版本用的都是Framework 1.1的框架,這樣大大的提升了框架的匹配需求,只安裝了Framework 1.1的機(jī)器上運(yùn)行全套的測(cè)試套件。
這一點(diǎn)非常棒,但仍會(huì)有一些版本問題。例如,假設(shè)你的用戶沒有很快地升級(jí)框架來匹配需求。只要你避免在框架中運(yùn)用1.1版本的任何新功能,你就可以針對(duì)1.0框架來構(gòu)建你的程序集。VS.NET可以讓你在創(chuàng)建應(yīng)用程序時(shí),針對(duì)Framework 1.1、Framework 1.0或兩者兼顧。注意,這些設(shè)置不會(huì)改變程序的可執(zhí)行性,而是會(huì)改變你的應(yīng)用程序的配置文件。配置文件指定了要加載的每個(gè).NET Framework程序集的版本。#t#
遺憾的是,如果你創(chuàng)建的應(yīng)用程序同時(shí)兼顧了Framework 1.0和Framework 1.1版本,那么你就需要做更多的測(cè)試。如果應(yīng)用程序兩者兼顧,那么在設(shè)計(jì)時(shí),VS.NET用Framework 1.1構(gòu)建應(yīng)用程序。在運(yùn)行時(shí),如果VS.NET用Framework 1.0配置應(yīng)用程序,就會(huì)出錯(cuò)。如果應(yīng)用程序在Framework 1.0上運(yùn)行時(shí)運(yùn)用了1.1的功能,那么就會(huì)出現(xiàn)一個(gè)運(yùn)行錯(cuò)誤。幾個(gè)月來,我一直運(yùn)用該功能創(chuàng)建目的框架為Framework 1.0的應(yīng)用程序。的確很有用,只要你確保程序只用Framework 1.0。測(cè)試應(yīng)該會(huì)發(fā)現(xiàn)任何問題,但在發(fā)布任何軟件前,你應(yīng)該在只安裝了Framework 1.0的機(jī)器上運(yùn)行全套的測(cè)試套件。
VS.NET 2003延續(xù)了Microsoft對(duì)推動(dòng)企業(yè)開發(fā)所做的努力。它的一個(gè)副作用就是程序變得越來越大了。例如,我有一個(gè)解決方案,它包含了40多個(gè)不同的項(xiàng)目。在處理這種類型的解決方案時(shí),最初版本的VS.NET有時(shí)侯會(huì)有問題。VS.NET 2003解決了該問題,現(xiàn)在,當(dāng)你處理一個(gè)特定的解決方案時(shí),可以更容易在項(xiàng)目之間進(jìn)行切換。VS.NET 2003也可以記錄你現(xiàn)在正編輯的是哪個(gè)項(xiàng)目。這就意味著,Framework 1.1運(yùn)用當(dāng)前項(xiàng)目的任何命令(如Find in Files)都只對(duì)當(dāng)前項(xiàng)目起作用。如果你想自己設(shè)置當(dāng)前項(xiàng)目,可以關(guān)閉該功能。只需要導(dǎo)航到Tools|Options,然后在Envrironment | Projects and Solutions中清除“Track Active Items in Solution Explorer”項(xiàng)就可以了。
另外一個(gè)很酷的功能是引用Web命名。假設(shè)你在開發(fā)機(jī)器上構(gòu)建了一個(gè)Web service和一個(gè)Web service客戶端,目的是可以在其它地方部署該Web service。最初的VS.NET版本會(huì)為這些Web services創(chuàng)建一個(gè)名為“l(fā)ocalhost”的名字空間。VS.NET 2003可以讓你給這個(gè)Web service引用一個(gè)更有意義的名字。
的確,移動(dòng)性、安全性以及對(duì)框架的其它改進(jìn)都很好。但我最喜歡的新功能是接口的代碼生成功能。在你使用C#或VB.NET時(shí),如果聲明了對(duì)某個(gè)函數(shù)的支持,IDE就會(huì)為它添加stubs。在C#中,你需要按Tab鍵。然后VS.NET會(huì)添加stubs并將它們放在一個(gè)區(qū)域中。在VB.NET中,當(dāng)你編寫了Implements語句后按Enter時(shí),VS.NET 2003就添加了方法。當(dāng)你在編寫大的接口或來源于其它接口的接口時(shí),跟蹤遺漏了哪些函數(shù)或輸錯(cuò)了哪些函數(shù)時(shí),該功能就可以節(jié)省許多編譯周期。
當(dāng)然,最終的問題是:你需要VS.NET 2003嗎?該版本不像最初版本那樣很具創(chuàng)新性,但Framework 1.1中引進(jìn)的許多功能可以讓你節(jié)省很多時(shí)間和精力,可以讓你將更多的精力集中在你想創(chuàng)建的解決方案上,而不是你用來創(chuàng)建該解決方案的代碼和環(huán)境上。例如,與事件處理程序結(jié)合在一起的接口自動(dòng)生成代碼功能和C#中的覆蓋功能每天就可以節(jié)省我?guī)讉€(gè)小時(shí)的代碼輸入時(shí)間。另外,Framework 1.1增強(qiáng)的安全性能對(duì)客戶來說也是個(gè)很好的功能,如今,沒有人愿意帶來任何病毒危險(xiǎn)。即使你不會(huì)立即運(yùn)用移動(dòng)性功能,但在不久的將來你一定會(huì)需要該功能的。