Всем привет.
Допустим запущено приложение.
Открываю файлик — а там комманды
Что то типа
dim dd as new label
dd.color=red
form1.controls.add ( dd)
Смысл в том чтобы приложение выполнило этот скрипт.
Есть ли готовые решения для таких целей.
Мне это нужно чтобы конфигурировать приложение налету — а то приходиться очень часто выполнять одни и теже действия — а жестко прописывать в программе нет смысла.
Здравствуйте, Alexander_fx, Вы писали:
A_>Всем привет. A_>Допустим запущено приложение. A_>Открываю файлик — а там комманды A_>Что то типа A_>dim dd as new label A_>dd.color=red A_>form1.controls.add ( dd)
A_>Смысл в том чтобы приложение выполнило этот скрипт. A_>Есть ли готовые решения для таких целей.
A_>Мне это нужно чтобы конфигурировать приложение налету — а то приходиться очень часто выполнять одни и теже действия — а жестко прописывать в программе нет смысла.
Здравствуйте, 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Ш>скомпилируй во временную сборку и запусти...
Дык с компилятором всякий сможет.
Вопрос в том — чтобы скомпилировалось в момент работы программы.
Точно помню что гдето читал про такую возможность — но не помню где.
Здравствуйте, 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.
Не читайте ту хрень, что тут понаписали. ЗАюзайте Microsoft Script Control (он стандартный) и вперёд. В скрипт в глобальное пространство имён можно добавить любые .NET объекты
Hello, " Евгений Коробко " > Не читайте ту хрень, что тут понаписали. ЗАюзайте Microsoft Script Control (он стандартный) и вперёд. В скрипт в глобальное пространство имён можно добавить любые .NET объекты
Наверное, не настолько стандартный раз, индекс в MSDN про него ничего не знает?
В любом случае, смешивание разных технологий без серьезного на то повода до добра не доведет... Раз уж .NET предоставляет для этого готовые средства то, лучше использовать именно их.
Posted via RSDN NNTP Server 2.0
Если у Вас нет паранойи, то это еще не значит, что они за Вами не следят.
Здравствуйте, TK, Вы писали:
TK>Наверное, не настолько стандартный раз, индекс в MSDN про него ничего не знает? TK>В любом случае, смешивание разных технологий без серьезного на то повода до добра не доведет... Раз уж .NET предоставляет для этого готовые средства то, лучше использовать именно их.
какой скрипт? мы же вроде как в 21м веке живем! VBScript/JScript и COM — пора бы прекратить вообще поставлять СДК для этих гадостей! если грамотно воспользоваться всем что дотнет дает — все бут в шоколаде. например, в данном случае, запретить unsafe код, DllImport, + можно CAS настроить... хотя лучшеб конечно все настройки таки в XML держать...
Здравствуйте, 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. Т.е. там просто скрипт загружается, компилируется и исполняется. Все довольно просто реализуется... Сам пробовал .
Здравствуйте, Alexander_fx, Вы писали:
A_>Всем привет. A_>Допустим запущено приложение. A_>Открываю файлик — а там комманды A_>Что то типа A_>dim dd as new label A_>dd.color=red A_>form1.controls.add ( dd)
A_>Смысл в том чтобы приложение выполнило этот скрипт. A_>Есть ли готовые решения для таких целей.
Есть готовый контрол для этих целей из АктивХ.вроде так и назвается МС скрипт контрол.В ХР входит.По умолчанию он понимает вбскрипт и еще какойто, непомню уже какой язык, но вроде яву.Я на нем только простейшие эксперементы ставил но при надлежащем конфигурировании его можно слить с проэктом.Посмотри в МСДН, там было описание работы с ним.
Здравствуйте, Alexander_fx, Вы писали:
A_>Смысл в том чтобы приложение выполнило этот скрипт. A_>Есть ли готовые решения для таких целей.
A_>Мне это нужно чтобы конфигурировать приложение налету — а то приходиться очень часто выполнять одни и теже действия — а жестко прописывать в программе нет смысла.
Я предпочитаю CodeDOM. Возможностей намного больше чем в VSA. Да еще 3 языка на выбор. Также имеется возможность сохранить скрипт в сборку и потом использовать его как часть программы без компиляции.
Да можно все это реализовать, но есть маленькое но... в результате компиляции получаем NET сборку и загрузив ее один раз выгрузить ее можно только со всем доменом, что не всегда есть хорошо. Я несколько месяцев назад искал решение подобной задачи, пока остановился на paxScript, WEB сайт разработчика. Вроде платный, но скачать можно бесплатно, пользуюсь месяцев два пока ни каких ограничений не обнаружено. Поддерживает как C# так и VBNet
PS конечно нет поддержки последней версии языковых конструкций, но зато нет возни с выгрузкой сборок. Еще один момент есть возможность сохранять промежуточный код (не проверял на сколько он совместим с тем что генерирует VS компилятор) с последующей загрузкой