随着時代的進步,說.net就是拖拖控件的人越來越少了,作為一個抱有"就是喜歡拖控件"想法的人,我還是不得不研究一下完全沒有IDE的情況下怎麼生存。
國内的大部分無知而淺薄的".net程式員",完全是被橫行的盜版IDE慣壞了。VS的确提供了一條生成群組織程式的捷徑,但是它并沒有把正路堵死。
這裡我就來說說如何像編寫linux程式那樣編寫.net程式
俗話說巧婦難為無米之炊,即使我們想要像Linux程式員那樣寫程式,首先我們還是要下載下傳一套最新版SDK
然後我們需要建立一個編寫程式的指令行環境,編輯一個bat檔案
PATH=%PATH%;C:\Program Files\Microsoft SDKs\Windows\v6.0A\bin
PATH=%PATH%;C:\WINDOWS\Microsoft.NET\Framework\v3.5
PATH=%PATH%;C:\Program Files\Vim\vim72
CScript /H:CScript
cmd /K
.net和SDK的版本号大家自己按自己的實際情況改改就行了
前三句是設定環境變量,沒什麼好說
CScript /H:CScript 這一句是将windows腳本宿主調成指令行狀态。
cmd /K是讓bat檔案結束之後不退出指令行
現在我們運作這個bat檔案,就得到了一個編寫.net程式的指令行環境。
在這個指令行視窗裡面輸入csc(這是C#編譯器),可以看到你使用的.net版本資訊。
接下來可以開始寫程式了,為了示範build,我們把一個hello world分成兩個檔案。
你可以用你喜歡的文本編輯工具,一般都用記事本什麼的
如果要追求linux的感覺,可以裝個vim for windows
如果喜歡追求傳統懷念Turbo C,試試直接在指令行輸入 edit
helloworld.cs
using System;
class Program
{
static void Main(string[] args)
{
Text t=new Text();
t.text="Hello world";
Console.WriteLine(t.text);
}
}
Text.cs
class Text
public string text;
寫好後輸入
csc helloworld.cs Text.cs
然後helloworld.exe就被編譯出來了,
這也就是VS在背後幫你做的事情了。
不過事情到這裡還沒完,linux素以它強大的build腳本能力著稱,makefile更是每一個linux下C/C++程式員的必修課,那windows呢?
于是我們的makefile.js粉末登場了:
var data={
sources:["Helloworld.cs","Text.cs"]
var voice = new ActiveXObject("SAPI.SpVoice");
WScript.Echo("Build begin");
voice.Speak("Building");
(new ActiveXObject("WScript.Shell")).run("csc.exe "+data.sources.join(" "));
WScript.Echo("Build finished");
voice.Speak("Build finished");
這是一個非常簡單的例子,不過它很好地說明了如何利用windows腳本來編寫makefile
因為ide過于發達,windows腳本的強大能力似乎少有人挖掘。
熟悉web的同學都了解JS的靈活性和表達能力,如何設計makefile各人有各人的審美觀,也因項目結構各有不同,我就不再多講了。
這裡面還有一點小花頭,var voice = new ActiveXObject("SAPI.SpVoice");
這個地方利用了一個微軟的朗讀元件,在絕大多數windows系統上都可以使用。
在大型系統的構件過程中,語音提示還是蠻有用的,這一點就比linux shell強了。
windows附帶有幾千個不同用途的ActiveX元件,你可以利用它們來做各種有趣的事情。
BTW building那一聲很像小時候玩的指令與征服