2007 年 01 月 的封存

Window平台的通用Build工具 : MSBuild

我想一些朋友已經知道或是使用MicrosoftMSBuildBuild應用程式,如果您還沒有聽過MSBuild是什麼,那麼您可以在:

http://msdn2.microsoft.com/en-us/library/wea2sca5.aspx

找到有關MSBuild的資訊。

MSBuild內付於.Net Framework 2.0中,VS Studio 2005使用的Build就是MSBuildMSBuild類似於JavaAnt或是.NET移植版本NAnt2都允許開發人員撰寫XML檔案來指定Build的流程。不過MSBuildAnt/NAnt不太一樣的地方是MSBuild比較偏向傳統的Make工具,但是MSBuild改正了許多傳統Make工具的缺點。由於MSBuild在網路上有許多的資訊,因此我在這裡並不是討論MSBuild的技術面,而是談談MSBuild有趣的地方。

MSBuildVS Studio中應該是做為C#/VB.NET等專案的Build工具(我說應該是因為我沒有VS Studio 2005),因此MSBuild主要是做為.NET程式語言專案的Build工具。但是MSBuild在理論上應該是可以做為Window平台上通用的Build工具而不只限於.NET程式語言專案。這當然是因為MSBuild允許開發人員使用XML撰寫Build流程,此外MSBuild也允許開發人員呼叫外部工具。因此MSBuild也應該可以讓Win32的開發工具使用來做為通用的Build工具,例如DelphiC++Builder,甚至是PHP等。

那麼使用MSBuild做為Build工具有什麼好處? 比如說DelphiC++Builder都有自己的Build工具,那麼為什麼還要使用MSBuild? 其實一個非常簡單的答案就是Delphi For Win32C++BuilderDelphi.NETC#Builder以及未來的Delphi For Win64等就可以提供一個通用的Build機制和Build工具。

另外一個原因則非常的重要,由於MSBuild允許開發人員使用XML撰寫/定義Build流程,因此對於大型,複雜的專案而言,這允許開發工具藉由MSBuild提供更為彈性的Build流程,更重要的是MSBuild允許開發人員拆解Build流程,讓複雜專案中相同的部份可以執行相同的Build工作,或是在不同的專案中共用相同的Build流程。如果好好利用這個特點,那麼開發人員在Build複雜專案時可以大幅減少需要的Build時間,或是對於像C++這樣需要23Pass的編譯器而言,這可以大幅減少編譯,連結等Build的時間。例如在筆者自行測試的案例中,筆者把以前許多C++Builder的專案重新使用MSBuild來重新Build,結果是使用MSBuild比以前節省了將近50%的時間,這大大的說明了善用使用MSBuild的好處。

那麼CodeGear在未來會如何善用MSBuild?我相信各位很快就會知道了。

廣告

18 則迴響

以推理遊戲開始2007年吧

休了年度長假回來之後已經是2007年了,2006年對於我個人和工作而言都是變化非常大的一年,雖然我早在2006年初就已預先觀察到會有這樣的結果,但卻沒料到會發生的這麼快。回首2006年真算是不太如意的一年,因為:

1.      我失去了一位最好的老板

2.      Borland的關係終於結束了

3.      等了數年的Diablo IIIStarCraft II仍然沒有出來

還好在2006年還是遵照數年的傳統和數位好友每年一起玩Fantasy MLBFantasy NBA,聊慰充滿挫折的心情。

面對2007年,雨過終會天晴,從現在來看,至少會有下面的令人高興的事:

1.    CodeGear終於將正式成立

2.    2007年會有更多令人期待的開發工具出現

3.    2007年會有更多有趣的挑戰

什麼是令人期待的開發工具呢? 其實即使是在CodeGear工作我也不會知道一些仍然在實驗室中蘊釀的技術,但是如果您也和我一樣喜歡從各種不同的資訊中加以分析,推理的話,那麼也不難發現倪端而且我個人也非常享受這種遊戲。比如說最近的遊戲是從2006年隱現其綜的,首先我在2006年底左右看到了David I寫的Blog,我在其中看到兩點,第1點是他說RAD,這沒有什麼特別的地方,因為CodeGear的產品本都是屬於RAD,但是接著他又提到PHPRuby:

RAD – in everything we do.

Dynamic – PHP, Ruby, etc.

嗯,PHPRuby雖然都是目前當紅的程式語言之一,但是CodeGear並沒有這方面的產品,他為什麼突然提到這兩個重要的程式語言? 那時我就已經開始注意這點了。

接著我在200714日於Borland的新聞群組中看到如下的訊息:

CodeGear is looking for a motivated software development contractor to work on exciting new development tools.

Job Characteristics:

– Experienced Delphi developer

– PHP knowledge

– Contract full-time for January and February 2007

– Work in Scotts Valley, CA

– We will consider working remotely for the right candidate

If you are interested, please send your resume and information about your availability to mdevery at codegear.com.

Thanks,

Mike Devery

CodeGear

 

嗯,非常的有趣,CodeGear在找同時精通DelphiPHP的開發人員,為什麼? 並且這在目前是只有2個月的全職工作只到2月底,這個時程又代表什麼意義? 其實只要把這兩個訊息結合在一起就似乎可以看出一些有趣的事情。是什麼有趣的事情?這就留給各位自行推理吧,以推理遊戲揭開2007年的序幕也是蠻好的開始,看來2007年好玩的遊戲也會不少。

20 則迴響