BT

ScriptCS: C#をスクリプト言語にする

| 作者: Abel Avram フォローする 7 人のフォロワー , 翻訳者 尾崎 義尚 フォローする 0 人のフォロワー 投稿日 2013年5月2日. 推定読書時間: 3 分 |

原文(投稿日:2013/04/25)へのリンク

ScriptCSでは、開発者がシンプルなテキストエディタでC#アプリケーションを書くことができるようになる。Roslynでコンパイルされ、NuGetでパッケージ管理される。

Windows Azure SDKチームのプロジェクトマネージャGlenn Block氏は、C#をスクリプト言語にするScriptCSサイドプロジェクトを始めた。開発者はシンプルなテキストエディタを使ってC#の知識を使うことができ、Microsoftのcompiler-as-a-serviceであるRoslynでコンパイルを完了できる。ScriptCSはNuGetを使用して依存するパッケージのアップロードされたバイナリを探す。Roslynのr:シンタックスは、GACや他のDLL参照を追加するために使用される。

hello.csxに以下のC#コードが含まれていたとする

Console.WriteLine("Hello World!");

そして、コマンドscriptcs hello.csxの結果として、コンソールにHello World!という文字列が表示される。

名前空間もクラス定義も必要なく、プロジェクトも.obj.exeファイルの生成もされない。RoslynはコンパイルしてScriptCSの実行結果を返す。

他のより手の込んだ例では、Web APIホストを生成している:

using System;
using System.IO;
using System.Web.Http;
using System.Web.Http.SelfHost;

var address = "http://localhost:8080";
var conf = new HttpSelfHostConfiguration(new Uri(address));
conf.Routes.MapHttpRoute(name: "DefaultApi",
   routeTemplate: "api/{controller}/{id}",
   defaults: new { id = RouteParameter.Optional }
);

var server = new HttpSelfHostServer(conf);
server.OpenAsync().Wait();
Console.WriteLine("Listening...");
Console.ReadKey();

ScriptCSはプラグインの仕組みを持ち、それはscript packs と呼ばれる。Block氏の説明によると:

script packは名前空間のインポート、参照だけでなく、Require APIを通じてスクリプトで利用できるオブジェクトを提供します。

script packの主な目的は、編集したスクリプトでフレームワークを容易に使用することができるようにすることです。

script packsはNuGetパッケージを通じてインストールすることができ、それらは簡単に見つけて利用できます。

MonoでScriptCSが実行できるように作業が進行中である。さらにRoslynでのデバッグ機能が検討されている。Sublime Textは、シンプルなエディタでシンタックスのハイライトを有効にするScriptCS用のプラグインを作成している。またVisual Studioで.csxファイルのシンタックスハイライトを生成するためにRoslynを使用することができる。

Block氏は、自身のNode.jsの経験をもとにC#スクリプトの優位性をリストにした:

  • プロジェクトが不要でスクリプトのみ- node.jsの好きなことのひとつは、プロジェクトが不要なことである。フォルダにjsファイルを置くだけで始めることができる
  • IDEが必要なく、テキストエディタだけでよい
  • アセンブリではなくパッケージ– nodeでは、なにかが欲しいときはnpmを使ってパッケージをダウンロードすることができる。これは超シンプルである。あなたのアプリとローカルのnode_modulesフォルダだけで実行できる。
  • コンパイル不要– これが一番重要だ。node.exeと私のアプリだけで実行できる。実行ファイルを作成する必要がなく、ただ実行するだけである。

すべてはRoslynとNuGetで可能である。ScriptCSはまだアセンブリを扱うが、“私はそれを個別に管理するのではなく、パッケージのインストールだけにしたい。”

ScriptCSはApache 2ライセンスで提供されており、現在Microsoftは支援していない。

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

あなたの意見をお聞かせください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする
コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

ディスカッション

InfoQにログインし新機能を利用する


パスワードを忘れた方はこちらへ

Follow

お気に入りのトピックや著者をフォローする

業界やサイト内で一番重要な見出しを閲覧する

Like

より多いシグナル、より少ないノイズ

お気に入りのトピックと著者を選択して自分のフィードを作る

Notifications

最新情報をすぐ手に入れるようにしよう

通知設定をして、お気に入りコンテンツを見逃さないようにしよう!

BT