Помогите написать что-то похожее на LinqPad
От: BrainDrain  
Дата: 27.02.10 10:58
Оценка:
Помогите вот с чем:
Пишу софтину атоматизации приложения скриптами (плагин для CAD) — могу встроить vba (с помощью VBA SDK),
но хочу встроить C# — он работает быстрее (в моем случае это важно + в c# есть лямбда и linq)).
Задачи встают такие:
1) Генерить в рантаймме! для базы (к примеру MS SQL) код — получать программные сущности для таблиц/связей
(чтобы по ним можно было строить linq запросы);
2) Динамически компилячить мудули из сгенерированного кода;
3) Динамически выполнять код написанного юзером кода (скрипта)
4) Сделать подсветку синтаксиса (менее важно) и автолист меберс в текущем дата-контексте (вот это важно!)
5) Рендерить консольный output и дампить объекты в удобный, так сказать human-readable form
6) На будущее — сделать дебаг кода.
Вопрос — с помощью чего это все делать (по крайней мере чтобы не изобретать велосипед)
Я пока вот что намозговал (прямо по пунктам):
1) Либо вызывать SQLMetal (он быстрый), либо dbmetal из комплекта dblinq
(можно также раздербанить его исходники), либо использовать командную тулзу SubSonic'а
2), 3) пока не знаю — начал копать cs-script, nscript, DotNetScript — кто-нибудь имеет
опыт с чем-нибудь (по идее желательно чтобы двиг имел задел и на возможность подсовывания vb.net)
4) (Avalon Edit + SharpDevelop.Dom) by ICSharpCode
5) xml/xslt + нужен быстрый html-рэндерер. Думаю в сторону HTMLayout (есть другие предложения — биндинги WebKit? QT? Gecko?)
6) для меня темный лес
В итоге должен полжно получится что-то вроде linqpad со своей спецификой.
Очень нужны советы по любому из пунктов.
Заранее спасибо.
linqpad subsonic sqlmetal avalon edit sharpdevelop.dom
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.