Можно ли такое реализовать в DOT NET
От: Alexander_fx  
Дата: 26.09.06 12:24
Оценка:
Всем привет.
Допустим запущено приложение.
Открываю файлик — а там комманды
Что то типа
dim dd as new label
dd.color=red
form1.controls.add ( dd)

Смысл в том чтобы приложение выполнило этот скрипт.
Есть ли готовые решения для таких целей.

Мне это нужно чтобы конфигурировать приложение налету — а то приходиться очень часто выполнять одни и теже действия — а жестко прописывать в программе нет смысла.
Re: Можно ли такое реализовать в DOT NET
От: DuШes  
Дата: 26.09.06 12:29
Оценка:
Здравствуйте, Alexander_fx, Вы писали:

A_>Всем привет.

A_>Допустим запущено приложение.
A_>Открываю файлик — а там комманды
A_>Что то типа
A_>dim dd as new label
A_>dd.color=red
A_>form1.controls.add ( dd)

A_>Смысл в том чтобы приложение выполнило этот скрипт.

A_>Есть ли готовые решения для таких целей.

A_>Мне это нужно чтобы конфигурировать приложение налету — а то приходиться очень часто выполнять одни и теже действия — а жестко прописывать в программе нет смысла.


скомпилируй во временную сборку и запусти...
Re[2]: Можно ли такое реализовать в DOT NET
От: Alexander_fx  
Дата: 26.09.06 12:32
Оценка:
Здравствуйте, DuШes, Вы писали:

DШ>Здравствуйте, Alexander_fx, Вы писали:


A_>>Всем привет.

A_>>Допустим запущено приложение.
A_>>Открываю файлик — а там комманды
A_>>Что то типа
A_>>dim dd as new label
A_>>dd.color=red
A_>>form1.controls.add ( dd)

A_>>Смысл в том чтобы приложение выполнило этот скрипт.

A_>>Есть ли готовые решения для таких целей.

A_>>Мне это нужно чтобы конфигурировать приложение налету — а то приходиться очень часто выполнять одни и теже действия — а жестко прописывать в программе нет смысла.


DШ>скомпилируй во временную сборку и запусти...


Дык с компилятором всякий сможет.
Вопрос в том — чтобы скомпилировалось в момент работы программы.
Точно помню что гдето читал про такую возможность — но не помню где.
Re[3]: Можно ли такое реализовать в DOT NET
От: Spender Канада http://rybkov.livejournal.com
Дата: 26.09.06 12:37
Оценка:
Здравствуйте, Alexander_fx, Вы писали:

DШ>>скомпилируй во временную сборку и запусти...


A_>Дык с компилятором всякий сможет.


Так имеется ввиду, что компилировать надо программно. В MSDN'е есть примеры. Что-то типа MethodBuilder, AssemblyBuilder...
Re[3]: Можно ли такое реализовать в DOT NET
От: Аноним  
Дата: 26.09.06 12:42
Оценка:
Здравствуйте, Alexander_fx, Вы писали:

DШ>>скомпилируй во временную сборку и запусти...


A_>Дык с компилятором всякий сможет.

A_>Вопрос в том — чтобы скомпилировалось в момент работы программы.
A_>Точно помню что гдето читал про такую возможность — но не помню где.

IMHO, тебе и предлагают именно это.
Тебе в пространство имён Microsoft.VisualBasic, а там класс VBCodeProvider.
Re[4]: Можно ли такое реализовать в DOT NET
От: Ромашка Украина  
Дата: 26.09.06 12:44
Оценка:
Аноним пишет:
> Тебе в пространство имён Microsoft.VisualBasic, а там класс VBCodeProvider.

Фи... Пространство имен Microsoft.CSharp, класс CSharpCodeProvider.
Posted via RSDN NNTP Server 2.0


Всё, что нас не убивает, ещё горько об этом пожалеет.
Re[4]: Можно ли такое реализовать в DOT NET
От: Аноним  
Дата: 26.09.06 12:58
Оценка:
да,да
только за!
С# читать удобнее (и писать)


данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
Re[5]: Можно ли такое реализовать в DOT NET
От: Аноним  
Дата: 26.09.06 13:05
Оценка: 1 (1)
Здравствуйте, zuev, Вы писали:

Z>да,да

Z>только за!
Z>С# читать удобнее (и писать)

Умники, да?
Вы первый пост внимательно читали? У человека код на VB.
Re: Можно ли такое реализовать в DOT NET
От: Евгений Коробко  
Дата: 26.09.06 13:29
Оценка:
Не читайте ту хрень, что тут понаписали. ЗАюзайте Microsoft Script Control (он стандартный) и вперёд. В скрипт в глобальное пространство имён можно добавить любые .NET объекты
Евгений Коробко
Re[2]: Можно ли такое реализовать в DOT NET
От: TK Лес кывт.рф
Дата: 26.09.06 18:07
Оценка:
Hello, " Евгений Коробко "
> Не читайте ту хрень, что тут понаписали. ЗАюзайте Microsoft Script Control (он стандартный) и вперёд. В скрипт в глобальное пространство имён можно добавить любые .NET объекты

Наверное, не настолько стандартный раз, индекс в MSDN про него ничего не знает?
В любом случае, смешивание разных технологий без серьезного на то повода до добра не доведет... Раз уж .NET предоставляет для этого готовые средства то, лучше использовать именно их.
Posted via RSDN NNTP Server 2.0
Если у Вас нет паранойи, то это еще не значит, что они за Вами не следят.
Re[6]: Можно ли такое реализовать в DOT NET
От: JackTheRipper Россия http://www.gesman.nm.ru
Дата: 26.09.06 19:36
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Умники, да?

