ScriptCS czyli C# bez ceremonii

O ScriptCS było głośno kilka miesięcy temu (bodajże w marcu) gdy pojawił się na .netowej scenie. W dużym skrócie jest to uskryptowiona wersja  C#-a. To powoduje, że jeśli chcemy zbudował/przetestować kawałek kodu, nie musimy odpalać całego Visuala. Wystarczy napisać:

[csharp]

Console.WriteLine(“hello scriptcs”)

[/csharp]

i powinno się wykonać (tak – na końcu nawet nie ma średnika).

Do wykonania powyższego będziemy potrzebowali najnowszych źródeł ScriptCS-a

https://github.com/scriptcs/scriptcs

które należy skompilować (albo przez VS albo za pomocą załączonego build.cmd – osobiście skompilowałem release w visualu i wrzuciłem do c:\scriptCS)

A teraz edytor… a jeśli ma być bez ceremonii i zbędnych ruchów to chcę łatwo uruchomić kawałek napisanego kodu. Sublime Text, którego dość często używam potrafi uruchamiać kod, ale trzeba go skonfigurować – standardowo jest przygotowany na 9 różnych języków ale próżno szukać tam scriptcs-a zatem:

Tools –> Build System –> New build system i dostajemy pusty szablon:

image

pozostaje wskazać co chcemy aby SublimeText zrobił. U mnie wygląda to tak:

[code]

{
"cmd": ["c:\\scriptcs\\scriptcs.exe", "$file"],
"encoding": "cp1252"
}

[/code]

Zapisujemy plik i od teraz w menu mamy:

image

Od teraz można za pomocą Ctrl+B uruchomić nasz eksperymentalny kod w C#

Nie trzeba pisać maina, nie trzeba pisać funkcji czy klas. Poniższe kawałki kodu spokojnie zadzaiłają.

[csharp]

Console.WriteLine("hello scriptcs")

[/csharp]

Można też używać samych funkcji

[csharp]

public void HelloWorld(string name){
Console.WriteLine("Hello {0} !", name);
}

HelloWorld("John");
HelloWorld("Mike");

[/csharp]

Nawet klasę to to łyknie Uśmiech

[csharp]

public class HelloWorld{

public void Say(string name){
Console.WriteLine("Hello {0} !", name);
}
}

new HelloWorld().Say("scriptCS")

[/csharp]

Od teraz mamy edytor, w którym można szybko i łatwo sprawdzić te kilka linijek kodu z Internetu i zobaczyć czy działają. Można również pisać całe aplikacje albo proste prototypy, zastosować znajdziesz pewnie miliony.

Na moje potrzeby jak na tą chwilę taka konfiguracja jest wystarczająca. Znalazłem również pełniejszą do pobrania tutaj: https://github.com/scriptcs/scriptcs-sublime Nie wiem czy działa, to co zbudowałem przed tym znaleziskiem na razie się sprawdza. Jeśli ktoś to sprawdzi, czekam na feedback.