Roslyn项目系统简介
發布15年后,Microsoft終于開始替換Visual Studio中基于COM的C#和Visual Basic項目系統。Microsoft談及很多有必要放棄目前所用系統的原因:
原生且基于COM
單線程并與UI線程綁定
難以通過和(不同用途的)子類型類擴展到聚合之外
與Visual Studio緊密綁定
新增的C#和Visual Basic項目系統的主要目標為:
可托管且基于托管接口
支持多線程,可擴展,響應性更好
可通過Managed Extensibility Framework(MEF)和不同組合方式輕松擴展。包含第三方在內的多方可對同一個項目系統做出自己的貢獻
可托管在Visual Studio之外
為實現這些特性,新系統的代碼基使用VB和C#共同編寫而來。
“項目系統”是什么?
根據Roslyn項目系統網站的介紹,
項目系統是指介于磁盤上的項目文件(例如.csproj和.vbproj)以及Visual Studio的各種功能(包括但不限于解決方案瀏覽器、設計器、調試器、語言服務、構建和部署)之間的一層組件,對于項目文件中所包含文件執行的幾乎所有操作都是通過項目系統實現的。
同時需要注意,項目系統并不是構建系統。雖然項目系統需要與構建系統(例如MSBuild)進行通信,但項目系統的角色處在IDE和項目文件之間。(如果一切順利,也可以位于第三方工具和項目文件之間。)
為何使用Visual Basic?
在如此新的項目系統中使用Visual Basic的原因僅僅在于,Visual Basic是現成的。雖然項目系統原本使用C++編寫的內核已經改為使用C#重寫,但“Visual Studio 2005的VB團隊已在2003/2004年前后使用VB編寫了應用程序設計器、屬性頁面、資源編輯器,以及設置設計器”(來源)。直接移植這些代碼即可,完全沒必要從頭開始重寫。
通用項目系統會如何處理?
通用項目系統(Common Project System)依然存在,Roslyn項目系統將在此基礎之上運行。
也許你對這個概念還不熟悉,通用項目系統是在去年夏天伴隨項目系統擴展預覽版一起公布的。該系統的目標在于讓開發者能夠更方便地在Visual Studio中創建新的項目類型,從媒體公告中可知,
我們非常高興且激動地宣布,項目系統擴展預覽版已發布。借助這個系統,開發者可以定義新的項目類型并以此為基礎開發擴展,借此對用戶體驗進行定制,或只需要少量代碼即可在幾分鐘內增加新的功能。以往需要編寫超過十萬行代碼才能創建或維護整個項目系統(通常要基于MPFproj創建分支)的日子一去不復返,現在開發者可以通過Visual Studio內建的通用項目系統(CPS)直接進行開發工作,該系統已在C++、JavaScript,以及ASP.NET 5中廣泛運用。你可以通過下面這個視頻短片進一步了解這個系統。
另外需要注意的是,MPFproj主分支更新后,每個項目類型都需要將改動合并到自己項目類型對應的分支中。可以想象,對于缺乏足夠維護預算的人來說,從長期角度來看這算不上一種可行的解決方案。也正是因此,在其他IDE中無法使用種類如此豐富的項目類型。
原文地址:http://www.infoq.com/cn/news/2016/06/Roslyn-Project-System
.NET社區新聞,深度好文,微信中搜索dotNET跨平臺或掃描二維碼關注
總結
以上是生活随笔為你收集整理的Roslyn项目系统简介的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 聊聊ASP.NET Core默认提供的这
- 下一篇: 为什么微软逐步转变为开源公司