天天看點

一起談.NET技術,.net其實也可以不拖控件的......

  随着時代的進步,說.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那一聲很像小時候玩的指令與征服 

繼續閱讀