2009-10-31 4 views
4

응용 프로그램을 디자인하는 과정에서 사용자가 프로그램에 사용자 지정 동작을 추가 할 수 있어야하며이 작업을 스크립팅을 통해 허용하려는 결론을 얻었습니다. 우리는 응용 프로그램에 스크립팅 엔진을 임베디드하고 응용 프로그램을 덜 설계하여 스크립팅을 성공적으로 수행 할 수있는 경험이 있습니다.응용 프로그램을 스크립트 가능하게 만드는 데 필요한 리소스

응용 프로그램을 스크립트 작성 가능하게 만드는 핵심은 스크립트가 응답 할 수있는 많은 이벤트 세트를 작성하고 스크립트가 사용할 함수를 노출하는 것입니다. 스크립팅에 무분별하게 돌진하는 대신, 주제에 대한 일부 자료를 읽는 것을 선호합니다.

우리는 스크립팅을위한 응용 프로그램 디자인 프로세스를 다루는 자료 (선호 도서)를 찾고 있습니다. 어떤 조언도 최고 일 것입니다. 주제에 대한 조언이 많을수록 좋습니다.

해당 프로젝트의 세부 정보가 필요하다면 좀 더 자세하게 설명하는 단락을 추가하겠습니다.

답변

2

얼마나 멋진 스크립트를 만들고 싶습니까?

사용자가 .Net을 사용하기를 원하면이 artice가 확장 가능한 응용 프로그램을 만드는 방법을 소개합니다.

http://www.developerfusion.com/article/4529/using-net-to-make-your-application-scriptable/

나는 잠시 동안 비슷한 일을 조사했다

다시 나는 또한 매우 도움이 될하기 위해 sharpdevelop 응용 프로그램에 대한 기술 정보를 발견했다. 응용 프로그램에

http://www.icsharpcode.net/TechNotes/ProgramArchitecture.pdf http://damieng.com/blog/2007/11/08/dissecting-a-c-application-inside-sharpdevelop

+0

처음에는 이미 익숙했기 때문에 처음에는 LUA로 시작했지만, 관리되는 래퍼가 직관적이지 않고 많은 디버깅 정보를 제공하지 않았기 때문에 .NET 코드를 동적으로 컴파일 해보기로 결정했습니다. 나는 그것을 사랑 해요. –

2

포함하기 스크립팅 기능은 응용 프로그램을 구성하는 언어와 기술에 매우 많이 의존한다. 귀하의 경우, C#으로 개발하면 동적 언어 런타임 작업 때문에 흥미로운 옵션이 있습니다. IronRubyIronPython 프로젝트는 .NET 플랫폼에서 Ruby 및 Python 스크립팅 언어를 구현하기 때문에 .NET 응용 프로그램과 가장 잘 통합 될 것이므로이 프로젝트를 살펴 봐야합니다. Ruby에 관한 경험이 풍부하기 때문에 나는 hosting IronRuby in a .NET application에 대한 정보를 살펴볼 것입니다.

일반 서적에서 나는 아마 여기에서 시작할 것이다 : Language Implementation Patterns: Create Your Own Domain-Specific and General Programming Languages. IronPython에 대한 자세한 내용은 Manning의 제목 인 IronPython in Action입니다. 그리고 IronRuby의 경우 베타 버전의이 책은 여전히 ​​있습니다 : IronRuby in Action.

이것은 Microsoft의 Professional Developer 's Conference에서 나온 확실한 리소스 일 수도 있습니다. Using Dynamic Languages to Build Scriptable Apps.

+0

C# 대신 IronRube/Pything을 사용하는 이유는 무엇입니까? –

+0

C#은 스크립팅에 사용하도록 설계되지 않았기 때문에 해석되기보다는 컴파일하기위한 것입니다. Python이나 Ruby는 프로그래머가 아닌 사용자를 위해 쉽게 이해할 수 있습니다. 사용자가 프로그래머 임에도 불구하고 스크립트가보다 간결하고 더 많은 로직을 포함하고 컴파일러와의 대화가 적기 때문에 루비 또는 파이썬을 채택 할 이유가있을 수 있습니다. –

+0

거기에 포인트가있을 수 있습니다. Ruby 나 Python에 대한 경험이 없습니다. 스크립트의 언어는 사용자가 선호하는 언어에 따라 CodeCompiler를 사용할 수 있으므로 상호 교환이 가능해야합니다. –

1

이것은 실제로 귀하의 요구 사항에 따라 다릅니다. 아주 쉬울 수 있습니다.

내 응용 프로그램에서는 스크립트에 사용할 수 있도록 기본 데이터 모델을 제공하는 작은 클래스 집합을 만들었습니다. IronPython 엔진의 인스턴스를 만들고, 데이터 모델의 루트 개체 인스턴스를 전역으로 추가하고 스크립트를로드하고 실행하는 스크립팅 관리자를 작성했습니다.

내 경우에는 실제로 모든 스크립팅을 수행하는 사람입니다. 따라서 어떤 멋진 개발 환경이나 테스트 베드 응용 프로그램이 필요하지 않으며 기본적으로 보안 고려 사항이 없습니다. 그 문제들에 대해 걱정할 필요가 있다면 문제는 훨씬 더 어려울 것입니다.

관련 문제