А>Вы первый пост внимательно читали? У человека код на VB.

У человека еще пока нету кода на VB ,так что пока не поздно конфигурационный скрипт надо на шарпе замутить =) или вообще на XML
Re[3]: Можно ли такое реализовать в DOT NET
От: JackTheRipper Россия http://www.gesman.nm.ru
Дата: 26.09.06 19:43
Оценка:
Здравствуйте, TK, Вы писали:

TK>Наверное, не настолько стандартный раз, индекс в MSDN про него ничего не знает?

TK>В любом случае, смешивание разных технологий без серьезного на то повода до добра не доведет... Раз уж .NET предоставляет для этого готовые средства то, лучше использовать именно их.

какой скрипт? мы же вроде как в 21м веке живем! VBScript/JScript и COM — пора бы прекратить вообще поставлять СДК для этих гадостей! если грамотно воспользоваться всем что дотнет дает — все бут в шоколаде. например, в данном случае, запретить unsafe код, DllImport, + можно CAS настроить... хотя лучшеб конечно все настройки таки в XML держать...
Re: Можно ли такое реализовать в DOT NET
От: Alexey_N  
Дата: 27.09.06 04:56
Оценка:
Здравствуйте, Alexander_fx, Вы писали:

A_>Всем привет.

A_>Допустим запущено приложение.
A_>Открываю файлик — а там комманды
A_>Что то типа
A_>dim dd as new label
A_>dd.color=red
A_>form1.controls.add ( dd)

A_>Смысл в том чтобы приложение выполнило этот скрипт.

A_>Есть ли готовые решения для таких целей.

A_>Мне это нужно чтобы конфигурировать приложение налету — а то приходиться очень часто выполнять одни и теже действия — а жестко прописывать в программе нет смысла.


Конечно можно. Есть в дот нете такая штука CodeDOM — позволяет компилировать код в рантайме на трех языках: С#, Visual Basic и JScript.
Об этом можно почитать здесь.
И конечно почитать в MSDN про CodeDOM.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re: Можно ли такое реализовать в DOT NET
От: Аноним  
Дата: 27.09.06 05:26
Оценка:
В MSDN 100% есть подробная статья и примерчик как при помощи .Net'овских инструментов загрузить и выполнить какой-либо скрипт на любом языке. Сейчас что-то с ходу найти ее не удается... Помню, что там используется Microsoft.Vsa. Т.е. там просто скрипт загружается, компилируется и исполняется. Все довольно просто реализуется... Сам пробовал .
Мой блог


данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
Re: Можно ли такое реализовать в DOT NET
От: lordmax  
Дата: 27.09.06 05:40
Оценка:
Здравствуйте, Alexander_fx, Вы писали:

A_>Всем привет.

A_>Допустим запущено приложение.
A_>Открываю файлик — а там комманды
A_>Что то типа
A_>dim dd as new label
A_>dd.color=red
A_>form1.controls.add ( dd)

A_>Смысл в том чтобы приложение выполнило этот скрипт.

A_>Есть ли готовые решения для таких целей.
Есть готовый контрол для этих целей из АктивХ.вроде так и назвается МС скрипт контрол.В ХР входит.По умолчанию он понимает вбскрипт и еще какойто, непомню уже какой язык, но вроде яву.Я на нем только простейшие эксперементы ставил но при надлежащем конфигурировании его можно слить с проэктом.Посмотри в МСДН, там было описание работы с ним.
Обобщение
От: Alexey_N  
Дата: 27.09.06 06:05
Оценка:
Здравствуйте, Alexander_fx, Вы писали:

A_>Смысл в том чтобы приложение выполнило этот скрипт.

A_>Есть ли готовые решения для таких целей.

A_>Мне это нужно чтобы конфигурировать приложение налету — а то приходиться очень часто выполнять одни и теже действия — а жестко прописывать в программе нет смысла.


В общем есть две технологии:

1) VSA, как сказал totmakov
http://www.csharphelp.com/archives/archive102.html
http://www.codeproject.com/csharp/csscriptengine.asp
http://msdn.microsoft.com/msdnmag/issues/02/08/VisualStudioforApplications/default.aspx

2) CodeDOM
http://www.divil.co.uk/net/articles/plugins/scripting.asp


И тут небольшой обзор технологий http://weblogs.asp.net/rosherove/articles/dotnetscripting.aspx
Там есть еще 3-я, но она уже устарела.

Я предпочитаю CodeDOM. Возможностей намного больше чем в VSA. Да еще 3 языка на выбор. Также имеется возможность сохранить скрипт в сборку и потом использовать его как часть программы без компиляции.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[2]: Можно ли такое реализовать в DOT NET
От: Мартыненко Сергей Украина  
Дата: 27.09.06 06:51
Оценка:
Добрый день всем!

Да можно все это реализовать, но есть маленькое но... в результате компиляции получаем NET сборку и загрузив ее один раз выгрузить ее можно только со всем доменом, что не всегда есть хорошо. Я несколько месяцев назад искал решение подобной задачи, пока остановился на paxScript, WEB сайт разработчика. Вроде платный, но скачать можно бесплатно, пользуюсь месяцев два пока ни каких ограничений не обнаружено. Поддерживает как C# так и VBNet
PS конечно нет поддержки последней версии языковых конструкций, но зато нет возни с выгрузкой сборок. Еще один момент есть возможность сохранять промежуточный код (не проверял на сколько он совместим с тем что генерирует VS компилятор) с последующей загрузкой
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.