Upload
yuta-matsumura
View
271
Download
2
Embed Size (px)
Citation preview
Windowsで扱えるスクリプト
•バッチスクリプト ( .bat, .cmd, .ps1 )
• Windows Scripting Host ( .vbs, .js )
• RubyやPythonなど
• 実行環境の構築が必要
3
Roslyn
• C#で作られた新しい .NET のコンパイラプラットフォーム
• 2009年から設計が始まり、2014年にオープンソース化
• https://github.com/dotnet/roslyn
7
それぞれのAPI
• Compiler API
• これまでのコンパイラの機能を提供するAPI
• Workspaces API
• ソリューションやプロジェクトを扱う機能を提供するAPI
• Features API
• リファクタリングやコード補完などの機能を提供するAPI
9
Roslyn
10
画像引用 : Roslyn Overview
Scripting APIs
Roslynを使う
• GitHubからソースを入手しビルドする
• https://github.com/dotnet/roslyn
• NuGetからパッケージを入手する
• http://www.nuget.org/packages/Microsoft.CodeAnalysis.CSharp/
• http://www.nuget.org/packages/Microsoft.CodeAnalysis.Scripting.CSharp/
11
簡単なサンプル
// using Microsoft.CodeAnalysis.Scripting;
var code = "Console.WriteLine(¥"Hello world!¥");";
var script = CSharpScript.Create(code);
script.Run();
13
CSharpScript.Createメソッド
• public static Script Create(string code);
• [code] に定義されたC#スクリプトを生成する。
• System名前空間のみ組込まれている。
• public static Script Create(string code, ScriptOptions options);
• [code] に定義されたC#スクリプトを生成する。
• 組込む名前空間は [options] に指定する。
15
ScriptOptionsクラス
• Options for creating and running scripts.
• → スクリプトの作成と実行のオプション。
•⇒スクリプトに名前空間(using)を指定するオプション。
16
ScriptOptionsクラス
• WithReferences(IEnumerable<Assembly> assemblies);
• 組込む名前空間のアセンブリ情報を指定する。
• “mscorlib.dll” は必須 (intやobjectのアセンブリを指定)。
• 独自のDLLファイルも指定可。
17
ScriptOptionsクラス
• WithNamespaces(IEnumerable<string> namespaces);
• 組込む名前空間を指定する。
• LINQを使いたいなら “System.Linq” を記述する。
18
サンプルhttps://github.com/tsubakimoto/CSharpScriptSample
19
使い道を考えてみた
•バッチファイルをC#で書き換える
• オブジェクトが扱えるため、柔軟なバッチ処理が可能
• WindowsならPowerShellで十分かもしれないが、Mono環境下のスクリプト処理として有効
• JScriptの代わりとして使う
• いい加減 JScript やめたい (切実)
• プログラミング言語を揃えられればメンテナンス性も上がるはず
20
.NETオープンソース化の恩恵
• .NET Frameworkの内部処理(コード)が分かるようになった
• Reference Source
• .NET Frameworkのオンラインソースコードブラウザ
• Roslynで構築されている
• http://referencesource.microsoft.com/ (.NET Framework)
• http://source.roslyn.io/ (Roslyn)
•自分がコードを書くときに作法の参考にしている
22
参考リンク
• dotnet/roslyn
• Roslyn Overview
• Roslyn for Scriptingで、あなたのアプリケーションにもC#スクリプトを!! | kekyoの丼
• Dave Glick - Introduction to Scripting with the .NET Compiler
Platform (Roslyn)
• オープンソース化の旅: Roslyn の 1 年目の試行錯誤とその成果 -
Visual Studio 日本チームブログ - Site Home - MSDN Blogs
23
告知
•草ソフトボールのメンバー募集中です!マネージャーも!
•月2回、日曜日、南区を中心に活動中です。
•ソフトボールをしたい、いい汗をかきたいという方は
お待ちしています!
•深刻な人数不足のため、お知り合いにもシェアして下さい。
• http://www.ikz.jp/hp/alphas-club/
24