久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3883|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

VB.net 應(yīng)用程序的框架

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:90014 發(fā)表于 2015-9-13 15:55 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
這是一個(gè)最簡單的VB.net 應(yīng)用程序,僅一個(gè)簡單窗口,外加一個(gè)關(guān)閉按鈕。如下圖所示。


整個(gè)項(xiàng)目的構(gòu)成如下:


唯一的動(dòng)作,點(diǎn)擊關(guān)閉按鈕后,關(guān)閉整個(gè)應(yīng)用程序。
Public Class FrmMain
    Private Sub btnClose_Click(sender As Object, e As EventArgs) Handles btnClose.Click
        Me.Close()
    End Sub
End Class
因此,項(xiàng)目設(shè)置以FrmMain為啟動(dòng)窗口,在點(diǎn)擊執(zhí)行后,就能夠完全顯示出來。

但是這個(gè)看似簡單的應(yīng)用程序,背后VB的編譯系統(tǒng)做了哪些工作呢?請看下面的項(xiàng)目結(jié)構(gòu)層次圖。這是在 Visual Studio 提供的擴(kuò)展,CodeMap功能提供的圖像。


從上圖可以看出,整個(gè)應(yīng)用程序是一個(gè)程序集(Assembly),這個(gè)程序集中包括了3個(gè)命名空間(NameSpaces) ,分別是WFMapCheck.My、WFMapCheck以及資源WFMapCheck.My.Resources。在每個(gè)名字控件中,提供了不同的功能,并且每個(gè)名字控件也包括了多個(gè)類(Class),這些類可能是內(nèi)部嵌套定義的,或者是外部引用的。例如在WFMapCheck.My名字空間中,包括了MyProject、MyApplication、MySettingProperty、MyComputer和MySettings等類,并且在MyProject類中,又包含了MyForms、MyWebServices、ThreadSafeProviders<T>等3個(gè)子類。然后再每個(gè)類的內(nèi)容,定義了屬性(Property)、方法(Method)、事件(Events)、還有其他成員字段(Field),這在早期的Visual Basic 6.0中,這些字段也可以看做為類的屬性。


一個(gè)應(yīng)用程序的核心工作模塊是組成整個(gè)應(yīng)用程序集的每個(gè)命名空間中的每個(gè)類。只是通過不同的名字控件,可以把不同功能的類組合到一起,提供給其它程序復(fù)用,并且通過名字空間的使用,有效的降低了變量命名同名的問題。所有的變量通過增加名字控件前綴,從而避免了同名變量的存在,這樣給變量命名提供很大的自由,可以提高名稱的可讀性。
另外,除了程序自身所編寫的模塊外,需要和操作系統(tǒng)互動(dòng),必須使用系統(tǒng)中的其它組件。這就是程序集的接口所涉及的外部模塊。在上圖中,使用綠色標(biāo)識(shí)出來。我們可以看出,整個(gè)程序使用了5個(gè)外部模塊協(xié)同工作。一般情況下,使用外部模塊的多少,根據(jù)程序的需求在項(xiàng)目中添加引用,就能把外部模塊增加進(jìn)來。
下面看看整個(gè)程序的工作流程:
1. 根據(jù)項(xiàng)目屬性的設(shè)定,整個(gè)程序的入庫點(diǎn)設(shè)置在WFMapCheck.exe_WFMapCheck.My_MyAppliction.Main()處。Main()函數(shù)的功能是完成整個(gè)對象的實(shí)例化,獲得WFMapCheck.MyProject.Application(),使得建立整個(gè)應(yīng)用程序?qū)ο蟆V劣谠贛yProject中,眾多對象的初始化的順序,這就需要查閱微軟的相關(guān)文檔了。
2. 初始化過程中,根據(jù)WFMapCheck名字空間中的FrmMain窗口類的模板,實(shí)例化MyProject中的MyForms中的成員m_FrmMain。
3. 完成后,通過實(shí)例化ThreadSafeProviders啟動(dòng)工作線程。此時(shí)應(yīng)用程序就存在在系統(tǒng)中。并且能夠開始接受各類事件,如鼠標(biāo)點(diǎn)擊按鈕等。
4. 實(shí)際工作的完成,實(shí)在界面對象全部實(shí)例化以后,通過調(diào)用窗體類對象的基本方法Show(),顯示在界面上。
5. 類FrmMain的在MyProject中實(shí)例化的對象,按照FrmMain定義的方法,處理btnClose的點(diǎn)擊事件,完成程序的基本工作。
這里面這個(gè)應(yīng)用程序中,各個(gè)類的構(gòu)造函數(shù)和析構(gòu)函數(shù),各個(gè)類的基類的隱藏方法等都沒有顯現(xiàn)在列表中。只能夠?qū)τ脩糇约核婕暗降淖兞亢完P(guān)系進(jìn)行枚舉。這個(gè)能夠幫助用戶快速的定位模塊間的關(guān)系,以便進(jìn)行整體上應(yīng)用程序集的構(gòu)造。



分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩

相關(guān)帖子

回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 久久青草av | 欧美日韩视频一区二区 | 我要看免费一级毛片 | 日韩久久久久久 | www视频在线观看 | 国产精品免费av | 中文字幕一区二区在线观看 | 99在线国产| 一级全黄少妇性色生活免费看 | 亚洲成av人影片在线观看 | 在线一级片 | 久久久精品一区 | 成人在线视频网址 | 久久精品中文字幕 | 亚洲高清视频一区二区 | 成年人在线视频 | 午夜三区| 国产乱一区二区三区视频 | 欧美xxxx日本 | 亚洲最新在线视频 | 超碰天天 | 精品国产一二三区 | 久久午夜精品福利一区二区 | 国产精品入口久久 | 中文字幕日韩专区 | a级免费观看视频 | 中文字幕一区二区不卡 | 91精品国产自产精品男人的天堂 | 韩日免费视频 | 亚洲国产精品va在线看黑人 | 欧美性生活免费 | 日本高清aⅴ毛片免费 | 日韩中文在线视频 | 亚洲免费一区二区 | 国产精品国产三级国产aⅴ入口 | 日韩和的一区二区 | 亚洲精品久久久久久久不卡四虎 | 久久国产欧美一区二区三区精品 | 亚洲精品永久免费 | 亚洲精品在线看 | 久久国产精品免费视频 |