直播中
在Visual Studio.NET(VS.NET)體系中,VB、Visual C++以及C#之類的編譯器把源程序編譯成MSIL。MSIL即Microsoft Intermediate Language,或Microsoft中間語言,它在執(zhí)行之前被即時(Just-In-Time Compile,JIT)編譯成為機器語言。但是,你可能還沒有深入了解當你在VS中點擊Build按鈕時發(fā)生了什么事情,或者你私有的源代碼和信息是否在偷窺的眼光面前安然無恙、當你把IL代碼發(fā)布給客戶時是否能夠保證代碼不被篡改。下面我們將深入.NET的內(nèi)部工作過程,探討VB.NET體系MSIL的特點和一些你必須關(guān)心的問題。
你必須搞清楚以下幾個問題。首先,.NET是為客戶機/服務(wù)器系統(tǒng)以及Web應(yīng)用而設(shè)計的。軟件開發(fā)正在逐漸向Internet以及基于客戶機/服務(wù)器的應(yīng)用發(fā)展,許多應(yīng)用不再有傳統(tǒng)風(fēng)格的界面,而是提供類似瀏覽器的界面。.NET也同樣追隨著這個趨勢。
第二,在桌面應(yīng)用中,我們無法保護以受管理的MSIL形式存在的代碼,如果你覺得保護知識產(chǎn)權(quán)(即源代碼)非常重要,那么.NET不適合桌面應(yīng)用開發(fā)。雖然MSIL的承諾令人心動,雖然.NET平臺和CLR(Common Language Runtime)很穩(wěn)定,但從安全的角度來看,對于一個獨立的桌面應(yīng)用來說,這一切缺乏實際意義。在.NET中,作為一個VB程序員甚至是C#程序員,你只能編寫受管理、不受保護的代碼。
由于存在這種限制,如果你要在桌面應(yīng)用中保護代碼,你必須使用非受管理的C++。保護知識產(chǎn)權(quán)唯一真正有效的方法是:用非受管理的C++組件封裝代碼,然后從.NET受管理代碼中通過COM協(xié)作接口調(diào)用它。
另外你還必須清楚的是,由于Active Server Pages.NET(ASP.NET)完全在服務(wù)器端運行,因此ASP.NET應(yīng)用是安全的。實際上,這正是.NET最理想的境界——在受保護的服務(wù)器上運行代碼,讓代碼遠離任何想要研究它的人。ASP.NET把Web開發(fā)簡化到了難以置信的程度,而Visual Basic.NET正是編寫ASP.NET應(yīng)用的優(yōu)秀工具。
掌握VB.NET需要經(jīng)過艱苦的學(xué)習(xí),而全面接受.NET更是一個緩慢的過程。從VB6遷移到VB.NET并非輕而易舉,在把VB6應(yīng)用移植到VB.NET之前的時間里,你仍舊需要提供對VB6應(yīng)用的支持。在未來很長的時間內(nèi),許多開發(fā)者仍將使用VB6。