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