С динамической компиляцией вроде никаких проблем нет — обойдусь совсем без каких-либо библиотек
Здравствуйте, BrainDrain, Вы писали:
BD>Помогите вот с чем:
BD>Пишу софтину атоматизации приложения скриптами (плагин для CAD) — могу встроить vba (с помощью VBA SDK),
BD>но хочу встроить C# — он работает быстрее (в моем случае это важно + в c# есть лямбда и linq)).
BD>Задачи встают такие:
BD>1) Генерить в рантаймме! для базы (к примеру MS SQL) код — получать программные сущности для таблиц/связей
BD> (чтобы по ним можно было строить linq запросы);
Ну, из всех требований, что вы описали, это наиболее простое в реализации, и пишется самостоятельно.
MS SQL Server metadata
CodeDom для генерации кода на C#/VB
Linq2SQL атрибуты
BD>2) Динамически компилячить мудули из сгенерированного кода;
Тот же CodeDom
BD>3) Динамически выполнять код написанного юзером кода (скрипта)
То же, плюс подумать, как передавать параметры, различные контексты в скрипт, и подумать о безопасности. Наиболее простое решение — на мой взгляд — выполнять код в отдельном
AppDomain с минимальными (ну или минимально необходимыми) полномочиями.
BD>4) Сделать подсветку синтаксиса (менее важно) и автолист меберс в текущем дата-контексте (вот это важно!)
BD>5) Рендерить консольный output и дампить объекты в удобный, так сказать human-readable form
BD>6) На будущее — сделать дебаг кода.
По этих остальных пунктов — это довольно сложная задача, на мой взгляд. Особенно насчет дебаггера.
Посмотрите
Visual Studio Shell, но я с ним не работал, не знаю, какие у него возможности.