VB.net和VB5、6的區(qū)別是相當大的。首先,\VB.net的結構更為嚴謹,更接近VC語言的標準;同時給予程序員的發(fā)揮空間也更大了,許多函數(shù)的調用雖然復雜了,但更容易理解;開發(fā)環(huán)境更有效率,從開發(fā)界面到編譯庫都有了性能的極大提高。
專注于為中小企業(yè)提供成都做網站、成都網站制作、成都外貿網站建設服務,電腦端+手機端+微信端的三站合一,更高效的管理,為中小企業(yè)平山免費做網站提供優(yōu)質的服務。我們立足成都,凝聚了一批互聯(lián)網行業(yè)人才,有力地推動了成百上千家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網站建設實現(xiàn)規(guī)模擴充和轉變。
從VB6到VB.net的轉變的確不是輕松的事情。各方面的變化總讓人覺得比較別扭。有個建議:將你在VB6下的各方面的工程選幾個用的函數(shù)、方法、
API比較多的,用VB.net打開進行升級,升級前后的對比一下,就很容易知道變化在哪了。另外,個人覺得最容易出問題的就是Integer和Long
的變化,需要注意.
使用 NET Framework Microsoft Visual Basic開發(fā)人員可以創(chuàng)建健壯的 在先前的Visual Basic版本中很難編寫的應用程序 本文將討論使用 NET Framework的好處 并且將包括一些功能強大的 Visual Basic開發(fā)人員可以與該框架一起使用的特性 包括多線程和線程池(thread pooling) Windows服務和文件系統(tǒng)監(jiān)控等 為什么使用框架 單詞框架(framework)有幾種含意 在這種情況中 它指的是創(chuàng)建和運行應用程序的基礎 擁有這樣的基礎使得創(chuàng)建應用程序變得更容易 而同時使用了一個一致的 簡化的程序設計模型 作為一個Visual Basic 開發(fā)人員 你對于這種程序設計語言感覺很滿意 它使得創(chuàng)建各種應用程序變得很容易 Visual Basic語言本身提供了固有的數(shù)據(jù)類型 如 Integer Long和String 以及一些最常用的函數(shù) 如字符串處理和數(shù)據(jù)類型轉換等 當你的應用程序變得更復雜時 你可以使用Win API來完成標準的Visual Basic函數(shù)所不能實現(xiàn)的功能 如獲取任意的注冊鍵和數(shù)值 在許多情況中 你還可以使用(Component Object Model 組件對象模型)組件庫來擴展應用程序的功能 最明顯的例子是ADO(ActiveX Data Objects)庫 你的應用程序可以使用它來進行數(shù)據(jù)訪問 雖然Visual Basic足夠靈活 可以提供這些不同的可擴展性機制 但這種靈活性仍然需要你學習幾種復雜的API體系結構 你需要了解Win 如何工作 以及如何在Visual Basic中調用它們 這可能會是一個既費時又容易出錯的任務 你還需要了解如何在Visual Basic中使用各種組件 每個組件都有一個不同的對象模型 最后 當你使用Win API ADO 也可能使用許多其他組件 創(chuàng)建自己的Visual Basic應用程序時 你需要管理這些應用程序的部署以及它們的相關性 一個典型的Visual Basic應用程序的相關性列表所包括的遠遠多于Visual Basic運行時(runtime);它必須包括應用程序使用的所有對象庫 如ADO 公共框架背后的想法是解決這些問題 并使得用戶創(chuàng)建健壯的應用程序變得更容易 而無需學習多種不同的API體系結構 并且無需部署和處理多種對象庫的版本問題 什么是 NET Framework 術語 NET Framework指的是構成Microsoft NET平臺開發(fā)基礎的一組技術 這一組中的關鍵技術是運行時(runtime)和類庫 運行時負責管理代碼 在執(zhí)行時向它提供服務 這與Visual Basic 運行時的作用類似 NET程序設計語言 包括Visual Basic NET Microsoft Visual C# C++管理的擴展 以及多種來自不同開發(fā)商的程序設計語言 通過一組公共的統(tǒng)一類來利用各種服務和特性 NET統(tǒng)一類提供了創(chuàng)建應用程序的基礎 而不管你使用何種語言 無論你只是簡單地連接一個字符串 還是創(chuàng)建一個Windows服務或多層的基于網絡的應用程序 你都要用到這些統(tǒng)一類 統(tǒng)一類為訪問平臺的功能性提供了一種一致的方法 一旦你學會了使用類庫 你就會發(fā)現(xiàn)所有任務都遵循同一個一致的體系結構 要編寫自己的應用程序 你無需學習和掌握不同的API體系結構 由于 NET Framework 部署Visual Basic NET應用程序變得更容易了 與Visual Basic 應用程序不同 你無需配置各種相關性 如單獨的數(shù)據(jù)訪問庫 XML語法分析器和網絡API 因為所有這些功能都是 NET Framework的組成部分 通過在統(tǒng)一的 集成的框架上創(chuàng)建自己的應用程序 你可以實現(xiàn)學習這種框架所花費時間的最大回報 并且你將擁有更多容易部署和使用的健壯的應用程序 NET Framework與Visual Basic NET Visual Basic 運行時在簡化許多公共的程序設計任務方面非常重要 但是簡化這一層意味著 在擁有Visual Basic可以使用的打包程序之前 你不能使用新的操作系統(tǒng)特性 如DirectX 作為一個Visual Basic開發(fā)人員 你從 NET Framework獲得的最重要的益處是 可以使用一致的程序設計模型既直接又容易地訪問 NET平臺 這意味著 你可以使用Visual Basic NET創(chuàng)建很難或不可能使用Visual Basic 創(chuàng)建的應用程序 作為一個Visual Basic 開發(fā)人員 現(xiàn)在你將對能夠使用與其他平臺語言相同的特性和功能而贊賞不已 例如 為了創(chuàng)建Windows服務 你無須再用Microsoft Visual C++來編寫它 你也無須求助于黑客或組裝機 你可以優(yōu)雅 干凈 容易地使用Visual Basic NET完成這項工作 為了給你一些使用 NET Framwork的例子 我們將討論在你的應用程序中可能需要執(zhí)行的 個常見任務 跟蹤與事件記錄 多線程 文件系統(tǒng)監(jiān)控和創(chuàng)建Windows服務 跟蹤與事件記錄 當創(chuàng)建一個健壯的應用程序的時候 你必須密切注意診斷和故障排除機制 代表性地 這包括編寫處理打開輸出目標(事件記錄或文件)的跟蹤組件 編寫跟蹤消息和關閉輸出目標 然后通過自己的代碼調用關于這個組件的方法 將文本傳遞給記錄 你將所有的時間和精力花在了創(chuàng)建跟蹤和記錄子系統(tǒng)上 這最終并不會對解決商務問題有所貢獻 但這是創(chuàng)建應用程序所必需的 NET Framework包括類和其他數(shù)據(jù)類型 通過向你提供記錄基礎設施 使得記錄跟蹤消息變得很容易 圖 給出了用于跟蹤的 NET Framework類 類是System Diagnostics名稱空間的一部分 Trace類提供了幾個共享的方法 例如 Write方法允許你記錄特定消息 而Assert方法允許你在特定的條件為假的情況下記錄一條消息 Trace類將消息輸出到Listeners集合中的對象 這個集合中的每個對象都屬于繼承自TraceListener的一個類 EventLogTraceListener 將消息寫入事件記錄 而TextWriterTraceListener則是將消息寫入到一個文本文件中 默認情況下 DefaultTraceListener的一個實例被添加到Trace類的Listeners集合中 除了標準的監(jiān)聽程序以外 你可以實施自己跟蹤監(jiān)聽程序 例如 你希望接收來自在防火墻后面的遠程機器上運行的應用程序的跟蹤輸出 你可以編寫一個跟蹤監(jiān)聽程序 通過HTTP全球向你的服務器發(fā)送跟蹤消息 這將會影響你的應用程序的性能 但只會在啟用跟蹤時才會對性能有所影響 代表性地 你需要有能力在編譯的二進制文件中包括或去除跟蹤代碼 為了在Visual Basic 中做到這一點 你需要使用編譯常量 并在#If語句中包含所有的跟蹤代碼 這使得代碼很難理解和維護 利用 NET Framework 你只需在項目屬性(Project Properties)對話框中將TRACE編譯常量設為on或off狀態(tài) 你無需在#If語句中包括跟蹤代碼 另一個普遍期望的跟蹤特性是跟蹤水平設置 這包括不同的跟蹤設置 例如 Severe(嚴重) Error(錯誤) Warning(警告)和Information(信息) 這些設置對記錄哪些信息進行控制 你可以使用跟蹤組件啟動時所讀取的注冊表數(shù)值對此進行控制 對于 NET Framework 這是完全內置的功能 你可以設置一個注冊表數(shù)值來控制你當前的應用程序的記錄水平 比如 只有在跟蹤水平被設置為Severe(嚴重)的情況下 才使用Trace WriteIf和Trace WriteLineIf來記錄消息 集成的跟蹤和記錄特性極大地增強了生產力 因為你只需使用內置的特性 將精力集中在編 *** 正的應用程序代碼上
多線程應用程序 NET Framework的一個很重要的特性是 可以在不使用第三方工具或不支持的Visual Basic技巧情況下 使用Visual Basic創(chuàng)建多線程應用程序 NET Framework的多線程支持是由System Threading名稱空間中的類和接口提供的 因此所有的 NET語言都能夠以相同的方式創(chuàng)建和處理線程 System Threading Thread是一個核心類 提供了對創(chuàng)建和控制線程的支持 要創(chuàng)建一個線程 你可以創(chuàng)建一個新的System Threading Thread對象 將構造函數(shù)傳遞給ThreadStart代理 這個代理提供了這個線程開始執(zhí)行的方法 當你準備啟動這個新的線程時 可以調用Thread Start() (請參閱清單 ) 當你開始創(chuàng)建多線程應用程序時 你很快就會認識到需要控制對共享資源的訪問 如共享的類變量 NET Framework還包括幾個類和數(shù)據(jù)類型 你可以使用它們對兩個線程執(zhí)行的動作進行同步 在最簡單的情況中 你由一個需要從不同的線程中進行更新的共享變量 要這樣做 你可以使用System Threading Interlocked類 例如 你可以通過編寫Interlocked Increment(num)或Interlocked Decrement(num)分別使名為num的共享變量遞增或遞減 你還可以使用Interlocked將變量設為某一特定值 或檢查兩個變量是否相等 除了這種簡單情況以外 你可以使用 NET Framework類來執(zhí)行更復雜的線程同步 如事件和互斥體的同步 所有都來自于 NET Framework內部 而無須使用Win API Imports System IO注釋 The namespace System Threading注釋 contains the Thread classImports System ThreadingModule Module Private count As LongSub Main()注釋 Create the ThreadStart delegateDim tStart As ThreadStart = New _ ThreadStart(AddressOf StartCounting)注釋 Create the threadDim t As Thread = New Thread(tStart)Console WriteLine( Enter q to quit )t Start() 注釋 start the threadWhile (Console Read() asc( q ))注釋 repeat the loop until the user enters qEnd Whilet Stop() 注釋 tell thread to stop processingt Join() 注釋 wait until the thread finishesEnd SubSub StartCounting()Do注釋 use Interlocked Increment in case 注釋 another thread is accessing the same variableInterlocked Increment(count)Console WriteLine( _ After incrementing count is : count)Thread Sleep( )LoopEnd SubEnd Module 清單 使用Visual Basic NET創(chuàng)建線程 你創(chuàng)建了一個新線程 將它傳遞給一個ThreadStart代理 然后調用Thread Start()啟動這個線程 你可以通過調用Thread Stop()來中止這個線程 然后調用Thread Join()等待它完成關閉操作 一個線程可以使用System Threading Interlocked來使變量遞增或遞減 此外 NET Framework提供了一個方便的機制來對工作排隊 并將起分配給線程池中的某個線程 在處理多個并發(fā)工作項目或工作請求的服務器應用程序中 這非常有用 例如 對于等待輸入文件 然后將它們導入到數(shù)據(jù)庫中去的應用程序 可能會對每個輸入文件進行排隊 以在線程池中的某個單獨的線程上進行處理 System Threading ThreadPool類允許你使用共享的QueueUserWorkItem方法對工作進行排隊 以前要這樣做 你必須得創(chuàng)建和管理自己的線程池 你又需要在基礎設施工作而不是在解決商務問題上花大量的時間和精力 文件系統(tǒng)監(jiān)控 我曾經遇到過一些應用程序 需要等待和處理某個特定目錄中的文件 例如 將數(shù)據(jù)從文件導入到數(shù)據(jù)庫中去的應用程序 數(shù)據(jù)文件可以從某個大型機上下載 或者被轉移到某個輸入目錄中 該應用程序將它們導入到數(shù)據(jù)庫中 你不用經常地輪詢該目錄檢查是否有新文件 可以等待生成新文件的通知 你可以在Visual Basic 中使用Win API來做到這一點 而在Visual Basic NET中你可以使用 NET Framework類來做這項工作 但是在 NET中實施文件監(jiān)控與在 NET中完成其他工作的方法更加一致 因此學習曲線是最小的 你可以使用System IO FileSystemWatcher NET類對文件系統(tǒng)進行監(jiān)視 它提供了一些屬性 允許你設置監(jiān)控的路徑 指定是對文件還是子目錄層次的變化感興趣 System IO FileSystemWatcher還允許你指定需要監(jiān)控的文件名和文件類型(例如 * xml是指監(jiān)控所有XML文件的變化) 最后 你可以指定感興趣的變化類型 例如 只對新建文件 文件屬性的變化或文件大小的變化(請參閱清單 )感興趣 在你設置了監(jiān)控內容后 你需要鉤住用于感興趣的各種事件的事件處理程序 FileSystemWatcher事件有Changed Created Deleted Error和Renamed 要處理某個事件 首先你需要編寫一個與FileSystemEventHandler代理相同聲明的事件處理程序 然后將這個處理程序添加到FileSystemWatcher類中 這個基于代理的體系結構允許你為同一個事件添加多個處理程序 或者對于多個事件使用同一個處理程序 而你不能使用Visual Basic 做到這一點 注釋 System IO contains the 注釋 file monitoring classes and typesImports System IOModule Module Sub Main() 注釋 FileSystemWatcher does the real work Dim fw As New FileSystemWatcher() 注釋 WaitForChangedResult is what you 注釋 get back when a change occurs Dim result As WaitForChangedResult 注釋 set the path to monitor fw Path = C:WINNT 注釋 tell it whether to watch files or directories fw Target = WatcherTarget File 注釋 tell it whether to include subdirs fw IncludeSubdirectories = False 注釋 hook up handlers AddHandler fw Created New FileSystemEventHandler(AddressOf OnFileNotify) 注釋 enable the watcher fw Enabled = True DoConsole WriteLine( Beginning to monitor ) 注釋 this is where we actually wait注釋 waiting blocks execution for the specified timeoutresult = fw WaitForChanged(WatcherChangeTypes All )Console WriteLine( Hit Enter to continue q to quit ) Loop While (Console ReadLine q )End Sub注釋 This is the delegate that gets 注釋 called when a file is created Public Sub OnFileNotify(ByVal source As Object ByVal e As FileSystemEventArgs)Console WriteLine( Notification received for file change type is _e FullPath e ChangeType) End SubEnd Module 清單 使用FileSystemWatcher監(jiān)控某個文件夾是否有新文件
lishixinzhi/Article/program/net/201311/11618
1、vb.net ?完全符合面向對象的編程語言抽象、封裝、繼承的四大特性,而vb不支持繼承。
2、錯誤處理不同。
vb中只是On Error.....goto和On Errer Resume Next ,這些錯誤稱為非結構化異常處理。而在vb.net中采用的結構化異常處理機制,try...catch....finally控制。
3、兩者產生的窗體不同。
vb.net 允許創(chuàng)建不同類型的應用程序,例如,創(chuàng)建ASP.NET和ASP.NET Web 服務應用程序,還允許創(chuàng)建控制臺應用程序和作為桌面服務運行的應用程序。但是vb 只能創(chuàng)建Windows窗體。
4、數(shù)據(jù)庫訪問的差別。
vb6.0是通過ADO(Active X Data Objext)來實現(xiàn)對數(shù)據(jù)庫訪問。而vb.net 是通過ADO.NET來訪問數(shù)據(jù)庫。
擴展資料
Visual Basic(簡稱VB)是Microsoft公司開發(fā)的一種通用的基于對象的程序設計語言,為結構化的、模塊化的、面向對象的、包含協(xié)助開發(fā)環(huán)境的事件驅動為機制的可視化程序設計語言。是一種可用于微軟自家產品開發(fā)的語言。
“Visual” 指的是開發(fā)圖形用戶界面 (GUI) 的方法——不需編寫大量代碼去描述界面元素的外觀和位置,而只要把預先建立的對象add到屏幕上的一點即可。
“Basic”指的是 BASIC (Beginners All-Purpose Symbolic Instruction Code) 語言,是一種在計算技術發(fā)展歷史上應用得最為廣泛的語言。
Visual Basic源自于BASIC編程語言。VB擁有圖形用戶界面(GUI)和快速應用程序開發(fā)(RAD)系統(tǒng),可以輕易的使用DAO、RDO、ADO連接數(shù)據(jù)庫,或者輕松的創(chuàng)建Active?X控件,用于高效生成類型安全和面向對象的應用程序 。
參考資料:百度百科-Visual Basic