Sharpdevelop学习
Sharpdevelop的項目結(jié)構(gòu)
Sharpdevelop整個的體系結(jié)構(gòu)大體上分為三個部分,分別如下
Libraries
這一部分定義了整個解決方案所用到的一些獨立的類庫,它們本身可以認為是獨立于整
個解決方案的,沒有引用任何其它類庫,因此它們可以很容易的應(yīng)用到第三方軟件中。
這里面對我們最重要的有兩個,分別是ICSharpCode.TextEditor和NRefactory.
Main
這一部分是最重要的部分,整個IDE的大部分業(yè)務(wù)邏輯都在這一部分實現(xiàn),也是最復(fù)雜
的部分,它引用了Libraries里面的所有類庫。
對我們來說,最重要的是這兩個項目ICSharpCode.SharpDevelop和
ICSharpCode.SharpDevelop.Dom
文檔對象模型(DOM)是與平臺和語言無關(guān)的接口,允許程序和腳本動態(tài)地訪問和更新
文檔的內(nèi)容、結(jié)構(gòu)和樣式。
Addins
這一部分定義了項目中用到的插件,雖然理論上說它們不是IDE必不可少的部分,但是
它們的存在是整個項目的功能得到了很好的擴充。它們會引用上面兩個部分中的一些類
庫。
Sharpdevelop學(xué)習(xí)(2)
調(diào)試Sharpdevelop
對于已經(jīng)存在的項目,最好的學(xué)習(xí)方法就是通過調(diào)試來了解它的運行原理和設(shè)計思想,
當然Sharpdevelop也不例外,下面我們就簡單介紹一下如何對它進行調(diào)試。
因為Sharpdevelop的一些項目使用VS的IDE打不開,所以最好的方法還是使用
Sharpdevelop本身進行調(diào)試。
首先找到Main文件夾,然后找到StartUp項目,這個就是解決方案的入口項目,把它設(shè)
置為啟動項目。
該項目下有一個SharpDevelopMain.cs文件,里面有一個Main方法,該方法既是程序的
入口點,通過跟蹤此入口點就可以順藤摸瓜,弄清楚整個系統(tǒng)的運行脈絡(luò)。
?
系統(tǒng)運行路線圖
系統(tǒng)運行起來以后,首先會去調(diào)用SharpDevelopMain的RunApplication方法,在此方法
里,系統(tǒng)首先會得到一些文件夾信息,比如根目錄(ApplicationRootPath),配置文
件(ConfigDirectory)的目錄,緩存文件(DomPersistencePath)的目錄,插件文件
(Addins)的目錄;然后系統(tǒng)會創(chuàng)建SharpDevelopHost的實例,在實例化的過程中會調(diào)
用CallHelper. InitSharpDevelopCore()方法,在此方法里會初始化一些核心的服務(wù),
比如日志,輸出,字符串格式化,資源服務(wù)等。
等這些核心的服務(wù)都萬事俱備以后,我們的主角就該出場了,就是工作臺(Workbench
)。我們可以把工作臺看作整個IDE的呈現(xiàn)部分,它通過這些核心的服務(wù)來處理我們的
代碼和其他相關(guān)文件。工作臺是通過WorkbenchSingleton
(ICSharpCode.SharpDevelop.Gui)類來管理的,它實例化的工作臺實例是
DefaultWorkbench;在實例化工作臺時會進行一些相關(guān)服務(wù)的初始化工作,比如顯示服
務(wù),文件服務(wù),狀態(tài)服務(wù),文件解析服務(wù),項目服務(wù)等,最后系統(tǒng)通過
Application.Run(WorkbenchSingleton.MainForm);來運行工作臺的主窗口,我們就可
以在桌面上看到IDE了。
?
文章源地址
http://www.cnblogs.com/taxhaven/articles/1725186.html
總結(jié)
以上是生活随笔為你收集整理的Sharpdevelop学习的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 华为的研发给我们什么启示?
- 下一篇: 传递类型为参数的方法