Помогите написать что-то похожее на 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
Re: Помогите написать что-то похожее на LinqPad
От: Codechanger Россия  
Дата: 27.02.10 12:11
Оценка:
PowerShell советую глянуть
Re[2]: Помогите написать что-то похожее на LinqPad
От: BrainDrain  
Дата: 27.02.10 16:21
Оценка:
Здравствуйте, Codechanger, Вы писали:

C>PowerShell советую глянуть


Ну как он мне поможет — это ж средство автоматизации OS
В качестве скриптового языка мне нужен именно C#,
будет осуществлятся доступ к COM и нужен linq
Re: Помогите написать что-то похожее на LinqPad
От: BrainDrain  
Дата: 28.02.10 21:39
Оценка:
С динамической компиляцией вроде никаких проблем нет — обойдусь совсем без каких-либо библиотек
Re: Помогите написать что-то похожее на LinqPad
От: sto Украина http://overstore.codeplex.com
Дата: 01.03.10 09:20
Оценка:
Здравствуйте, 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, но я с ним не работал, не знаю, какие у него возможности.
There is no such thing as the perfect design.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.