關於Roslyn項目,CaaS(編譯器即服務)是什麼?使用Roslyn編譯器作爲服務有什麼好處
如何使用Roslyn功能提高C#應用程序在當前C#4.0編譯器上的性能?
Roslyn-CTP中已知的限制/問題是什麼?
關於Roslyn項目,CaaS(編譯器即服務)是什麼?使用Roslyn編譯器作爲服務有什麼好處
如何使用Roslyn功能提高C#應用程序在當前C#4.0編譯器上的性能?
Roslyn-CTP中已知的限制/問題是什麼?
編譯器即服務(CaaS)與Roslyn有什麼關係?你可以看a video where Anders Hejlsberg explains that(談論羅斯林在35分鐘開始)。基本上,舊的C#編譯器是一個「黑盒子」:源代碼進來了,編譯後的程序集出來了。 Roslyn讓你在那個盒子裏面進入。這意味着您可以獲取有關某些代碼的語法和語義信息,對其進行修改並將其返回給編譯器進一步處理。你可以用它來做代碼分析,重構,代碼生成等等。
有a long list of features that are not implemented in the current CTP on the Roslyn forum。
關於表現,我不認爲這是Roslyn的目標之一。此外,JIT編譯器對於性能優化比C#/ VB編譯器更重要。而Roslyn取代了C#/ VB編譯器,而不是JIT編譯器。
就Roslyn而言,編譯器即服務(CaaS)只是意味着編譯過程被分解爲一個公共API,可讓您檢查編譯器在編譯過程中編譯的語法和語義模型。 Roslyn C#和VB編譯器完全取代了現有的編譯器,因此您可以繼續像現在使用編譯器一樣使用它們(作爲將文本文件轉換爲.net程序集的單獨可執行文件)。您還可以使用編譯器作爲API庫,可幫助您構建可執行更深層次或不同類型代碼分析的工具。
與使用現有編譯器相比,Roslyn並沒有爲您提供特定的性能優勢,因爲當Roslyn發佈時它們將是同一個。但是,可以使用roslyn來構建改進源代碼的專用代碼重構。
我對Roslyn感到興奮,因爲它可以讓您更輕鬆地實現面向方面編程。使用AOP,您可以編寫通用的「策略」並將其應用於您的代碼,而不是將其分發到所有代碼中。使用Roslyn編譯器,您可以在編譯時在代碼中編織這些策略,並保留橫切關注點來污染您的業務代碼。如果你想要一些使用情況,檢查出什麼PostSharp列爲他們的使用情況
但是AST不是不可變的嗎? –
我不清楚你的意思是「編譯過程」。你想知道什麼? – svick
@svick即什麼是應用於Roslyn CaaS,也是一般CaaS的一些光.. – VS1
看到我更新的答案。 – svick