.NET 앱을위한 대화식 쉘 작성 및 Python/Iron Python과 같은 스크립팅 언어를 포함

StackOverflow https://stackoverflow.com/questions/808692

문제

표준 파이썬 설치와 함께 제공되는 자습서를 사용하여 Python을 배우고있었습니다. 저자가 Python에 대해 말한 이점 중 하나는 "확장 언어를 사용할 수있는 프로그램을 작성했을 수도 있고 응용 프로그램을위한 완전히 새로운 언어를 설계하고 구현하고 싶지 않을 수도 있습니다" - 내 질문은 어떻게 될 것인가입니다. Python을 사용하여 연장 할 수있는 프로그램 설계 (C#사용)를 대화식으로 확장 할 수 있습니다. )?

대화식 쉘이있는 .NET 프로그램을 설계하는 방법에 대한 포인터가 있습니까? 그런 다음 쉘에서 Python 스크립트를 사용하여 프로그램과 "확장"하거나 상호 작용하고 싶습니다.

편집하다: 이 질문은 PDC 2008 기간 동안 Miguel de Icaza의 데모 제공에서 나온 부분적으로 대화 형 CSHARP 명령 프롬프트를 보여주었습니다. 나는 그것을보고 대화식 쉘이있는 .NET에서 Windows 또는 웹 프로그램을 설계하는 것이 얼마나 멋진 지 생각했습니다. Python과 같은 스크립팅 언어를 사용하여 프로그램에서 제공하는 기능을 확장 할 수있었습니다.

또한 Steve Yegge의 에세이 중 하나를 읽은 후 이런 종류의 기능에 대해 생각하기 시작했습니다.

도움이 되었습니까?

해결책

이것은 큰 사용처럼 들립니다 Ironpython.

C#에서 간단한 스크립팅 호스트를 설정하여 Ironpython 스크립트로 호출 할 수있을뿐만 아니라 Ironpython이 C# 코드로 호출 할 수 있도록하기 쉽습니다. CodePlex 사이트에는이 작업을 수행하는 방법을 보여주는 샘플과 예가 있습니다.

예와 샘플을위한 또 다른 좋은 사이트는입니다 Ironpython.info

그리고 여기에 페이지가 있습니다 일반적인 DLR 중심 방식이지만, 귀하의 질문에 대답하는 예에 전념하면 Ironpython, Ironruby 또는 지원하려는 DLR 언어를 호스팅 할 수 있습니다.

나는 과거 에이 예를 사용하여 개인 설치 내에서 Ironpython 환경을 만듭니다. 나사 위키 - 매우 표현력있는 위키 템플릿을 만들 수 있었고 일반적으로 매우 유용한 것으로 판명되었습니다.

다른 팁

같은 문제에 대한 해결책을 찾고 있었고 IronTextBox를 찾았습니다. http://www.codeproject.com/kb/edit/irontextbox2.aspx

현재 버전에 대한 약간의 튜닝이 필요하지만 내가 필요한 모든 것 같습니다. 먼저 컴파일 한 다음 변수를 추가하여 쉘에서 범위로 액세스하고 싶었습니다.

확장 언어로서의 Python을 "Python Imbedding Python"이라고합니다.

Python Intepreter를 기본적으로 호출하여 C ++에서 Python 모듈을 호출하고 Python 소스를 실행할 수 있습니다. 이것은 ... 불리운다 임베딩.

C와 C ++에서 작동하며 아마도 C#에서도 작동 할 것입니다.

그리고 아니, 당신은 어떤 종류의 "쉘"도 필요하지 않습니다. 파이썬은 대화식이 될 수 있지만 전혀 요구 사항이 아닙니다.

다음은 C# 응용 프로그램을 스크립트하기 위해 Ironruby를 추가하는 블로그 게시물에 대한 링크입니다.

http://blog.jimmy.schementi.com/2008/11/adding-scripting-to-c-silverlight-app.html

원칙은 또한 Ironpython을 사용하는 데 효과적입니다.

당신의 목표가 당신이 사용할 수있는 새로운 언어를 배우지 않는 것이라면 csscript.net C# 또는 VB로 작성된 내장 스크립트는 응용 프로그램에 작성되었습니다. CSScript를 사용하면 CLR에 대한 전체 액세스 권한이 있습니다. 세 가지 스크립트 실행 모델이 지원되므로 현재 앱 도메인의 객체를 나타내는 스크립트를 실행하거나, 리모콘을 사용하여 실행하거나, 쉘로 실행할 수 있습니다.

현재 BOO 사용과 다소 유사한 응용 프로그램 개체를 구성하기 위해 CCScript를 "접착제"코드로 사용하고 있습니다.

이것 링크 좋은 개요를 제공하는 코드 프로젝트 기사를 사용합니다.

당신이 무슨 뜻인지 모르겠습니다

"확장"또는 프로그램과 상호 작용합니다

그래서 나는 당신의 질문에 대답 할 수 없습니다. 예를 들어 줄 수 있습니까?

모노에는 오픈 소스 대화식 C# 쉘이 있습니다. http://www.mono-project.com/csharprepl

Python, .NET 및 Language Extension을 좋아하면 아마도 우우 철 파이썬 위에. Boo는 오픈 소스 대화식 쉘도 함께 제공됩니다.

나는 동의하지 않는다

"당신은 당신의 응용 프로그램을위한 완전히 새로운 언어를 설계하고 구현하고 싶지 않습니다."

간단한 DSL을 만드는 것만 큼 어렵지 않습니다. 몇 시간 만 구현하는 데 며칠이 걸리지 않습니다. 흥미로운 옵션 일 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top